Arduino nano

Arduino.ru

Платформа Nano, построенная на микроконтроллере ATmega328 (Arduino Nano 3.0) или ATmega168 (Arduino Nano 2.x), имеет небольшие размеры и может использоваться в лабораторных работах. Она имеет схожую с Arduino Duemilanove функциональность, однако отличается сборкой. Отличие заключается в отсутствии силового разъема постоянного тока и работе через кабель Mini-B USB. Nano разработана и продается компанией Gravitech.

Принципиальные схемы и исходные данные

Arduino Nano 2.3 (ATmega168): руководство (pdf) и файлы Eagle. Примечание: т.к. свободная версия файлов Eagle не позволяет работать более чем с двумя слоями, а данная версия схем Nano содержит четыре слоя, то схемы публикуются не трассированными.

Питание:

Arduino Nano может получать питание через подключение Mini-B USB, или от нерегулируемого 6-20 В (вывод 30), или регулируемого 5 В (вывод 27), внешнего источника питания. Автоматически выбирается источник с самым высоким напряжением.

Микросхема FTDI FT232RL получает питание, только если сама платформа запитана от USB. Таким образом при работе от внешнего источника (не USB), будет отсутствовать напряжение 3.3 В, генерируемое микросхемой FTDI, при этом светодиоды RX и TX мигаю только при наличие сигнала высокого уровня на выводах 0 и 1.

Микроконтроллер ATmega168 имеет 16 кБ флеш-памяти для хранения кода программы, а микроконтроллер ATmega328, в свою очередь, имеет 32 кБ (в обоих случаях 2 кБ используется для хранения загрузчика). ATmega168 имеет 1 кБ ОЗУ и 512 байт EEPROM (которая читается и записывается с помощью библиотеки EEPROM), а ATmega328 – 2 кБ ОЗУ и 1 Кб EEPROM.

Каждый из 14 цифровых выводов Nano, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

  • Последовательная шина: 0 (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины FTDI USB-to-TTL.
  • Внешнее прерывание: 2 и 3. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachInterrupt().
  • ШИМ: 3, 5, 6, 9, 10, и 11. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, которая, хотя и поддерживается аппаратной частью, не включена в язык Arduino.
  • LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.

На платформе Nano установлены 8 аналоговых входов, каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел посредством функции analogReference(). Некоторые выводы имеют дополнительные функции:

  • I2C: A4 (SDA) и A5 (SCL). Посредством выводов осуществляется связь I2C (TWI). Для создания используется библиотека Wire (информация на сайте Wiring).

Дополнительная пара выводов платформы:

  • AREF. Опорное напряжение для аналоговых входов. Используется с функцией analogReference().
  • Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

На платформе Arduino Nano установлено несколько устройств для осуществления связи с компьютером, другими устройствами Arduino или микроконтроллерами. ATmega168 и ATmega328 поддерживают последовательный интерфейс UART TTL (5 В), осуществляемый выводами 0 (RX) и 1 (TX). Установленная на плате микросхема FTDI FT232RL направляет данный интерфейс через USB, а драйверы FTDI (включены в программу Arduino) предоставляют виртуальный COM порт программе на компьютере. Мониторинг последовательной шины (Serial Monitor) программы Arduino позволяет посылать и получать текстовые данные при подключении к платформе. Светодиоды RX и TX на платформе будут мигать при передаче данных через микросхему FTDI или USB подключение (но не при использовании последовательной передачи через выводы 0 и 1).

Библиотекой SoftwareSerial возможно создать последовательную передачу данных через любой из цифровых выводов Nano.

ATmega168 и ATmega328 поддерживают интерфейсы I2C (TWI) и SPI. В Arduino включена библиотека Wire для удобства использования шины I2C. Более подробная информация находится в документации. Для использования интерфейса SPI обратитесь к техническим данным микроконтроллеров ATmega168 и ATmega328.

Платформа программируется посредством ПО Arduino. Из меню Tools > Board выбирается «Arduino Diecimila, Duemilanove или Nano w/ ATmega168» или «Arduino Duemilanove или Nano w/ ATmega328» (согласно установленному микроконтроллеру). Подробная информация находится в справочнике и инструкциях.

Микроконтроллеры ATmega168 и ATmega328 поставляются с записанным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Связь осуществляется оригинальным протоколом STK500.

Имеется возможность не использовать загрузчик и запрограммировать микроконтроллер через выводы блока ICSP (внутрисхемное программирование). Подробная информация находится в данной инструкции.

Nano разработана таким образом, чтобы перед записью нового кода перезагрузка осуществлялась самой программой, а не нажатием кнопки на платформе. Одна из линий FT232RL, управляющих потоком данных (DTR), подключена к выводу перезагрузки микроконтроллеров ATmega168 или ATmega328 через конденсатор 100 нФ. Активация данной линии, т.е. подача сигнала низкого уровня, перезагружает микроконтроллер. Программа Arduino, используя данную функцию, загружает код одним нажатием кнопки Upload в самой среде программирования. Подача сигнала низкого уровня по линии DTR скоординирована с началом записи кода, что сокращает таймаут загрузчика.

Функция имеет еще одно применение. Перезагрузка Nano происходит каждый раз при подключении к программе Arduino на компьютере с ОС Mac X или Linux (через USB). Следующие полсекунды после перезагрузки работает загрузчик. Во время программирования происходит задержка нескольких первых байтов кода во избежание получения платформой некорректных данных (всех, кроме кода новой программы). Если производится разовая отладка скетча, записанного в платформу, или ввод каких-либо других данных при первом запуске, необходимо убедиться, что программа на компьютере ожидает в течение секунды перед передачей данных.

Arduino Nano — распиновка, интерфейс модуля, схема

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

Да и монтажника высокого разряда тоже, особенно для новой версии платы.

Всего выпущено несколько платформ Arduino, Nano является одной из них, в миниатюрном исполнении. В то же время сохраняется легкость подключения при помощи разъемов с шагом выводов 2,54 мм, что важно для любительских экспериментов. Для программирования используется IDE (среда разработки) и язык высокого уровня, похожий на C. (Фактически это и есть C/C++, просто структура программы немного изменена. Вместо функции main() используются две другие: setup() и loop(). Компилятор сам создает из них остальное).

Разработчику программы для Arduino приходится также иметь дело со схемотехникой подключаемых устройств. Он должен знать уровни допустимых токов и напряжений, обеспечивать защиту электроники при использовании деталей с большой индуктивностью (моторов, катушек реле). Ардуино объединяет две области знаний: электронику и программирование, основу для построения роботов (здесь немного не хватает еще механики).

Раз уж тут объединены программирование и электроника, то ключевой вещью в использовании модуля становится спецификация его выводов, или распиновка, как еще принято говорить. Выводы модуля можно классифицировать разными способами, поскольку их функции зависят от программной конфигурации контроллера. Кроме того, поскольку есть две версии модулей, один из них использует чип ATmega168 (Arduino Nano), а другой ATmega328, то появляется вопрос, есть ли у них различия в подключении.

У Arduino Nano распиновка выполнена так, как показано на картинке ниже:

1 – TX (передача UART) или порт D0;

2 – RX (прием UART) или порт D1;

3,28 – сброс (RESET);

17 – напряжение 3,3 В;

18 – опорное напряжение АЦП;

19…26 – 8 каналов АЦП A0…A7;

27 – напряжение 5,0 В;

30 – плюс питания модуля 2-20 В.

Первые два вывода используются либо для связи по классическому последовательному интерфейсу с другим устройством, либо как порты для двоичных данных. В arduino nano распиновка 5…16 выводов, кроме указанных, имеет дополнительные функции:

5 – прерывание INT0;

6 – прерывание INT1 / ШИМ / AIN0;

7 – таймер-счетчик T0 / шина I2C SDA / AIN1;

8 – таймер-счетчик T1 / шина I2C SCL / ШИМ;

AIN0 и AIN1 – это входы быстродействующего аналогового компаратора. Кроме того, имеется 6 каналов с выходом широтно-импульсного модулятора (ШИМ). К тому же имеется большее число пинов, на которые могут быть переведены запросы прерываний.

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

У Arduino Nano 3.0 распиновка не отличается от предыдущей, несмотря на другой контроллер. ATmega328 отличается от ATmega168 вдвое большим объемами памяти всех видов: flash, оперативной и EEPROM.

Это позволяет улучшить ПО прошивки и загручика, а также дать пользователю больше возможностей для его прикладной задачи. Arduino nano v 3.0 распиновка может быть использована для программирования, но для этих целей используется отдельный разъем. Об этом ниже.

Наконец, надо сказать о подключении программатора. Для программирования контроллеров Atmel, на котором собран модуль Arduino, используется интерфейс ICSP. Для Arduino Nano icsp распиновка выглядит выглядит следующим образом (см. верхнюю часть предыдущего рисунка):

1 – MISO (ведущий принимает от ведомого);

3 – SCK (тактовый импульс);

4 – MOSI (ведущий передает ведомому);

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

Этот разъем подключается к программатору с интерфейсом SPI (интерфейс последовательного программирования контроллеров Atmel).

Кроме того, прошивка контроллера может меняться из среды программирования через кабель USB, так что приобретать программатор становится необязательным (он нужен только в том случае, если отсутствует программа загрузчика).

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

Конечно, наборы Ардуино (Arduino) не предназначены для разработки встраиваемых приложений, работающих с большой скоростью в ответственных случаях, поэтому при их использовании возможны косяки, тем более что пользователи еще только учатся.

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

Популярное

  • Книжная полка: 5 лучших книг о платформе Arduino6 967
  • Установка драйвера CP210x USB to UART Bridge VCP driver4 046
  • Уроки Arduino: управление устройствами со смартфона для чайников3 107
  • Arduino для начинающих – домашний курс программирования2 625
  • Ардуино Нано (Arduino Nano) для начинающих2 059
  • Arduino: примеры того, что можно сделать1 528
  • Arduino: что можно сделать с его помощью1 320
  • Iskra JS — российский аналог Arduino966

ArduinoPlus.ru — сайт о Arduino, Wemos, микроконтроллерах, современных технологиях и будущем. Подписывайтесь на нашу группу ВКонтакте.

Копирование материалов запрещено, если не указано другого

ОБОРУДОВАНИЕ

Главное меню

Урок 45. Другие платы Ардуино с микроконтроллерами ATmega168/328. Плата Arduino Nano.

В последующих двух уроках расскажу о платах Ардуино функционально полностью совместимых с Arduino UNO R3, но имеющих другое конструктивное исполнение.

Плата Arduino UNO, наверное, имеет наибольшую популярность среди разработчиков электронных изделий на базе Ардуино. Она идеально подходит для отладки программной и аппаратной частей устройств на этапе разработки.

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

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

Каждая из этих плат выпускается в двух вариантах с микроконтроллером ATmega328 и ATmega168. Во втором варианте в 2 раза уменьшаются объемы FLASH, ОЗУ и EEPROM.

Я собираюсь использовать эти платы в последующих уроках, поэтому решил рассказать о них.

Это небольшая плата размерами 19 x 43 мм. Тем не менее, по функциям и параметрам вполне заменяет Arduino UNO.

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

У платы есть преобразователь интерфейса UART в USB и USB разъем для подключения к компьютеру.

Характеристики платы Arduino Nano.

Большая часть параметров платы определяется используемым микроконтроллером.

Назначение выводов платы Arduino Nano.

Плата может получать питание двумя способами:

  • через кабель связи с компьютером от USB порта;
  • от внешнего источника питания напряжением 6-20 В. Напряжение может быть не стабилизировано, но с низким уровнем пульсаций.

Напряжение внешнего источника питания стабилизируется на уровне 5 В с помощью микросхемы LM1117IMPX-5.0. Напряжение USB порта компьютера подключается к выходу стабилизатора через диод Шоттки (с низким падением напряжения).

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

Вывод 5 V может быть использован для питания внешнего устройства. Надо только помнить, что ток нагрузки не должен превышать для разных плат 500-800 мА.

К выводу 3.3V можно подключать питание внешних устройств напряжением 3,3 В. У моей платы ток нагрузки не должен превышать 180 мА.

  • Все выводы, цифровые и аналоговые, могут работать в диапазоне 0 … 5 В.
  • Максимальный вытекающий или втекающий ток для цифрового вывода в режиме выхода не должен превышать 40 мА. Общий ток выводов не должен превышать 200 мА.
  • Все выводы могут быть программно подключены к источнику питания микроконтроллера 5 В через подтягивающие резисторы сопротивлением 20-50 кОм.
  • Если на аналоговый вход или дискретный вывод в режиме входа подать напряжение свыше 5 В или ниже 0 В, то оно будет ограничено защитными диодами микроконтроллера.

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

Цифровые выводы. У платы 14 цифровых выводов, каждый из которых может работать в режимах входа и выхода. Некоторые выводы имеют еще альтернативные функции.

Последовательный интерфейс UART: выводы 0(RX) и 1(TX). Используются для обмена данными по интерфейсу UART. Эти выводы платы непосредственно соединены с соответствующими выводами микроконтроллера. К ним же через резисторы сопротивлением 1 кОм подключены сигналы преобразователя интерфейса.

Таким образом, выводы платы имеют приоритет по отношению к сигналам преобразователя интерфейсов. При загрузке программы в плату или обмене данными с компьютером выводы RX и TX должны оставаться свободными.

Внешние прерывания: выводы 2 и 3. Выводы, которые могут быть использованы для формирования внешних прерываний.

ШИМ: выводы 3,5,6,9, 10, 11. На этих выводах может быть сформирован сигнал ШИМ аппаратным способом.

Последовательный интерфейс SPI: выводы 10 (SS), 11 (MOSI), 13 (SCK). Выводы аппаратного интерфейса SPI.

Светодиод: вывод 13. К этому выводу подключен светодиод, обозначенный на плате L. Светится при высоком уровне сигнала.

Аналоговые входы: A0…A8. 8 аналоговых входов для измерения напряжения с помощью встроенного АЦП. Разрядность АЦП – 10 бит.

Интерфейс I2C: выводы 4 (SDA) и5 (SCL). Сигналы аппаратного интерфейса I2C.

AREF. Опорное напряжение для АЦП микроконтроллера. Определяет диапазон измерения напряжения на аналоговых входах.

RST. Сигнал сброса микроконтроллера. Низкий уровень приводит к перезагрузке системы.

На плате есть 4 светодиода, показывающие состояние сигналов.

Загрузка программы в плату из Arduino IDE происходит традиционным способом.

Принципиальная схема платы Arduino Nano.

Схемы плат разных производителей могут отличаться. Чаще всего различия касаются преобразователя интерфейсов USB-UART.

В китайских клонах обычно используются мосты USB-UART микросхемы CH340G. В фирменных платах преобразователь интерфейсов выполнен на микросхеме FT232RL.

Вот схема такого варианта платы Arduino Nano.

Микроконтроллер включен по стандартной схеме. Систему питания я уже объяснил.

Преобразователь интерфейсов FT232RL также включен по стандартной схеме. Сигнал DTR соединен через конденсатор емкостью 0,1 мкФ с выводом Reset микроконтроллера для формирования сигнала сброса при загрузке программы из Arduino IDE.

В следующем уроке я расскажу еще об одной плате на микроконтроллерах ATmega168/328. Об одной из самых миниатюрных плат — Arduino Pro Mini.

8 комментариев на « Урок 45. Другие платы Ардуино с микроконтроллерами ATmega168/328. Плата Arduino Nano. »

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

Спасибо за добрые слова.

Очень интересный и полезный цикл статей. Заинтересовался Arduinoй не давно, Ваши уроки очень помогли во многом. Спасибо!

Спасибо. Приятно слышать.

Платы Arduino UNO и Nano полностью совместимы. Одинаковые микроконтроллеры, одинаковые схемы подключения выводов.

Возможно ваши проблемы связаны с тем, что разные загрузчики (bootloader) по разному обрабатывают срабатывание сторожевого таймера. Некоторые оставляют его включенным. Попробуйте его отключить, сбрасывать. Посмотрите информацию об этом в интернете.

Здравствуйте Эдуард. Спасибо за уроки, регулярно пользуюсь. Есть вопрос. На NANO есть ещё два входа А6, А7. Но они у меня как дискретные входы не работают. Это нормально?

В документации на ATmega328 указано, что выводы A6 и A7 это добавочные аналоговые входы для микроконтроллеров в корпусах TQFP и QFN/MLF. Эти выводы не имеют альтернативных функций. Т.е. все правильно, как дискретные входы или выводы A6 и A7 использовать нельзя.

Рубрики

Популярные записи

© 2015-2016 Оборудование технологии разработки

Arduino nano
(Плата контроллер Arduino Nano) (Плата Arduino Nano)
http://arduino.ru/Hardware/ArduinoBoardNano
Arduino Nano — распиновка, интерфейс модуля, схема
Статья о модуле Ардуино Nano — распиновка, расположение выводов модуля и их функций для подключения к внешним устройствам.
http://arduinoplus.ru/arduino-nano-raspinovka/
ОБОРУДОВАНИЕ ТЕХНОЛОГИИ РАЗРАБОТКИ
Уроки Ардуино. Урок 45. Другие платы Ардуино с микроконтроллерами ATmega168/328. Плата Arduino Nano.
http://mypractic.ru/urok-45-drugie-platy-arduino-s-mikrokontrollerami-atmega168328-plata-arduino-nano.html

COMMENTS