Какие микроконтроллеры используются на платах arduino
Перейти к содержимому

Какие микроконтроллеры используются на платах arduino

  • автор:

Arduino.ru

Arduino Uno контроллер построен на ATmega328 (техническое описание, pdf). Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB, либо подать питание при помощи адаптера AC/DC или батареи.

В отличие от всех предыдущих плат, использовавших FTDI USB микроконтроллер для связи по USB, новый Ардуино Uno использует микроконтроллер ATmega8U2 (техническое описание, pdf).

«Uno» переводится как один с итальянского и разработчики тем самым намекают на грядущий выход Arduino 1.0. Новая плата стала флагманом линейки плат Ардуино. Для сравнения с предыдущими версиями можно обратиться к полному списку плат Arduino.

Характеристики

Микроконтроллер
Рабочее напряжение
Входное напряжение (рекомендуемое)
Входное напряжение (предельное)
Цифровые Входы/Выходы
14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы
Постоянный ток через вход/выход
Постоянный ток для вывода 3.3 В
Флеш-память
32 Кб (ATmega328) из которых 0.5 Кб используются для загрузчика
2 Кб (ATmega328)
1 Кб (ATmega328)
Тактовая частота

Схема и исходные данные
Питание

Arduino Uno может получать питание через подключение USB или от внешнего источника питания. Источник питания выбирается автоматически.

Внешнее питание (не USB) может подаваться через преобразователь напряжения AC/DC (блок питания) или аккумуляторной батареей. Преобразователь напряжения подключается посредством разъема 2.1 мм с центральным положительным полюсом. Провода от батареи подключаются к выводам Gnd и Vin разъема питания.

Платформа может работать при внешнем питании от 6 В до 20 В. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, при этом платформа может работать нестабильно. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 В до 12 В.

  • VIN. Вход используется для подачи питания от внешнего источника (в отсутствие 5 В от разъема USB или другого регулируемого источника питания). Подача напряжения питания происходит через данный вывод.
  • 5V. Регулируемый источник напряжения, используемый для питания микроконтроллера и компонентов на плате. Питание может подаваться от вывода VIN через регулятор напряжения, или от разъема USB, или другого регулируемого источника напряжения 5 В.
  • 3V3. Напряжение на выводе 3.3 В генерируемое встроенным регулятором на плате. Максимальное потребление тока 50 мА.
  • GND. Выводы заземления.
Память

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

Входы и Выходы

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

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

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

  • I2C: 4 (SDA) и 5 (SCL). Посредством выводов осуществляется связь I2C (TWI), для создания которой используется библиотека Wire.

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

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

Обратите внимание на соединение между выводами Arduino и портами ATmega328.

Связь

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

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

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

Программирование

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

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

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

Автоматическая (программная) перезагрузка

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

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

На Uno имеется возможность отключить линию автоматической перезагрузки разрывом соответствующей линии. Контакты микросхем с обоих концов линии могут быть соединены с целью восстановления. Линия маркирована «RESET-EN». Отключить автоматическую перезагрузку также возможно подключив резистор 110 Ом между источником 5 В и данной линией.

Токовая защита разъема USB

В Arduino Uno встроен самовостанавливающийся предохранитель (автомат), защищающий порт USB компьютера от токов короткого замыкания и сверхтоков. Хотя практически все компьютеры имеют подобную защиту, тем не менее, данный предохранитель обеспечивает дополнительный барьер. Предохранитель срабатыват при прохождении тока более 500 мА через USB порт и размыкает цепь до тех пока нормальные значения токов не будут востановлены.

Физические характеристики

Длина и ширина печатной платы Uno составляют 6.9 и 5.3 см соответственно. Разъем USB и силовой разъем выходят за границы данных размеров. Четыре отверстия в плате позволяют закрепить ее на поверхности. Расстояние между цифровыми выводами 7 и 8 равняется 0,4 см, хотя между другими выводами оно составляет 0,25 см.

Arduino.ru

плата Arduino Uno

Существует несколько версий платформ Arduino. Последняя версия Leonardo базируется на микроконтроллере ATmega32u4. Uno, как и предыдущая версия Duemilanove построены на микроконтроллере Atmel ATmega328 (техническое описание). Старые версии платформы Diecimila и первая рабочая Duemilanoves были разработаны на основе Atmel ATmega168 (техническое описание), более ранние версии использовали ATmega8 (техническое описание). Arduino Mega2560, в свою очередь, построена на микроконтроллере ATmega2560 (техническое описание).

Примечание: На всю документацию Arduino распространяется лицензия ShareAlike 3.0 Creative Commons Attribution. Обратитесь к странице «Вы хотите собрать Arduino?» (англ) за более подробной информацией по разработке собственной платформы.

Версии платформы Arduino:

Ниже представлены основные версии плат Arduino:

  • Due — новая плата на базе ARM микропроцессора 32bit Cortex-M3 ARM SAM3U4E.
  • Leonardo — последняя версия платформы Arduno на ATmega32u4 микроконтроллере . Отличается разъемом microUSB, по размерам совпадает с UNO.
  • Yun (описание на англ.) — новая плата, с встроенной поддержкой WiFi на базе ATmega32u4 and the Atheros AR9331
  • Micro — новое компактное решение на базе ATmega32u4.
  • Uno — самая популяраня версия базовой платформы Arduino USB. Uno имеет стандартный порт USB. Arduino Uno во многом схожа с Duemilanove, но имеет новый чип ATMega8U2 для последовательного подключения по USB и новую, более удобную маркировку вход/выходов. Платформа может быть дополнена платами расширения, например, пользовательскими платами с различными функциями.
  • Arduino Ethernet — контроллер со встроенной поддержкой работы по сети и с опциональной возможностью питания по сети с помощью модуля POE (Power over Ethernet).
  • Duemilanove — является предпоследней версией базовой платформы Arduino USB. Подключение Duemilanove производится стандартным кабелем USB. После подключения она готова к использованию. Платформа может быть дополнена платами расширения, например, пользовательскими платами с различными функциями.
  • Diecimila — предыдущая версия базовой платформы Arduino USB.
  • Nano — это компактная платформа, используемая как макет. Nano подключается к компьютеру при помощи кабеля USB Mini-B.
  • Mega ADK — версия платы Mega 2560 с поддрежкой USB host интерфейса для связи с телефонами на Android и другими устройствами с USB интерфейсом.
  • Mega2560 – новая версия платы серии Mega. Построена на базе Atmega2560 и с использованием чипа ATMega8U2 для последовательного соединения по USB порту.
  • Mega – предыдущая версия серии Mega на базе Atmega1280.
  • Arduino BT платформа с модулем Bluetooth для беспроводной связи и программирования. Совместима с платами расширения Arduino.
  • LilyPad– платформа, пурпурного цвета, разработанная для переноски, может зашиваться в ткань.
  • Fio – платформа разработана для беспроводных применений. Fio содержит разъем для радио XBee, разъем для батареи LiPo и встроенную схему подзарядки.
  • Mini – самая маленькая платформа Arduino. Прекрасно работает как макетная модель, или, в проектах, где пространство является критическим параметром. Платформа подключается к компьютеру при помощи адаптера Mini USB.
  • Адаптер Mini USB – плата, конвертирующая подключение USB в линии 5 В, GND, TX и RX для соединения с платформой Arduino Mini или другими микроконтроллерами.
  • Pro – платформа, разработанная для опытных пользователей, может являться частью большего проекта. Она дешевле, чем Diecimila и может питаться от аккумуляторной батареи, но в тоже время требует дополнительной сборки и компонентов.
  • Pro Mini – как и платформа Pro разработана для опытных пользователей, которым требуется низкая цена, меньшие размеры и дополнительная функциональность.
  • Serial – базовая платформа с интерфейсом RS232 для связи и программирования. Плата легко собирается даже начинающими пользователями. (включает схемы и файлы CAD)
  • Serial Single Sided – платформа разработана для ручной сборки. Она обладает чуть большим размером, чем Diecimila, но совместима с платами расширения Arduino.
  • USB Serial Light Адаптер — адаптер, позволяющий подключать платы Arduino к компьютеру для обмена данными и заливки скетчей. Удобен для программирования таких плат, как Arduino Mini, Arduino Ethernet и других, не имеющих своего разъема USB
Платы расширения

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

  • Плата расширения WiFiиспользуется для соединения с беспроводными сетями стандарта 802.11 b/g.
  • Плата расширения Xbee Shield обеспечивает при помощи модуля Maxstream Xbee Zigbee беспроводную связь нескольким устройствам Arduino в радиусе до 35 метров (в помещении) и до 90 метров (вне помещения).
  • Плата расширения Motor Shield обеспечивает управление двигателями постоянного тока и чтение датчиков положения.
  • Плата расширения Ethernet Shield обеспечивает подключение к интернету.
Рекомендуемые аппаратные средства других разработчиков

Испытанные и понравившиеся устройства других разработчиков, совместимые с программой Arduino:

Платформа Boarduino от Adafruit Industries. Предназначена для использования с кабелем FTDI USB-to-TTL-Serial или другим адаптером USB-to-serial. Доступна в виде пустой печатной платы или в комплекте.

Другие сопутствующие устройства

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

Arduino Uno

Arduino Uno — это устройство на основе микроконтроллера ATmega328 (datasheet). В его состав входит все необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (из них 6 могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъем USB, разъем питания, разъем для внутрисхемного программирования (ICSP) и кнопка сброса. Для начала работы с уcтройством достаточно просто подать питание от AC/DC-адаптера или батарейки, либо подключить его к компьютеру посредством USB-кабеля.

В отличие от всех предыдущих плат Ардуино, Uno в качестве преобразователя интерфейсов USB-UART использует микроконтроллер ATmega16U2 (ATmega8U2 до версии R2) вместо микросхемы FTDI.

На плате Arduino Uno версии R2 для упрощения процесса обновления прошивки добавлен резистор, подтягивающий к земле линию HWB микроконтроллера 8U2.

Изменения на плате версии R3 перечислены ниже:

  • Распиновка 1.0: добавлены выводы SDA и SCL (возле вывода AREF), а также два новых вывода, расположенных возле вывода RESET. Первый — IOREF — позволяет платам расширения подстраиваться под рабочее напряжение Ардуино. Данный вывод предусмотрен для совместимости плат расширения как с 5В-Ардуино на базе микроконтроллеров AVR, так и с 3.3В-платами Arduino Due. Второй вывод ни к чему не подсоединен и зарезервирован для будущих целей.
  • Улучшена помехоустойчивость цепи сброса.
  • Микроконтроллер ATmega8U2 заменен на ATmega16U2.

«Uno» (в переводе с итальянского — «один») назван по случаю предстоящего выпуска Arduino 1.0. Совместно с Arduino 1.0 данные устройства будут базовыми версиями Ардуино. Uno — эталонная модель платформы Arduino и является последней в серии USB-плат; для сравнения с предыдущими версиями, см. список плат Arduino.

Характеристики

Микроконтроллер ATmega328
Рабочее напряжение
Напряжение питания (рекомендуемое) 7-12В
Напряжение питания (предельное) 6-20В
Цифровые входы/выходы 14 (из них 6 могут использоваться в качестве ШИМ-выходов)
Аналоговые входы 6
Максимальный ток одного вывода 40 мА
Максимальный выходной ток вывода 3.3V 50 мА
Flash-память 32 КБ (ATmega328) из которых 0.5 КБ используются загрузчиком
SRAM 2 КБ (ATmega328)
EEPROM 1 КБ (ATmega328)
Тактовая частота 16 МГц

Схема и исходный проект

Файлы EAGLE: arduino-uno-Rev3-reference-design.zip (ПРИМЕЧАНИЕ: совместимо с версиями Eagle не ниже 6.0)

Примечание: В файлах проекта Ардуино могут фигурировать микроконтроллеры ATmega8, 168 или 328. Например, в последних моделях используется микроконтроллер ATmega328, но на схеме может быть указан микроконтроллер ATmega8. Это не является ошибкой, поскольку все три микросхемы полностью совместимы между собой по выводам.

Питание

Arduino Uno может быть запитан от USB либо от внешнего источника питания — тип источника выбирается автоматически.

В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер или аккумулятор/батарея. Штекер адаптера (диаметр — 2.1мм, центральный контакт — положительный) необходимо вставить в соответствующий разъем питания на плате. В случае питания от аккумулятора/батареи, ее провода необходимо подсоединить к выводам Gnd и Vin разъема POWER.

Напряжение внешнего источника питания может быть в пределах от 6 до 20 В. Однако, уменьшение напряжения питания ниже 7В приводит к уменьшению напряжения на выводе 5V, что может стать причиной нестабильной работы устройства. Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.

Ниже перечислены выводы питания, расположенные на плате:

  • VIN. Напряжение, поступающее в Arduino непосредственно от внешнего источника питания (не связано с 5В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, когда устройство запитано от внешнего адаптера.
  • 5V. На вывод поступает напряжение 5В от стабилизатора напряжения на плате, вне независимости от того, как запитано устройство: от адаптера (7 — 12В), от USB (5В) или через вывод VIN (7 — 12В). Запитывать устройство через выводы 5V или 3V3 не рекомендуется, поскольку в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
  • 3V3. 3.3В, поступающие от стабилизатора напряжения на плате. Максимальный ток, потребляемый от этого вывода, составляет 50 мА.
  • GND. Выводы земли.
  • IOREF. Этот вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера Ардуино. В зависимости от напряжения, считанного с вывода IOREF, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5В, так и с 3.3В-устройствами.

Память

Объем флеш-памяти ATmega328 составляет 32 КБ (из которых 0.5 КБ используются загрузчиком). Микроконтроллер также имеет 2 КБ памяти SRAM и 1 КБ EEPROM (из которой можно считывать или записывать информацию с помощью библиотеки EEPROM).

Входы и выходы

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

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

В Arduino Uno есть 6 аналоговых входов (A0 — A5), каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения). По умолчанию, измерение напряжения осуществляется относительно диапазона от 0 до 5 В. Тем не менее, верхнюю границу этого диапазона можно изменить, используя вывод AREF и функцию analogReference(). Помимо этого, некоторые из аналоговых входов имеют дополнительные функции:

  • TWI: вывод A4 или SDA и вывод A5 или SCL. С использованием библиотеки Wire данные выводы могут осуществлять связь по интерфейсу TWI.

Помимо перечисленных на плате существует еще несколько выводов:

  • AREF. Опорное напряжение для аналоговых входов. Может задействоваться функцией analogReference().
  • Reset. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения

Смотрите также соответствие выводов Arduino и ATmega328. Распиновка для микроконтроллеров ATmega8, 168 и 328 идентична.

Связь

Arduino Uno предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega328 имеется приемопередатчик UART, позволяющий осуществлять последовательную связь посредством цифровых выводов 0 (RX) и 1 (TX). Микроконтроллер ATmega16U2 на плате обеспечивает связь этого приемопередатчика с USB-портом компьютера, и при подключении к ПК позволяет Ардуино определяться как виртуальный COM-порт. Прошивка микросхемы 16U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется. На платформе Windows необходим только соответствующий .inf-файл. В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных через микросхему-преобразователь USB-UART во время USB-соединения с компьютером, на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1, без использования USB-преобразователя, данные светодиоды не задействуются).

Библиотека SoftwareSerial позволяет реализовать последовательную связь на любых цифровых выводах Arduino Uno.

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

Программирование

Arduino Uno программируется с помощью программного обеспечения Ардуино (скачать). Для этого из меню Tools > Board необходимо выбрать «Arduino Uno» с микроконтроллером, соответствующим вашей плате. Для получения более подробной информации см. справку и примеры.

ATmega328 в Arduino Uno выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по оригинальному протоколу STK500 (описание, заголовочные файлы C).

Тем не менее, микроконтроллер можно прошить и через разъем для внутрисхемного программирования ICSP (In-Circuit Serial Programming), не обращая внимания на загрузчик; более подробно об этом см. соответствующие инструкции.

Исходный код прошивки микроконтроллера ATmega16U2 (или 8U2 на платах версии R1 и R2) находится в свободном доступе. Прошивка ATmega16U2/8U2 включает в себя DFU-загрузчик (Device Firmware Update), позволяющий обновлять прошивку микроконтроллера. Для активации режима DFU необходимо:

  • На платах версии R1: замкнуть перемычку на обратной стороне платы (возле изображения Италии), после чего сбросить 8U2.
  • На платах версий R2 и выше — для упрощения перехода в режим DFU присутствует резистор, подтягивающий к земле линию HWB микроконтроллера 8U2/16U2.

После перехода в DFU-режим для загрузки новой прошивки можно использовать программное обеспечение Atmel’s FLIP (для Windows) или DFU programmer (для Mac OS X и Linux). Альтернативный вариант — прошить микроконтроллер через разъем для внутрисхемного программирования ISP с помощью внешнего программатора, однако в этом случае DFU-загрузчик затрется. Для получения более подробной информации см. эти инструкции, составленные пользователями.

Автоматический (программный) сброс

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Arduino Uno спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Один из выводов ATmega8U2/16U2, участвующий в управлении потоком данных (DTR), соединен с выводом RESET микроконтроллера ATmega328 через конденсатор номиналом 100 нФ. Когда на линии DTR появляется ноль, вывод RESET также переходит в низкий уровень на время, достаточное для перезагрузки микроконтроллера. Данная особенность используется для того, чтобы можно было прошивать микроконтроллер всего одним нажатием кнопки в среде программирования Ардуино. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии DTR.

Однако эта система может приводить и к другим последствиям. При подключении Uno к компьютерам, работающим на Mac OS X или Linux, его микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой. После сброса на Arduino Uno активизируется загрузчик на время около полсекунды. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е. все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения. Соответственно, если в программе, работающей на Ардуино, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Ардуино, осуществляет отправку спустя секунду после установки соединения.

На плате Uno существует дорожка (отмеченная как «RESET-EN»), разомкнув которую, можно отключить автоматический сброс микроконтроллера. Для повторного восстановления функции автоматического сброса необходимо спаять между собой выводы, расположенные по краям этой дорожки. Автоматический сброс также можно выключить, подключив резистор номиналом 110 Ом между выводом RESET и 5В; для получения более подробной информации см. соответствующую ветку форума.

Защита USB от перегрузок

В Arduino Uno есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок. Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты. Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.

Физические характеристики

Максимальная длина и ширина печатной платы Uno составляет 6.9 см и 5.4 см соответственно, с учетом разъема USB и разъема питания, выступающих за пределы платы. Четыре крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.

Какой контроллер Arduino выбрать

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

Но прежде, самый частый вопрос: чем отличаются контроллеры итальянский, российский, китайский, оригинал, копия, подделка?

Платформа Arduino является открытой. Это значит, что любой может взять файлы с официального сайта и произвести точно такой же контроллер как оригинал или доработать его и выпустить свой контроллер с любыми изменениями. Получается любой абсолютно легально может выпускать свои контроллеры. Например, таким образом мы выпускаем контроллеры Smart Uno и Smart Leonardo, которые собираются в России, с контролем качества и расширенной гарантией, и ничем не уступающие своим итальянским аналогам. Или контроллеры Smart Nano, которые мы немного доработали, чтобы ими было удобнее пользоваться. Например, заменили USB разъём на более простой и популярный USB micro. Но доработки и качество сборки плат бывают разными. Например, очень много китайских производителей для удешевления производства используют свои китайские USB-преобразователи, и тогда подключение контроллера к компьютеру может вызвать большие трудности. Довольно часто заменяется и сам микроконтроллер на более дешёвый аналог, что может привести к полностью нерабочей плате. Не забывайте обращать внимание и на качество сборки, потому как некоторые производители зачастую могут что-то не установить на плату, выпустить с повреждёнными элементами. Обращайте внимание на цену — качественный контроллер не может стоить очень дешево.

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

Arduino Uno (Smart Uno). Это, можно сказать, стандарт линейки контролеров Arduino. Для него написано много скетчей, и в интернете можно найти огромное количество проектов. Он является самым простым и понятным для новичков, потому как многие обучающие наборы (в том числе линейка наборов «Смарт») построены на применении именно этого контроллера. Контроллер поддерживает все базовые интерфейсы (UART, I2C, SPI). Плата легко подключается к компьютеру с помощью USB-кабеля — что тоже является дополнительным удобством работы с контроллером. В основном памяти и мощности чипа достаточно для выполнения относительно простых и распространённых задач.

Итак, контроллер Uno:
прост в использовании
подходит для повседневных распространённых задач
имеет все базовые интерфейсы

Arduino Leonardo (Smart Leonardo). Leonardo отличается в первую очередь от предыдущей платы чипом, на котором он построен. Чип ATmega32u4 имеет встроенную USB-связь, что устраняет необходимость во вторичном преобразователе. Это позволяет Leonardo отображаться на подключенном компьютере в виде мыши и клавиатуры в дополнение к виртуальному последовательному COM-порту, а при прошивке контролера не занимает выводы 0 и 1. Также плата поддерживает большее количество аналоговых входов.

подойдёт для небольших проектов
большее количество аналоговых входов
имеет встроенную USB-связь

Arduino Nano (Smart Nano). Данные контроллеры очень похожи по функционалу на линейку Uno, ведь построены платы на одном и том же контроллере ( ATmega328P). Основное отличие плат Nano — в их формфакторе — такие платы намного меньше по размеру, что делает удобным размещение их в малых корпусах, либо в местах где есть ограничение пространства. Также платы имеют выводы (ножки) типа «папа» — что удобно для размещения на беспаечных макетных платах.

Подводя итог:
похож по функциям на Uno
плата небольшого размера
удобен для макетных плат

Arduino Mini . Уже по названию можно понять, что основное отличие данного типа контроллеров — в миниатюрности платы. Специально создан для небольших мест, куда требуется уместить много всего. Контроллер, опять же, очень напоминает Uno, ведь он построен на чипе ATmega328P. Однако, данная плата, не имеет встроенного USB-TTL конвертера, или говоря более простыми словами, не может подключиться к компьютеру напрямую через-USB кабель. Для программирования контроллера, потребуется приобрести отдельно USB-TTL конвертер, который и будет являться соединяющим звеном между контроллером и компьютером. Обратите внимание, что основная версия данного типа плат не имеет «ножек», к которым можно подключать внешнюю периферию. Поэтому, если вы приобретаете данный вид контроллера, вам нужно обладать паяльником.

Итак, что нужно знать перед покупкой:
миниатюрный размер платы
невозможно напрямую подключить к USB порту компьютера
нужно припаивать «ножки» самому

Arduino Micro (Pro Micro) . Форм фактор платы напоминает по размерам предыдущие две. Но в отличие от них является аналогом платы Leonardo. Отсюда и все преимущества Leonardo, но в миниатюрном корпусе. То есть он также имеет встроенную USB-связь, что устраняет необходимость во вторичном преобразователе. Это позволяет отображаться на подключенном компьютере в виде мыши и клавиатуры в дополнение к виртуальному последовательному COM-порту, а при прошивке контролера не занимает выводы 0 и 1. Плата также поддерживает большее количество аналоговых входов.

имеет миниатюрный размер платы
есть USB выход
встроенная USB-связь

Arduino Mega (Smart Mega). Здесь тоже название говорит о назначении. Данная плата имеет очень большое количество выводов — сюда можно подключить намного больше внешних устройств. У микроконтроллера намного больше мощности и памяти, что позволяет выполнять уже более сложные и нетривиальные задачи. Основные интерфейсы (UART, I2C, SPI) имеются в нескольких вариантах. Это также является большим плюсом для подключения внешней периферии. Однако, по-размеру, данная плата больше, что может послужить минусом для проектов, требовательных к размерам.

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

Arduino Due. Пожалуй, одна из самых мощных контроллерных плат из всей линейки Arduino. Имеет самый мощный из вышеперечисленных контроллеров, обладающий большой тактовой частотой и памятью. Подойдёт для крупных и сложных Arduino-проектов. Будьте внимательны, в отличие от большинства плат, пины данного контроллера работают на 3.3 В. Подача на вывод 5В может повредить контроллер.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *