Hallo,
ich versuche gerade, mit einem Tiny2313 die Fuses eines anderen Tiny2313 zu programmieren. Eigentlich klappt das auch, nur das zuruecklesen der Fuses will noch nicht. Es wird zwar scheinbar der richtige Wert gelesen, aber die Abfrage, ob er richtig ist, klappt nicht:
[...] ldi temp2, 0xDF rcall write_highfuse rcall read_highfuse cpi temp, 0xDF breq prog_end ldi error, 6 rcall eep prog_end: [...] reteep: sbic EECR, EEPE rjmp eep cbi EECR, EEPM0 cbi EECR, EEPM1 out EEAR, error out EEDR, temp sbi EECR, EEMPE sbi EECR, EEPE ret
Seltsamerweise steht nach dem Ausfuehren des Programms immer die 0xDF im EEPROM an Adresse 6, obwohl dann ja eigentlich das Laden der Adresse nach "error" und das Aufrufen der EEPROM-Schreibfunktion uebersprungen werden sollte?! Error ist danach auch wirklich 6 (ich habe da eine LED dran, die nach dem Programmieren so oft blinkt, wie es in "error" steht). Das seltsame ist, dass ich das gleiche fuer die Low- und Extended-Fuses auch noch im Programm drin habe, und da funktioniert es tadellos (0x62 -> Low, 0x01 -> Ext).
Hat irgendjemand eine Idee, was da schief laufen koennte? Kann das daran liegen, dass ich das alte AVR Studio 3.56 verwende (das den Tiny2313 eigentlich nicht unterstuetzt - das richtige Include-File habe ich aber natuerlich angegeben)? Ich bim im Moment echt der Verzweiflung nahe :-(
Gruss, Arne