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

Использую SD и microSD в режиме SPI . Наблюдаю ошибки обмена, примерно раз в сутки непрерывной работы, нерегулярно. После того как посадил SD карту на USART в синхронном режиме , всё стало хуже, ошибки пошли раз в час. Ошибки как чтения данных из карты в МК, так и записи в карту. И SPI , и синхронный USART иногда просто принимают не то, а иногда выставляют биты ошибок, например Overrun . Каждый раз всё по-разному, никаких закономерностей нет. Мои собственные мысли о причине проблемы :

1) Возможно, обмен вообще не может идти без ошибок слишком долго ? Нужно проверять CRC и обрабатывать ошибки ?
2) Недостаточно качественная разводка ?
3) Какая-то проблема с принципиальной схемой ?
4) ВЧ дребезг на линиях ? Для борьбы с ним поставил резисторы 100 Ом. Одна карта стала работать лучше, другая хуже. Это указывает на то что проблема где-то рядом с размышлениями о дребезге.

Заранее спасибо за дельные советы !
adnega
Я DAT1 и DAT2 через 10кОм подключаю к VDD карты.
Иногда помогает ОЧЕНЬ долго ждать токена начала данных при чтении.
Xenia
Цитата(MiklPolikov @ Aug 26 2014, 16:07) *
Наблюдаю ошибки обмена, примерно раз в сутки непрерывной работы, нерегулярно.


Вы частоту клока понизьте sm.gif, будет работать медленнее, но зато надежнее.
А если там не музыка, а что-то важное, тот тут придется вместе с CRC блоки писать. Тем более, когда железо доверия к себе не вызывает.
DAT1 и DAT2 действительно к VDD надо подключать, только у меня 100кОМ на каждой стоит, а не 10кОм (плата не моя - фабричная). А еще там и MISO точно так же подтянута к плюсу (но тут уже я не уверена, что это правильно).
adnega
Цитата(Xenia @ Aug 26 2014, 16:41) *
Вы частоту клока понизьте sm.gif, будет работать медленнее, но зато надежнее.
А если там не музыка, а что-то важное, тот тут придется вместе с CRC блоки писать. Тем более, когда железо доверия к себе не вызывает.
DAT1 и DAT2 действительно к VDD надо подключать, только у меня 100кОМ на каждой стоит, а не 10кОм (плата не моя - фабричная). А еще там и MISO точно так же подтянута к плюсу (но тут уже я не уверена, что это правильно).

Частота при инициализации - 400кГц, после - не менее 25МГц.
Резисторы - обычная подтяжка. 10 кОм из-за унификации склада.
Линию CMD нужно подтягивать, т.к. иногда она может быть типа OD (open drain) при инициализации (но не факт, что имеет отношение к SPI).
MiklPolikov
Подтянул DAT1 DAT2 к +3V0 резисторами 10К . Ошибки всё равно идут. как будто ничего не изменилось. Вообще, на ситуацию больше всего повлияли резисторы 100 Ом на всех линиях данных. Но дальше эту мысль развить не могу.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.