ich wollte meinen jüngst fertig gebauten ct-Bot flashen und habe mich dafür an den Hinweisen im ct-Bot-Wiki/Flash und am FAQ/Flashen orientiert.
Nur zur Erklärung, warum ich mich dabei so dämlich anstelle, hier meine Zusammenfassung des Lesestoffes:
Im Wiki werden unterschiedliche Adapter (mit Hinweis auf .hex-Dateien in den Beispiel-Befehlen), Flashen von EEPROM-Abbildern (.eep-Dateien ), Setzen der Fuse-Bits und der Bootloader (mit dem Hinweis, diesen auch erstmal ignorieren zu können) erklärt. Ob und welche Reihenfolge es dabei gibt, erschloss sich mir dabei nur indirekt bzw. durch blindes Vertrauen, dass der Artikel mit der Reihenfolge der Abschnitte auch eine Reihenfolge für das Flashen nahelegen wollte. In den FAQ stand dann, man müsse nur die .hex-Datei flashen sowie Fuse-Bits setzen (und das möglichst nur einmal, wovon aber wiederum im Wiki nichts steht).
Daraus habe ich folgende Abfolge zusammengedichtet:
1. apt-get install avrdude
2. Test-Programme herunterladen.
3. ct-Bot anschalten (dem Hinweis der c't entsprechend, der Bot müsste immer über eine eigene Stromquelle verfügen, um sich nicht über den Parallelport zu versorgen)
4. ct-Bot mit blueMP3-ISP-Adapter verbinden
5. Flashen von ct-Bot-analog.hex:
Code: Alles auswählen
$ sudo avrdude -c stk200 -P /dev/parport0 -p m32 -U flash:w:"ct-Bot-analog.hex":i
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9705
avrdude: Expected signature for ATmega32 is 1E 95 02
Double check chip, or use -F to override this check.
avrdude done. Thank you.
Code: Alles auswählen
$ sudo avrdude -c stk200 -P /dev/parport0 -p m32 -U lfuse:w:0xFF:m -U hfuse:w:0xD1:m -v
avrdude: Version 6.1, compiled on Sep 11 2014 at 20:00:34
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/root/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/parport0
Using Programmer : stk200
AVR Part : ATmega32
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 4 10 64 0 no 1024 4 0 9000 9000 0xff 0xff
flash 33 6 64 0 yes 32768 128 256 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
lock 0 0 0 0 no 1 0 0 2000 2000 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 4 0 0 0 0 0x00 0x00
Programmer Type : PPI
Description : STK200
VCC = (not used)
BUFF = 4,5
RESET = 9
SCK = 6
MOSI = 7
MISO = 10
ERR LED = (not used)
RDY LED = (not used)
PGM LED = (not used)
VFY LED = (not used)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9705
avrdude: Expected signature for ATmega32 is 1E 95 02
Double check chip, or use -F to override this check.
avrdude done. Thank you.
Ergebnis: Bot leuchtet wie der Weihnachtsbaum im "Auslieferungszustand", Räder drehen sich entgegengesetzt. Sollte das Flashen also irgendeine Änderung bewirkt haben, fällt mir keine auf.

1. Frage: Was hab ich falsch gemacht?

2. Frage: Schmort es die Bot-Hardware irgendwie durch, wenn man die Motoren beim Flashen vom Strom abzieht? Das Laufgeräusch der Räder ist in späten Stunden etwas nervig.
3. Frage: Muss der Bot beim Flashen überhaupt angeschaltet sein oder reicht es, wenn er mit Akkupack oder Netzteil verbunden, aber ausgeschaltet ist?
4. Frage: betrifft den Hinweis des Wikis:
-> Woher weiß ich, wann "eventuell" der Fall ist?Um neue Mikrocontroller erstmals zu programmieren, muss man eventuell die Taktgeschwindigkeit des Programmieradapters heruntersetzen, weil der Mikrocontroller im Auslieferungszustand mit einem sehr niedrigen Takt läuft. Dazu hängt man beim Setzen der Fuse-Bits -B 1000 an die Befehlszeile an. Anschließend setzt man beim Übertragen des Programm mit -B 1 die Taktgeschwindigkeit wieder hoch.
Es tut mir leid, wenn diese Fragen trivial sind, aber die heise-Dokumentationen wirken in alter Tradition eher wie Notizen für diejenigen, die eh schon wissen wie es geht.

Vielen Dank im Voraus!
Edit: Titel geändert (war: "Bot geflasht, aber keine Änderung? Fragen zum Flash-Vorgang.")