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

Распиновка SD и microSD карт

SD карты могут работать в двух режимах - SD и SPI . Назначение выводов карт и схема подключения зависит от используемого режима. У 8-и разрядных микроконтроллеров AVR нет аппаратной поддержки SD режима, поэтому карты с ними обычно используются в режиме SPI. В 32-х разрядных микроконтроллерах на ядре ARM, например AT91SAM3, интерфейс для работы с картами в SD режиме есть, поэтому там можно использовать любой режим работы.

Назначение контактов SD карты в SD режиме


Назначение контактов SD карты в SPI режиме

Назначение контактов microSD карты в SD режиме



Назначение контактов microSD карты в SPI режиме



Подключение 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 карты к микроконтроллеру, но для защиты от дурака можно добавить аналогичный делитель напряжения и туда, на функционировании схемы это не скажется.

Если использовать для согласования уровней буферную микросхему, например CD4050 или 74AHC125, этих недостатков можно избежать. Ниже приведена схема, в которой согласование уровней выполняется с помощью микросхемы 4050. Это микросхема представляет собой 6 неинвертирующих буферов. Неиспользуемые буферы микросхемы "заглушены".

Подключение microSD карт аналогичное, только у них немного отличается нумерация контактов. Приведу только одну схему.



На схемах я рассматривал подключение SD карт к микроконтроллеру напрямую - без разъемов. На практике, конечно, без них не обойтись. Существует несколько типов разъемов и они друг от друга немного отличаются. Как правило, выводы разъемов повторяют выводы SD карты и также содержать несколько дополнительных - два вывода для обнаружения карты в разъеме и два вывода для определения блокировки записи. Электрически эти выводы с SD картой никак не связаны и их можно не подключать. Однако, если они нужны, их можно подключить как обычную тактовую кнопку - один вывод на землю, другой через резистор к плюсу питания. Или вместо внешнего резистора использовать подтягивающий резистор микроконтроллера.

Подключение SD и microSD карт к микроконтроллеру в SD режиме

Ну и для полноты картины приведу схему подключения SD карты в ее родном режиме. Он позволяет производить обмен данными на большей скорости, чем SPI режим. Однако аппаратный интерфейс для работы с картой в SD режиме есть не у всех микроконтроллеров. Например у Atmel`овских ARM микроконтроллеров SAM3/SAM4 он есть.



Шина данных DAT может использоваться в 1 битном или 4-х битном режимах.

Продолжение следует...

К сожалению, нехватка места на внутреннем накопителе Android-устройств в последнее время ощущается достаточно сильно, ведь с развитием возможностей самой «операционки» многие программы и игры стали намного требовательней к свободным ресурсам и объему памяти гаджетов. Поэтому-то многие и пользуются съемными картами формата SD. Но вот Android-приложения на карту памяти устанавливаться желают не всегда.

Общие сведения об установке

В любой версии ОС «Андроид» установка приложений на карту памяти по умолчанию отключена. В принципе, если само устройство и версия ОС поддерживают эту возможность, как говорится, изобретать велосипед не потребуется. Немного покопавшись в настройках, можно выставить собственные параметры.

Это относительно недолгий и самый простой процесс, о котором будет сказано несколько позже. Можно установить приложения на карту памяти другими способами. Остановимся пока именно на этих ситуациях.

Загрузка приложений на карту памяти

Прежде чем решать проблему инсталляции, рассмотрим загрузку контента на съемный Дело в том, что в «Андроид» установка приложений на карту памяти в большинстве случаев должна находиться в тесной связи с процессом скачивания установочных дистрибутивов, поскольку они тоже могут иметь достаточно большие объемы.

Загрузку контента на карту SD поддерживают практически все Android-устройства вне зависимости от версии самой ОС или установленной прошивки. Для задания места сохранения файлов на карту памяти достаточно войти, например, в интернет-браузер и в расширенных настройках указать в качестве места хранения съемный носитель. Точно так же можно поступить и в случае создания фотографий, когда для настройки нужно использовать параметры самого приложения.

Можно поступить еще проще, скачивая приложения при помощи или ноутбука, а затем копируя их на SD-карту. В принципе, место загрузок можно изменить еще и в любом файловом менеджере.

Способы инсталляции и передислокации приложений на карты SD

Теперь о самом главном. Осуществить использование устанавливаемых или уже установленных приложений с карты памяти не так уж и сложно. Прежде всего нужно посмотреть, поддерживает ли само устройство такие возможности. Бывает и так, что перенос, а тем более установка, приложений на съемный носитель просто заблокирована производителем гаджета. Что делать в этом случае?

Для ОС «Андроид» установка приложений на карту памяти может осуществляться несколькими способами. К примеру, можно сначала инсталлировать программу или игру стандартным методом на внутренний накопитель, а затем перенести его в другое место (в данном случае на SD-карту).

Для непосредственной установки на карту можно использовать сторонние утилиты. Понятное дело, что создание приложений для Android в большинстве случаев подразумевает возможность их установки или переноса в другое место.

Использование системных настроек

Если уж возникает необходимость инсталляции приложения для Android именно на съемный носитель, сначала нужно учесть несколько аспектов. Первым делом необходимо зайти в настройки, где выбрать пункт «Приложения», а затем перейти в сами настройки для приложений. Тут имеется специальная строка «Перенести на SD-карту». Если устройство или установленное на внутреннюю память приложение поддерживает эту функцию, перенос будет произведен в течение пары минут, после чего для каждой перенесенной программы или игры появится активная кнопка «Переместить на телефон».

Как уже понятно, в ОС Android запуск приложения по окончании процесса переноса будет произведен именно с карты памяти.

Но не спешите радоваться. Иногда как сами мобильные устройства, так и создание приложений для Android использование таких функций просто не предусматривает. Кроме того, могут потребоваться даже root-права или использование режима «суперпользователя» (super user).

Лучшие программы

Программ для переноса или непосредственной или игр на съемные носители сегодня существует очень много. Как правило, практически все программы этого типа относятся к разряду freeware (бесплатные). Правда, здесь стоит обратить внимание и на то, что некоторые утилиты очень просты в использовании, а с некоторыми профессиональными программами придется повозиться, чтобы понять, что к чему.

Среди самых простых средств переноса программ на съемные носители можно отметить популярные пакеты типа AppMgr Pro.

Это приложение автоматически анализирует данные установленных приложений, а затем выдает результат в виде отсортированного списка, в котором отдельно указаны приложения для Android, которые можно без проблем перенести на карту памяти. После выбора необходимых приложений и подтверждения действий перенос будет осуществлен автоматически без всякого ущерба для системы.

Не менее интересной является утилита Link2SD. Но рядовому пользователю придется разбираться с ней достаточно долго, ведь потребуется разбивать карту на разделы с компьютера, например, используя программный пакет MiniTool Partition Wizard Home Edition, один из которых должен иметь (Primary), а второй - ext2 (в зависимости от устройства и версии «операционки» это может быть ext3/ext4). Именно во втором разделе и будут храниться переносимые или устанавливаемые программы.

Самым крайним случаем можно назвать использование мобильного устройства с подключением к компьютеру или ноутбуку через USB-интерфейс. Для установки приложений на карту памяти сначала нужно будет инсталлировать программу и на смартфон, и на компьютер. После подключения и синхронизации устанавливать приложения можно непосредственно из окна программы управления с компьютерного терминала.

Программных продуктов такого типа существует большое количество. Отдельно стоит выделить, скажем, Mobogenie или My Phone Explorer, причем вторая утилита поддерживает не только Android-устройства. Работать с такими программами достаточно просто. Нужно просто выбрать и указать место инсталляции программы (опять же если такая поддержка имеется и для устройства, и для программы).

Принудительная установка программ на карту памяти

В некоторых случаях можно попытаться применить еще один нестандартный способ. В «операционках» «Андроид» установка приложений на карту памяти таким методом называется принудительной.

Суть самого процесса заключается в установке на ПК программы ADB RUN. На смартфоне при подключении через USB-порт в обязательном порядке должна быть разрешена

После запуска приложения на компьютере нужно будет ввести следующие команды:

Su - если есть (если нет, команда пропускается).

pm getInstallLocation («0» по умолчанию).

pm getInstallLocation 1 - установка в собственную память устройства.

pm getInstallLocation 2 - установка на карту памяти.

pm getInstallLocation 0 - возврат к параметрам по умолчанию.

В принципе, команд немного, но сами видите, это не самый удобный способ. Хотя в некоторых случаях его можно использовать достаточно эффективно, когда другие методы не помогают.

Проблемы с работоспособностью приложений

Считается, что в ОС «Андроид» установка программ на карту памяти - это еще далеко не все. После установки или переноса приложения его нужно запустить и протестировать. Если запуска не происходит, или программа работает не так, как должна, придется повторить вышеописанные действия сначала. Можно попробовать перенести приложение в начальную локацию и проверить его работоспособность там. Если все нормально, значит дело либо в программе, либо в карте памяти, либо в неправильно выполненных операциях по переносу или установке.

Заключение

Подводя некий итог, можно сказать, что здесь были рассмотрены наиболее простые и распространенные способы переноса и установки приложений на съемные устройства памяти. Естественно, каждая утилита имеет свои особенности, равно как и переносимые или устанавливаемые программы. Даже разные модификации мобильных гаджетов, не говоря уже о версиях ОС Android или прошивках, могут играть весьма существенную роль. Но в большинстве случаев хотя бы один способ окажется для многих действенным.

1. Настройка, подключение мультиплексора SD Connect по LAN кабелю и прямое подключение WiFi «Улица». Для:

2. Настройка подключения SD Connect через роутер. Режим WiFi «Workshop/СТОА». Для:

Важной особенностью мультиплексоров SDConnect является его серийный номер. Объясняется это наличием в программах Xentry и DAS так называемого блек листа «blacklist». Блек лист содержит перечень серийных номеров запрещенных к эксплуатации. В случае если серийный номер мультиплексора занесен в блек лист, то программа заблокирует прибор на аппаратном уровне. Восстановление работоспособности SD Connect возможно лишь путем замены чипа или его перепрошивкой. Способность блокирования свойственна только мультиплексорам SD Connect. Мультиплексор Star Diagnosis C3 при этом просто не работает, и проблема устраняется путем правки блеклиста.

Во избежание блокирования прибора настоятельно рекомендуем ознакомиться с материалом ».

Алгоритм подключения и настройки мультиплексора SD Connect под Windows XP.

Режим «Улица» (Road24h):

Подключаем прибор к питанию и к ноутбуку по кабелю

Делаем настройку LAN соединения - сетевые подключения/подключение по локальной сети/свойства/протокол TCP/IP в соответствии со скриншотом ниже:

Жмем везде ОК, соединение установлено:

Открываем окно выбора прибора, кликаем на требуемый прибор и подтверждаем кнопкой «выбрать». Здесь же можно проверить соединение кнопкой «тест сигнал».

По кабелю уже можно работать.

Для использования беспроводного WiFi соединения выполняем следующие шаги:

Настраиваем соединение по WiFi:

прибор должен быть подключен по кабелю и установлено соединение по локальной сети.

Заходим в SDconnectControl (правый нижний угол рабочего стола) кликаем в трее SDNC:

Выбираем прибор, подтверждаем выбор:

Открывается окно конфигурации мультиплексора.

Вносим настройки WiFi сети для мультиплексора в соответствии со скриншотом:

Ключ сети - 26 символов. В данном случае 26 английских букв «а» в нижнем регистре.

Жмем старт и должны увидеть вот такой результат:

Настраиваем WiFi соединение для компьютера:

Жмем «изменить порядок предпочтения сетей», в новом окне создаем сеть для подключения по умолчанию Road24h. Вводим параметры согласно скриншота:

Подтверждаем в последнем окне ОК. Видим в списке предпочитаемых сетей, созданную сеть Road24h. Жмем «свойства», отмечаем чек бокс автоматического подключения, подтверждаем ОК.

Видим, что наша сеть получила статус «автоматически». Жмем ОК.

Проверяем наличие созданной сети в списке сетей:

Теперь при включении мультиплексора WiFi соединение установится автоматически:

Убедиться в наличии обмена данными между мультиплексором и ноутбуком можно в окне выбора мультиплексора, кнопкой «Тест — сигнал».

Соединение установлено, можно работать:

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

Алгоритм подключения и настройки SD Connect под Windows 7 (Xentry OpenShell).

Режим «Улица».

Подаем питание на мультиплексор и подключаем к компьютеру по LAN кабелю.

Заходим: Панель управления/Центр управления сетями и общим доступом/Изменение параметров адаптера/Подключение по локальной сети. Вводим настройки LAN соединения согласно изображению:

Соединение по кабелю установлено, чему свидетельствует соответствующий значок в трее:

Далее вводим настройки конфигурации для WiFi соединения в мультиплексоре. Правой кнопкой мыши кликаем в трее SDNC, в контекстном меню выбираем «Administration». Далее в открывшемся окне выбираем вкладку «Зарегистрироваться/сконфигурировать». Вводи настройки согласно скриншота (ключ произвольный, 26 любых символов) :

Жмем «Старт», при этом конфигурация сохраняется в памяти мультиплексора, и как результат должны получить такую таблицу:

Прибор сконфигурирован, закрываем все окна, LAN кабель отключаем.

Далее создаем ту же сеть «Road24h» в компьютере. Для этого заходим Панель управления/Центр управления сетями и общим доступом/ Управление беспроводными сетями/ Добавить / Создать соединение компьютер — компьютер /далее. Вводим данные согласно скриншота (ключ тот же что был введен при конфигурировании мультиплексора, 26 символов), не забываем ставить галочку в чекбоксе «Сохранить параметры этой сети»:

Закрываем все окна, проверяем наличие созданной сети в списке беспроводных сетей. Наша созданная сеть обязательно должна иметь статус «Ожидание подключения пользователей»:

Далее вводим настройки беспроводного WiFi адаптера в компьютере. Заходим: Панель управления/Центр управления сетями и общим доступом/Изменение параметров адаптера/Беспроводное сетевое соединение. Вносим настройки согласно скриншота:

Подтверждаем во всех окнах «ОК».

Все настройки WiFi сети внесены в компьютер.

На этом процедура настройки соединения мультиплексора SD Connect для работы с программой Xentry OpenShell под Windows 7 закончена.

Диагностический комплекс готов к работе.

В дальнейшем, порядок включения диагностического комплекса должен быть следующим:

  1. Включаем компьютер, загружается операционная система.
  2. Проверяем в списке сетей статус сети «Road24h». Статус должен быть «Ожидание подключения пользователей», если это не так, то жмем «Подключить», при этом статус сети меняется на требуемый.
  3. После этого включаем мультиплексор. Соединение по WiFi сети должно установиться автоматически.


Настройка подключения SD Connect через роутер — режим «Workshop/СТОА». Windows XP.

(на примере роутера TP Link, Windows XP)

Подключение через роутер (режим Workshop, СТОА) является более надежным и устойчивым в сравнении с прямым WiFi подключением (режим Road24h). Ниже приведен пример настройки режима «Workshop» с использованием роутера TP Link.

Настраиваем роутер в режиме точки доступа.

Заходим в админ-панель роутера (смотрите инструкцию своего роутера), для этого должно быть уже установлено соединение между ноутбуком и роутером через lan кабель, или через уже имеющееся соединение wifi. Далее набираем в адресной строке браузера 192.168.1.1, жмем enter. Появляется форма ввода логина и пароля для админ панели, по умолчанию это «admin», «admin».

В админ-панели роутера делаем следующие настройки:

Режим WAN (доступ в интернет) может быть любым, потому как роутер в данном случае к интернету не подключается.

Вводим имя сети (ssid). Имя может быть любым, по умолчанию в мультиплексоре присвоено имя «Workshop». Вписываем в поле SSID «Workshop».

После сохранения каждой настройки роутер возможно будет требовать перезагрузки. После последнего сохранения и перезагрузки настройка роутера завершена.

Переходим к настройке конфигурации мультиплексора SD Connect в режиме «Workshop» или «СТОА» (в русской установке).

Подключаем прибор к питанию и к ноутбуку по кабелю. Выполняем настройку LAN соединения - сетевые подключения/подключение по локальной сети/свойства/протокол TCP/IP в соответствии со скриншотом:

Подтверждаем во всех окнах «ок»

Заходим в настройки конфигурации мультиплексора («конфигурация», подтверждаем «да», выбираем вкладку «MUX» и «зарегистрировать/сконфигурировать»). Вносим настройки согласно скриншота:

Подтверждаем внесенные данные и получаем результат сохранения настроек в виде такой таблицы:

После сохранения настроек режима «Workshop» в мультиплексоре появляется возможность смены режима WLAN. Выполняется это кнопками на приборе. Выбранному режиму соответствует свой символ на дисплее прибора:

Мультиплексор (кнопками на приборе) следует перевести в режим «Workshop». При последующих включениях, прибор автоматически будет

входить в режим связи, установленный при последнем выключении.

Заключительный этап — настройка ноутбука для работы в режиме «Workshop».

Переводим настройки WiFi адаптера ноутбука в режим автоматического получения IP адреса. Сетевые подключения/беспроводные сети/свойства/протокол ТСP/IP:

Сохраняем и переходим во вкладку «Соединения» (Connections). Здесь, в правой колонке должна появиться возможность выбора режима соединения. Выбираем «Workshop» и подтверждаем «ОК».

Происходит переключение соединения в режим «Workshop». Если при этом, настроенный ранее, роутер включен, то произойдет автоматическое подключение к роутеру. В трее переключится символ соединения и если, ранее настроенный мультиплексор включен, то он автоматически определится системой:

После завершения всех настроек установка WiFi соединения происходит автоматически, не зависимо от последовательности включения мультиплексора, ноутбука и роутера.

Настройка подключения SD Connect через роутер - режим WiFi «Workshop/СТОА». Windows 7:

Настройка роутера такая же как для операционной системы Windows XP. (см выше)

Для настройки конфигурации мультиплексора переходим в SDnetcontrol, окно «регистрация/конфигурация»:

Сохраняем внесенные настройки, получаем результат в виде таблицы:

На этом конфигурация мультиплексора для режима «workshop» завершена, lan кабель отключаем. При этом прибор автоматически переходит в режим соединения «Workshop»:

Настройка ноутбука для работы в режиме «Workshop» заключается лишь в стандартном подключении ноутбука к сети «workshop». Ранее настроенный роутер должен быть включен. Открываем список доступных WiFi сетей, выбираем сеть «workshop»:

Жмем «подключить», вводим пароль 26 символов (в нашем случае 26 «а»), происходит подключение:

Автоматически распознается мультиплексор. Если этого не происходит, делаем ручной выбор прибора:

При следующем включении, WiFi соединение происходит автоматически, не зависимо от последовательности включения оборудования.

Установка аккумуляторов в мультиплексор SD Connect.

При установке аккумуляторов соблюдайте полярность согласно изображению.

Необходимость наличия внутренних аккумуляторов обусловлена:

  • во первых тем, что для мультиплексора SD Connect, являющегося полноценным самостоятельным компьютером, работающим под управлением операционной системы Linux, «грубое» отключение питания, которое происходит при выдергивании диагностического кабеля из автомобиля, и последующая загрузка прибора при его повторном подключении к автомобилю крайне не желательны, и в отдельных случаях приводят к выходу мультиплексора из строя;
  • во вторых, при отсутствии внутренних аккумуляторов, в момент пуска двигателя в бортовом напряжении автомобиля, а значит и в цепи питания мультиплексора появляются резкие скачки напряжения, что может являться причиной обрыва связи между мультиплексором и ПК, а в некоторых случаях и выхода мультиплексора из строя.

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

В режиме питании прибора только от внутренних аккумуляторов (отключен от диагностического разъема), появляется возможность переводить мультиплексор в «спящий режим», что не возможно при питании прибора от автомобиля. Полное выключение прибора не предусмотрено, и возможно либо путем извлечения из него аккумуляторов, либо изменением схемы управления питанием (см видео ).

Без доработки схемы питания, при длительном, без использования, хранении мультиплексора, аккумуляторы следует вынимать, так как в спящем режиме «standby» ток покоя составляет 60 мА с периодическими скачками до 190 мА для мультиплексора Type 1, и 10 мА для мультиплексора Type 2, что при рекомендуемой емкости аккумуляторов в 2400 мА/ч и при условии их 100% предварительного заряда, обеспечит удержание спящего режима лишь на 3 — 7 суток. Далее напряжение аккумуляторов опускается ниже критического, что крайне негативно сказывается на сроке их службы.

Перед извлечением аккумуляторов следует перевести мультиплексор в режим STANDBY/SHUT DOWN. При подключении прибора к разъему автомобиля, прибор автоматически выходит из спящего режима и начинается зарядка внутренних аккумуляторов.

Емкость применяемых аккумуляторов должна быть не менее 2000 мАч.

Сообщения на дисплее прибора «вставьте аккумуляторы» или «проверьте аккумуляторы» может свидетельствовать о потере емкости одного или более аккумуляторов или плохом контакте в цепи аккумуляторов. Увеличение суммарного внутреннего сопротивления модуля аккумуляторов более чем на 1 Ом вызывает сообщения о не исправности или отсутствии аккумуляторов.

Переключение WiFi каналов при не стабильном беспроводном соединении между мультиплексором SD Connect и ноутбуком.

для соединения Road24h/улица:

Беспроводное соединение WiFi имеет 14 каналов. В зависимости от страны, количество разрешенных для использования каналов может быть меньшим. Так в Украине и России используются 13 каналов. Для некоторых WiFi адаптеров доступны только 11 каналов. Часто при наличии большого количества WiFi сетей все каналы оказываются задействованными. Более того, в каждом канале может работать несколько устройств одновременно, что создает не стабильность работы оборудования. В частности в случае с мультиплексором SD Connect, при перегруженности используемого в данный момент канала либо при наличии других радиопомех, может наблюдаться медленная его работа или периодический обрыв WiFi соединения. В этом случае целесообразно изменить номер канала. Делается это в настройках WiFi адаптера ноутбука. Для этого заходим в папку «сетевые подключения», правой кнопкой мыши кликаем на «беспроводное соединение»/ свойства / настроить / дополнительно. В левой колонке находим строку «Канал Ad Hoc 802.1 b/g», в правой колонке появится окно для ввода (выбора) номера канала. См скриншот:

Измените номер канала на любой другой, отличный от заданного по умолчанию и подтвердите во всех окнах «ок». Изменения не всегда сразу вступают в силу, желательно для этого перезагрузить ноутбук. Если после загрузки ноутбука WiFi соединение с мультиплексором не установилось автоматически, то перезагружаем мультиплексор. Не факт, что выбранный канал окажется менее загруженным чем предыдущий, в таком случае процедуру придется повторить. Существуют программы — сканеры, позволяющие оценить загруженность WiFi каналов, но обычно и экспериментальным путем удается найти относительно свободный канал.

SD и microSD карты могут существенно расширить возможности проектов ардуино, работающих с большими объемами данных: регистраторов данных, метеостанций, систем умного дома. Платы arduino оснащены сравнительно небольшой внутренней памятью, всего до 4 килобайт, включая и флэш-память, и EEPROM. Этой памяти не хватит для записи больших объемов данных, тем более, если плата будет постоянно выключаться или выключаться. Подключение SD карты ардуино в качестве внешнего накопителя позволяет многократно увеличить место для хранения любой информации. Съемные накопители SD стоят дешево, легко подключаются и удобны в использовании. О правильном подключении SD карты к Arduino и пойдет речь в статье.

Работа с памятью SD в ардуино не представляет особых трудностей. Самым простым способом является подключение готового модуля и использование стандартной библиотеки. С этого варианта мы и начнем.

Использование готового модуля обладает различными преимуществами. Это довольно простое и удобное средство для работы с большим объемом данных. Он не требует особых навыков в подключении, все разъемы подписаны прямо на плате. За удобство приходится платить, но стоимость модуля относительно не велика, его легко можно найти по доступным ценам в российских и зарубежных интернет-магазинах.

Универсальный модуль представляет собой обыкновенную плату, на которой помещены слот для карты, резисторы и регулятор напряжений. Он обладает следующими техническими характеристиками:

  • Диапазон рабочих напряжений 4,5-5 В;
  • Поддержка SD карты до 2 Гб;
  • Ток 80 мА;
  • Файловая система FAT 16.

Модуль SD-карты реализует такие функции как хранение, чтение и запись информации на карту, которая требуется для нормального функционирования прибора на базе микроконтроллера.


Естественно, у недорогих модулей карт памяти есть и недостатки. Например, самые дешевые и распространенные модели поддерживают только карты до 4Гб и почти все модули позволяют хранить на SD карте файлы объемом до двух гигабайт – это ограничение используемой в большинстве моделей файловой системы FAT.

Еще одним недостатком карт памяти является относительно долгое время записи, однако существуют пути работы с ней, позволяющие увеличить ее скорость работы. Для этого используется механизм кэширования, когда данные сначала копятся в оперативной памяти, а потом сбрасываются за раз на карту памяти.

Платы Arduino для работы с SD

Для работы с SD card существует несколько различных плат:

  • Arduino Ethernet – эта плата оснащена специальным модулем для вывода данных. Для выхода CS используется контакт 4. Для правильной работы нужно применять команду SD.begin(4).
  • Adafruit Micro-SD – это отладочная плата, которая используется при работе с Micro-SD картами.
  • Sparkfun SD – закрепляется сверху Ардуино, для выхода CS использует 8 контакт. В новой версии платы есть соединение с 3.3 В и встроен шестиразрядный инвертор.

Подключение SD и microSD к ардуино

Существует два вида карт – microSD и SD. Они одинаковы по подключению, структуре и программе, различаются же только размером. Перед работой советуется отформатировать карту SD. Обычно новые карты уже отформатированы и готовы к работе, но если используется старая карта, то лучше провести форматирование в файловой системе Arduino. Для проведения процедуры на компьютере должна быть установлена библиотека SD, желательно FAT16. Для форматирования на Windows нужно щелкнуть на иконке карты и нажать “Format”.

Для подключения карты используется 6 контактов, взаимодействие производится по интерфейсу SPI. Она выглядит на плате как разъем на лицевой поверхности с шестью штырями. Чтобы подключить карту, нужны сам контроллер, модуль карты и 6 проводов. Помимо SPI существует режим SDIO, но он сложен в реализации и слабо совместим с Ардуино. SPI легко налаживается для работы со всеми микроконтроллерами, поэтому советуется использовать именно его.

Подключение цифровых выводов производится так: для платы Arduino Nano или Uno контакт MOSI подключается к D11, MISO к D12,SCK к D13, CS к 4, VCC на +5 В,.GND к GND. На плате имеются разъемы для подключения к 3,3 и 5 вольтам. Питание самой карты составляет 3,3 вольт, поэтому проще применять микроконтроллер с таким же питанием, в ином случае нужен преобразователей уровней напряжения. На самых распространенных платах ардуино такой выход есть.

При подключении SD карты нужно учитывать соответствие SPI контактов для разных тип плат Arduino:

Библиотека ардуино для работы с SD и microSD

Для удобства работы с внешними накопителями данных в среде Arduino IDE доступны уже готовые библиотеки. Ничего дополнительно скачивать или устанавливать в большинстве случаев не понадобится.

Для подключения библиотеки в скетче нужно использовать инструкцию include:

#include #include

Библиотека SPI нужна для правильной работы устройств, подключаемых по SPI.

Библиотечные функции нужно для считывания и записи данных на карту. Библиотека может поддерживать SD и SDHC карты.

Имена записываются в формате 8.3, то есть 8 знаков для названия, 3 для расширения. Путь к файлу записывается с помощью слэшей «/».

Встроенные примеры библиотеки SD

В Arduino IDE встроены готовые примеры для быстрого изучение функций бибилотеки:

  • Card Info – это извлечение информации, хранящейся в SD карте. С ее помощью можно узнать, в какую файловую систему отформатирована карта, наличие свободного места, какие данные записаны.
  • Yun Datalogger – позволяет записывать лог-данные с трех сенсоров на карту.
  • Datalogger – регистрирует и созраняет данные, полученные с датчика на карту.
  • Dump File – считывание данные с карты, передает их в серийный порт.
  • Files – создает и удаляет данные. Существует функция file.write(), которая помещает записанные данные в буфер. Перемещение информации на карту происходит при вызове функций flush() или close(), поэтому важно закрывать его после каждого открытия файла, иначе данные будут потеряны.
  • Read Write – записывает и считывает файлы с карты.

Функции библиотеки SD

Ардуино-библиотека SD содержит различные функции, с помощью которыми можно управлять данными. Функции класса SD:

  • begin() – функция инициализирует библиотеку, присваивает контакт для сигнала.
  • exists() – призвана проверить, имеется ли на карте необходимая информация.
  • mkdir() – позволяет создать нужную папку на карте памяти.
  • rmdir() – с помощью этой функции можно удалить папку. Важно, чтобы удаляемая папка была пустой.
  • open() – позволяет открыть файл, который нужен для записи или чтения. Если нужный файл отсутствует на карте, то он будет создан.
  • remove() – удаляет любой файл.

В ответ на все эти функции должно прийти одно из значений – true, в случае удачного завершения операции и false при неудаче.

Создание, редактирование и удаление файлов.

Для работы с файлами в ардуино существует класс File. В него входят функции, которые предназначены для записи и чтения информации с карты:

  • available() – проверяет наличие в файле байт, которые доступны для чтения. В ответ приходит количество места, которое доступно для чтения.
  • close() – закрывает файл, перед эти проверяет, сохранены ли данные на карту.
  • flush() – функция позволяет убедиться, что данные записаны на карту.
  • name() – возвращает указатель на имя.
  • peek() – считывает байты данных, при этом не перемещает указатель на следующий символ.
  • position() – находит текущее положение указателя в файле.
  • print() – выводит данные в отдельный файл.
  • println() – печатает данные в файл до места, где появляется символ перевода каретки и пустая строка.
  • seek() – меняет положение текущей позиции в файле.
  • size() – выводит информацию о размере данных.
  • read() – считывает информацию.
  • write() – производит запись в файл.
  • isDirectory() – с помощью этого метода происходит проверка, является ли файл директорией, то есть каталогом или папкой.
  • openNextFile() – выводит имя последующего файла.
  • rewindDirectory() – возвращает к первому файлу в директории.

Для корректной работы платы нужно проследить, чтобы был сконфигурирован SS выход.

Скетч примера работы с SD библиотекой ардуино

Ниже приведен скетч, демонстрирующий пример работы с модулем карты памяти.

/* Регистратор данных с использованием SD карт Пример сохранения данных с аналоговых портов на SD карте. Данные будут сохраняться в файле в виде набора строк с разделителем полей в виде символа "," Схема подключения: * Аналоговые сенсоры подключаются к аналоговым пинам * Модуль SD карты подключен в SPI по стандартной схеме: ** MOSI - пин 11 ** MISO - пин12 ** CLK - пин 13 ** CS - pin 4 */ #include #include const int PIN_CHIP_SELECT = 4; void setup() { Serial.begin(9600); Serial.print("Initializing SD card..."); // Этот пин обязательно должен быть определен как OUTPUT pinMode(10, OUTPUT); // Пытаемся проинициализировать модуль if (!SD.begin(PIN_CHIP_SELECT)) { Serial.println("Card failed, or not present"); // Если что-то пошло не так, завершаем работу: return; } Serial.println("card initialized."); } void loop() { // Строка с данными, которые мы поместим в файл: String logStringData = ""; // Считываем данные с портов и записываем в строку for (int i = 0; i < 5; i++) { int sensor = analogRead(i); logStringData += String(sensor); if (i < 4) { logStringData += ","; } } // Открываем файл, но помним, что одновременно можно работать только с одним файлом. // Если файла с таким именем не будет, ардуино создаст его. File dataFile = SD.open("datalog.csv", FILE_WRITE); // Если все хорошо, то записываем строку: if (dataFile) { dataFile.println(logStringData); dataFile.close(); // Публикуем в мониторе порта для отладки Serial.println(logStringData); } else { // Сообщаем об ошибке, если все плохо Serial.println("error opening datalog.csv"); } }

Создание файла и выбор названия для arduino SD card

Создание файла – одна из самых распространенных задач, возникающих при работе с SD картами в ардуино. Как мы убедились в предыдущем скетче, для создания файла достаточно просто открыт его. Если мы захотим проверить, есть ли такой файл, можно использовать функцию exists():

  • SD.exists(“datalog.csv”);

Функция возвращает TRUE, если файл существует.

Популярной практикой при создании проектов – регистраторов данных является разбивка больших файлов на более мелкие, которые удобнее обновлять и открывать на компьютере. Например, вместо одного очень большого файла datalog.csv на SD карте можно иметь несколько маленьких, добавляя к концу номер по порядку: datalog01.csv, datalog02.csv и т.д.
Вот пример скетча, который поможет вам выполнить эту работу:

Char filename = "datalog00.CSV"; // Первоначальное название for (uint8_t i = 0; i < 100; i++) { filename = i / 10 + "0"; filename = i % 10 + "0"; if (! SD.exists(filename)) { // Проверяем наличие logfile = SD.open(filename, FILE_WRITE); break; // Дальше продолжать смысла нет } }

Заключение

Как мы с вами убедились, подключить SD карту памяти к Ардуино и использовать ее в проекте не очень сложно. Для этого есть готовые библиотеки в Arduino IDE и самые разнообразные варианты модулей. Приобрести карту памяти можно в любом магазине электроники, они стоят недорого, при этом позволяют существенно расширить потенциал платы Ардуино. С использованием карт памяти можно собирать и сохранять для последующего анализа большие объемы данных. С помощью нашей статьи мы сможете наделить памятью свои исследовательские проекты, создать системы голосового оповещения для умного дома, создать простой wav-проигрыватель и многое другое.