AVRDUDE Windows


27.12.2012

AVRDUDE (http://www.nongnu.org/avrdude/) - мощная программа для прошивки микроконтроллеров Atmel серии AVR. Разработчик Brian S. Dean. Программа поддерживает множество программаторов. AVRDUDE кросплатформенная. Многих, особенно начинающих, пугает тот факт, что программа консольная, и использовать ее нужно с командной строки. И напрасно, ничего сложного в этом нет.

Большинство "оконного" ПО, которое я опробовал, было убогим. Кажущаяся простота графического интерфейса не позволяла в полной мере работать с микроконтроллером. Кроме того, для каждого программатора (железяки), требовалась своя программа-программатор. Часто случалось, что ПО программатора не поддерживает нужный мне микроконтроллер. Все это породило массу неудобств. Эти проблемы ушли после перехода на AVRDUDE. AVRDUDE поддерживает огромное количество программаторов, работающих по параллельному порту (LPT), последовательному порту, USB-программаторы. Теперь у меня один AVRDUDE на все 3 вида используемых программаторов (см. Программаторы микроконтроллеров AVR).

СКАЧАТЬ AVRDUDE. 5.11 для Windows

Список поддерживаемых программаторов

FT2232D based generic programmer
FT2232H based generic programmer
FT232H based module from FTDI and Glyn.com.au
Amontec JTAGKey, JTAGKey-Tiny and JTAGKey2
Atmel AVR ISP
Atmel AVR ISP V2
Atmel AVR ISP mkII
The Bus Pirate
Atmel STK500
Crossbow MIB510 programming board
Atmel STK600
Avr910
USBasp
USBtiny simple USB programmer
Atmel Butterfly Development Board
Atmel AppNote AVR109 Boot Loader
Atmel AppNote AVR911 AVROSP
Mikrokopter.de Butterfly
Mikrokopter.de Butterfly
Atmel JTAG ICE (mkI)
Atmel JTAG ICE mkII in ISP mode
Atmel AVR Dragon
Jason Kyle`s pAVR Serial Programmer
Brian Dean`s Programmer
STK200
Pony Prog STK200
Dontronics DT006
Bascom SAMPLE programming cable
Nightshade ALF-PgmAVR
Steve Bolt`s Programmer
Picoweb Programming Cable
ABCmini Board, aka Dick Smith HOTCHIP
Futurlec.com programming cable.
Xilinx JTAG cable
Direct AVR Parallel Access cable
AT-ISP V1.1 programming cable for AVR-SDK1
ERE ISP-AVR
Altera ByteBlaster
Frank STK200
Atmel at89isp cable
design ponyprog serial
Lancos SI-Prog
serial port banging

Список поддерживаемых микроконтроллеров Atmel серии AVR

ATtiny11
ATtiny12
ATtiny13
ATtiny15
ATtiny4
ATtiny5
ATtiny9
ATtiny10
ATTINY26
ATTINY261
ATTINY461
ATTINY861
ATtiny88
ATtiny2313
ATtiny4313
ATtiny25
ATtiny45
ATtiny85
ATtiny24
ATtiny44
ATtiny84

AT90S1200
AT90S4414
AT90S2313
AT90S2333
AT90S2343
AT90S4433
AT90S4434
AT90S8515
AT90S8535
AT90CAN128
AT90CAN64
AT90CAN32
AT90PWM2
AT90PWM3
AT90PWM2B
AT90PWM3B
AT90USB646
AT90USB647
AT90USB1286
AT90USB1287
AT90USB162
AT90USB82

ATMEGA103
ATMEGA64
ATMEGA128
ATMEGA16
ATMEGA164P
ATMEGA324P
ATmega324PA
ATMEGA644
ATMEGA644P
ATMEGA1284P
ATMEGA162
ATMEGA163
ATMEGA169
ATMEGA329
ATMEGA329P
ATMEGA3290
ATMEGA3290P
ATMEGA649
ATMEGA6490
ATMEGA32
ATMEGA161
ATMEGA8
ATMEGA8515
ATMEGA8535
ATMEGA48
ATMEGA88
ATMEGA88P
ATMEGA168
ATMEGA168P
ATMEGA328P
ATMEGA640
ATMEGA1280
ATMEGA1281
ATMEGA2560
ATMEGA2561
ATMEGA128RFA1
ATmega32U4
ATmega32U2
ATmega16U2
ATmega8U2
ATMEGA325
ATMEGA645
ATMEGA3250
ATMEGA6450
ATXMEGA64A1

ATXMEGA128A1
ATXMEGA128A1REVD
ATXMEGA192A1
ATXMEGA256A1
ATXMEGA64A3
ATXMEGA128A3
ATXMEGA192A3
ATXMEGA256A3
ATXMEGA256A3B
ATXMEGA16A4
ATXMEGA32A4
ATXMEGA64A4
ATXMEGA128A4

AVR32UC3A0512

Установка AVRDUDE для Windows

На официальном сайте программы http://www.nongnu.org/avrdude/ в разделе для скачивания файлов http://download.savannah.gnu.org/releases/avrdude/ можно скачать все нужные файлы, в том числе и исходный код.

Я собрал в один архив AVRDUDE. 5.11 для Windows с документацией и необходимыми драйверами. Вы можете воспользоваться этой ссылкой, чтобы СКАЧАТЬ AVRDUDE. 5.11 для Windows. Просто скачайте и распакуйте содержимое архива в папку на диске. Далее в примерах будет подразумеваться, что это папка C:\avrdude\ Если используем LPT программатор, запускаем файл install_giveio.bat. Этот пакетный файл установит драйвер прямого доступа к портам (giveio.sys). Если Вы используете программатор usbasp, обратите внимание на папку usbasp-windriver.2011-05-28. В ней находятся драйвера, их так же следует установить.

Как использовать AVRDUDE под Windows

Сразу оговорюсь, что не стоит набирать команды вручную каждый раз. Для этого человечество придумало пакетные файлы. Создаем файл с расширением .bat и в него пишем команду или несколько команд. Потом просто запускаем наш bat файл.

Пример 1 (Прошиваем Flash)


avrdude -p m16 -c usbasp -e -U flash:w:upload.hex

где:

-p m16 - указывает, что мы прошиваем микроконтроллер ATmega16
-c usbasp - указывает, что мы прошиваем, используя программатор USBasp
-e - Выполняет команду ERASE (стирание чипа) перед прошивкой
-U flash:w:upload.hex - указывает, что работаем с флеш памятью (flash), пишем (w), файл (upload.hex).

Сразу же возникает вопрос: "Где найти обозначения микроконтроллеров и программаторов?"

Ответ: в файле документации с подробным описанием параметров командой строки: C:/avrdude/avrdude-html/avrdude_4.html

Если такой отсутствует, можно заглянуть в файл конфигурации avrdude.conf

Пример 2 (программируем Фьюзы)


avrdude -p m88p -c usbasp -U lfuse:w:0xE2:m -U hfuse:w:0xDF:m

где:

-p m88p - микроконтроллер ATmega88P
-c usbasp - указывает, что мы прошиваем, используя программатор USBasp
-U lfuse:w:0xE2:m - зашиваем в младший разряд фюзов 0xE2
-U hfuse:w:0xDF:m  - зашиваем в старший разряд фюзов 0xDF

Для удобства можете воспользоваться калькуляторами Фьюзов:

http://fusecalc.mirmk.net/ (локальная версия калькулятора фьюзов с того же сайта FUSEcalc.zip)
http://payalo.at.ua/c_fuse/calc.html
Подробнее о фьюзах

Пример 3 (программируем EEPROM)


avrdude -p m16 -c usbasp -U eeprom:w:eeprom.hex

где:

-p m16 - указывает, что мы прошиваем микроконтроллер ATmega16
-c usbasp - указывает, что мы прошиваем, используя программатор USBasp
-U eeprom:w:upload.hex - указывает, что работаем с eeprom памятью (eeprom), пишем (w), файл (eeprom.hex).

Пример 4 (читаем Flash и пишем в файл dump.hex)


avrdude -p m16 -c usbasp -U flash:r:dump.hex:i

Отличие от первого примера, отсутствует "-e" (стирать чип нам не надо), команда :w: (write, писать) заменена на :r: (read, читать), добавлено :i (формат файла Intel Hex)

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

Поддерживаемые форматы файлов:

i - Intel Hex
s - Motorola S-record
r - raw binary; little-endian byte order, in the case of the flash ROM data
m - immediate mode; actual byte values specified on the command line, separated by commas or spaces in place of the filename field of the ‘-U’ option. This is useful for programming fuse bytes without having to create a single-byte file or enter terminal mode. If the number specified begins with 0x, it is treated as a hex value. If the number otherwise begins with a leading zero (0) it is treated as octal. Otherwise, the value is treated as decimal.
a - auto detect; valid for input only, and only if the input is not provided at stdin.
d - decimal; this and the following formats are only valid on output. They generate one line of output for the respective memory section, forming a comma-separated list of the values. This can be particularly useful for subsequent processing, like for fuse bit settings.
h - hexadecimal; each value will get the string 0x prepended.
o - octal; each value will get a 0 prepended unless it is less than 8 in which case it gets no prefix.
b - binary; each value will get the string 0b prepended.

Пример 5 (читаем eeprom и пишем в файл eepromdump.hex)


avrdude -p m16 -c usbasp -U eeprom:r:eepromdump.hex:i

Пример 6 (выполняем сравнение (верификацию) Flash памяти с указанным hex файлом)


avrdude -p m16 -c usbasp -U flash:v:upload.hex

В последнем параметре :v: (verify, проверить).

Если нам надо одним движением прошивать флеш память и прошить фьюзы, разумно сделать пакетный файл с примерно следующими командами:


C:/avrdude/avrdude -p m88p -c usbasp -e -U flash:w:upload.hex
C:/avrdude/avrdude -p m88p -c usbasp -U lfuse:w:0xE2:m -U hfuse:w:0xDF:m

Практика использования AVRDUDE под Windows

На практике я поступаю так: в папке, где компилируется .hex файл прошивки создаю файл upload.bat со следующим содержимым:


@set MK=m88p
@set PRG=usbasp
@set FLASHFILE=Brushless.hex
@set AVRDUDEPATH=C:\avrdude\

REM FLASH
%AVRDUDEPATH%avrdude -p %MK% -c %PRG% -e -U flash:w:%FLASHFILE%

REM FUSES (http://fusecalc.mirmk.net/)
%AVRDUDEPATH%avrdude -p %MK% -c %PRG% -U lfuse:w:0xE2:m -U hfuse:w:0xDF:m

В случае если потребуется изменить программатор, контроллер или путь к AVRDUDE, не потребуется исправлять во всех командах. Достаточно изменить переменные, объявленные в начале файла.

В статье Программаторы микроконтроллеров AVR я описал программатор AVR ISP Prorgammer (работащий через параллельный порт LPT), совместимый с AVR910 и USBasp программатор. Для этих программаторов в AVRDUDE используются следующие идентификаторы:

AVR ISP Prorgammer - stk200
AVR910 - avr910
USBasp - usbasp

Обращаю Ваше внимание на то, что AVR910 работает через виртуальный последовательный (COM) порт. Его следует указать в параметре -P. Пример:


avrdude -p m8 -c avr910 -P COM4 -U flash:r:flesh.hex:i

Подробно о всех возможностях AVRDUDE читайте  в документации
C:/avrdude/avrdude-html/avrdude.html

СКАЧАТЬ AVRDUDE. 5.11 для Windows

Удачи!

Смотри также:

Корисно знати Початківцям
Коментарі:
Haruspex говорить:
17.06.2020 12:51
Очень полезная статья, спасибо!

Додати коментар
Code
* - обов'язкові поля

Архіви