Unser ATmega32 ist mit dem PG1 ISP Programmer von Olimex an COM1 mit dem Computer verbunden.
Wir arbeiten mit Windoof XP sp2.
Programmer-Datenblatt:
http://www.olimex.com/dev/pdf/avr-pg1b.pdf
Unser Problem:
Die Daten vom Prozessor zum PC scheinen unvollständig zu sein:
Im Termina-Mode von AVRdude werden die Fusesbits korrekt ausgelesen (immer!). Die Signatur hingegen, nur sehr selten Vollständig, bzw. korrekt.
Nach dem beschreiben des Chip mit Code (immer mit dem Check-override Parameter -F), werden beim "Verifying" alle Bytes als 0 ausgelesen.C:\Documents and Settings\Share$>avrdude -p m32 -c ponyser -P COM1 -t
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x009500
avrdude: Expected signature for ATMEGA32 is 1E 95 02
Double check chip, or use -F to override this check.
avrdude done. Thank you.
C:\Documents and Settings\Share$>avrdude -p m32 -c ponyser -P COM1 -t -F
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x009500
avrdude: Expected signature for ATMEGA32 is 1E 95 02
avrdude> read lfuse 0 1
>>> read lfuse 0 1
0000 ff
avrdude> read hfuse 0 1
>>> read hfuse 0 1
0000 d9
Liest man im Terminal-Mode Bytes aus dem Flash-Speicher, werden fast zufallsbedingte Daten ausgelesen. Man Beachte, der Wert der angeblich ausgelesenen Bytes erhöht sich bei jedem zweiten Byte um eins.avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0x0c != 0x00
avrdude: verification error; content mismatch
avrdude: safemode: lfuse changed! Was ff, and is now 0
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: hfuse changed! Was d9, and is now 0
Would you like this fuse to be changed back? [y/n] n
avrdude: safemode: Fuses OK
--> Siehe Anhang read_flash.txt
Was könnte der Grund für dieses Verhalten sein?
Gruss
Share