Главная arrow Программирование arrow AVR arrow Макетная плата AVR-USB-MEGA16 Tuesday, October 03 2023  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

Макетная плата 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.

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

Комментарии  

  1. #34 Igor
    2014-01-1716:01:51 Можно ли как-то в прошивке понизить частоту? Или только заменив кварц такое возможно?

    microsin: в прошивке тактовую частоту можно регулировать, перепрограммиру я делитель тактовой частоты (см. даташит на микроконтроллер ). При этом кварц заменять необязательно. Кроме того, на тактовую частоту по умолчанию влияют фьюзы.

    Имейте в виду, что библиотека V-USB работает только на определенных тактовых частотах, так что будьте осторожны при смене тактовой частоты микроконтроллер а.
  2. #33 Frenche
    2013-10-0823:48:09 Собрал плату по схеме на ATmega16A. При подключении к USB 2.0 получается неопознанное устройство, при этом стабилитроны установлены. Долго мучался, но выявил, что для корректного определения нужно питать мегу не 5 вольтами, а ниже. Установил AMS1117 на 3.3 вольта, и все заработало, бутлоадер-загрузчик завелся, устройство определилось корректно.

    microsin: уверен, что у Вас что-то не так с токоограничител ьными резисторами, которые включены последовательно с сигналами D+ и D- интерфейса USB, либо стабилитроны стоят не на то напряжение. Именно эти резисторы вместе со стабилитронами определяют корректные физические уровни сигналов шины.
  3. #32 Владимир
    2013-03-1914:53:49 Подскажи, есть ли опыт работы с этими платами на Android?

    microsin: нет, опыта нету, просто никогда для Android-а не программировал ПО хоста USB. Для Linux, FreeBSD примеры ПО хоста из библиотеки V-USB нормально компилируются и работают точно так же, как и под Windows. Эти примеры используют популярную библиотеку LibUSB (для неё есть порты и под Windoiws, и под xNIX). Думается, что если есть порт LibUSB на Android, то ПО хоста должно нормально компилироваться и работать и на платформе Android. Если же аналога LibUSB на Android нет, то нужно осваивать другие библиотеки для работы с устройствами USB на Android. Тема интересная, так что если есть желание заняться и написать статью-отчет об успешно проделанной работе, то готов заплатить Вам за статью - по договоренности.
  4. #31 Vitaliy
    2013-02-1114:10:25 А можно подключать а плате управление не светодиодом, а лампой на 220 вольт, есть возможность питания не от USB, а от розетки, чтобы ничего не погорело?

    microsin: нет ничего проще. Чтобы питать микроконтроллер макетной платы не от USB, а от внешнего блока питания, перережьте цепь питания, которое идет от USB (провод, идущий от контакта 1 разъема USB), либо выпаяйте соответствующий защитный резистор 1 ом (он ставится последовательно с цепью питания на новых версиях плат). Далее просто подключите внешний стабилизированн ый блок питания +5V к цепям питания микроконтроллер а (GND и VCC) с соблюдением правильной полярности. Для управления высоковольтными нагрузками используйте гальванически развязывающие узлы и схемы (оптроны, реле, оптотиристоры и т. п.).
  5. #30 Александр
    2012-12-1616:43:57 Подойдет ли AVR-USB-MEGA16 для управления светодиодами в кол-ве 100 шт., каждым отдельно?

    microsin: да, подойдет для управления 100 шт. светодиодов - и всеми сразу, и каждым по отдельности, как хотите - но при условии, если подключите светодиоды через расширители портов или регистры сдвига, например MBI5026GD или 74HC595. Обычно это делается через аппаратный порт SPI, которым оснащен микроконтроллер AMmega32A (он установлен на макетной плате AVR-USB-MEGA16).
  6. #29 Александр
    2012-10-0910:24:33 Здравствуйте!
    Заинтересовал "Проект DS2430A-reader".
    http://microsin.net/programming/AVR/ds2430a.html
    Подскажите, а возможно ли заказать уже готовое изделие и, если это возможно, сколько оно будет стоить?

    microsin: сделать такое готовое изделие можно. Но сколько будет стоить - сказать не могу, все зависит от того, в каком виде Вы его хотите получить. Предлагаю общаться через почту (см. Контакты), здесь я на эту тему общаться не буду.
  7. #28 Степан
    2012-06-2920:51:13 Можно ли использовать библиотеки V-USB и libusb-win32 на Windows 7? Можно ли сейчас у вас приобрести данную макетку?

    microsin: на все вопросы ответ "ДА". Подробнее читайте FAQ и результаты поиска в Google. По поводу покупки макетной платы пишите в почту (см. Контакты).
  8. #27 agent
    2012-03-0307:16:12 Правильно ли я понимаю что на выходах портов мы получаем 3.3 В, когда на них подана логическая 1, и 0В когда 0?

    microsin: когда выходной порт в лог. состоянии 0, тогда на выходе 0V - тут Вы правы. Но когда порт в состоянии лог. 1, то на выходе не 3.3V, а 5V.
  9. #26 Владимир Малахов
    2012-02-2306:37:47 Хотелось бы подробнее по использованию ВСТРОЕННОГО ацп. Правильно ли я понимаю, что можно читать с датчика не только 0 и +5В, но и промежуточные значения (через цепочки резисторов)? Приведите, пожалуйста, простейший пример.

    microsin: хороший пример работы с АЦП есть в статье http://microsin.net/programming/AVR/avr-usb-mega16-amper-volt-meter.html. Также см. статью http://microsin.net/programming/AVR/atmega16-adc.html.
  10. #25 HTL
    2011-12-2415:22:34 Хотелось бы сменить прошивку на "firmware Сергея Кухтецкого". Как это можно реализовать? Можно ли его запрограммирова ть через собственный USB порт? Если требуется покупать программатор, то какой посоветуйте?

    microsin: прошивка Сергея Кухтецкого ничем не отличается от любой другой прошивки, и поэтому легко перезаливается через USB с помощью бутлоадера, никакой программатор не нужен. Бутлоадер USBasp прошит в память чипа ATamega32A макетной платы AVR-USB-MEGA16.

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2023