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

 
 
> Может ли конфликтовать 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
Ответов
aaarrr
сообщение Aug 5 2009, 20:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Как подключена SD - напрямую к SPI? Осциллографом не пробовали найти изъяны в сигналах при вставленной "проблемной" карте?

В своих устройствах всегда буфер ставлю на SD, дабы избежать подобных сюрпризов.
Go to the top of the page
 
+Quote Post
Altemir
сообщение Aug 5 2009, 20:14
Сообщение #3


Местный
***

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



Цитата(aaarrr @ Aug 6 2009, 00:00) *
Какая подключена SD - напрямую к SPI?

Не понял вопроса. Kingston. Напрямую, без буферов.

Цитата
Осциллографом не пробовали найти изъяны в сигналах при вставленной "проблемной" карте?

Пока нет, времени было мало. Посмотрю завтра. Но найти бьющийся бит в потоке из 80КБ - непростая задача. Если только там совсем чего аномального не творится.

Цитата
В своих устройствах всегда буфер ставлю на SD, дабы избежать подобных сюрпризов.

Честно говоря, доверился напарнику, который "поднимал" свою часть проекта и прогал для microSD, а он никаких проблем не заметил. Вылезло уже на заключительном этапе. Впредь буду умнее. А вы ключи на питание SD вешаете для аппаратного сброса флэхи?

Цитата(AHTOXA)
А если карточку проинициализировать после всовывания, эффект остаётся?

Тоже пока не пробовал в связи со спешкой поиска проблемы, но думал об этом.

Цитата
Ну и как вариант ленточек для бубна - после каждого деселекта датафлешки производить сброс SPI (10 раз отправить 0xFF)

Делал почти так, но только после инициализации периферии. Посмотрю, может поможет. Имеется ввиду release SD?

Сообщение отредактировал Altemir - Aug 5 2009, 20:21
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 5 2009, 20:25
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Altemir @ Aug 6 2009, 00:14) *
Не понял вопроса. Kingston. Напрямую, без буферов.

Опечатался, да. Об этом и спрашивал.

Цитата(Altemir @ Aug 6 2009, 00:14) *
Пока нет, времени было мало. Посмотрю завтра. Но найти бьющийся бит в потоке из 80КБ - непростая задача. Если только там совсем чего аномального не творится.

Ну, об одном бите речи не идет, просто сравнить картинки - может, какой криминал и засветится.

Цитата(Altemir @ Aug 6 2009, 00:14) *
Честно говоря, доверился напарнику, который "поднимал" свою часть проекта и прогал для microSD, а он никаких проблем не заметил. Вылезло уже на заключительном этапе. Впредь буду умнее. А вы ключи на питание SD вешаете для аппаратного сброса флэхи?

У себя ставлю ключ на питание + LCX125 в качестве буфера. Ключ и выходные буферы управляются единым сигналом разрешения, входной буфер MISO - сигналом CS на карту. Pull-up'ы, естественно, подключены к питанию карты после ключа. Получается компактно и удобно.
Go to the top of the page
 
+Quote Post
etoja
сообщение Aug 6 2009, 05:38
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Между выводами питания и земли разъёма microSD установите керамический конденсатор 1uF и электролитический конденсатор 100uF.
Естественно, как можно ближе к microSD.

Рядом с атмеловской микросхемой тоже неплохо бы.

Как говорил классик - "всё у нас получится, Феликс Эдмундович".
Go to the top of the page
 
+Quote Post



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

 


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


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