Макетная плата AVR-USB162MU Печать
Добавил(а) microsin   

Макетная плата AVR-USB162MU предназначена для разработки миниатюрных устройств USB на основе библиотеки LUFA. Чип AT90USB162-MU, установленный на плату, имеет аппаратный интерфейс USB и подходит для устройств USB 2.0, работающих на скоростях до Full Speed включительно. Платка настолько мала, что помещается в корпус обычной флешки.

AVR-USB162MU_IMG_1136.JPG AVR-USB162MU_IMG_1139.JPG AVR-USB162MU-in-USB-flash-box-20120910

AVR-USB162MU является аналогом teensy 1.0 (см. Ссылки [3]). Схема и разводка внешних контактов совпадают, доработана только возможность переключения питания портов ввода/вывода чипа с помощью перемычки SJ1. Перемычка SJ1 может переключать рабочий уровень напряжения портов ввода/вывода чипа (ножки PBx, PCx, PDx) либо на 3.3V, либо на 5V (по умолчанию перемычка установлена в положение на 5 вольт).

AVR-USB162MU-sch.png AVR-USB162MU-brd-top.png AVR-USB162MU-brd-bottom.png

Печатная плата AVR-USB162MU спроектирована с целью максимального удобства макетирования устройств USB. Можно использовать макетное поле для напайки схемы. Если макетное поле не нужно, то его можно выломать, получив малогабаритное устройство USB. И, наконец, на края платы можно напаять линейки контактов с шагом 2.54 мм, и использовать плату в радиоаппаратуре как модуль интерфейса USB.

Для макетной платы не нужен программатор - программа легко записывается через интерфейс USB с помощью фирменной технологии Atmel - бутлоадера DFU и оболочки программатора Flip (описание процесса см. по ссылке [2], загрузить оболочку программатора Flip можно по ссылке [4]).

[Описание компонентов платы]

JP1, JP2 - внешние коннекторы платы. Разводка у них на 100% совпадает с teensy 1.0. Коннекторы JP1 и JP2 используются для подключения к внешним устройствам, на них также выведено питание.
JP3 - на этот коннектор заведено питание чипа, земля и сигнал сброса. Этот коннектор может использоваться для питания платы и для подключения аппаратного отладчика через шину debugWIRE.
LED1 - индикационный светодиод, который можно зажигать программно, если настроить ножку PD6 чипа на вывод, и установить состояние ножки PD6 в 0.
S1 - кнопка сброса, которая автоматически переводит плату в режим активизации бутлоадера (с помощью C5, R5).
SJ1 - перемычка для управления напряжением питания портов ввода/вывода - либо 5 вольт, либо 3.3 вольт. Значение по умолчанию, в которое изначально установлена перемычка, 5 вольт. Перемычка "переставляется" с помощью скальпеля и капли припоя (перемычка расположена с нижней стороны платы). Положение перемычки не оказывает никакого влияния на работу интерфейса USB и бутлоадера.
USB - коннектор, через который можно запитать устройство. Через этот же коннектор происходит обмен сигналами с реализованным на чипе AT90USB162-MU устройством USB.
R3 - резистор предназначен для измерения тока потребления платы при питании её от USB.
Q1 - кварцевый резонатор, частота 16 МГц.
C5, R5 - конденсатор и резистор, предназначенные для формирования сигнала HWB (нолик на ножке порта PD7), активизирующего бутлоадер.

AVR-USB162MU-pinout

[Чем программировать - USB bootloader Atmel, Flip DFU]

В микроконтроллер прошито заводское программное обеспечение (bootloader, называемое также DFU - Device Firmware Uploader или Device Firmware Upgrade), позволяющее загрузить программу пользователя в память микроконтроллера через интерфейс USB и запустить её на выполнение. Это позволяет писать и отлаживать программы, не имея вообще никакого отладчика и программатора. Конечно, не те удобства, что предоставляет аппаратный отладчик JTAGICE-mkII, но зато дешево и сердито, затраты для быстрого старта минимальные. Программа и технология, предоставляющая такие возможности, называется Flip (FLexible In-system Programmer), программа бесплатна и доступна для скачивания на сайте atmel.com. Подробная документация, как все это делается, также доступна, правда на английском языке.

После заливки firmware с помощью загрузчика Flip DFU сам загрузчик не стирается, поэтому Вы можете перепрошивать макетную плату через USB практически неограниченное количество раз. Это очень удобно использовать для обновления программного обеспечения в приборах, где работает макетная плата, потому что ISP-программатор оказывается не нужен.

Прошивку-bootloader, записанную на фабрике Atmel (она обеспечивает работу Flip), нельзя считать ISP-программатором, поскольку она защищена lock-битами. Для того, чтобы можно было воспользоваться ISP-программатором или debugWIRE-отладчиком, чип придется стереть, что полностью уничтожит Flip-bootloader. Но особо печалиться по этому поводу не надо, так как на сайте atmel.com доступен для свободного скачивания бинарник bootloader-a (см. [9]), и его всегда можно восстановить. Как я понял, использование Flip исключает применение для отладки обычного ISP-программатора и отладчика debugWIRE, и наоборот.

 AT90USB162fuses.JPG  AT90USB162lockbits.JPG

Установка программы, интерфейс Flip и работа с ним под Windows до предела упрощены. Скачайте инсталлятор по ссылке [6], установите. При подключении макетной платы AVR-USB162 по USB система запросит драйвера, подсуньте ей путь до c:\Program Files\Atmel\Flip 3.3.2\usb\ (это драйвер для bootloadera и Flip), после этого в системе появится устройство AT90USB162:
AT90USB162device.JPG

Запускаем программу Flip, выбираем в меню Device -> Select... -> AT90USB162, жмем вторую кнопочку со шнурком на картинке (Select a Communication Medium), выбираем USB, в появившемся маленьком окошке жмем Open. Вуаля! Появился нехитрый интерфейс программатора Flip:
AT90USB162flip01.JPG

Как видно на скриншоте, доступно для использованием пользователем только 12 килобайт памяти (4 килобайта съел Flip-bootloader).

Имеется также удобная консольная программа batchisp.exe, избавляющая от лишних телодвижений при программировании памяти микроконтроллера. Вот пример командного файла для программирования памяти чипа AT90USB162:

"c:\Program Files\Atmel\Flip 3.4.7\bin\batchisp.exe" -device AT90USB162 -hardware usb -operation erase f memory flash blankcheck loadbuffer release\psw-storage.hex program verify

@pause

batchisp-FLIP-AT90USB162-example

В этом примере сразу друг за другом выполняются 4 операции: очистка FLASH памяти чипа (команда erase), проверка качества очистки памяти (команда blankcheck), программирование памяти файлом release\psw-storage.hex (команды loadbuffer и program), проверка записанных данных программы (команда verify). Весь процесс занимает считанные секунды.

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

start < reset | noreset > address

Если указана опция reset, то на ножке RESET микроконтроллера будет сформирован импульс сброса, который может использоваться для сброса внешних схем. Если к ножке сброса RESET микроконтроллера никаких устройств не подключено, то может быть указана опция noreset. Параметр address задает адрес, не который должен произойти безусловный переход (обычно это адрес 0). Пример:

"%ProgramFiles%\Atmel\Flip 3.4.7\bin\batchisp.exe" -device AT90USB162 -hardware usb -operation erase f memory flash blankcheck loadbuffer debug\psw-storage.hex program verify start noreset 0

[Подключение ISP-программатора]

Если зачем-то необходимо поменять фьюзы чипа (напомню, что по умолчанию фьюзы чипа AT90USB162 установлены в состояние 0x5E low byte, 0xD9 high byte, 0xF4 extended byte) или прошить биты защиты, то к плате можно подключить стандартный ISP-программатор через коннектор JP3 и ножки PB1, PB2, PB3 коннектора JP1.

AVR-USB162-MU-ISPconnect03.png AVR-USB162-MU-ISPconnect01.png AVR-USB162-MU-ISPconnect02_IMG_1096.jpg

[Технические параметры чипа AT90USB162-MU, установленного на макетной плате]

Тип ядра чипа mega AVR, 8 бит
Аппаратный перемножитель отсутствует
Размер памяти программ 16 кБайт (Flash)
Бутлоадер DFU Flip
ISP есть
Самопрограммирование есть
EEPROM 512 байт
SRAM 512 байт
Отладка DebugWire
RTC с отдельным кварцем отсутствует
8-битный таймер 1
16-битный таймер 1
Входные каналы захвата 1/2
Каналы ШИМ (PWM) 4
USB режим устройства, Full Speed USB 2.0
SPI 1+1 USART master
TWI (I2C) отсутствует
USART 1
CAN отсутствует
LIN отсутствует
ADC (АЦП) отсутствует
Внутренний термодатчик отсутствует
Аналоговый компаратор 1
Векторы прерываний и сброса 29
Внешних прерываний 21
Детектирование проблем питания (BOD) есть
Внутренний RC генератор есть, 128 кГц + калиброванный 8 МГц
Сторожевой таймер (WatchDog, WDT) есть
ФАПЧ, прескалер для тактовой частоты есть
picoPower отсутствует
Быстродействие 16 MIPS
Максимальная тактовая частота 16 МГц
Напряжение питания 2.7 - 5.5 вольт
Максимум портов ввода/вывода 22 (у макетной платы 21)
Тип корпуса QFN32, размеры 5x5 мм, шаг выводов 0.5 мм

[Рекомендуемые инструменты разработчика и библиотеки]

AVR Dragon site:atmel.com - In-System Debugger (внутрисхемный аппаратный отладчик) для 8-битных и 32-битных микроконтроллеров AVR с OCD компании Atmel
AVR JTAGICE mkII site:atmel.com - In-System Debugger (внутрисхемный аппаратный отладчик) для 8-битных и 32-битных микроконтроллеров AVR компании Atmel
AVR ONE! site:atmel.com - In-System Debugger (внутрисхемный аппаратный отладчик) для 8-битных и 32-битных микроконтроллеров AVR
AVR Studio 4 - IDE для 8-битных микроконтроллеров AVR компании Atmel
QTouch Studio site:atmel.com - среда разработки для поддержки микроконтроллеров AT91SAM и AVR.
IAR Embedded Workbench AVR
AVR Application Notes site:atmel.com - документация и апноуты на английском языке
Библиотека LUFA (см. Ссылки [1])
Библиотека libusb (см. Ссылки [6], [7])

[Ссылки]

1. LUFA - бесплатная библиотека USB для микроконтроллеров Atmel AVR.
2. Макетная плата AVR-USB162.
3. Teensy Schematic site:turninginspirations.com - Teensy 1.0 и другие представители семейства teensy.
4. Flip - in-system programming of flash devices site:atmel.com - программатор Flip, фирменная утилита Atmel, работающая с бутлоадером USB [9]. С помощью утилиты Flip Вы можете прошить плату через USB без программатора (используется USB DFU Bootloader, встроенный в микросхему AT90USB162). По этой же ссылке доступно для закачки firmware бутлоадеров DFU Flip (см. также [9]).
5. AT90USB162-MU pdf site:atmel.com - даташит на чип AT90USB162-MU.
6. LibUSB site:libusb.org - библиотека libusb - для написания программ, работающих с USB-устройствами на компьютере (ПО хоста).
7. Разработка устройства USB - как начать работу с библиотеками AVR USB (V-USB) и libusb.
8. Старая версия Flip 3.3.2.
9. bl_usb_162v105.zip - прошивка bootloader для чипа AT90USB162. Поддерживаются частоты кварцев 8 и 16 МГц.