реклама на сайте
подробности

 
 
> Может ли конфликтовать microSD с AT45?, Если сидят на одной шине SPI
Altemir
сообщение Aug 5 2009, 17:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 2-05-06
Из: Россия, Поволжье
Пользователь №: 16 686



Доброго времени суток.

На одной шине SPI LPC2214 сидят microSD и AT45DB161D. Выбор, с кем работать процу идёт через CS.
Есть тестовый алгоритм:
1. После вкл. питания инициализируется проц и периферия, выставляется CS на microSD (не нужна в работе)
2. Начинается запись файла ~80КБ в AT45 командой "Buffer 1 to Main Memory Page Program with Built-in Erase" - 83H
3. По окончании записи считывается содержимое записанной страницы и проверяется с тем, что отдавали на запись. Команда чтения: "Continuous Array Read (Low Frequency)" - 03H

Замечено, что при установке microSD Kingston 2GB в ~10% страниц запись прошла неудачно (даже при повторной попытке записи в те же страницы требуемых данных): в считанных данных, например, байт 0x0A превратился в 0x1A, на странице из 512Байт повреждено 1-2 байта. Если microSD извлечь, то запись/проверка проходят успешно. Если установить флэшки Samsung, Transcend, Toshiba, то сбойных записей или нет вообще, или из 156 страниц не будет записана с первой попытки только одна. Почему так происходит? По стандарту после подачи питания SD должна находиться в состоянии Idle:
Цитата
After power up (including hot insertion, i.e. inserting a card when the bus is operating) the SD Card enters the idle state


Если во время записи вставлять/вынимать флэхи Samsung, Transcend, Toshiba, то это не вызывает сбоев. Если Kingston, то валятся страницы с ошибками. В чём может быть дело?

Код взаимодействия с AT45 полностью рабочий, неоднократно использовался в других проектах. Частота клока ~7.37МГц. Неиспользуемые выводы microSD DAT1 и DAT2 подтянуты к +3,3В через 51К. Все остальные сигнальные тоже. Питание чистое.
Да, если ранее записанный в AT45 файл попытаться считать при вставленной Kingston, то файл считывается корректно, CRC на страницах правильное.

Сообщение отредактировал Altemir - Aug 5 2009, 17:59
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ivan Kuznetzov
сообщение Aug 11 2009, 12:08
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



у меня была подобная проблема, на общей шине сейчас висят VS1053, AT45DB041, SD-карта
К примеру плеер воспроизводит MP3 запись с ATA HDD диска, при вталкивании карты начиналось "бульканье звука"
поскольку юзаю FatFs, проблему решил так:
1) В прерывании настраиваю опрос датчика всунутой карты (такие ножки сбоку панельки)
2) Если карта вставлена, то вызываю процедуру инициализации карты disk_initialize(0), по удачному исходу процедуры, выставляю флаг.
3) Если ножки замкнуты, а карта не инициализируется, то через каждые 2 секунды процедура disk_initialize(0) повторяется 5 раз.

P.S.
Кстати, программирование датафлеши с карты у меня всегда проходит нормально, сверку содержимого не делаю...

Сообщение отредактировал Ivan Kuznetzov - Aug 11 2009, 12:09


--------------------
Разработчик
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016