AVRDUDE – obsługa, opis poleceń – czyli jak używać?

AVRDude 5.8AVRDUDE jest programem konsolowym, umożliwiającym obsługę wielu rodzajów programatorów, np. USBasp. Artykuł zawiera opis poleceń stosowanych w programie. Przedstawione zostały metody zapisu/odczytu z pamięci flash/eeprom fusebitów mikrokontrolera - wszystko zostało oparte dobrze opisanymi przykładami. Opis porusza także kwestię programowania mikrokontrolerów taktowanych zegarem <1,5MHz, gdzie wymagane jest obniżenie częstotliwości programowania na linii SCK (tzw. slow sck mode). Można tego dokonać bez użycia zworki na płytce programatora. Obniżenie częstotliwości wywołuje się spod poziomu programu – nie jest wymagane stosowanie żadnych zworek.

Instalacja

Program jest prostą w obsłudze aplikacją konsolową związku z tym nie wymaga żadnej instalacji. Należy pobrać AVRDUDE, rozpakować i umieścić w jakimś wygodnym dla nas folderze, np. C:\avrdude\. Link do pobrania znajduje się na końcu artykułu.

Przygotowanie do pracy

AVRDUDE jest programem konsolowym, obsługuje się go z wiersza poleceń. Aby go uruchomić wystarczy wpisać w uruchom (skrót klawiszowy START+R) cmd, następnie w konsoli przejść do katalogu z programem (w tym przypadku C:\avrdude\) komendą cp C:\avrdude\. Teraz mamy już przygotowaną konsolę do używania programu avrdude. W celu zobaczenia wszystkich dostępnych parametrów wystarczy wpisać w linii poleceń avrdude, w rezultacie otrzymamy (cały log, łącznie z przejściem do katalogu):

C:\Users\elektronika>cd C:\avrdude\

C:\AVRDude>avrdude
Usage: avrdude [options]
Options:
  -p <partno>                Required. Specify AVR device.
  -b <baudrate>              Override RS-232 baud rate.
  -B <bitclock>              Specify JTAG/STK500v2 bit clock period (us).
  -C <config-file>           Specify location of configuration file.
  -c <programmer>            Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i <delay>                 ISP Clock Delay [in microseconds]
  -P <port>                  Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see AVR053).
  -U <memtype>:r|w|v:<filename>[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from a scrip
t.
  -s                         Silent safemode operation, will not ask you if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E <exitspec>[,<exitspec>] List programmer exit specifications.
  -x <extended_param>        Pass <extended_param> to programmer.
  -y                         Count # erase cycles in EEPROM.
  -Y <number>                Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -?                         Display this usage.

avrdude version 5.8, URL: <http://savannah.nongnu.org/projects/avrdude/>

C:\AVRDude>

Obsługa

Teraz, gdy wszystko jest już gotowe do pracy. Założeniem jest poprawne zainstalowanie sterowników programatora USBasp oraz jego połączenie z układem docelowym (mikrokonrolerem, który ma być zaprogramowany .  Należy pamiętać również o odpowiednim zasileniu układu programowanego, oraz – jeśli to konieczne – programatora

 

1. Sprawdzenie komunikacja z procesorem

avrdude -c usbasp -p m8
avrdude -c [rodzadzaj programatora] -p [typ mikrokontrolera]

 

2. Czyszczenie pamięci mikrokontrolera

Opcja chip erase powoduje wyczyszczenie (a dokładniej wypełnienie wszystkich komórek pamięci wartością 0xFF) całej pamięci flash oraz eeprom mikrokontrolera. Dodatkowo usuwane są wszelkie zabezpieczenia w postaci lockbitów. Zmianie nie ulegają ustawienia fusebitów.

avrdude -c usbasp -p m8 -e
avrdude -c [rodzaj programatora] -p [typ mikrokontrolera] -e

 

3. Odczyt programu (.hex) z pamięci flash/eeprom mikroprocesora do pliku

Uwaga: plik powinien już istnieć i mieć format Intel Hex, inaczej Avrdude zwróci błąd zapisu do pliku.

avrdude -c usbasp -p m8 -U flash:r:program.hex
avrdude -c [rodzaj programatora] -p [typ mikrokontrolera] -U [pamięć (flash/eeprom):r(read - odczyt):nazwa_pliku.hex]

 

4. Zapis programu (.hex) do pamięci  flash/eeprom mikroprocesora do pliku

avrdude -c usbasp -p m8 -U flash:w:program.hex
avrdude -c [rodzaj programatora] -p [typ mikrokontrolera] -U [pamięć (flash/eeprom):w(write - zapis):nazwa_pliku_z_danymi.hex]

 

5. Weryfikacja pamięci flash/eeprom z plikiem .hex

Funkcja ta jest wykorzystywana, aby sprawdzić czy dane znajdujące się w pamięci mikroprocesora są identyczne ze wzorcem w postaci pliku na komputerze. Operacja ta nie narusza danych w pamięci mikrokontrolera ani pliku .hex

avrdude -c usbasp -p m8 -U flash:v:program.hex
avrdude -c [rodzaj programatora] -p [typ mikrokontrolera] -U [pamięć (flash/eeprom):v(verify - weryfikacja):nazwa_pliku_z_danymi.hex]

 

6. Odczyt fusebitów

Fuesbity są to dwa rejestry mikrokontrolera. Dzięki nim można ustawić kilka bardzo ważnych parametrów pracy mikrokontrolera, np. źródła taktowania, watchdoga, programowanie ISP itp. Po więcej informacji odsyła do Google  jednakże polecam również stronę dzięki której można ‚policzyć’ odpowiednie dla naszych wymogów fuesbity.

avrdude -c usbasp -p m8 -U hfuse:r:-:h -U lfuse:r:-:h
avrdude -c [rodzaj programatora] -p [typ mikrokontrolera] -U hfuse:r:-:[system zapisu] -U lfuse:r:-:[system zapisu] (sytem zapisu: h-hex, b-binary)

 

7. Zapis fuesbitów

avrdude -c usbasp -p m8 -U hfuse:w:0xFF:m -U lfuse:w:0xFF:m
avrdude -c [rodzaj programatora] -p [typ mikrokontrolera] -U hfuse:w[(w - write):0x(wartość)]:m -U lfuse:w[(w - write):0x(wartość)]:m

 

8. Zmniejszenie prędkości programowania po ISP

Opcja ta jest potrzebna w przypadku programowania mikrokontorlerów taktowanych zegarem <1,5MHz. W takim przypadku należy zmniejszyć prędkość programowania. Odbywa się to poprzez dodanie tylko jednego parametru w linii poleceń.

-B10
-B[wartość]

Wartość to liczba µs opóźnienia w taktowaniu linii SCK, przez to zmienia się również częstotliwość programowania mikrokontrolera. Częstotliwość ta musi być co najmniej 4 razy mniejsza od częstotliwości zegara taktującego.

Np. dla fabrycznie nowych procesorów 8-bit AVR częstotliwość taktowania wynosi 1MHz, tak więc: 1Mhz/4=375000 Hz – częstotliwość programowania musi wynosić mniej niż 375000 Hz, np. 93750 Hz (opóźnienie co najmniej 6µs „-B6″). Poniżej przykładowe opóźnienia i odpowiadające im częstotliwości:

1: 750000 Hz
2: 375000 Hz
3: 187500 Hz
6: 93750 Hz
11: 32000 Hz
32: 16000 Hz

Przykłady

Odczytanie sygnatury mikrokontrolera Atmega8 taktowanego <1,5MHz:

Wszystkie mikrokontrolery firmy Atmel posiadają trzy bajtowy kod sygnatury, który identyfikuje podłączone urządzenie. Pozwala to sprawdzić poprawność działania programatora.

avrdude -c usbasp -p m8 -B10

Prawidłowy rezultat:

E:\avrdude>avrdude -c usbasp -p m8 -B10

avrdude: set SCK frequency to 93.75 kHz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Czyszczenie pamięci mikrokontrolera Atmega8 taktowanego <1,5MHz:

Polecenie to powoduje wyczyszczenie pamięci flash, eeprom oraz lockbitów mikrokontrolera.

avrdude -c usbasp -p m8 -e -B10

Prawidłowy rezultat:

E:\avrdude>avrdude -c usbasp -p m8 -e -B10

avrdude: set SCK frequency to 93.75 kHz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: erasing chip
avrdude: set SCK frequency to 93.75 kHz

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

 

Zapis danych do pamięci flash mikrokontrolera Atmega8 taktowanego <1,5MHz:

Easy AdSense by Unreal

Uruchomi proces zapisu programu pamięci flash mikrokontrolera Atmega8, który taktowany jest zegarem o częstotliwości < 1,5MHz (fabrycznie nowy mikrokontroler jest taktowany częstotliwością 1MHz). W pamięci zapisany zostanie program w pliku program.hex

avrdude -c usbasp -p m8 -U flash:w:program.hex -B10

 

Prawidłowy rezultat:

E:\avrdude>avrdude -c usbasp -p m8 -U flash:w:program.hex -B10

avrdude: set SCK frequency to 93.75 kHz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed

         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: set SCK frequency to 93.75 kHz
avrdude: reading input file "program.hex"
avrdude: input file program.hex auto detected as Intel Hex
avrdude: writing flash (4700 bytes):

Writing | ################################################## | 100% 4.91s

avrdude: 4700 bytes of flash written
avrdude: verifying flash memory against program.hex:
avrdude: load data flash data from input file program.hex:
avrdude: input file program.hex auto detected as Intel Hex
avrdude: input file program.hex contains 4700 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.99s

avrdude: verifying ...
avrdude: 4700 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

 

Zapis danych do pamięci eeprom mikrokontrolera Atmega8 taktowanego <1,5MHz:

Uruchomi proces zapisu danych pamięci eeprom mikrokontrolera Atmega8, który taktowany jest zegarem o częstotliwości < 1,5MHz (fabrycznie nowy mikrokontroler jest taktowany częstotliwością 1MHz). W pamięci eeprom zostaną zapisane dane znajdujące się w pliku program.hex

avrdude -c usbasp -p m8 -U eeprom:w:program.hex -B10

 

Prawidłowy rezultat:

E:\avrdude>avrdude -c usbasp -p m8 -U eeprom:w:program.hex -B10

avrdude: set SCK frequency to 93.75 kHz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: reading input file "program.hex"
avrdude: input file program.hex auto detected as Intel Hex
avrdude: writing eeprom (512 bytes):

Writing | ################################################## | 100% 1.04s

avrdude: 512 bytes of eeprom written
avrdude: verifying eeprom memory against program.hex:
avrdude: load data eeprom data from input file program.hex:
avrdude: input file program.hex auto detected as Intel Hex
avrdude: input file program.hex contains 512 bytes
avrdude: reading on-chip eeprom data:

Reading | ################################################## | 100% 0.28s

avrdude: verifying ...
avrdude: 512 bytes of eeprom verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Weryfikacja danych zapisanych w pamięci eeprom mikrkontrolera Atmega8 taktowanego <1,5MHz:

Zostanie dokonane sprawdzenie czy danye znajdujące się w pamięci eeprom mikrokontrolera są identyczne ze wzorcem zapisanym w pliku program.hex. Możliwe jest również dokonanie takiej weryfikacji dla pamięci flash (zamiast rodzaju pamięci eeprom należy wybrać flash).

avrdude -c usbasp -p m8 -U eeprom:v:program.hex -B10

Prawidłowy rezultat poprawnej weryfikacji danych:

E:\avrdude>avrdude -c usbasp -p m8 -U eeprom:v:program.hex -B10

avrdude: set SCK frequency to 93.75 kHz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: current erase-rewrite cycle count is 5 (if being tracked)
avrdude: verifying eeprom memory against program.hex:
avrdude: load data eeprom data from input file program.hex:
avrdude: input file program.hex auto detected as Intel Hex
avrdude: input file program.hex contains 512 bytes
avrdude: reading on-chip eeprom data:

Reading | ################################################## | 100% 0.27s

avrdude: verifying ...
avrdude: 512 bytes of eeprom verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Komunikat avrdude: 512 bytes of eeprom verified oznacz, iż dane zapisane w pamięci eeprom mikrokontrolera są identyczne z danymi znajdującymi się w pliku program.hex.

Dla przykładu log ukazujący błędną weryfikację danych:

E:\avrdude>avrdude -c usbasp -p m8 -U eeprom:v:program.hex -B10

avrdude: set SCK frequency to 93.75 kHz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: current erase-rewrite cycle count is 5 (if being tracked)
avrdude: verifying eeprom memory against program.hex:
avrdude: load data eeprom data from input file program.hex:
avrdude: input file program.hex auto detected as Intel Hex
avrdude: input file program.hex contains 512 bytes
avrdude: reading on-chip eeprom data:

Reading | ################################################## | 100% 0.29s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x3b != 0xff
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Komunikat verification error, first mismatch at byte 0×0000 0x3b != 0xff oznacza, iż dane zapisane w pamięci eeprom mikrokontrolera różnią się od danych znajdujących się w pliku program.hex. Dodatkowo avrdude ukazuje adres pierwszej komórki pamięci, która różni się swoją wartością od odpowiadającej jej wartości w pliku program.hex. Dla tego przykładu: na 0×0000 są różne wartości, tj 0x3b != 0xff.

Odczyt fusebitów mikrokontrolera Atmega8 taktowanego <1,5MHz:

Uruchomi proces odczytu dwóch rejestrów (H i L fusebitów  mikrokontrolera Atmega8, który taktowany jest zegarem o częstotliwości < 1,5MHz. Wartość zostanie zwrócona w konsoli i podana w systemie zapisu liczb hexadecymalnym (hex).

avrdude -c usbasp -p m8 -U hfuse:r:-:h -U lfuse:r:-:h -B10

 

Prawidłowy rezultat:

E:\avrdude>avrdude -c usbasp -p m8 -U hfuse:r:-:h -U lfuse:r:-:h -B10

avrdude: set SCK frequency to 93.75 kHz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: reading hfuse memory:

Reading | ################################################## | 100% 0.00s

avrdude: writing output file ""
0xd9
avrdude: reading lfuse memory:

Reading | ################################################## | 100% 0.00s

avrdude: writing output file ""
0xe1

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Odczytane wartości: hfuse: D9; lfuse: E1 – są to wartości fabryczne mikrokontrolera Atmega8

Zapis fusebitów mikrokontrolera Atmega8 taktowanego <1,5MHz:

Uruchomi proces zapisu dwóch rejestrów (H i L fusebitów  mikrokontrolera Atmega8, który taktowany jest zegarem o częstotliwości < 1,5MHz. Nowe wartości rejestrów H i L wprowadzą zmianę częstotliwości taktowania mirkoekontrolea na 8Mhz z wewnętrznego generatora RC. Wartości należy wprowadzać w systemie zapisu liczb hexadecymalnym (hex).

avrdude -c usbasp -p m8 -U hfuse:w:0xD9:m -U lfuse:w:0xC4:m -B10

 

Prawidłowy rezultat:

E:\avrdude>avrdude -c usbasp -p m8 -U hfuse:w:0xD9:m -U lfuse:w:0xC4:m -B10

avrdude: set SCK frequency to 93.75 kHz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: reading input file "0xD9"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xD9:
avrdude: load data hfuse data from input file 0xD9:
avrdude: input file 0xD9 contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xC4"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xC4:
avrdude: load data lfuse data from input file 0xC4:
avrdude: input file 0xC4 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Nowe fusebity zostały zaprogramowane. Zgodnie z opisem, powinna być teraz możliwa komunikacja z mikrokontrolerem w maksymalnej częstotliwości taktowania linii SCK (bez parametru -B10). Sprawdzenie:

E:\avrdude>avrdude -c usbasp -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Inne przydatne parametry

Parametr -q

Wyłączenie wyświetlania paska postępu działania programu, np. podczas zapisu danych w pamięci

avrdude -c usbasp -p m8 -q

Efekt działania bez parametru -q:

E:\avrdude>avrdude -c usbasp -p m8

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Efekt działania z użyciem parametru -q:

E:\avrdude>avrdude -c usbasp -p m8 -q

avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e9307

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Inne informacje

Rozwiń listę obsługiwany programatorów
2232HIO		FT2232H based generic programmer
89isp		Atmel at89isp cable
abcmini		ABCmini Board, aka Dick Smith HOTCHIP
alf		Nightshade ALF-PgmAVR, http://nightshade.homeip.net/
arduino Arduino board, protocol similar to STK500 1.x
atisp		AT-ISP V1.1 programming cable for AVR-SDK1 from, http://micro-research.co.th/
avr109		Atmel AppNote AVR109 Boot Loader
avr910		Atmel Low Cost Serial Programmer
avr911		Atmel AppNote AVR911 AVROSP (an alias for avr109)
avrftdi		FT2232D based generic programmer
avrisp		Atmel AVR ISP (an alias for stk500)
avrisp2		Atmel AVR ISP mkII in ISP mode, in PDI mode for ATxmega devices, or in TPI mode for ATtiny4/5/9/10
avrispmkII	Atmel AVR ISP mkII (alias for stk500v2)
avrispv2	Atmel AVR ISP, running a version 2.x firmware (an alias for stk500v2)
bascom		Bascom SAMPLE programming cable
blaster		Altera ByteBlaster
bsd		Brian Dean’s Programmer, http://www.bsdhome.com/avrdude/
buspirate	The Bus Pirate
butterfly	Atmel Butterfly Development Board
c2n232i		C2N232I, reset=dtr sck=!rts mosi=!txd miso=!cts, http://www.ktverkko.fi/~msmakela/8bit/c2n232/hardware/index.en.html
dapa		Direct AVR Parallel Access cable
dasa		serial port banging, reset=rts sck=dtr mosi=txd miso=cts
dasa3		serial port banging, reset=!dtr sck=rts mosi=txd miso=cts
dragon_dw	AVR Dragon in debugWire mode
dragon_hvsp	AVR Dragon in high-voltage serial programming mode
dragon_isp	AVR Dragon in ISP mode
dragon_jtag	AVR Dragon in JTAG mode
dragon_pdi	AVR Dragon in PDI mode
dragon_pp	AVR Dragon in (high-voltage) parallel programming mode
dt006		Dontronics DT006
ere-isp-avr	ERE ISP-AVR, http://www.ere.co.th/download/sch050713.pdf
frank-stk200	Frank’s STK200 clone, http://electropol.free.fr/spip/spip.php?article15
futurlec	Futurlec.com programming cable
jtag1		Atmel JTAG ICE mkI, running at 115200 Bd
jtag1slow	Atmel JTAG ICE mkI, running at 19200 Bd
jtag2		Atmel JTAG ICE mkII, running at 115200 Bd
jtag2avr32	Atmel JTAG ICE mkII in AVR32 mode.
jtag2dw		Atmel JTAG ICE mkII in debugWire mode.
jtag2fast	Atmel JTAG ICE mkII, running at 115200 Bd
jtag2isp	Atmel JTAG ICE mkII in ISP mode.
jtag2pdi	Atmel JTAG ICE mkII in PDI mode.
jtag2slow	Atmel JTAG ICE mkII (default speed 19200 Bd)
jtagmkI		Atmel JTAG ICE mkI, running at 115200 Bd
jtagmkII	Atmel JTAG ICE mkII (default speed 19200 Bd)
jtagmkII_avr32	Atmel JTAG ICE mkII in AVR32 mode.
mib510		Crossbow MIB510 programming board
pavr		Jason Kyle’s pAVR Serial Programmer
picoweb		Picoweb Programming Cable, http://www.picoweb.net/
pony-stk200	Pony Prog STK200
ponyser		design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts
siprog		Lancos SI-Prog, http://www.lancos.com/siprogsch.html
sp12		Steve Bolt’s Programmer
stk200		STK200
stk500		Atmel STK500, probing for either version 1.x or 2.x firmware
stk500hvsp	Atmel STK500 in high-voltage serial programming mode(version 2.x firmware only)
stk500pp	Atmel STK500 in parallel programming mode (version 2.xfirmware only)
stk500v1	Atmel STK500, running a version 1.x firmware
stk500v2	Atmel STK500, running a version 2.x firmware
stk600		Atmel STK600 in ISP mode, in PDI mode for ATxmega devices, or in TPI mode for ATtiny4/5/9/10
stk600hvsp	Atmel STK600 in high-voltage serial programming mode
stk600pp	Atmel STK600 in parallel programming mode
usbasp		USBasp, http://www.fischl.de/usbasp/
usbtiny		USBtiny simple USB programmer, http://www.ladyada.net/make/usbtinyisp/
wiring		Wiring board, utilizing STK500 V2.x protocol, http://wiring.org.co/
xil		Xilinx JTAG cable


Rozwiń listę obsługiwany mikrokontrolerów

1200	AT90S1200 (****)
2313	AT90S2313
2333	AT90S2333
2343	AT90S2343 (*)
4414	AT90S4414
4433	AT90S4433
4434	AT90S4434
8515	AT90S8515
8535	AT90S8535
c128	AT90CAN128
c32	AT90CAN32
c64	AT90CAN64
m103	ATmega103
m128	ATmega128
m1280	ATmega1280
m1281	ATmega1281
m1284p	ATmega1284P
m128rfa1	ATmega128RFA1
m16	ATmega16
m161	ATmega161
m162	ATmega162
m163	ATmega163
m164	ATmega164
m164p	ATmega164P
m168	ATmega168
m168p	ATmega168P
m169	ATmega169
m16u2	ATmega16U2
m2560	ATmega2560 (**)
m2561	ATmega2561 (**)
m32	ATmega32
m324p	ATmega324P
m325	ATmega325
m3250	ATmega3250
m328p	ATmega328P
m329	ATmega329
m3290	ATmega3290
m329p	ATmega329P
m3290p	ATmega3290P
m32u2	ATmega32U2
m32u4	ATmega32U4
m48	ATmega48
m64	ATmega64
m640	ATmega640
m644p	ATmega644P
m644	ATmega644
m645	ATmega645
m6450	ATmega6450
m649	ATmega649
m6490	ATmega6490
m8	ATmega8
m8515	ATmega8515
m8535	ATmega8535
m88	ATmega88
m88p	ATmega88P
m8u2	ATmega8U2
pwm2	AT90PWM2
pwm2b	AT90PWM2B
pwm3	AT90PWM3
pwm3b	AT90PWM3B
t10	ATtiny10
t12	ATtiny12 (***)
t13	ATtiny13
t15	ATtiny15
t2313	ATtiny2313
t25	ATtiny25
t26	ATtiny26
t261	ATtiny261
t4	ATtiny4
t4313	ATtiny4313
t44	ATtiny44
t45	ATtiny45
t461	ATtiny461
t5	ATtiny5
t84	ATtiny84
t85	ATtiny85
t861	ATtiny861
t88	ATtiny88
t9	ATtiny9
ucr2	AT32uca0512
usb1286	ATmega1286
usb1287	ATmega1287
usb162	ATmega162
usb646	ATmega647
usb647	ATmega647
usb82	ATmega82
x128a1	ATxmega128A1
x128a1d	ATxmega128A1revD
x128a3	ATxmega128A3
x128a4	ATxmega128A4
x16a4	ATxmega16A4
x192a1	ATxmega192A1
x192a3	ATxmega192A3
x256a1	ATxmega256A1
x256a3	ATxmega256A3
x256a3b	ATxmega256A3B
x32a4	ATxmega32A4
x64a1	ATxmega64A1
x64a3	ATxmega64A3
x64a4	ATxmega64A4
(*) AT90S2323 i ATtiny22 używają tego samego algorytmu.

(**) Adresowanie komórek pamięci flash powyżej 128 KB nie jest wspierane przez wszystkie programatory. Prawidłowo pracują jtag2, stk500v2, oraz programatory bit-bang.

(***) ATtiny11 używa tego samego algorytmu, lecz może być programowane tylko w trybie wysokonapięciowym (high-voltage serial mode).

(****) Protokół programowania ISP dla AT90S1200 różni się pewnymi względami od innych mikrokontrolerów AVR. Z tego powodu nie każdy programator wpiera ten mikrokontroler. Prawidłowo pracują wszystkie bezpośrednie programatory bitbang oraz wszystkie korzystające z protokołu STK500v2.

Na program AVRDUDE istnie wiele graficznych nakładek – GUI. Ułatwiają one pracę z programem. Jednakże większość z nich nie posiada nowych wersji (zostały raz stworzone i zapomniane). Jedną z podstawowych wad takich nakładek jest brak wparcia dla zwolnienia częstotliwości programowania na linii SCK (slow sck mode, parametr -B). Nie spotkałem jeszcze żadnego GUI do AVRDUDE umożliwiającą taką opcję.

Ranking nakładek graficznych na AVRDUDE – GUI

 

Download

8 Responses

Subscribe to comments via RSS

  1. Written by Marek
    on 29 stycznia 2013 at 22:53
    Odpowiedz · Permalink

    Nie spotkałem jeszcze tak dobrego opisu AVRDUDE w języku polski – dzięki na pewno się przyda.

  2. Written by Gniazda
    on 28 kwietnia 2014 at 10:52
    Odpowiedz · Permalink

    Niesamowity tekst, lepszy niż podręczniki, dzięki wielkie naprawdę

  3. Written by skuteczne
    on 25 listopada 2014 at 8:22
    Odpowiedz · Permalink

    Zasłużony pozytyw, idealny partner do interesów

  4. Written by migashco.com
    on 14 kwietnia 2015 at 7:31
    Odpowiedz · Permalink

    Strona świadczy o ciekawych zagadnieniach, zachęcam do rozzmowy
    szlifierka do gładzi.

  5. Written by DARIUSZ JĘDRA
    on 19 maja 2016 at 4:02
    Odpowiedz · Permalink

    KASUJE PIN KOMPUTERA

  6. Written by tos18
    on 17 września 2016 at 12:19
    Odpowiedz · Permalink

    Uwaga w opisie przygotowania do pracy jest bład „komendą cp C:\avrdude\.”
    cp – copy służy do kopiowania plików.
    Powinno być cd – change directory – zmień katalog.

  7. Written by Iphone
    on 8 października 2016 at 14:33
    Odpowiedz · Permalink

    Znakomicie napisane. Polecam każdemu kto chciałby dowiedzieć się czegoś o avrdude

  8. Written by Marcin
    on 1 czerwca 2017 at 12:15
    Odpowiedz · Permalink

    Dzięki, przyda się :)

Subscribe to comments via RSS

Leave a Reply