Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема со слотом SD карты.
Форум разработчиков электроники ELECTRONIX.ru > Поставщики компонентов для электроники > Компоненты
Иванов Сергей
Всем привет.
Подскажите, может у кого такое было. В общем, есть устройство которое принимает данные с SD карты.
Карта вставляется в слот.

И вот какая беда.

В приложении две фотографии, 1 и 2.
1 - нажал пальцем
2 - в совободном состоянии.
Если сравнить фотки, то видно, немного, ход слота. Т.е. при нажатии на слот имеется небольшой ход, порядка 0.2 мм.

Если прижать слот чутка пальцем, то флешка отлично читается и проблемы никакой нет. В свободном состоянии, вообще ничего не происходит. Как была ошибка, так и есть.
Я подумал, что будет, если уголок зафиксирую капелькой термоклея. Зафиксировал...ничего не поменялось. В смысле не работало.
Клей оторвал и опять придал пальцем - работает.
Решил прижать не пальцем, а диэлектриком (пластиковым стержнем) - тоже не работает.
Потом прижал отвёрткой, держать за ручку (пластиковую) - тоже не работает.
Прижал отвёрткой, ухватившись за жало отвёртки - работает.

Во время проведения экспериментов, касался рукой только панель, на которой крепятся дисплей, слот sd и клавиатура. Корпуса принтера не касался.

Хочу попробовать припаять проводок от слота карты и примотать его к панели

Вот такие вот наблюдения. Из-за чего такое может происходить ? Как можно решить проблему ?


Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

Всем спасибо за советы.
aaarrr
Цитата(Иванов Сергей @ Feb 14 2016, 16:38) *
Из-за чего такое может происходить ? Как можно решить проблему ?

Например, из-за нарушения целостности сигналов. Попробуйте взяться рукой за шлейф, а не разъем - эффект будет?
Иванов Сергей
Цитата(aaarrr @ Feb 14 2016, 18:37) *
Например, из-за нарушения целостности сигналов. Попробуйте взяться рукой за шлейф, а не разъем - эффект будет?



попробовал. эффекта никакого
aaarrr
Хорошо, а какой длины шлейф, и как распределены по нему сигналы?
Иванов Сергей
Цитата(aaarrr @ Feb 14 2016, 19:18) *
Хорошо, а какой длины шлейф, и как распределены по нему сигналы?



Длина шлейфа 180 мм. Сигналы идут в таком же порядке, как и пины со слота.
Пробовали запускать на частоте 1 МГц и 24 МГц, разницы никакой.
aaarrr
Цитата(Иванов Сергей @ Feb 14 2016, 19:47) *
Длина шлейфа 180 мм. Сигналы идут в таком же порядке, как и пины со слота.

Попробуйте укоротить в качестве эксперимента.
Осциллографом тактовый сигнал непосредственно на разъеме не смотрели, в каком виде он доходит до карты?
Иванов Сергей
Цитата(aaarrr @ Feb 14 2016, 21:36) *
Попробуйте укоротить в качестве эксперимента.
Осциллографом тактовый сигнал непосредственно на разъеме не смотрели, в каком виде он доходит до карты?


Пробовали укорачивать, ничего вообще не поменялось.


Сообщение от разработчика:

Цитата
Если включить как есть (без надавливания), обмен с картой просто виснет (DMA чтение даже не стартует, и бесконечный цикл ожидания завершения обмена).
При заземлении слота картина меняется - обмен данными проходит, но считанные с карты данные неверные.
Причем это не зависит от частоты (от 24 до 1 МГц).
При этом обмен командами идёт без проблем.



Все сигналы, включая клок, до слота SD доходят без искажений,
завалов фронтов и уровней нет, нормальные прямоугольные сигналы.
Это если "землю" осциллографа прицепить прямо на слоте.
Если "землю" прицепить на самой плате, и мерять сигналы на слоте,
искажения, безусловно, есть, что и должно быть на длинных проводах.
rx3apf
Цитата(Иванов Сергей @ Feb 14 2016, 20:41) *
Пробовали укорачивать, ничего вообще не поменялось.

Укорачивали до какой длины ? И приняты ли хоть какие-то меры к согласованию (особенно это касается тактировки).
Очевидно, что проблема вовсе не в механическом контакте. Вероятнее всего - результат "звона".
Иванов Сергей
Цитата(rx3apf @ Feb 14 2016, 23:33) *
Укорачивали до какой длины ? И приняты ли хоть какие-то меры к согласованию (особенно это касается тактировки).
Очевидно, что проблема вовсе не в механическом контакте. Вероятнее всего - результат "звона".



До 30 мм.
Про меры уточню.
А что такое "звон" ?
rx3apf
Ну, 30 mm должно бы работать.. "Звон" - это переотражения в несогласованной линии передачи. Самое простое - со стороны передатчика поставить резисторы 60..100 Ohm (зависит от кабеля и выходного сопротивления буферов, но не особенно критично). Между выходом и кабелем.
Herz
Тема переехала.
Иванов Сергей
Цитата(rx3apf @ Feb 14 2016, 23:14) *
Ну, 30 mm должно бы работать.. .


Тоже так думали, а оно не работает. Вот и голову ломаем.
adnega
Цитата(Иванов Сергей @ Feb 15 2016, 08:06) *
Тоже так думали, а оно не работает. Вот и голову ломаем.

По какому интерфейсу подключена карта (SPI, SDIO)?
В статусном регистре должна быть указана ошибка, из-за которой нормальная работа не возможна.
Смотрели?
Иванов Сергей
Цитата(adnega @ Feb 15 2016, 09:30) *
По какому интерфейсу подключена карта (SPI, SDIO)?
В статусном регистре должна быть указана ошибка, из-за которой нормальная работа не возможна.
Смотрели?


Цитата
Интерфейс SDIO 4-битный.
Последняя команда, которая проходит - CMD17 (Read single block),
на неё приходит ответ 0x900. После чего мы заряжаем DMA, стартуем передачу в
контроллере SDIO, и ждём окончания транзакции.
Но не можем дождаться, так как в статустном регистре
мы видим ошибку STBITERR (Start bit not detected on all data signals in wide bus mode)
Процессор STM32F407

adnega
Цитата
Интерфейс SDIO 4-битный.
Последняя команда, которая проходит - CMD17 (Read single block),
на неё приходит ответ 0x900. После чего мы заряжаем DMA, стартуем передачу в
контроллере SDIO, и ждём окончания транзакции.
Но не можем дождаться, так как в статустном регистре
мы видим ошибку STBITERR (Start bit not detected on all data signals in wide bus mode)
Процессор STM32F407

Ага. А схему показать можете? Подтяжка на линии данных присутствует?
Питание на карте в этот момент не проседает? Или уровень земли не подлетает?
Иванов Сергей
Проблема решилась переходом с 4 битной шины на 1 битную.
Всем спасибо за внимание и помощь !
adnega
Цитата(Иванов Сергей @ Feb 16 2016, 15:41) *
Проблема решилась переходом с 4 битной шины на 1 битную.
Всем спасибо за внимание и помощь !

Но это сложно назвать решением.
Я думаю, на плате со слотом не хватает подтягивающих резисторов и керамики по питанию.
Кста, и ключик по питанию тоже не забываем.
Иванов Сергей
Цитата
Подтягивающие резисторы 10 кОм есть на всех линиях, кроме SDIO_CK.
Конденсатор керамический 0,1 мкФ запаян прямо на ного разъёма SD.
aaarrr
Сдается мне, тут все же проблема в контактах. Прозвонить со вставленной картой не пробовали?
Иванов Сергей
Цитата(aaarrr @ Feb 16 2016, 17:00) *
Сдается мне, тут все же проблема в контактах. Прозвонить со вставленной картой не пробовали?



Цитата
Линии прозванивались до контактов SD-карты.
После подачи команды чтения блока (CMD17) на всех линиях D0-D3 вижу
прямоугольный сигнал, очевидно, его формирует карта, притягивая линии к GND.
Но контроллер SDIO упорно маячит "Start bit not deyecyed on all lines in wide bus mode"
Пробовал сначала подать CMD17, потом включить DMA+SDIO data path, и наоборот.
bureau
Аналогичная проблема вывалилась. С железом все в порядке. Данная проблема возникает при повторной инициализации (вытянули - вставили SD карточку в разьем). При первичной инициализации (после MCU reset ) -- все считывается верно
*Иванов Сергей* была ли найдена причина появления ошибки STBITERR ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.