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

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

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

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

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

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


 
Опции темы
Непрочитано 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,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 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.RU
 
Регистрация: 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,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Здорово, конечно, но было бы еще лучше поделиться результатом. А то все только якают и мнекают, а пользы не много выходит.
Easyrider83 вне форума  
Непрочитано 09.12.2015, 22:03  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 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 6166 19.02.2024 18:22
Подключение 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, время: 13:29.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot