Макетная плата metaboard (AVR микроконтроллер ATmega168PA или ATmega328P) Печать
Добавил(а) microsin   

Metaboard - дешевая Arduino-совместимая макетная плата (её можно программировать прямо из популярной среды разработки Arduino IDE). Metaboard имеет интерфейс USB, программируется прямо через него, и позволяет делать USB-устройства на основе библиотеки V-USB. Использование недефицитных деталей (микроконтроллер ATmega168 или ATmega328 в корпусе DIP, резисторы и конденсаторы со штыревыми выводами) позволяет собрать такую плату самостоятельно в домашних условиях.

Metaboard-circuit.gif metaboard-IMG_1415.JPG metaboard-IMG_1418.JPG metaboard-IMG_1402.JPG metaboard-IMG_1412.JPG

Metaboard можно программировать (прошивать написанную Вами программу firmware в память микроконтроллера) через интерфейс USB с помощью программы Khazama AVR Programmer, avrdude, а также прямо из среды разработки Arduino. Для входа в режим программирования нужно подключить metaboard к компьютеру по USB, установить перемычку JP6 Upload и нажать кнопку S1 Reset. Для загрузки программы в память чипа используется USB бутлоадер с открытым исходным кодом USBasp, USBaspLoader (см. ссылки к статье [1], а также архив по ссылке [3]), который уже прошит в память микроконтроллера metaboard. При загрузке программы пользователя бутлоадер USBasp не стирается, и может использоваться многократно.

Подавать питание на плату metaboard можно либо от интерфейса USB (перемычка JP5 должна быть в положении 1-2), либо от источника постоянного тока 7..15 вольт через стандартный 5.5 мм джек (перемычка JP5 должна быть в положении 2-3). Коннекторы JP1, JP2, JP3 и JP4 можно использовать как порты ввода/вывода для подключения внешних устройств. Ножки портов PD2, PD4 и PD7 используются для подключения сигналов USB и активизации бутлоадера, однако также выведены на разъем JP1 (см. принципиальную схему), имейте это в виду при программировании портов ввода-вывода и проектировании своей принципиальной схемы.

Под "стандартным" Ардуино обычно подразумевают Arduino Uno. Если внимательно изучить принципиальную схему metaboard, то различия становятся понятны. Если кратко, то основные различия следующие:

1. Главное отличие, из которого вытекают все остальные отличия: на плате metaboard по-другому подключен к микроконтроллеру интерфейс USB. Если на Arduino USB подключен к порту UART микроконтроллера через микросхему FT232RL (или выполняющая аналогичные функции микросхема Atmel Atmega8U2/Atmega16U2), то на плате mataboard такой микросхемы нет, и порт USB подключен к портам GPIO микроконтроллера. Чтобы главное отличие было понятнее, давайте рассмотрим диаграмму разводки платы Arduino Uno, где показаны различия в организации интерфейса USB от платы metaboard.

metaboard-Arduino-difference

Голубым цветом показана организация USB у Arduino Uno, зеленым цветом у metaboard. Как видно на схеме, у Arduino Uno имеется отдельный аппаратный узел для USB (аппаратный преобразователь USB-COM порт, класс устройств USB CDC), и под него задействованы порты PD0 и PD1. У платы metaboard для организации интерфейса USB нет такой аппаратуры, сигналы порта USB напрямую подключены к портам микроконтроллера PD2 и PD4.

Благодаря этому отличию схема metaboard гораздо проще, плата metaboard дешевле, и её проще спаять самому в домашних условиях, чем Arduino.

2. USB-загрузчики у Arduino и metaboard разные. У Arduino используется загрузчик через порт UART, а в metaboard используется загрузчик, эмулирующий программатор USBasp. Поэтому для загрузки кода скетча через среду Arduino IDE для платы metaboard нужно сделать специальные настройки, учитывающие загрузчик USBasp. Подробнее см. [1].

3. Чтобы в среде Arduino IDE при работе с платой metaboard можно было увидеть через монитор отладочный вывод объекта Serial, нужно подключить к порту UART микроконтроллера отдельный переходник USB-UART TTL. Что это за переходник, где его найти и как использовать, см. [5]. Для Arduino такой отдельный переходник не нужен, потому что используется встроенный, распаянный прямо на плате Arduino переходник USB-UART TTL.

4. Порты PD2 и PD4 микроконтроллера metaboard задействованы под сигналы D+ и D- интерфейса USB. Поэтому, немотря на то, что эти порты выведены на те же внешние цифровые порты 4 и 6, как и у Arduino, в скетчах их использование ограничено. Например, эти порты не могут полноценно работать как входы, и не могут также работать как выходы, если metaboard подключена к компьютеру через USB.

5. Порты PD0 и PD1 у Arduino не только выведены на внешние цифровые порты 0 и 1, но они еще и подключены параллельно к узлу USB-UART TTL. Поэтому у Arduino эти порты обычно всегда заняты, использовать их под другие функции, кроме как для объекта Serial, нельзя. У metaboard эти выводы совершенно свободны, и доступны для любого применения - и как порты ввода/вывода GPIO, и как порт UART.

6. У платы metaboard интерфейс USB потенциально имеет гораздо больше возможностей, чем у Arduino. Дело в том, что у Arduino интерфейс USB для связи с компьютером может работать только в режиме последовательного виртуального порта (USB CDC), а у metaboard можно реализовать как минимум 2 класса устройств USB на выбор: USB HID или USB CDC (благодаря использованию библиотеки V-USB). Но этот функционал metaboard не поддерживается стандартной средой разработки Arduino IDE, он доступен только при использовании AVR Studio/Atmel Studio и/или тулчейна GCC (avr-libc, WinAVR).

7. У платы metaboard имеется макетное поле с отверстиями (шаг 2.54 мм). Собирается metaboard из легкодоступных деталей со штыревыми выводами (нет SMD-деталей, которые сложнее паять). Благодаря этому metaboard гораздо проще изготовить самому, и удобнее собирать на ней радиолюбительские конструкции.

8. У платы metaboard последней версии устранена досадная ошибка размещения верхних коннекторов - шаг 2.54 мм у верхних разъемов портов Arduino нарушен. Из-за этой ошибки Arduino нельзя установить в стандартные платы макетирования типа breadboard ProsKit. В последней версии metaboard этот недостаток устранен благодаря наличию второго ряда верхних коннекторов, где шаг 2.54 мм восстановлен.

metaboard-v1.1-fix-connectors

Прошивать программу (firmware) в память микроконтроллера макетной платы удобнее всего с помощью программы Khazama [4], через интерфейс USB. Не нужен никакой программатор, нужен только компьютер с установленным программным обеспечением (Khazama и драйвер программатора USBasp). Это возможно благодаря тому, что в память микроконтроллера ATmega32A, установленного на макетной плате AVR-USB-MEGA16, записан бутлоадер, эмулирующий протокол USBasp.

khazama03

Для программирования больше всего подходит Khazama версии v1.6.2, так как она наиболее совместима с бутлоадером USBasp. Бутлоадер позволяет только перезаписать память программ FLASH (фьюзы перезаписать нельзя), причем это можно делать практически неограниченное количество раз. Для работы с бутлоадером в операционной системе Windows необходимо установить драйвер программатора USBasp. Драйвер есть на сайте автора программатора USBasp, также см. [4]. Процесс прошивки прост - установите перемычку, активирующую бутлоадер, подключите макетную плату metaboard к компьютеру через USB, запустите программу Khazama, выберите микроконтроллер AVR ATMEGA328, через меню File -> Load FLASH file to Buffer загрузите прошивку firmware в HEX-формате, и нажмите кнопку Auto Program. Через несколько секунд программа будет записана в память микроконтроллера. Теперь можно снять перемычку, и использовать плату уже с новой программой.

Примечание: программа Khazama 1.6.2 портабельна, т. е. она не требует установки, достаточно сделать копию папки уже установленной программы. Вы можете так и поступить, и скачать уже установленную программу вместе с драйвером в архиве [4]. Распакуйте из архива папку Khazama162 в любое место на диске (например, прямо в корень C: или в папку Program Files), создайте ярлычок для исполняемого файла Khazama AVR Programmer.exe, и установка на этом завершена.

metaboard-IMG_1438cb.jpg metaboard-IMG_1436cb.jpg metaboard-IMG_1440cb.jpg

[Ссылки]

1. Работа с макетной платой metaboard в среде программирования Arduino.
2. Что такое Metaboard?
3. Разводка печатной платы, принципиальная схема и фотографии внешнего вида metaboard, исходный код и прошивки бутлоадера платы metaboard (USBasp), а также драйвер к нему для операционной системы Windows.
4. 141122Khazama162.zip - утилита Khazama162, драйвер программатора USBasp для Windows XP, Windows Vista, Windows 7, Windows 8, прошивки загрузчика USBasp для различных микроконтроллеров.
5. AVR: отладочный вывод через UART (RS232 debug).