Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

STM32+SDIO+SDHC16Gb

Непрочитано 07.12.2015, 14:57  
Vitaliki
Частый гость
 
Регистрация: 23.10.2011
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vitaliki на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сообщение от realid Посмотреть сообщение
Читать тему сначала не пробовали?
В прилагаемой библиотеке есть следующая функция:
/* SDTransferState: Data Transfer state.
* This value can be:
* - SD_TRANSFER_OK: No data transfer is acting
* - SD_TRANSFER_BUSY: Data transfer is acting
*/
SDTransferState SD_GetStatus(void)

Пробовал её применять, однако ошибки записи никуда не делись. Может, проверяю не так.
И правильно ли проверять готовность контроллера карты по окончанию передачи данных. Он ведь не только поток данных принимает, но и что-то с ним дальше делает. А это к передачи уже отношение не имеет.
Реклама:

Последний раз редактировалось Vitaliki; 07.12.2015 в 15:35. Причина: Добавлена цитата, для которой ответ.
Vitaliki вне форума  
Непрочитано 07.12.2015, 16:11  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сообщение от realid Посмотреть сообщение
А что тут понимать? FatFs ChaN это библа файловой системы, к работе с SD она не имеет непосредственного отношения, только косвенное.
Дык вот то и понимать через что эта библа контачит с флешкой. То что сама FatFs тут не виновата это понятно.
black27512 вне форума  
Непрочитано 07.12.2015, 16:29  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сообщение от Vitaliki Посмотреть сообщение
И правильно ли проверять готовность контроллера карты по окончанию передачи данных. Он ведь не только поток данных принимает, но и что-то с ним дальше делает. А это к передачи уже отношение не имеет.
Ничего это не даст, смотрите функцию MMC_disk_write, там проверка на завершение и так производится. И пока процесс не завершится функция продолжает ждать.
Попробуйте по железу увеличить толщину шин питания и керамику+электролит прямо на выводах питания слота SD. Ну и про резисторы подтягивающие к +3.3в 47кОм не забывайте (все сигналы кроме CLK).
black27512 вне форума  
Сказали "Спасибо" black27512
Vitaliki (08.12.2015)
Непрочитано 07.12.2015, 16:34  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сообщение от Vitaliki Посмотреть сообщение
И правильно ли проверять готовность контроллера карты по окончанию передачи данных. Он ведь не только поток данных принимает, но и что-то с ним дальше делает. А это к передачи уже отношение не имеет.
Если вы внимательно проследите выполнение функции SD_GetStatus, то все поймете. Все там проверяется, а SD_TRANSFER_OK и SD_TRANSFER_BUSY указывают карта готова принимать новые данные или нет, потому что если карта находится в состоянии программирования, то результат будет SD_TRANSFER_BUSY.
realid вне форума  
Непрочитано 09.12.2015, 15:05  
Hives
Гражданин KAZUS.RUN
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

realid
не совсем так, точнее совсем не так
карта может вернуть статус SD_TRANSFER_OK и не быть готовой к записи
а вот для готовности там есть еще один бит статуса - READY_FOR_DATA (в реплике R1)
который и надо мониторить (дополнительно к TRAN состоянию)

PS за подробностями - в описание протокола SD, пункт 4.3, Write Data

Последний раз редактировалось Hives; 09.12.2015 в 15:09.
Hives вне форума  
Непрочитано 09.12.2015, 20:46  
HardWareMan
Частый гость
 
Регистрация: 13.07.2006
Сообщений: 34
Сказал спасибо: 6
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
HardWareMan на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Отмечусь тоже.

В сети ходят много SD драйверов через SDIO, и судя по коду они основаны на каком-то одном общем предке. И у всех у них есть один и тот же косяк, заключающийся в адресации. Помимо него, есть другой косяк в мультиблочных командах, но они не критичны. Так вот, после исправления этого косяка согласно букварю на карты у меня взлетели SDXC, это которые больше 32ГБ. В данный момент, летает SDXC 64ГБ через DMA. До этого работали только SD и SDHC. Причем, заметно было именно в связке с FatFS. Так что делайте выводы сами.
HardWareMan вне форума  
Непрочитано 09.12.2015, 21:09  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Здорово, конечно, но было бы еще лучше поделиться результатом. А то все только якают и мнекают, а пользы не много выходит.
Easyrider83 вне форума  
Непрочитано 09.12.2015, 22:03  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию

Сообщение от Hives Посмотреть сообщение
realid
не совсем так, точнее совсем не так
карта может вернуть статус SD_TRANSFER_OK и не быть готовой к записи
а вот для готовности там есть еще один бит статуса - READY_FOR_DATA (в реплике R1)
который и надо мониторить (дополнительно к TRAN состоянию)

PS за подробностями - в описание протокола SD, пункт 4.3, Write Data
Вот это поворот. Я вот считал что, если карта вернулась в Transfer State это значит она готова принимать новые команды и данные.

Сообщение от HardWareMan Посмотреть сообщение
В сети ходят много SD драйверов через SDIO, и судя по коду они основаны на каком-то одном общем предке. И у всех у них есть один и тот же косяк, заключающийся в адресации.
Это что за косяк? Тот что, при записи/чтении одним картам(старым, v1 так называемым)нужен адрес абсолютный, а следующим в поколении(v2, HC и тп) уже номер блока(сектора)?

Сообщение от HardWareMan Посмотреть сообщение
Помимо него, есть другой косяк в мультиблочных командах, но они не критичны.
Какой?

Сообщение от HardWareMan Посмотреть сообщение
Так вот, после исправления этого косяка согласно букварю на карты у меня взлетели SDXC, это которые больше 32ГБ. В данный момент, летает SDXC 64ГБ через DMA. До этого работали только SD и SDHC. Причем, заметно было именно в связке с FatFS.
Что исправили и где?

Последний раз редактировалось realid; 09.12.2015 в 22:11.
realid вне форума  
Непрочитано 10.12.2015, 12:44  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Вот здесь относительно рабочий вариант https://github.com/nemuisan/STM32Primer2_GPS_Tracker
Только я выкидывал FatFS, мне нужна была чисто работа с блоками карты напрямую. Косяк с адресацией там исправлен (собственно косяк чисто в том, что адрес передается в uint32 и т.к. он передается не в блоках, а в байтах то для SDXC 32 бита не хватает для полной адресации, достаточно перейти на тип uint64 и всё норм будет). Ну и по инициализации там пара бит добавлено (информирование карты о том, что хост поддерживает SDXC).
Мультиблок в той либе поправлен и он там работает, но поправлен костылем в виде длинной паузы (об этом писал выше), ну и как это победить тоже описал выше.
Выложить готовое не могу, т.к. проект зашел в тупик (по причине тормознутости SD карт при записи каких-то областей и переполнению ОЗУ МК входящим потоком) и варианта "бери и пользуйся" не получилось. Буду прикручивать буфер из внешнего ОЗУ, а в таком случае мне SPI оказался ближе и бюджетнее.

Последний раз редактировалось black27512; 10.12.2015 в 12:46.
black27512 вне форума  
Непрочитано 10.12.2015, 12:56  
Vitaliki
Частый гость
 
Регистрация: 23.10.2011
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vitaliki на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сообщение от realid Посмотреть сообщение
Что исправили и где?
Вот натыкался на подробные пояснения: https://gist.github.com/voidlizard/2202952
Vitaliki вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучаем STM32 Cortex M3 EugVor ARM 6171 20.05.2025 20:16
Подключение DS18b20 к STM32 aftaev ARM 85 22.11.2016 10:58
Драйвер (не VCP) для встроенного USB STM32 vvv998 ARM 106 08.11.2014 21:36
sdio stm32 banzayy ARM 2 16.09.2013 18:05
Проблема с ST-LINK +KEIL + STM32 LionRJ Микроконтроллеры, АЦП, память и т.д 5 06.03.2012 17:21


Часовой пояс GMT +4, время: 19:27.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.