Перейти к содержанию
    

SDIO CRC FAIL stm32l476

Пытаюсь запустить sdio на stm32l476 камне, с халовской библиотекой. Инициализация работает, чтение работает, запись нет. При записи в STA регистре устанавливается флаг DCRCFAIL. Тот же код прекрасно работает на stm32l151. Железо проверил 10раз - подтяжки 47к, питание 3.3в, все линии прозваниваются от карты до контроллера, тактирование правильное.

 

UPD: Починено. Проблема в корявых дефайнах хала

It's know issue in STM32L4 during writing on SD card due to wrong definition for SDMMC registers value:

#define SDMMC_DCTRL_DBLOCKSIZE_2 (0x3U << SDMMC_DCTRL_DBLOCKSIZE_Pos) /*!< 0x00000040 */

#define SDMMC_DCTRL_DBLOCKSIZE_3 (0x4U << SDMMC_DCTRL_DBLOCKSIZE_Pos) /*!< 0x00000080 */

 

These lines should be defined as follow:

#define SDMMC_DCTRL_DBLOCKSIZE_2 (0x4U << SDMMC_DCTRL_DBLOCKSIZE_Pos) /*!< 0x00000040 */

#define SDMMC_DCTRL_DBLOCKSIZE_3 (0x8U << SDMMC_DCTRL_DBLOCKSIZE_Pos) /*!< 0x00000080 */

Изменено пользователем Darti

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...