ИНТЕРФЕЙС Карты Памяти SD
КАРТЫ памяти SD, особенно те под 1GB — дешево, сравнительно легко, чтобы связывать и обеспечивать обширные суммы памяти для вделанного управления.
Это устройство позволяет Вам ‘говорить с sd картами через ваш последовательный порт. Связь — в ASCII так Вам просто нужно терминальная программа, чтобы иметь доступ к этому. (Примечание: показанные фото — rev-1 устройства с различными изменениями, документация — для rev-2).
Аппаратные средства
РОЗЕТКИ SD доступны из Электроники SparkFun. Розетка должна быть поверхностью установленной, так что она была установлена на стороне фольги единственного сторонного совета (mouseover образ выше, чтобы видеть). Связи близкие к 0.1 дюймовым центрам, так что формат был не трудн.
PIC16F819 Был Выбран для своих аппаратных средств поддержки для SPI. (КАРТЫ SD обычно будут работать через интерфейс SPI) Работая в 20Mhz, данные часов порта SPI в 5Mhz, и последовательная связь способная работать в 115200 бодах в программном обеспечении.
Быстрый взгляд на схематический показывает один путь связывать 5 вольт PIC на 3.3 карт вольта SD. Свинцовый СУРИК бросает 5 поставок вольта около 1.8 вольт, чтобы питать около 3.2 вольт на карту. Это — в пределах рабочего диапазона.
Сигналы из PIC проходят через 1k/2k напряжение делителя, чтобы питать сигналы на карту. Сигналы из питания карты SDI ввода — проблема поскольку PIC использует вводы schmit- триггера в режиме SPI, требующем 3.5 вольт для высокого уровня. Цепь обеспечивает 0.6 сдвигов вольта так выход карты на PIC колеблется от 0.6 до 3.8 вольт. Cheesy, Но это работает.
Программное обеспечение
Основная передача с программным обеспечением компонует порт SPI. После много халтуря вокруг, соответствующая установка кажется,: SMP=1, CLE=1, и CKP=1. Смотри программное обеспечение перечисляясь для полных установок SSPSTAT и регистры SSPCON в sspinit. Программа, которая записывается на карту также читает это, с, в SPI, прочитанное и запись является одновременными операциями.
Как только подключено к терминальной программе (115200 бод, 1 стоповый бит, никакая четность, никакое рукопожатие), следующие команды доступны:
команда | функция |
S |
Select Card |
D |
Deselect Card |
Zddd |
Send ddd bytes of clocks |
W xx xx xx xx xx ... |
Send series of (hex) bytes |
Cdd ddddd |
Send command dd containingaddress 512*ddddd |
Xddd xx |
Send ddd bytes of (hex) value xx |
Rddddd |
Read ddddd bytes from card |
Ctrl-C | Resend last command |
ddd = decimal value, xx = hex value
Команды могут быть объединены на линейную линию, например…
C17 2 R520
Прикажите 17 (прочитанный сектор) по адресу 1024 (начало сектора 2) сопровожденное чтением 520 байтов.
C0 0 R2 C1 0 R2 C1 0 R2
Плата Установки для SPI, была прочитана статус, init плата, контрольный статус, чек init, прочитанный статус.
Отметьте, что команда C генерирует эффективный ‘секторный адрес’ умножаясь к 512. Это также генерирует обязательные 95 (шестнадцатеричный) CRC, что только необходимо для Команды 0, чтобы помещать это в режиме SPI. После это, CRC не необходим для любого другого хвалиться.
Если Вы хотите выпустить приказывать специфические параметры потребностей кроме секторного адреса, Вам нужно использовать команду W с всеми в шестнадцатеричном.
В конечном счете, это устройство должно быть сделано в программиста/считыватель карты SD. Сейчас, путь должен изучать операцию различных карт изготовителей.
Комментариев пока нет ... Будьте первым, кто оставить свой ответ!