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

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

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

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

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

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


 
Опции темы
Непрочитано 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,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 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,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 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,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 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,529
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: STM32+SDIO+SDHC16Gb

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

Закладки
Опции темы

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

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


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