Пытаюсь запустить 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 - Jul 27 2016, 16:51
|