Главная arrow Программирование arrow AVR arrow V-USB: AVRUSBBoot - USB bootloader для микроконтроллеров Atmel AVR Monday, July 24 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

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

Поделиться:

V-USB: AVRUSBBoot - USB bootloader для микроконтроллеров Atmel AVR Версия для печати
Написал microsin   
20.01.2010

В статье описан загрузчик программного обеспечения (bootloader), работающий через USB в микроконтроллерах AVR серии ATmega, не имеющих аппаратного контроллера USB. В firmware загрузчика используется библиотека V-USB. Материал взят с сайта автора http://www.fischl.de/.

AVRUSBBoot - загрузчик программ для микроконтроллеров Atmel AVR. Он использует firmware-only драйвер USB (V-USB, старое название AVR-USB) для передачи двоичных данных от PC до памяти программ flash микроконтроллера. Если в AVR записан bootloader, больше не нужен программатор ISP; теперь микроконтроллер может быть перепрограммирован через USB.

[Возможности bootloader]

    * программа загрузки работает на многих платформах. Протестировано на Linux, Mac OS X и Windows.
    * bootloader протестирован на микроконтроллерах ATmega8-16
    * не нужны специальные контроллеры USB
    * bootloader умещается в блок bootloader из 1024 слов (2048 байт)

[Hardware (железо)]

В основном AVRUSBBoot может использоваться со всеми схемами, которые поддерживаются драйвером AVR USB (новое название V-USB). Для переключения между bootloader и пользовательской программой (firmware, кототорое загрузил пользователь во flash с помощью AVRUSBBoot) нужна дополнительная перемычка JP1. На картинке приведен пример схемы (внимание: сигналы данных D+ и D- с напряжением 5V не соответствуют стандарту USB! Поэтому напряжение питания для данной схемы должно быть 3.3V - 3.6V):

avrusbboot_circuit.png

[Firmware и его подгонка]

Firmware AVRUSBBoot должно адаптироваться к Вашей аппаратуре (типу микроконтроллера и принципиальной схеме). Все необходимые изменения делаются в следующих двух файлах:

    * bootloaderconfig.h: задается условие, по которому bootloader должен стартовать, например определенная ножка подключается к земле перемычкой, и инициализация аппаратуры.
    * usbconfig.h: задаются ножки для данных D+ и D- интерфейса USB. Вы можете поменять макроопределения USB_CFG_IOPORT, USB_CFG_DMINUS_BIT и USB_CFG_DPLUS_BIT для соответствия Вашей принципиальной схеме. Остальное должно остаться без изменений.

После внесения изменений скомпилируйте firmware для AVRUSBBoot. Для этого потребуется avr-gcc, avr-binutils и avr-libc (для Windows все это есть в пакете WinAVR):

$ cd firmware
$ make

После этого bootloader должен быть записан в микроконтроллер обычным программатором ISP. После того, как bootloader записан во flash, больше ISP программатор не потребуется, и Вы можете записать двоичные данные своей программы (hex-файлы) через USB. Не забудьте установить перемычки (fuses, фьюзы) для внешнего источника тактовой частоты (кварца), когда прошиваете bootloader в первый раз! Обычные значения перемычек для ATmega16 - 0xFF (low) и 0x09 (high).

[Программное обеспечение для загрузки hex-файлов (взаимодействующее с бутлоадером)]

Для загрузки hex-файлов имеется программа на C++. Чтобы её скомпилировать, нужна библиотека libusb.

$ cd software
$ make

Когда устройство с бутлоадером подключено к USB, и бутлоадер стартовал (для этого нужно установить перемычку JP1 перед подключения устройства) hex-файлы могут быть записаны во flash микроконтроллера:

$ ./avrusbboot test.hex

[Ссылки]

1. avrusbboot.2006-06-25.tar.gz (128 kB)
2. http://www.obdev.at/products/avrusb/ Firmware-only AVR USB driver
3. http://libusb.sourceforge.net/ libusb
4. http://libusb-win32.sourceforge.net/ LibUsb-Win32

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

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

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

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

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

Top of Page
 
microsin © 2017