Макетная плата AVR-USB-MEGA16
Написал microsin   
16.09.2008

Эта отладочная плата позволяет разрабатывать устройства USB. Идеально подходит для новичков в протоколе USB.

 avr-usb-mega16-sch.jpg  AVR-USB-MEGA16-topside.JPG AVR-USB-MEGA16-botside.JPG 
 avr-usb-mega16-IMG_8082.JPG  avr-usb-mega16-IMG_8085.JPG avr-usb-mega16-IMG_8080.JPG avr-usb-mega16-IMG_8098.JPG

Макетная плата AVR-USB-MEGA16 спроектирована для быстрой разработки низкоскоростных (low-speed) устройств USB на микроконтроллере ATmega16 (или ATmega32), при этом протокол USB реализован программно, без использования дополнительных специализированных чипов. Это решение хорошо подходит для проектирования таких периферийных устройств для компьютера, которые не требуют высоких скоростей обмена по шине USB (подключение датчиков, устройств ввода, специализированных программаторов для чипов). Программная реализация протокола USB значительно упрощает принципиальную схему и снижает стоимость устройства в целом. Новичок в протоколе USB может легко спроектировать свое устройство USB и программу компьютера (ПО хоста) для него, поскольку имеются простые примеры работающих устройств (USB HID - управление портами, передача данных, есть даже пример мыши) с подробными комментариями на русском языке.

С июля 2010 года макетная плата AVR-USB-MEGA16 поставляется в новой модификации - с микроконтроллером ATmega32 и прошитым загрузчиком кода по USB - usbasploader. Это позволяет начинающим программистам загружать в макетку программу без использования программатора. Все, что Вам нужно - только макетная плата и подключение по USB к компьютеру. Загрузчик usbasploader с исходниками можно скачать по ссылке [10], а простая инструкция по использованию доступна по ссылке [12].

Для варианта макетки с микроконтроллером ATmega16 лучше подойдет другой загрузчик - bootloadHID. Загрузчик bootloadHID с исходниками можно скачать по ссылке [11], там же есть ссылка на статью с описанием работы загрузчика bootloadHID.

Значения фьюзов по умолчанию, которые прошиты в платы - LOW FUSE BYTE: 0xCF, HIGH FUSE BYTE: 0x98, LOCKOPT BYTE: 0xEF.

[Аппаратура]

На плате имеются:
- макетное поле 8x11 с шагом между отверстиями 2.54 мм, разъем MINI USB, индикационный светодиод (используется в демонстрационных программах, поставляемых с платой), микроконтроллер ATmega16 в корпусе TQFP44, тактовая частота 12 МГц (или 16 МГц, в зависимости от того, какой кварц используется)
- размеры платы с макетным полем 64.8 x 30.7 мм, без макетного поля 45.4 x 30.7 мм (для уменьшения размеров макетное поле можно отрезать). Толщина платы вместе с монтажом 11.5 мм (определяется самыми высокими элементами на плате - ISP и JTAG коннекторами, они выступают над поверхностью TOP платы на 9 мм). USB-коннектор выступает за край платы на 2 мм.
- программирование микроконтроллера возможно прямо на плате через стандартный (цоколевка Atmel) 6-контактный разъем для serial-программатора ISP
- для отладки программы микроконтроллера имеется 10-контактный JTAG-коннектор (цоколевка Atmel, может использоваться эмулятор JTAGICE mkII или аналогичные эмуляторы), также установленный на плате
- из 32 линий ввода/вывода ATmega16 занято 10 (2 - под сигналы USB, 1 для светодиода, 3 для программатора ISP, 4 для подключения JTAG-эмулятора), свободно для нужд пользователя 22 (порты микроконтроллера выведены на двухрядную линейку контактов)
- из аппаратных ресурсов микроконтроллера для реализации протокола USB используется только прерывание INT0
- из ресурсов памяти программ для простых примеров используется 1464..2090 байт (зависит от типа устройства, опций оптимизации и версии компилятора), что составляет не более 13% памяти программ ATmega16. Утилизация времени процессора зависит от интенсивности потока данных через интерфейс USB (если он используется).
- питание платы осуществляется от 5 вольт шины USB

[Программное обеспечение]

Для ATmega16 (или ATmega32) используется пакет V-USB (старое название AVR-USB), разработанный компанией OBJECTIVE DEVELOPMENT Software GmbH. Пакет распространяется по лицензии GPL, см. [14].

Для компьютера (назовем его для краткости хост, как предлагает OBJECTIVE DEVELOPMENT) используется библиотека libusb-win32 для операционной системы Windows (2000, 2003, XP) и libusb для операционных систем семейства *nix (Mac OS, Linux и т. д.). Библиотека также поставляется по лицензии GPL, см. [15].

Примеры программ для ATmega16 - USB-устройство пользовательского класса, класса HID, HID-мышь (для HID-устройств USB не нужны драйвера в операционных системах Windows), см. папку examples пакета V-USB. Программное обеспечение предназначено для компиляции с помощью gcc, есть также порт на систему IAR Embedded Workbench for Atmel AVR (заголовочный файл)

Примеры программ для компьютера (ПО хоста) - управляющие программы устройств USB, см. папку examples пакета V-USB. Программное обеспечение предназначено для компиляции с помощью gcc (и под Windows, и под *nix).

Плата поставляется с тестовой прошивкой, реализующей работу устройства HID (драйвер для такого USB-устройства в Windows 2000 и XP не требуется), см. описание работы этой прошивки в [1]. Возможна прошивка платы другим firmware, например Сергея Кухтецкого, см. [3] - по желанию пользователя.

[Лицензии]

Все программное обеспечение, используемое для разработки, доступно под лицензией GPL, что освобождает Вас от выплат (но не освобождает от публикации исходных кодов Вашего программного обеспечения). Если у Вас нет возможности для публикации проекта (что требует лицензия GPL), обратитесь напрямую в OBJECTIVE DEVELOPMENT, либо напишите мне (я могу опубликовать Ваш проект на моем сайте). На пакет V-USB имеется также и коммерческая лицензия, подробности см. на сайте авторов библиотеки.

Для устройств USB необходимы также идентификаторы производителя (vendor ID, или VID) и продукции (product ID, или PID). Компания OBJECTIVE DEVELOPMENT предлагает такие пары как с бесплатными, так и с коммерческими лицензиями. Предлагаемые значения VID и PID и указания по их выбору имеются в документации на библиотеку, см. [14].

Пошаговые инструкции для начала работы с библиотекой V-USB читайте в [7]. Это позволит Вам быстро установить все необходимое для работы с библиотекой, и начать разрабатывать собственные устройства USB.

[Как заказать]

Если хотите приобрести макетную плату AVR-USB-MEGA16, отправьте мне email (адрес см. на страничке Контакты), или оставьте комментарий ниже, указав контакты для связи с Вами (email, ICQ или телефон). Если Вы находитесь не в Москве, возможна пересылка наложенным платежомВнимание: в таблице указана цена без учета стоимости пересылки (180 руб. - это мои расходы на отправку бандероли, плюс еще около 60 рублей Вы заплатите на почте за почтовый перевод. Таким образом, например, готовая плата Вам обойдется 500+180+60=740 рублей). Возможна предоплата, тогда 60 рублей съэкономите.

Стоимость готовой макетной платы AVR-USB-MEGA16        500 руб.
Стоимость пустой печатной платы 100 руб.
Библиотека V-USB, примеры, документация на русском языке  0 руб.

[Ссылки]

1. Как работать с платой AVR-USB-MEGA16 из Visual Studio (версия 2003). На примере описано управление светодиодом на макетке из кода на C++.
2. Как работать с платой AVR-USB-MEGA16 из C# (Visual Studio Express Edition 2008).
3. Класс C# (для Visual Studio Express Edition 2008) и соответствующая прошивка, позволяющие быстро сделать USB HID устройство и написать для него приложение для компьютера. Вы управляете микроконтроллером прямо из кода на C# (дергаете его ножками, читаете регистры и т. п.).
4. Проекты, которые основаны на V-USB - все эти проекты можно реализовать на макетке AVR-USB-MEGA16.
5. Пример управления портами микроконтроллера через USB.
6. Еще пример управления портами - USB-LED-Fader. Пример, правда, для ATmega8, но он легко переделывается и для ATmega16.
7. Разработка устройства USB - как начать работу с библиотеками AVR USB (V-USB) и libusb.
8. Макетная плата AVR-USB-TINY45.
9. Макетная плата AVR-USB162.
10. AVR-USB-MEGA16: USB bootloader USBASPloader для микроконтроллера ATmega32. Мой вариант usbasploader, заточенный под макетную плату AVR-USB-MEGA16 с микроконтроллером ATmega32 (проект для AVRStudio с исходниками и скомпилированными вариантами для кварцев 12 МГц, 16 МГц).
11Исходники и скомпилированные прошивки проекта BootloadHID, модифицированные для использования с макетной платой AVR-USB-MEGA16. В код BootloadHID я добавил управление красным светодиодом макетки D1 - для индикации процесса работы загрузчика (активизация и запись памяти). Статья с описанием работы с загрузчиком bootloadHID.
12. AVR-USB-MEGA16: USB bootloader USBasp для микроконтроллера ATmega32.
13. AVR-USB-MEGA16: управление устройством USB из GCC, Visual Studio CPP, VB6, Python, Delphi.
14. Библиотека V-USB в английском и русском варианте.
15. Библиотека libusb - версия для *nix и для Windows.

Последнее обновление ( 04.05.2012 )