Цитата(Влад Р. @ Oct 27 2015, 14:51)

Всем доброго дня!
Пытаюсь соединить STM32F407 и SD-карту для работы с файловой системой посредством интерфейса SDIO.
Подключение стандартное. Detect пин на PH13. На всех пинах, кроме PC12 (SDIO_CK) включена встроенная подтяжка к питанию.
Работу с файловой системой должна взять на себя FatFs. С SDIO работаю вручную в 4-битном режиме (до инициализации в 1-битном).
Пробую записать файл: файловую систему библиотека определяет, файл создается, но информация в него не записывается.
Если сделать точку останова в функции записи блока (перед возвратом из функции), то информация все-таки записывается, но не более 1023 байт.
Размер блока - 512 байт. Если попытаться таким способом записать 1024 байта, то программа виснет на функции f_closе() и файл остается пустым.
Переделанный файл diskio.c в аттаче.
Я посмотрел ваш код в аттаче. могу сказать следующее-вы просто запихнули данные в карту,а ведь надо карте еще и запрограммировать данные,поэтому нужно еще читать статус карты(cmd13 если мне память не изменяет)...более того,согласно описанию спецификации на карту,перед всеми операциями необходимо дождаться,пока карта не встанет в режим "transition state"
еще нюанс-проверьте частоту тактирования,можно даже начать работать на частоте инициализации карты,потом с каждой новой компиляцией увеличивать ее до максимально возможного
и еще нюанс-используйте DMA,причем не советую,а рекомендую это сделать. У STM несколько своеобразная периферия(касаемо не только SDIO),и когда я отлаживал пошагово свой проект,у меня постоянно было то rxoverrun,то txunderrun error.Аж до психов порой доходило..Сел,разобрался,пристегнул DMA,проблема исчезла...здесь у меня в аттаче немного проекта (keil 4.73)и спецификация на карту и программулина на винду,которя посекторно оперирует с дисками и покажет вам,что вы там туда понаписали
V6.ZIP ( 2.67 мегабайт )
Кол-во скачиваний: 171 если есть вопросы то email vch47062@mail.ru