Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.08.2012, 23:46
|
|
Прописка
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
|
Re: Mega32+SD
WRITE_BL_LEN определяет максимально возможный размер блока для данной карты. Но это действует только в режиме SD Bus. А при работе по SPI запись всегда будет по 512 дайт.
А вообще, команда CMD16 не изменяет бит WRITE_BL_LEN, находящийся в регистре CSD. Этот бит - read-only
Так же, команда CMD16 действует только для карт SDSC.
Выдаваться будет не ошибка записи, а ошибка записи параметра BLOCK_LEN_ERROR - 29 бит в регистре статуса, если задаваетый командой CMD16 блок превысит 512.
Последний раз редактировалось Алекс Василич; 28.08.2012 в 00:00.
|
|
|
Сказали "Спасибо" Алекс Василич
|
|
|
28.08.2012, 17:21
|
|
Прописка
Регистрация: 16.02.2008
Адрес: Россия, Омск
Сообщений: 202
Сказал спасибо: 115
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Mega32+SD
Forusfut
Попробовал вот этот проект, очень подробно все описано, есть готовый проект, в протеусе все работает, проверил.
|
|
|
|
28.08.2012, 18:52
|
|
Частый гость
Регистрация: 25.08.2012
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Mega32+SD
У меня почему-то не открывает этот сайт. Дали мне ссылку http://www.rlocman.ru/shem/schematics.html?di=65357 там проект версии 2.3. Первое, что началось это корявое отображение символов в окне терминала, должно быть так:
*********************************************
Dharmani's microSD Card Testing..
*********************************************
на деле всякая фигня. Бывает проходит нормально, но потом пишит FAT32 not found.
На 8 МГц погрешность 0,2% только при битрейте 250000 0%, вот на них отображает корректно. Ещё там есть функция подачи команды в формате цифры от 0 до 9, бывает принимает, но чаще нет, а если и принимает, то не выполняет функции типа записи, чтения. Также 1Гкарту определяет как версии 2, хотя вроде должно быть версии 1 по уму.
|
|
|
|
28.08.2012, 20:01
|
|
Прописка
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
|
Re: Mega32+SD
Посмотреть версию протокола можно, прочитав регистр CSD - два старших бита (принимаются по SPI самыми первыми). Если оба бита = 0, версия 1. Если биты 0 и 1, значит, версия 2. Можно так же прочитать SCR-регистр, там тоже старшие 4 байта укажут на версию протокола.
Через SPI не гарантируется стабильная работа на высоких скоростях, это так и есть.
Если ошибок много, можно включить принудительно контроль четности CRC командой CMD59 и при ошибке CRC повторно запрашивать данные. Но придется вычислять CRC, а это ресурсоемко.
|
|
|
|
28.08.2012, 20:50
|
|
Частый гость
Регистрация: 25.08.2012
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Mega32+SD
Ошибки не в пересылке SPI, там как раз стабильно глухо. Ошибки в пересылке по UART. При битрейте 19200, как у автора и при частоте МК 8МГц, вероятность ошибки 0,2% но и этого как ни странно хватает. Только при битрейте 250000 вероятность ошибки 0%, хоть терминал и не поддерживает такой скорости, но приём вроде как нормальный, а вот передачи и без того с часу на час совсем нет. Что-то у меня ничего не пашет из примеров, может переходник USB‹›COM так влияет.
|
|
|
|
02.09.2012, 09:28
|
|
Прописка
Регистрация: 16.02.2008
Адрес: Россия, Омск
Сообщений: 202
Сказал спасибо: 115
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Mega32+SD
Сообщение от Forusfut
|
Ошибки в пересылке по UART
|
Отрабатывал пример из кодевизион, так же кракозябры в окне терминала(в протеусе), убавил скорость до 9600, все стало стабильно, тут для оптимального обмена нужно правильно выбрать частоту генерации проца.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:35.
|
|