Friday, May 18 2012  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

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

Поделиться:
Реклама на Бегуне

Макетная плата AVR-USB162 Версия для печати
Написал microsin   
25.02.2009

Эта отладочная плата позволяет разрабатывать маленькие устройства USB. Чип AT90USB162, который установлен на плате, имеет встроенный аппаратный интерфейс, позволяющий изготавливать full-speed USB 2.0 устройства, соответствующие современным требованиям. 

С помощью макетной платы AVR-USB162 и библиотеки LUFA Вы легко можете разработать собственные устройства HID (клавиатуры, джойстики, мыши, устройства ввода/вывода и т. д.) или сделать последовательный порт на классе CDC (виртуальный COM-порт), причем разрабатывать драйвер для устройств HID и CDC не нужно - они работают на всех современных компьютерных платформах. Программное обеспечение для разработки также присутствует на всех современных операционных системах - включая Linux, Windows, и Macintosh (Mac OS).

at90usb162-02-sch.jpg at90usb162-04IMG_8330.jpg at90usb162-04IMG_8334.jpg

На макетной плате AVR-USB162 установлены:
- miniUSB коннектор J1, через который питается плата.
- кнопка SW2 HWB, управляющая работой bootloader-а, и кнопка SW1 RESET.
- коннектор ISP/debugWIRE J4, через который можно запрограммировать плату с помощью стандартного программатора (avrdude, JTAGICE-mkII, PonyPROG и проч.), а также отлаживать программу через аппаратный отладчик, поддерживающий шину debugWIRE (например, JTAGICE-mkII). Программирование и отладка работают в широко известных IDE AVRStudio и IAR Embedded Workbench.
- перемычка J3, управляющая напряжением питания ядра микроконтроллера (иногда это может понадобиться).
- индикационный светодиод VD1.
- контактные площадки P1..P22, на которые разведены порты микроконтроллера и питание.
- макетное поле с шагом 2.54 мм (100 mil), которое можно при необходимости отпилить, уменьшив тем самым размер USB-устройства.

Размеры платы с макетным полем 64.8 x 30.7 мм, без макетного поля 45.4 x 30.7 мм (для уменьшения размеров макетное поле можно отрезать). Толщина платы вместе с монтажом 11.5 мм (определяется самым высоким элементом на плате - ISP коннектором, он выступает над поверхностью TOP платы на 9 мм). USB-коннектор выступает за край платы на 2 мм.

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

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

 AT90USB162fuses.JPG  AT90USB162lockbits.JPG

Установка программы, интерфейс Flip и работа с ним под Windows до предела упрощены - скачиваем, ставим. При подключении макетки 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).

[Если bootloader не работает, программа Flip не видит чип AT90USB162]

При исправной и правильной схеме может быть два варианта - у Вас стерт bootloader, либо записана пользовательская программа, которая получает управления вместо bootloader.

Если стерт bootloader - его надо восстановить с помощью ISP-программатора. Скачайте бинарник bootloader (bl_usb_162v105.zip) и прошейте в чип AT90USB162.

Если запускается пользовательская программа, то bootloader можно запустить стандартной процедурой, описанной в документации:

- подключаем плату через USB
- нажимаем кнопку SW1 RESET
- удерживая кнопку SW1 RESET, нажимаем кнопку SW2 HWB
- удерживая кнопку SW2 HWB, отпускаем кнопку SW1 RESET
- отпускаем SW2 HWB

После этой процедуры у нас в системе должно появиться устройство LibUSB-Win32 Devices\AT90USB162 (см. в Диспетчере Устройств), и теперь снова будет работать программирование через USB с помощью программы DFU Flip. Если устройство LibUSB-Win32 Devices\AT90USB162 в Диспетчере Устройств не появилось, значит надо перепрошить bootloader (Вы его каким-то образом стерли). 

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

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

Стоимость готовой макетной платы AVR-USB162              
(ничего паять не надо, плата полностью готовая
и рабочая)
500 руб.
Стоимость пустой печатной платы (только пустая,
голая печатная плата, и больше ничего)
100 руб.

[Аналоги]

AVRopendous - http://code.google.com/p/avropendous/
Teensy USB Development Board - http://www.pjrc.com/teensy/index.html
AVR-USB-162 от Olimex - http://www.olimex.com/dev/index.html, http://www.olimex.com/dev/pdf/AVR/AVR-USB-162.pdf
Benito - http://dorkbotpdx.org/wiki/benito
DorkBoard - http://dorkbotpdx.org/wiki/dorkboard
Bumble-B - http://fletchtronics.net/bumble-b

[Ссылки]

1Общее описание библиотеки LUFA и документация по библиотеке LUFA на русском языке.
2. Как из макетки AVR-USB162 сделать ISP программатор, совместимый с avrdude.
3. Примеры с сайта Olimex - для AVRStudio+WinAVR (gcc version 3.4.6).
- мигание светодиодом
- опрос кнопки
- генератор частоты
- демонстрационный код USB-мыши
- демонстрационный код виртуального COM-порта.
4. AVR-USB162: где найти рабочие примеры кода firmware и ПО хоста
5. USB DFU Bootloader Datasheet - описание bootloader (технология Flip) при работе через USB.
6. FLIP - программа Atmel, с помощью которой Вы можете прошить плату через USB без программатора (используется USB DFU Bootloader, встроенный в микросхему AT90USB162). По этой же ссылке доступно для закачки firmware бутлоадеров DFU Flip (см. также [7]). Старая версия Flip 3.3.2 здесь.
7. Прошивка bootloader.
8. FAQ по макетной плате AVR-USB162 (чип AT90USB162).

[Проблемы и способы их решения]

См. тут - http://microsin.ru/content/view/899/44/.

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

Комментарии  

  1. #29 Владимир
    2011-12-2617:37:44 Где в Украине можно купить макетную плату AVR-USB162?

    microsin: к сожалению, в Украине никто эту плату не продает. Возможна доставка Почтой России, по предоплате. Предлагаю общаться по email, см. Контакты.
  2. #28 Владимир
    2011-12-1713:08:05 Прошу отправить на мой адрес наложенным платежом макетную плату AVR-USB162, готовую к работе 1 шт. Мой адрес … Мой тел. … Прошу сообщить ваш стационарный телефон.

    microsin: давайте общаться через почту, см. Контакты -> email. Все другие способы неэффективны и дороги.
  3. #27 Айк
    2011-02-2815:22:18 Насколько я понял, разводка схемы, номиналы конденсаторов, резисторов разработана вами. Скажите пожалуйста, если этот контролер будет управлять большим нагрузками (к примеру коммутировать обмотки шагового двигателя), скажется ли это на работе USB шины? Вы тестировали схему в подобных условиях? И второй вопрос: чем отличается ваша схема от аналогичной Olimex?

    microsin: схема разработана на основе starter-китов Atmel, Olimex и Teensy. Контроллер может управлять любыми нагрузками, если правильно спроектировать схему. Например, для устранения влияния помех нужно использовать оптронную развязку от силового оборудования и правильно организовывать заземление (зануление). В подобных условиях плата мною не тестировалась. Основные оличия AVR-USB162 от аналогичной Olimex (по мере уменьшения важности, ИМХО):
    1. Цена.
    2. Размер макетного поля, общий размер макетки. AVR-USB162 разрабатывалась не только для макетирования, но и для мелкосерийного изготовления малогабаритных USB-устройств радиолюбителями .
    3. Наличие стабилизатора и коннектора для подключения внешнего питания на макетке Olimex. На макетке AVR-USB162 этого нет, эта плата по умолчанию предназначена для питания от USB.
    4. В макетной плате AVR-USB162 имеется перемычка U3 для управления напряжением питания портов ввода/вывода чипа, на макетке Olimex такой возможности нет.
    5. На AVR-USB162 обычно стоит кварц на 16 МГц, на Olimex AVR-USB-162 стоит кварц 8 МГц.
    6. На AVR-USB162 обычно стоит коннектор ISP 6 pin (цоколевка Atmel), на Olimex AVR-USB-162 стоит коннектор ISP 10 pin.
    7. На макетке Olimex имеется сигнал подключения порта USB - USB_P, на AVR-USB162 такого сигнала нет.
  4. #26 pavel
    2011-02-2610:48:32 Уважаемый microsin, есть ли меры предосторожност и для того, чтобы не повредить bootloader? Или в каком случае, при каких действиях bootloader будет поврежден? Заранее спасибо.

    microsin: исходников фирменного бутлоадера Atmel нет, в документации я тоже ответа на Ваш вопрос я не встречал. Поэтому полно ответить на него не могу. В соответствии со здравым смыслом бутлоадер нельзя повредить самим бутлоадером, если, например, попытаться перезаписать область памяти бутлоадера с помощью Flip. Т. е. программой Flip повредить бутлоадер должно быть невозможно (даже если нажать в оболочке Flip кнопку Erase - при этом очищается область памяти, куда можно записать программу пользователя). А вот программатором ISP стереть бутлоадер чипа AT90USB162 можно. Кроме того, я отметил интересную особенность - в состоянии перемычек по умолчанию (как чип поставляется с завода) двоичный код бутлоадера с помощью ISP считать тоже нельзя - область памяти программ 0×0000..0×3FFF читается как вся заполненная байтами 0xFF, хотя в конце где-то должен быть бутлоадер.
  5. #25 pavel
    2011-02-2523:34:20 Установил FLIP. Выбираю чип ( Device->Select ) Но там у меня нету AT90USB162. Может нужна последняя версия FLIP?

    microsin: конечно, скачайте последнюю версию, сейчас это Flip 3.4.2. У меня Flip 3.3.2, и там уже есть чип AT90USB162.
  6. #24 Gtor
    2011-02-1515:18:47 А есть какие-нибудь примеры на ассемблере, и вообще воспринимает ли макетка его или только Си?

    microsin: на ассемблере Вы вряд ли найдете примеры для чипа AT90USB162, так как протокол USB слишком сложен для его реализации на ассемблере. Если же Вас не интересует USB, то можете брать любые примеры на ассемблере для семейства AVR ATmega, не привязанные к аппаратуре чипа. Этот ассемблерный код будет без проблем работать и на чипе AT90USB162, так как у него тоже ядро AVR ATmega.
  7. #23 Tim
    2011-02-1513:41:13 Уважаемый microsin, перекомпилирова л проект HID мыши, в makefile не была указана частота, добавил её:

    ## My
    F_CPU = 16000000
    CDEFS = -DF_CPU=$(F_CPU)UL

    ## Compile options common for all C compilation units.
    CFLAGS = $(COMMON)
    CFLAGS += $(CDEFS)

    При построении проекта вижу в окне build следующее:

    avr-gcc.exe -I"./.." -I"../conf" -I"../../../../at90usb162" -I"../../../../common" -mmcu=at90usb162 -DF_CPU=16000000UL -D AVRGCC -Wall -gdwarf-2 …

    где -mmcu=at90usb162 -DF_CPU=16000000UL, как я понимаю, и указывают компилятору микроконтроллер и частоту.
    Прошиваю микроконтроллер и имею то же самое, что было, то есть ничего, Windows не видит никакого устройства.
    Может ли быть дело сборке макетной платы, учитывая что светодиод всетаки мигает как положено? Буду благодарен за любую помощь и направления куда копать.

    microsin: возможно, что у Вас аппаратура, на которую рассчитана программа мыши, отсутствует в схеме, и поэтому программа мыши не работает. Смотрите исходники и соответствующую документацию по проекту мыши.
  8. #22 Tim
    2011-02-1413:52:07 Собрал плату, флипом записал программу мигания сведотиодом, светодиод замигал. Скачал HID firmware по ссылке 4 (AVR-USB162: где найти рабочие примеры кода firmware и ПО хоста), прошил мк, стартую. Система не видит никакого устройства и не просит драйвера (то же самое с HID мышью). Скажите пожалуйста, в чем может быть дело?

    microsin: проблема может быть в том, что бинарник, что Вы прошили, скомпилирован на другой чип или другую частоту кварца. Проверьте перед компиляцией настройки чипа (обычно это макрос DEVICE в makefile) и частоты кварца (обычно это макрос F_CPU в makefile), перекомпилируйт е проект под Ваш чип и кварц, и только после этого прошивайте.
  9. #21 Anton
    2011-02-1016:31:57 Пробую упростить схему - впихнуть в маленькую плату. Можно ли отказаться от резистора R3? И еще такой вопрос - если оставить питание МК только от 5В, можно ли в этом случае убрать один из блокирующих конденсаторов - С2 или С6?

    microsin: если хотите упростить схему, тогда см. teensy1.0. R3 убрать можно, но тогда нельзя будет легко измерить ток потребления. На последний вопрос не могу ответить, т. к. правильное решение зависит от многих факторов - условий эксплуатации, наличия помех, нагруженности шины питания, трассировки платы, требуемой надежности работы и даже от длины соединительного кабеля USB. Схема будет работать и вообще без конденсаторов, но надежность при этом будет никакая. Все как в жизни - если отклонитесь от золотой середины и где-то выиграете, то в чем-нибудь обязательно проиграете.
  10. #20 Mar
    2011-02-0801:43:36 Почитал даташит на чип, написано, что по умолчанию фьюз BOOTRST незапрограммиро ван, т.е. 1 - значит Reset Vector = Application Reset (address 0×0000).
    А почему тогда при подключении макетки стартует заводской bootloader?

    microsin: увы, не знаю всех тонкостей работы фирменного загрузчика Atmel, но то, что он запускается при старте, если чип чистый - это факт. Под словом "чистый" я здесь подразумеваю, что чип пришел с завода - с чистой областью памяти начиная с адреса 0×0000, с запрограммирова нным бутлоадером в старших адресах и каким-то образом запрограммирова нными фьюзами. Могу предположить, что запуск с адреса 0×0000 чистого чипа (когда память стерта) - вызывает переход по адресу бутлоадера. Возможно, что чистая память просто воспринимается как нулевые команды, поэтому управление доходит до загрузчика в старших адресах. Если же по адресу 0×0000 записана программа пользователя, то запускается она. Это всего лишь мои предположения, как на самом деле все происходит, я не знаю.

    Обращаю Ваше внимание, что фьюз HWBE по умолчанию запрограммирова н. Это означает, что можно с помощью ножки PD7 управлять процессом загрузки чипа, т. е. передавать управление принудительно в бутлоадер, даже если по адресу 0×0000 записана программа пользователя. Это также действительно работает.

    За подробностями по работе бутлоадера обращайтесь не ко мне, а к оригиналу - сайту Atmel, так как не я это все придумал. В частности, почитайте, кроме даташита, документ http://www.atmel.com/dyn/resources/prod_documents/doc7618.pdf.

    Кроме того, есть еще альтернативные бутлоадеры из библиотеки LUFA, с открытыми исходниками, совместимые в том числе и с Атмеловской спецификацией DFU/Flip. Если Вам очень надо почему-то докопаться до истины, проанализируйте их код и сопутствующую документацию.

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

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

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

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

Top of Page
 
microsin © 2012