Проблема с SD -картой

астер
Вт 25 июля 2017 г., 8:12 вечера
привет

у меня есть Этот SD -модуль, SDFAT версия 1.0.3, внешняя TTL-серия, низкая (4 МГц) скорость, STM32Duino Core Последнее обновление (20 этого месяца)
Если я использую его на Maple Mini (от baite), это работает нормально
Тот же код на BluePill дает мне ошибку инициализации

Я использую это {&gpiob, NULL, NULL, 2, 0, ADCx}, /* PB2 */

Стивестронг
Вт 25 июля 2017 г., 8:29 вечера
Какое ядро ​​точно?
STM32DUINO = https: // github.com/stm32duino/arduino_core_stm32f1 ?
или
Arduino_stm32 = https: // github.com/rogerclarkmelbourne/arduino_stm32 ?

астер
Ср. 26 июля 2017 г. 7:16 утра
Роджер один
Единственное, что я изменил между двумя досками, - это метод загрузки, загрузчик с MM и Stlink с Bluepill

AG123
Ср. 26 июля 2017 г. 9:29
Вы используете SDFAT Греймана?
https: // github.com/greiman/sdfat
https: // github.com/greiman/sdfat-бета/t ... /Sdfat/src
и втянул правильный SPI.H и SPI.CPP в ваш путь сборки?
https: // github.com/rogerclarkmelbourne/ ... Спутники/SPI

И у тебя есть правильные булавки?
Они для SPI1
PA4 - SS1 - Вы можете использовать это в качестве выбора чипа
PA5 - SCK1
PA6 - Мисо
PA7 - Моси
Им нужно затронуть правильные булавки на SD -карте
http: // www.InterfaceBus.com/secure_digi ... inout.HTML

Мои собственные коды выглядели примерно так void SPIClass::writeBuffer(uint16_t *data, uint32_t length){ spi_reg_map * regs = _currentSetting->spi_d->regs; for(uint32_t i; i
Стивестронг
Ср. 26 июля 2017 г. 9:33
@стер,
Пожалуйста, продлите часть вашего кода при проверке SD.Начните с uint16_t tmpData[48] = {GREEN, GREEN, GREEN, PURPLE, PURPLE, PURPLE, GREEN, GREEN, GREEN, PURPLE, PURPLE, PURPLE, GREEN, GREEN, GREEN, PURPLE, PURPLE, PURPLE, GREEN, GREEN, GREEN, PURPLE, PURPLE, PURPLE, GREEN, GREEN, GREEN, PURPLE, PURPLE, PURPLE, GREEN, GREEN, GREEN, PURPLE, PURPLE, PURPLE, GREEN, GREEN, GREEN, PURPLE, PURPLE, PURPLE, GREEN, GREEN, GREEN, PURPLE, PURPLE, PURPLE}; uint16_t *p = tmpData; SPI.write(p, 48);

астер
Ср. 26 июля 2017 г. 11:09
Да, я использую Greyman SDFAT «Нормальная» библиотека: https: // github.com/greiman/sdfat
Да, IDE использует правильную SPI lib
булавки верны, я обычно использую это https: // Разработчик.Mbed.org/media/upload ... NOUT01.пнн или это http: // wiki.STM32duino.com/images/a/ae/ ... разгона.гифка

Вывод SD.initErrorhalt ();
Не могу получить доступ к SD -карте. Не переформатировать.
Нет карты, неправильный выбор чипа или проблема SPI?
SD Errorcode: 0x20,0xff

от sdinfo.H 0x20 кажется общей ошибкой
// Основные команды и команды переключения.
SD_CARD_ERROR_CMD0 = 0x20,
Я не нашел 0xff, но, кажется, тоже что -то общее

Тестовый код:
SPI.write(tmpData, 48);

Стивестронг
Ср. 26 июля 2017 г. 11:36
Код ошибки 0x20 означает, что самая первая команда, отправленная в SD, не сбои (нет допустимого ответа в заданное время).
Можете ли вы проверить часы SPI и линии выбора чипа с применением?

РЕДАКТИРОВАТЬ
Также проверьте 3.3 В на модуле карты.
Хорошо известно, что 3.3 V регулятор на синей таблетках не очень сильный, и в этом случае я рекомендую использовать отдельный 3.3V Supply (в конечном итоге от MM) только для модуля SD -карты.

астер
Ср. 26 июля 2017 г. 12:26
У меня нет настоящей масштаба... Только "это": https: // www.хакерс.IO/Vincenzo-G/DIY- ... Zer-F61EE5
Я мог бы попробовать с этим, используя sd_sck_mhz (1), может быть, это будет работать :?:

Я уже использую 3.3V от отдельного поставок

Стивестронг
Ср. 26 июля 2017 г. 13:03
HM, все выглядит нормально...
Может быть, отсутствующая общая линия GND между SD -модулем, BP и внешним источником питания?
У вас есть изображение вашей установки с BP (не с MM) ?

AG123
Ср. 26 июля 2017 г. 14:20
[астер - Ср. 26 июля 2017 г. 12:26] - У меня нет настоящей масштаба... Только "это": https: // www.хакерс.IO/Vincenzo-G/DIY- ... Zer-F61EE5
Я мог бы попробовать с этим, используя sd_sck_mhz (1), может быть, это будет работать :?:

Я уже использую 3.3V от отдельного поставок
Теперь ваш логический анализатор * действительно * полезен, но я предполагаю, что Стив предложил проверить другие основные вещи 1 -й, мощные рельсы и т. Д., Которые в основном нуждаются Некоторые сломанные/холодные припояные суставы и т. Д. Возможно, О, & Я получаю 0x20, если забуду подключить карту, или карта свободно :ржу не могу:
Я думаю, что Стив может быть прав в отношении LDO, однако, некоторые SD -карты могут нарисовать немало тока/мощности и могут не работать должным образом, если LDO не может предоставить так много, некоторые LDO обеспечивают жалкие 100 мА, но я думаю, что AMS1117 на Baite Mini может поставлять до 1А, это довольно мускулистое
http: // www.Advanced-Monolithic.com/pdf/ds1117.PDF

астер
Пт 28 июля 2017 г. 10:29
настраивать:
питается от LDO Baite Mini
Изображение

«Логический анализатор» захват:
12 IS Clk
13 - Моси
14 - Мисо
15 - сс
Изображение
Изображение

Стивестронг
Пт 28 июля 2017 г. 11:23
Похоже, у вас есть короткое время между PB12 и 15.
PB13 кажется хорошим кандидатом в SS.

Почему вы подключаете MM и BP параллельно? Таким образом, булавки могут конфликтовать друг с другом.

астер
Пт 28 июля 2017 г. 13:28
[Стивестронг - Пт 28 июля 2017 г. 11:23] - Похоже, у вас есть короткое время между PB12 и 15.
PB13 кажется хорошим кандидатом в SS.
Да, ты прав... Странно и страннее :? : шок:
Я совершенно уверен, что проблема с BP, я просто куплю несколько новых досок и проверю, что это происходит
[Стивестронг - Пт 28 июля 2017 г. 11:23] - Почему вы подключаете MM и BP параллельно? Таким образом, булавки могут конфликтовать друг с другом.
Это мой "логический анализатор"

ZMEMW16
Пт 28 июля 2017 г. 13:46
https: // www.aliexpress.com/item/10pcs-l ... A436D2542D

Несмотря на то, что у меня есть несколько п.н. с все еще растерянными заголовками, я <больше никогда> искушаемый ;) Слишком поздно уступил
Стивен

Стивестронг
Пт 28 июля 2017 г. 13:50
Сначала я бы написал простую тестовую программу, чтобы частично переключить каждый вывод и контролировать выход.
Раньше я писал счетчик, который выводит результат на соответствующие штифты, чтобы быть протестированными, чтобы вы могли дифференцировать штифты по частоте переключения.
Этот тест наверняка обнаружит любой короткий.

AG123
Пт 28 июля 2017 г. 14:30
Это мой "логический анализатор" вау, на этот раз у тебя есть * настоящий * логический анализатор :ржу не могу: