SD-card SPI mode, опыт использования

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

В чем проблема?

Сам режим SPI на большинстве карт работает отлично (ну или почти), проблема в монтаже и наводках
6
75%
50:50, конструктив плохой и SPI-mode не на всех картах работает
1
13%
Монтаж нормальный, просто 90% производителей карт и правда забивают на SPI-mode
1
13%
 
Всего голосов: 8

YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Добрый вечер всем.

Эта тема - вопрос к людям, которые, как и я, используют SD-карты с мелкими контроллерами в режиме SPI. Вопрос такой: по вашему опыту, насколько это стабильный и повторяемый метод?

Все дело в том, что в этой тематике я наткнулся на кучу граблей. Описанное в статье по ссылке не самое страшное, как выяснилось. Некоторые карточки (отличие только в производителе, объем одинаковый) вообще не инициализируются в режиме SPI, а у тех, что работают, в процессе работы периодически слетает адресация и т.п.

У меня есть подозрение, что эти приключения вызваны проблемами с контактами и наводками вследствие специфического монтажа карты (под спойлером фото, вместо тысячи слов).
СпойлерКачество фото не особо, но, надеюсь, смысл понятен. Если что, конденсатор по питанию карты на плате есть (с обратной стороны). Вместо честного держателя используется комплектный переходник - заказчик просил максимально удешевить конструкцию...
Изображение
Итак, вопрос: уйдут ли мои проблемы, если карточка будет втыкаться в честный держатель, или все дело в том, что производители и правда забивают на те части стандарта, которые относятся к SPI-режиму?
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Реклама
E71

Сообщение E71 »

Мне кажется, что дело в корректном воспроизведении стандарта SPI на стороне контроллера. Если проводки короткие как на фото, а не по пол метра, то при правильной отработке последовательности изменения сигналов всё будет корректно работать. Иначе производители давно разорились бы.
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Хм, теоретически возможно - драйвер самописный. Правда, писан он с тесной оглядкой на материал Elm Chan'а и стандарт.

С другой стороны, если бы и правда была ошибка в драйвере, то, по идее, карты вообще не должны были бы работать, никакие - последовательность команд регламентирована строго. А тут наблюдаются именно эпизодические глюки - работает-работает, а потом начинаются призвуки (проект связан с воспроизведением звука) и прочее.

Например, в лабораторных условиях я вообще не мог воспроизвести глюки на одном устройстве, работало идеально, а когда отдал "в поле", то глюки и вылезли.

Может быть, по питанию стоило поставить не только 0.1 мкФ, но и, скажем, 4.7 мкФ, особенно учитывая пиковое потребление карты и то, что питается устройство от батарей с достаточно высоким внутренним сопротивлением?..
Иначе производители давно разорились бы.
Так в 99% устройств карта работает в режиме SDIO. :) SPI - не основной.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Родился
Сообщения: 16
Зарегистрирован: Вт янв 11, 2011 10:39:53

Сообщение master19 »

использовал sd-карты, более 150шт, основная партия приличные, типа трансенда, оптом брали, позже добавлялись разного типа. fatfs, режим spi на pic24, подтяжки внутренние - давно это было уже лет 5 все работает. проблем не было. условия - подстанции.
Реклама
Эиком - электронные компоненты и радиодетали
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

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

Кстати да, Transcend и правда оказались достаточно безглючными. Лучше только Silicon Power.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Реклама
Родился
Сообщения: 16
Зарегистрирован: Вт янв 11, 2011 10:39:53

Сообщение master19 »

YS писал(а):master19, спасибо, это склоняет меня в сторону отказа от соплей и установки держателя.

Кстати да, Transcend и правда оказались достаточно безглючными. Лучше только Silicon Power.
держатель конечно нужно, и подтяжки лучше все-таки внешние :)
Реклама
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Вот насчет внешних подтяжек - ЕМНИП они нужны только в режиме SDIO. Зачем что-то куда-то подтягивать в режиме SPI? Там на линиях всегда четкий логический уровень, выходы-то типа push-pull.

Или со стороны карточки выходы - открытый коллектор? Тогда многое становится понятно... :shock:
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Родился
Сообщения: 16
Зарегистрирован: Вт янв 11, 2011 10:39:53

Сообщение master19 »

YS писал(а):Вот насчет внешних подтяжек - ЕМНИП они нужны только в режиме SDIO. Зачем что-то куда-то подтягивать в режиме SPI? Там на линиях всегда четкий логический уровень, выходы-то типа push-pull.

Или со стороны карточки выходы - открытый коллектор? Тогда многое становится понятно... :shock:
выходы не ОК, но подтяжки нужны обязательно, их отсутствие - место культового посещения граблей :) я тоже в том поле был, благо на макетке, еще пока игрался с картами :) в общем в обязательном порядке подтяжки на DAT1_RSV, DAT2, CD/DAT3_CS, из них первые два не задействованы в spi режиме, ну на на CS - это вообще положено.
еще желательно между выводами мк и сд-картой резисторы ома на 33-100 поставить, звона не будет, и защита от статики при подключении карты, но это уже для тяжелых условий. хотя я всегда ставлю резисторы между мк и цепями, торчащими наружу.
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

их отсутствие - место культового посещения граблей
О-о-о! Так вот оно чего! :beer: Нету у меня их, нету. Подтягивать к питанию?
благо на макетке, еще пока игрался с картами
Вот не поверите, на макетке все работало (и работает) как часы. :dont_know:
подтяжки на DAT1_RSV, DAT2, CD/DAT3_CS
Да, для режима SDIO я это видел, но чего-то не допер, что в режиме SPI железо-то физически остается то же, что и для SDIO. :)))
ну на на CS - это вообще положено
Я верю, что так будет лучше, но чисто для общего развития - зачем? Ведь контроллер жестко держит этот уровень своим двухтактным выходом.

master19, спасибо огромное, в следующей версии все учту! А на этой железке пока просто попытаюсь включить софтовую подтяжку.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Родился
Сообщения: 16
Зарегистрирован: Вт янв 11, 2011 10:39:53

Сообщение master19 »

YS писал(а):
ну на на CS - это вообще положено
Я верю, что так будет лучше, но чисто для общего развития - зачем? Ведь контроллер жестко держит этот уровень своим двухтактным выходом.
а пока контроллер еще не инициализировался и состояние на этих выводах определяется погодой на марсе, питание уже подано - как себя поведет контроллер sd-карты? поэтому подтяжка CS к питанию на всех ведомых SPI-девайсах строго обязательна. другие упомянутые выводы - они в spi-режиме не задействованы, соответственно болтаются в воздухе, что тоже не добавляет определенности контроллеру sd-карты. у меня проявлялось в том, что карта не каждая карта не всегда инициализировалась без этих подтяжек. сандисковый даташит тоже утверждает что подтяжки нужны везде кроме линии clock, все подтяжки к +питания.
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

Мда... Похоже в доки никто не заглядывает... все за собственное зрение переживают... не говоря уже об исходниках Чена...
"Я не даю готовых решений, я заставляю думать!"(С)
Родился
Сообщения: 16
Зарегистрирован: Вт янв 11, 2011 10:39:53

Сообщение master19 »

HHIMERA писал(а):Мда... Похоже в доки никто не заглядывает... все за собственное зрение переживают... не говоря уже об исходниках Чена...
ну почему все - большинство задающих вопросы на радокоте, так тут целевая аудитория такая - быстрые поделки для себя.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1262
Зарегистрирован: Пн дек 08, 2008 10:58:48
Откуда: Винница

Сообщение urry »

Ну имхо, ладно...
Возможно разрушение файловой системы на карточке при записи (при чтении - не проверял) в случае уменьшения напряжения питания ниже какого-то уровня.
Причем не со стороны контроллера - при этом напряжении он еще дышит - а со стороны карточки.
Контактная информация:
Ответить

Вернуться в «Периферия»