Wie flasht man ein AVR-NET-IO: Unterschied zwischen den Versionen
Loddel (Diskussion | Beiträge) (→Umbau von einem ATMega32 auf den ATMega644 / ATMega644p) |
Loddel (Diskussion | Beiträge) (→Unterschiede zwischen ATMega32 und ATMega644) |
||
Zeile 78: | Zeile 78: | ||
{| border=1 cellspacing=0 padding=4 class=wikitable " | {| border=1 cellspacing=0 padding=4 class=wikitable " | ||
− | ! !! ATMega32 !! ATMega644 | + | ! !! ATMega32 !! ATMega644 !! ATMega644p |
|- | |- | ||
| Gehäuse || DIL-40 || DIL-40 | | Gehäuse || DIL-40 || DIL-40 | ||
|- | |- | ||
− | | MHz || max. 16 || max. 20 | + | | MHz || max. 16 || max. 20 || max. 20 |
|- | |- | ||
− | | Flash || 32 KB || 64 KB | + | | Flash || 32 KB || 64 KB || 64 KB |
|- | |- | ||
− | | EEProm || 1 KB || 2 KB | + | | EEProm || 1 KB || 2 KB || 2 KB |
|- | |- | ||
− | | RAM || 2 KB || 4 KB | + | | RAM || 2 KB || 4 KB || 4 KB |
|- | |- | ||
− | |I/O || 32 || 32 | + | |I/O || 32 || 32 || 32 |
|- | |- | ||
− | |PWM || 4 || 6 | + | |PWM || 4 || 6|| 6 |
|- | |- | ||
− | |ext. INT || 3 || 32 | + | |ext. INT || 3 || 32|| 32 |
+ | |Ser-Port || 1 || 1 || 2 | ||
|} | |} | ||
Version vom 20. Mai 2010, 07:50 Uhr
Inhaltsverzeichnis
AVR-NET-IO mit dem ATMEL Evaluations-Board von Pollin flashen
Als Einsteiger hat man es immer wieder schwer alle Information zu finden. Ich habe lange gesucht bis ich das mit dem Flashen kapiert habe.
Benötigt wird:
- AVR-NET-IO
- ATMEL Evaluations-Board
- ein 1:1 Kabel für den ISP Port (10-poliger Pfostenstecker)
Flashen unter Linux
Das 10-polige Kabel in die ISP-Buchse stecken. Nun das AVR-NET-IO Board mit Strom versorgen. Wenn das ISP-Kabel richtig gesteckt ist, leuchtet auf dem Evalutions-Board die (gelbe) LED
Nach dem Erzeugen der ethersex.hex kann man mit avrdude das Ganze flashen. Das nachfolgende Kommando ist bei einigen Parametern vom ISP-Programmer abhängig. Das nachfolgende Beispiel gilt für einen ISP-Programmer der über die serielle Schnittstelle arbeitet:
avrdude -v -p m32 -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex
Für eine USB-ISP-Programmer wäre statt dessen der folgende Befehl zu verwenden:
avrdude -v -p m32 -c stk500v2 -P /dev/ttyACM0 -U flash:w:ethersex.hex
Nach dem Flashen das ISP-Kabel entfernen und kurz die Stromversorgung unterbrechen um das Board zu rebooten.
* -p m32 steht für den ATMega32; -p m644 wäre der ATMega644 * -v erweiterte Ausgaben * -c ponyser ist das Verfahren wie das Evalutions-Board die Daten flasht * -P ist die Serielle Schnittstelle an dem das Evalutions-Board angeschlossen ist (bei USB /dev/ttyUSB0) * -U was man machen möchte. In unserem Fall wollen wir das File ethersex.hex flashen (-U flash:w:ethersex.hex)
Es kann sein das man für den ATMega32 die FUSE Bits setzen muss.
avrdude -p m32 -c ponyser -P /dev/ttyS0 -U lfuse:w:0xCF:m -U hfuse:w:0xDC:m
Um die korrekte Fuse-Einstellung rauszufinden, ist es sinnvoll http://www.engbedded.com/fusecalc/ zu benutzen.
Die Parameter für MyAVR mySmartusb light (Insbesondere das -e war nötig):
avrdude -p m32 -e -c stk500v2 -P /dev/ttyUSB0 -U flash:w:ethersex.hex
Umbau von einem ATMega32 auf den ATMega644 / ATMega644p
Die Vorteile vom ATMega644(p) ist vor allem der doppelt so große Speicher.
- Den ATMega32 aus der Halterung von dem AVR-IO-Net ziehen
- Den ATMega644(p) einbauen (ACHTUNG Kerbe im Sockel muss mit Kerbe in der CPU übereinstimmen)
- FUSE-Bits setzen
- Wichtig: im Auslieferungszustand ist der ATMega644 programmiert auf 8MHz interner RC Oszillator und der Takt wird durch 8 geteilt; also 1MHz Takt. Wenn ein externe Quarz verwendet wir, muss das Bit CKDIV8 (Takt geteilt durch 8) auf null gesetzt werden.
- (Übernommen von dinus) Der ATMega wird dabei mit 1Mhz getacktet, kein JTag.
avrdude -p m644 -c ponyser -P /dev/ttyS0 -U lfuse:w:0xE7:m -U hfuse:w:0xDC:m -U efuse:w:0xFF:m
- bzw.
avrdude -p m644p -c ponyser -P /dev/ttyS0 -U lfuse:w:0xE7:m -U hfuse:w:0xDC:m -U efuse:w:0xFF:m
- in der Config von Ethersex (make menuconfig) von ATmega32 auf ATMega644 umstellen
- Flashen mit
avrdude -p m644(p) -c ponyser -P /dev/ttyS0 -U flash:w:ethersex.hex -v
Fuse-Bitz wie sie "DiDi" einsetzt. Der jTag ist eingeschaltet.
* -U lfuse:w:0xf7:m -U hfuse:w:0x99:m -U efuse:w:0xfc:m
Fuse-Bits wie "loddel" sie einsetzt. Der jtag ist ausgeschaltet.
* -U lfuse:w:0xf7:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m * -U lfuse:w:0xe7:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m
Fuse-Bits wie "gregor" sie einsetzt. "Damit läuft der 644 auf 16MHz Quarz und der Takt wird nicht durch 8 geteilt" Der jTag ist eingeschaltet.
* -U lfuse:w:0xef:m -U hfuse:w:0x99:m -U efuse:w:0xff:m
Unterschiede zwischen ATMega32 und ATMega644
ATMega32 | ATMega644 | ATMega644p | |||||
---|---|---|---|---|---|---|---|
Gehäuse | DIL-40 | DIL-40 | |||||
MHz | max. 16 | max. 20 | max. 20 | ||||
Flash | 32 KB | 64 KB | 64 KB | ||||
EEProm | 1 KB | 2 KB | 2 KB | ||||
RAM | 2 KB | 4 KB | 4 KB | ||||
I/O | 32 | 32 | 32 | ||||
PWM | 4 | 6 | 6 | ||||
ext. INT | 3 | 32 | 32 | Ser-Port | 1 | 1 | 2 |
Flashen unter Windows
keine Ahnung
- Pro live-cd wobei Windows unangeruehrt bleibt:
- http://www.ethersex.de/index.php?title=Live_CD
- apt-get install libncurses5-dev
- update und installier software fuer ethersex wie beschrieben http://www.ethersex.de/index.php/Download
- wenn help in menuconfig nicht geht: apt-get install dialog