Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

STM32+SDIO+SDHC16Gb

Непрочитано 27.11.2015, 01:11  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Всё правильно, там и это есть, просто не так выразился. Пауза стоит именно перед ожиданием выхода из программирования, а если её убрать, то вылетает с ошибкой. Если её туда воткнули - значит что-то не так просто. В любом случае если там много времени тратится, то всё же лучше попробовать решить проблему скорости существенным увеличением длины мультиблоков.
Реклама:
black27512 вне форума  
Непрочитано 27.11.2015, 12:45  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

В той выжимке из SPL, что предложил Easyrider действительно есть задержка в виде цикла, но вот я смотрю в самой SPL которая есть у меня и там нет такой задержки. После окончания передачи всех данных, сразу проверяется статус и ожидание выхода из состояния программирования.
realid вне форума  
Непрочитано 27.11.2015, 17:26  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сама SPL у меня вообще не заработала толком, даже на этапе инициализации когда передается первая команда CMD55 после СMD8 (она без ошибок проходит) почему-то выпадает с ошибкой SD_ILLEGAL_CMD, если этот кусок пройти в дебаге по шагам, то нормально, а если в реалтайме то вот ошибка. Так что изначально SPL нерабочая в принципе. Она вероятно работает на каком-то малом проценте флешек. А уже в посдедних выжиках вот пауз понаставили - видимо без таких костылей не работает толком.
black27512 вне форума  
Непрочитано 27.11.2015, 19:26  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сообщение от black27512 Посмотреть сообщение
Так что изначально SPL нерабочая в принципе. Она вероятно работает на каком-то малом проценте флешек. А уже в посдедних выжиках вот пауз понаставили - видимо без таких костылей не работает толком.
Я не знаю что изначально было, но в моей версии SPL, все работает и с разными картами.
realid вне форума  
Непрочитано 04.12.2015, 03:06  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Наконец-то разобрался. Уже стал пробовать разделять функцию записи мультиблока на части с целью продолжения передачи, но и там ждал облом, т.к. модуль SDIO в начале передачи не проверяет BUSY карты, ну и в итоге ничего не вышло.
За то понял причину всех этих глюков и вставки этих пауз в конец функции. Как обычно всё банально, в даташите на МК есть такой рисунок:

И вот получается так, что не всегда между опросами карты проходит этих самых минимум 8 тактов...
В итоге происходит черти что, карта подвисает, глючит, не воспринимает команды (не возвращает код команды). И происходит это именно если частота ядра МК высокая, а частота SDIO нет, либо если не используется RTOS, т.к. с ней возможно процесс притормозится и глюк не проявится.
Проблема решилась просто вставкой мизерной задержки между проверками состояния карты (CMD13), что бы гарантированно эти 8 тактов прошли, ну и эту огромную задержку убрал. Теперь скорость записи возросла значительно.
Вот почему эти грабли проявляются не у всех и не на всех картах...
Миниатюры:
Нажмите на изображение для увеличения
Название: SDIO_CMD.GIF
Просмотров: 286
Размер:	15.8 Кб
ID:	85443  
black27512 вне форума  
Сказали "Спасибо" black27512
MisterDi (04.12.2015)
Непрочитано 07.12.2015, 12:50  
Vitaliki
Частый гость
 
Регистрация: 23.10.2011
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vitaliki на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Добрый день!
Использую библиотеку FatFs ChaN.
Вопрос следующий: как проверить готовность SD к записи?
При постоянной записи на некоторых картах возникает проблема записи некорректных данных. Однако если принудительно ставить задержки между циклами записи в 250 мс (встречал на форумах, что по новой спецификации и все 500 мс), тогда все нормально. Но это накладно - ждать так долго, если контроллер карты будет готов раньше. Кроме того большинство SD не подходят под спецификацию и имеют гораздо большие задержки при больших размерах карты - около 1 с.
Либо это контроллер карты возвращает некорректные данные о готовности, так как операции записи происходят?
Спасибо!
Vitaliki вне форума  
Непрочитано 07.12.2015, 13:45  
black27512
Временная регистрация
 
Регистрация: 13.07.2008
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
black27512 на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Проблем может быть сколько угодно, даже в просадке питания на SD карте, потому как во время записи она потребляет приличный ток. Посмотрите в этом направлении. Емкости непосредственно на питании карты, длину проводников.
Ну а так если функции ошибок не возвращают, то тут уже надо искать закономерности, пробовать другие версии библиотеки и т.д. Вообще реализация работы с картами по SDIO стабильностью не блещет...
Если конкретно, то покажите именно ту библиотеку с которой не работает, потому как под FatFS ChAN можно много чего понимать. Их реализаций, допилов и перепилов много.
black27512 вне форума  
Непрочитано 07.12.2015, 14:03  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сообщение от Vitaliki Посмотреть сообщение
Использую библиотеку FatFs ChaN.
Сообщение от black27512 Посмотреть сообщение
потому как под FatFS ChAN можно много чего понимать
А что тут понимать? FatFs ChaN это библа файловой системы, к работе с SD она не имеет непосредственного отношения, только косвенное.
realid вне форума  
Непрочитано 07.12.2015, 14:18  
Vitaliki
Частый гость
 
Регистрация: 23.10.2011
Сообщений: 15
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Vitaliki на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Спасибо за ответ!
За основу брал пример: http://mikrocontroller.bplaced.net/w...s/?page_id=621
Однако сейчас убрал дополнительные функции-обертки и работаю напрямую с библиотекой Chan'a.
Библиотека: FatFs module R0.09b (C)ChaN, 2013
Библиотека работает нормально, если писать с задержками, а не постоянно или через промежутки времени (раз в секунду). Если знаете, подскажите: как проверить готовность.
Пробовал новую библиотеку (FatFs R0.11a). Но здесь появляется ошибка при открытии файла/директории (FR_INT_ERR либо FR_NO_FILESYSTEM). Поэтому работаю с прежней.
Провода достаточно длинные (около 5 см), но меньше нельзя, такая конструкция. Думаю, что в связи с этим и 4-битный режим не идёт. А что можно поправить по схемотехнике?
Спасибо!
Vitaliki вне форума  
Непрочитано 07.12.2015, 14:22  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

Сообщение от Vitaliki Посмотреть сообщение
Если знаете, подскажите: как проверить готовность.
Читать тему сначала не пробовали?
realid вне форума  
 
Опции темы

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

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, время: 09:57.


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