В предыдущей статье было рассмотрено несложное USB HID устройство на микроконтроллере ATmega8. В нем нет аппаратного модуля USB и ресурсов микроконтроллера хватает для поддержки сравнительно медленной версии USB 1.1 со скоростью обмена 1,5 Мбит/с (Low-Speed). Существуют микроконтроллеры семейства AVR фирмы Atmel имеющие встроенный аппаратный модуль USB, который как правило поддерживает USB 2.0 и обеспечивает скорость обмена 12 Мбит/с (Full-Speed). Например AT90USB162, AT90USB1287, ATmega16U4, ATmega32U4 и т. д. Их преимущество кроме увеличенной скорости обмена еще в том что процессор микроконтроллера не участвует в приеме и дешифрации USB пакетов, а значит его ресурсы можно использовать для других целей повысив общую производительность микроконтроллера по сравнению с программной реализацией.
Одним из недостатков этих микроконтроллеров - отсутствие вариантов в DIP корпусе. В продаже можно найти различные платы с микроконтроллером и его обвязкой (цепи питания и сброса, цепи тактирования, USB и т. д.) Одна из таких плат это Arduino Pro Micro с микроконтроллером ATmega32U4.
Выглядит плата так.
Прошивается это "чудо" по USB. В микроконтроллере нестандартный загрузчик (не тот что по умолчанию с завода, а от Arduino). Он активируется при сбросе микроконтроллера и ждет начала программирования в течение нескольких секунд. Если за это время программирование не началось, работа загрузчика завершается и микроконтроллер начинает выполнять основную программу. Во время работы загрузчика в системе присутствует виртуальный COM порт с именем "Arduino Leonardo bootloader (COMx)", где COMx это номер COM порта, присвоенный системой.
Прошивка выполняется программной Boot32u4.exe.
В программе нужно указать путь к прошивке формата HEX и выбрать COM порт загрузчика. Его можно узнать в диспетчере устройств в момент активности загрузчика. Как писал выше у него имя "Arduino Leonardo bootloader (COMx)", где COMx это номер COM порта, присвоенный системой.
Т. к. загрузчик активен всего несколько секунд, то для упрощения прошивки в программе введен режим ожидания появления виртуального порта с таймаутом 20 секунд.
Последовательность прошивки такова.
1. Необходимо запустить программу Boot32u4.exe и при необходимости указать путь к прошивке и номер порта, а затем нажать на кнопку "Прошить".
2. В течение 20 секунд после этого необходимо перезагрузить микроконтроллер кратковременно замкнув на плате выводы RST и GND.
3. Ожидать завершения прошивки.
Теперь о тестовой прошивке и программе для компьютера. Они как и в прошлой статье были написаны на BASCOM-AVR (прошивка) и PureBasic (программа для ПК). Компьютерная программа осталась без изменений и для тестирования ее можно взять из прошлой статьи.
Светодиод использован находящийся на плате, а кнопку нужно подключить к выводам 2 и GND платы.
Скачать тестовую прошивку и программу для компьютера. http://pure-basic.narod.ru/forum_files/ … _16MHz.zip
Дальнейшее развитие темы - USB HID устройство на STM32F103C8T6 Простое USB HID устройство на STM32F103C8T6