Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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

Общие сведения

Микроконтроллер Arduino Micro – плата микроконтроллера на базе ATmega32u4 (техническое описание), разработанный совместно (in conjunction) с Adafruit. Плата имеет 20 цифровых вход/выходов (из них 7 могут использоваться в качестве выходов ШИМ и 12 - как аналоговые входы), кварцевый генератор частотой 16 МГц, гнездо микро-USB, разъем ICSP и кнопку reset. На ней есть все, что необходимо для работы с микроконтроллером. Чтобы запустить Arduino Micro, просто подключите его к компьютеру с помощью кабеля микро-USB. Форм-фактор контроллера позволяет легко разместить его на макетной плате.

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

 

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

Микроконтроллер ATmega32u4
Рабочее напряжение 5 В
Входное напряжение (рекомендуемое) 7-12 В
Входное напряжение (предельное) 6-20 В
Цифровые Входы/Выходы  
Каналы ШИМ  
Аналоговые входные каналы  
Постоянный ток через вход/выход 40 мА
Постоянный ток для вывода 3.3 В 50 мА
Флеш-память 32 Кб (ATmega32u4) из которых 4 Кб используются для загрузчика
ОЗУ 2,5 Кб (ATmega32u4)
EEPROM 1 Кб (ATmega32u4)
Тактовая частота 16 МГц

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

Файлы EAGLE: arduino-micro-reference-design.zip

Принципиальная схема: arduino-micro-schematic-rev3b.pdf

 

Питание

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

Внешнее питание (не USB) может поступать либо от источника питания постоянного тока, либо с батареи. Выводы батареи или источника питания должны подключаться к выводам Gnd и Vin. Плата Arduino Micro может работать при подаче внешнего питания от 6 до 20 В. Однако при подаче напряжения ниже 7 В, на вывод 5 В может поступать менее пяти вольт, что приведет к нестабильной работе платы. При использовании более 12 В, стабилизатор напряжения может перегреться и вызвать повреждение платы.

 

Выводы питания:

· VIN. Входное напряжение Arduino при использовании внешнего источника питания (в отличие от 5 В с USB соединения или другого регулируемого источника питания). Вы можете подавать напряжение на этот вывод.

· 5V. Регулируемое напряжение питания для питания микроконтроллера и других компонентов на плате. Может поступать либо с VIN через встроенный стабилизатор, либо через USB или другой источник стабилизированный источник питания 5 В.

· 3V. Питание 3,3 В генерируется встроенным стабилизатором. Максимальный ток 50 мА.

· GND. Выводы земли.

Память

ATmega32u4 имеет 32 КБ флеш-памяти (вместе с 4 КБ, которые используются загрузчиком (бутлодером)). Также контроллер имеет 2,5 КБ ОЗУ и 1 КБ EEPROM (чтение и запись которой производится с помощью библиотеки EEPROM).

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

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

· Последовательная шина: 0 (RX) и 1 (TX). Используются для получения (RX) и передачи (TX) последовательных данных TTL уровней с использованием аппаратных возможностей последовательной шины ATmega32U4. Обратите внимание, что на Micro класс Serial относится к (CDC) соединению; для последовательного TTL соединения на выводах 0 и 1 используйте класс Serial1.

· TWI: 2 (SDA) и 3 (SCL). Поддерживает TWI соединение с использованием библиотеки Wire.

Внешние прерывания: 0(RX), 1(TX), 2 и 3. Эти выводы могут быть сконфигурированы для запуска прерывания по нижней границе, по фронту или спаду, или по изменению значения. Детали описаны в функцииattachInterrupt().

· ШИМ: 3, 5, 6, 9, 10, 11 и 13. С помощью функции analogWrite() обеспечивает 8-битный ШИМ.

· SPI: на разъеме ICSP. Данные выводы поддерживают связь по SPI с использованием библиотеки SPI. Обратите внимание, что выводы SPI не подключены ни к каким цифровым вход/выходам, как на Arduino Uno, они доступны только на соединителе ICSP и ближайших выводах, маркированных MISO, MOSI и SCK.

· RX_LED/SS. Это дополнительный вывод по сравнению с Leonardo. Он подключен к RX_LED, который показывает активность передачи по шине USB, но также может использоваться как вывод выбора подчиненного устройства (SS) для связи по SPI.

· LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. При высоком уровне на этом выводе светодиод включен, при низком уровне – выключен.

· Аналоговые входы: A0 - A5, A6 - A11 (на цифровых выводах 4, 6, 8, 9, 10 и 12). Всего Micro имеет 12 аналоговых входов, причем входы с A0 по A5 маркированы непосредственно на выводах, а другие, к которым также можно получить доступ в программе с использованием констант с A6 до A11, распределены соответственно на цифровых выводах 4, 6, 8, 9, 10 и 12. Все они также могут использоваться в качестве цифровых вход/выходов. Каждый аналоговый вход обеспечивает разрешающую способность 10 бит (т.е. 1024 различных значения). По умолчанию измерения на всех аналоговых входах производятся от потенциала земли до 5 В, но верхний предел этого диапазона можно изменить, используя вывод AREF и функцию analogReference().

На плате имеются еще два вывода:

· AREF. Опорное напряжение для аналоговых входов. Используется с функцией analogReference().

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

Цоколевка

 

 

Распределение выводов Arduino Micro показывает полную функциональность всех выводов для использования их аналогично Leonardo.

Смотри также соответствие между выводами Arduino и портами ATmega32u4.

 

Связь

Micro имеет несколько средств для связи с компьютером, другим Arduino, или иными микроконтроллерами. Контроллер ATmega32U4 предоставляет UART TTL (5V) для последовательной связи, доступный на цифровых выводах 0 (RX) и 1 (TX). Также 32U4 разрешает последовательный обмен (CDC) через USB и появляется для компьютерного программного обеспечения как виртуальный COM-порт. Кроме того, кристалл работает как «full speed» USB устройство при использовании стандартных драйверов USB COM. Для Windows требуется.inf файл (смотри пункт 4 для Arduino Uno). Программное обеспечение Arduino включает монитор последовательной шины (Serial monitor), позволяющий принимать и посылать с платы Arduino простые текстовые данные. Светодиоды RX и TX на плате будут вспыхивать при передаче данных через USB соединение с компьютером (но не при последовательной связи через выводы 0 и 1) В библиотеке SoftwareSerial предусмотрена последовательная связь через любой из цифровых выводов Micro.

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

Micro может появляться как обычная клавиатура или мышь, и может быть запрограммирован для управления этими устройствами ввода при помощи классов Keyboard и Mouse.

 

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

Micro программируется с помощью программного обеспечения Arduino (скачать). В меню Tools > Boardmenu выберите плату "Arduino Micro". Более подробную информацию можно найти в справочнике и инструкциях.

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

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

 

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

Вместо того чтоб требовать физического нажатия кнопки сброса перед загрузкой, Micro разработан так, что его можно сбросить программно при помощи кода, запущенного на подключенном компьютере. Сброс запускается, когда виртуальный (CDC) последовательный / COM порт Micro открывается при скорости 1200 бод и затем закрывается. При этом процессор будет сброшен, разрывая USB подключение к компьютеру (что означает, что виртуальный последовательный COM порт) исчезнет. После сброса процессора стартует загрузчик, который остается активным около 8 секунд. Загрузчик также может быть запущен нажатием кнопки Reset на Micro. Обратите внимание, что при первой подаче питания платы, она сразу перейдет к выполнению пользовательского кода, при его наличии, а не к запуску загрузчика.

Вследствие такого способа сброса платы Micro, лучше всего перед загрузкой инициировать сброс программой Arduino, особенно если вы обычно перед загрузкой нажимаете кнопку Reset на других платах. Если программа не может сбросить плату, можно всегда запустить бутлодер нажатием кнопки сброса на плате.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...