В устройствах на микроконтроллерах для хранения больших объемов данных используется внешняя память. Если требуется хранить единицы мегабайт, то подойдут микросхемы последовательной флэш памяти. Однако для больших объемов (десятки -сотни мегабайт) обычно применяются какие-нибудь карты памяти. В настоящий момент наибольшее распространение получили SD и microSD карты, о них я и хотел бы поговорить в серии материалов. В этой статье речь пойдет о подключении SD карт к микроконтроллеру, а в следующих мы будет разбираться как читать или записывать на них данные.
SD карты могут работать в двух режимах — SD и SPI. Назначение выводов карт и схема подключения зависит от используемого режима. У 8-и разрядных микроконтроллеров AVR нет аппаратной поддержки SD режима, поэтому карты с ними обычно используются в режиме SPI. В 32-х разрядных микроконтроллерах на ядре ARM, например AT91SAM3, интерфейс для работы с картами в SD режиме есть, поэтому там можно использовать любой режим работы.
Назначение контактов SD карты в SD режиме
Назначение контактов SD карты в SPI режиме
Назначение контактов microSD карты в SD режиме
Назначение контактов microSD карты в SPI режиме
Напряжение питания SD карт составляет 2.7 — 3.3 В. Если используемый микроконтроллер запитывается таким же напряжением, то SD можно подключить к микроконтроллеру напрямую. Расово верная схема, составленная путем изучения спецификаций на SD карты и схем различных отладочных плат, показана на рисунке ниже. По такой схеме подключены карты на отладочных платах фирм Olimex и Atmel.
На схеме обозначены именно выводы SD карты, а не разъема.
L1 — феррит или дроссель, рассчитанный на ток >100 мА. Некоторые его ставят, некоторые обходятся без него. А вот чем действительно не стоит пренебрегать, так это полярным конденсатором C2. Потому что при подключении карты происходит бросок тока, напряжение питания «просаживается» и может происходить сброс микроконтроллера.
По поводу подтягивающих резисторов есть некоторая неоднозначность. Поскольку SD карты выпускаются несколькими производителями, на них существует несколько спецификаций. В одних документах четко указана необходимость подтягивающих резисторов (даже для неиспользуемых линий — 8, 9), в других документах этих указаний нет (или я не нашел).
Упрощенный вариант схемы (без подтягивающих резисторов) показан на рисунке ниже. Эта схема проверена на практике и используется в платах фирмы Microelectronika. Также она используется во многих любительских проектах, которые можно найти в сети.
Здесь сигнальные линии SD карты удерживаются в высоком состоянии микроконтроллером, а неиспользуемые линии (8, 9) никуда не подключены. По идее они должны быть подтянуты внутри SD карты. Далее я буду отталкиваться от этой схемы.
Если микроконтроллер запитывается напряжением отличным от напряжения питания SD карты, например 5 В, то нужно согласовать логические уровни. На схеме ниже показан пример согласования уровней карты и микроконтроллера с помощью делителей напряжения. Принцип согласования уровней простой — нужно из 5-и вольт получить 3.0 — 3.2 В.
Линия MISO — DO не содержит делитель напряжения, так как данные по ней передаются от SD карты к микроконтроллеру, но для защиты от дурака можно добавить аналогичный делитель напряжения и туда, на функционировании схемы это не скажется.
Резистивный делитель напряжения — это самый простой вариант согласования уровней, однако при высоких скоростях обмена или длинных проводах он может не подойти. Емкость входов SD карты, а также паразитная емкость линий, вместе с резисторами делителя образует RC фильтры, которые «заваливают» фронты передаваемых сигналов, а у SD карт есть определенные требования к этим фронтам.
Если использовать для согласования уровней буферную микросхему, например CD4050 или 74AHC125, этих недостатков можно избежать. Ниже приведена схема, в которой согласование уровней выполняется с помощью микросхемы 4050. Это микросхема представляет собой 6 неинвертирующих буферов. Неиспользуемые буферы микросхемы «заглушены».
Подключение microSD карт аналогичное, только у них немного отличается нумерация контактов. Приведу только одну схему.
На схемах я рассматривал подключение SD карт к микроконтроллеру напрямую — без разъемов. На практике, конечно, без них не обойтись. Существует несколько типов разъемов и они друг от друга немного отличаются. Как правило, выводы разъемов повторяют выводы SD карты и также содержать несколько дополнительных — два вывода для обнаружения карты в разъеме и два вывода для определения блокировки записи. Электрически эти выводы с SD картой никак не связаны и их можно не подключать. Однако, если они нужны, их можно подключить как обычную тактовую кнопку — один вывод на землю, другой через резистор к плюсу питания. Или вместо внешнего резистора использовать подтягивающий резистор микроконтроллера.
Ну и для полноты картины приведу схему подключения SD карты в ее родном режиме. Он позволяет производить обмен данными на большей скорости, чем SPI режим. Однако аппаратный интерфейс для работы с картой в SD режиме есть не у всех микроконтроллеров . Например у Atmel`овских ARM микроконтроллеров SAM3/SAM4 он есть.
Шина данных DAT[0..3] может использоваться в 1 битном или 4-х битном режимах.
Продолжение следует…
Карта microSD10 июня 2018 — 0 комментариев
Номер контакта | Название контакта | В режиме SD | В режиме SPI |
1 | ДАТ2/Х | Разъем линии передачи данных 2 | Не используется |
2 | ДАТ3/КС | Разъем линии передачи данных 3 | Выбор чипа |
3 | CMD/DI | Линия управления/ответа | Ввод данных |
4 | ВДД/ВДД | Источник питания (+3,3 В) | Источник питания (+3,3 В) |
5 | КЛК/СКЛК | Часы | Серийные часы |
6 | ВСС/ВСС | Земля | Земля |
7 | ДАТ0/Д0 | Разъем линии передачи данных 0 | Выход данных |
8 | ДАТ1/Х | Разъем линии передачи данных 1 | Не используется |
Особенности и характеристики карты MicroSD
Где использовать SD-карту
SD-карты являются наиболее часто используемыми устройствами хранения в встроенных приложениях . Почти все микроконтроллеры имеют ограниченный объем флэш-памяти для программирования и ограниченный объем памяти EEPROM для хранения важных данных. Однако для проектов, включающих регистрацию данных, изображения или другую тяжелую графику, программисту может потребоваться сохранить огромный фрагмент данных в мегабайтах. В этом случае используется SD-карта.
Как использовать SD-карту
Термин «SD-карта» означает « Secure Digital ». Существует много типов SD-карт , начиная с RS-MMC больших размеров, используемых в камерах, и заканчивая карты micro и mini SD, которые обычно используются в мобильных телефонах, MP3-плеерах и т. д. Хотя между всеми этими картами есть несколько важных различий, основной принцип работы одинаков.
SD-карты могут работать в двух режимах, один из которых использует SD-режим команд, а другой — SPI-режим . Большинство цифровых камер и мобильных телефонов будут использовать режим SD для связи с SD-картой, однако это не представляет нашего интереса, потому что только режим SPI для связи между SD-картой и микроконтроллером, таким как Arduino (ATmel), PIC, AVR , и т.д.. Простая схема соединения для SPI с микроконтроллером , показанная ниже:
Для связи SPI требуется только четыре провода, и она широко поддерживается большинством микроконтроллеров. Однако SD-карта работает с напряжением 3,3 В, а все ее контакты говорят только с 3,3 В, микроконтроллер, с другой стороны, может работать с +5 В в этих случаях двунаправленный переключатель логического уровня (например, 74HC245), который может преобразовать Рекомендуется сигнал 5В до 3,3В. После того, как вы подключили карту, вам нужно будет ее инициализировать, а затем начать взаимодействовать с ней с помощью команд SPI, здесь невозможно охватить весь процесс, поэтому вы можете прочитать таблицу данных ниже, чтобы получить больше информации.
Приложения
Архитектура
Запоминающие устройства
Что касается распиновки MicroSD, карты памяти играют решающую роль в качестве устройств хранения данных в современном технологическом мире.
Количество хранимой людьми информации неуклонно растет с годами. Следовательно, карты Micro Secure Digital стали более популярными.
Благодаря небольшому размеру, объему памяти, небольшому весу и способности помещаться в смартфоны, ноутбуки и другие устройства карты MicroSD предпочтительнее.
В этой статье вы узнаете о различных типах карт Micro SD, их преимуществах и недостатках. Кроме того, вы также получите советы о том, как выбрать карту micro SD; Читайте дальше, чтобы узнать больше.
В таблице ниже представлена конфигурация контактов Micro Secure Digital.
Распиновка карты micro SD
Источник: Wikimedia Commons Существует три типа карт Micro SD, все они имеют почти одинаковый физический интерфейс, но разные объемы памяти, а именно: Карта MicroSDXC Как уже говорилось ранее, в настоящее время на рынке представлены различные типы карт памяти. Таким образом, чтобы выбрать подходящую карту Micro SD, необходимо учитывать факторы: Кроме того, всегда проверяйте, есть ли в вашем устройстве специальный слот для карты, поскольку не все устройства имеют слоты для карт. Слот для карты памяти и USB-слот0317 Прежде чем поместить карту Micro SD внутрь модуля и подключить ее к Arduino, ее сначала необходимо отформатировать. Как правило, в зависимости от библиотеки Arduino IDE, которую вы будете использовать, вам необходимо отформатировать карту MicroSD в файловую систему FAT32 или FAT16. Обратите внимание, что FAT 16 или FAT 32 будут лучше работать с картами, предназначенными для потребительских устройств, чем для промышленных устройств. Если ваша карта Micro SD новая, скорее всего, производители карт уже отформатировали ее в соответствии с системой FAT. Однако то, как производители карт отформатировали карту Micro SD, может привести к проблемам в вашем проекте. Кроме того, если вы используете старую карту, ее также придется отформатировать. Подводя итог, независимо от того, используете ли вы новую или старую карту Micro SD, всегда рекомендуется ее форматировать. Для эффективного форматирования производители карт рекомендуют использовать форматтер для SD-карт SD Associations, поскольку он устраняет многие проблемы, которые могут возникнуть из-за неправильного форматирования. Загрузите и установите программу форматирования, выберите нужный диск и нажмите «ФОРМАТ». Как отформатировать карту MicroSD с помощью SD Formatter. После того, как вы успешно подготовили карту MicroSD, вы можете подключить коммутационную плату. Сначала поместите модуль карты microSD внутрь макетной платы. Затем соедините контакт модуля VCC с Arduinos 5V и контакт GND с Arduinos GND. После этого у вас будут контакты, необходимые для связи по SPI. Поскольку картам MicroSD требуется существенная передача данных, они будут хорошо работать при подключении к аппаратным контактам SPI микроконтроллера. Причина в том, что аппаратные выводы SPI быстрее, а значит, и эффективнее. Обратите внимание, что различные платы Arduino имеют разные контакты SPI, требующие специальных подключений. Arduino Например, платы Uno и Nano Arduino имеют контакты SPI: цифровые 13 (SCK), 12 (MISO), 11 (MOSI). Кроме того, вам потребуется четвертый контакт для линии SS (Slave select), в основном контакт 10. Однако любой контакт будет работать нормально. Ниже приведена таблица, которой вы можете следовать для правильного подключения модуля карты Micro SD и контакта Arduino. В редких случаях, когда у вас есть Mega Arduino, вы будете использовать цифровые контакты 50 (MISO), 51 (MOSI), 52 (SCK) и, наконец, 53 (SS). В таблице ниже указаны различные цифровые контакты плат Arduino. Теперь, когда вы подключили модуль карты microSD к Arduino IDE, вы можете загрузить код. Вы можете найти программу в библиотеке Arduino IDE, перейдите к файлу, например, SD, а затем к информации о карте. Как только вы нажмете на информацию о карте, программа откроется в текущем окне. После этого вам нужно будет изменить число на выборе микросхемы на 10. Мы используем десять, предполагая, что вы используете Arduino Uno или Arduino nano. В противном случае вы можете изменить его на любой контакт, который будете использовать. Затем сопоставьте и загрузите код. Вы должны увидеть напечатанную информацию о модуле карты Micro SD, если вы все сделали правильно. Стоит отметить, что SD-карты имеют скорость чтения и записи по умолчанию 12,5 Мбит/с. Печатная информация о карте Micro SD После загрузки кода и ничего не появляется, это означает, что вы неправильно подключили проект. Поэтому повторите свои шаги, чтобы проверить наличие неисправных соединений. Если вам не удалось найти неисправное соединение, но используемая вами карта Micro SD оказалась неисправной, вы можете увидеть сообщение о сбое инициализации с парой советов по устранению неполадок. Сообщение об ошибке инициализации с советами по устранению неполадок. Если вы правильно выполнили разводку и отформатировали карту в FAT 32 или FAT16, то программа будет работать эффективно, распечатывая данные карты и присутствующие файлы. Если вы неправильно отформатировали карту или использовали заблокированную карту, ниже появится сообщение. Сообщение о правильном подключении, но неправильном форматировании После успешной инициализации карты Micro SD вы можете применить приведенный ниже код для записи и чтения данных из файлов карты SD. Код довольно прост для понимания; сначала он устанавливает канал последовательной передачи на 9600 бод после включения микроконтроллера. Инициализация карты происходит, когда вы вводите I или me на последовательном мониторе. Следовательно, код будет печатать независимо от того, была ли инициализация успешной. Конструкция схемы определяет эффективность проекта. Поэтому ниже приведены примеры схем, которым вы можете следовать, чтобы разработать схему Micro SD. Принципиальная схема, показывающая подключение 4-битного режима передачи от SDMMC Outskirts и SD-карты. Где; Стандартный Диск чувствителен к окружающей среде; он может быть поврежден электростатическими зарядами, полученными от наших тел и выпущенными, когда мы прикасаемся к нему. Следовательно, было бы лучше отфильтровать излучаемые и проводящие излучения с помощью фильтров электромагнитных помех и диодов TVS, чтобы соответствовать стандартам ЭМС и предотвратить их. Схема, показывающая SD-карту, используемую в режиме SPI Сигналы выбора чипа, MOSI, часы и MISO соответствуют спецификациям SDA на приведенной выше схеме. Кроме того, SD-карта работает в режиме SPI. Независимо от того, используете ли вы SD-карту в режиме SPI или в 4-битном режиме, дорожки быстро передают сигналы часов и данных. Распиновка MicroSD: Типы карт Micro SD
Распиновка MicroSD: преимущества и недостатки
Преимущества
Недостатки Как выбрать карты MicroSD?
Подготовка карты Micro Secure Digital.
Соединение модуля карты Micro SD с Arduino
Код Arduino
Пример 1
Распиновка MicroSD: пример 2