Forum: Mikrocontroller und Digitale Elektronik willem als SPI Programmer Problem


von Peter M. (hames)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich versuche hier einen ATtiny84 der auf einer Platine mit 20 Mhz Quarz 
sitzt  über eine 6 Pin SPI Verbindung zu programmieren.

Vor dem Programmieren konnte ich ohne Probleme die Fuse Bits usw 
auslesen und  die ID des Chips wurde erkannt.
Dann wollte ich die Fusebits wie gefordert einstellen:

Low Fuse:0xde
High Fuse: 0xd6
Extended Fuse: 0xff

Der Fuserechner auf http://www.engbedded.com/ zeigt dafür folgende 
Einstellung an (siehe Anhang).
Kreuzt man in der Software des Willem Programmers die entsprechenden 
Kästchen an, so zeigt er dort allerdings ganz andere HEX Werte an.
Hat jemand eine Ahnung warum das so ist?
Er müsste ja dann die Fuse ganz falsch setzten!

Ich habe den Chip dann trotzdem gebrannt und jetzt macht nichts mehr.
Die ID wird nicht erkannt ("Electronic ID not match").

Das Calibration byte in der Willem Oberfläche ist doch sozusagen der 
Osccal Wert bei PICs, den man vorher auslesen und aufschreiben sollte? 
Oder geht der bei AVRs nicht so leicht verloren?

Vielen Dank für die Hilfe,

hames

von Peter M. (hames)


Lesenswert?

Okay, ich habe gerade herausgefunden, das im Willem ein Häkchen für 
"nicht ausgewählt" steht. Das verwirrt natürlich erst einmal sehr!

Fakt ist, das jetzt folgende Fuses eingestellt sind:

Low Fuse:0x21
High Fuse: 0x09
Extended Fuse: 0xff

  Clock output on PORTB2; [CKOUT=0]
  Divide clock by 8 internally; [CKDIV8=0]

  Preserve EEPROM memory through the Chip Erase cycle; [EESAVE=0]
  Watch-dog Timer always on; [WDTON=0]
  Serial program downloading (SPI) enabled; [SPIEN=0]
  Debug Wire enable; [DWEN=0]
  Reset Disabled (Enable PB3 as i/o pin); [RSTDISBL=0]
  Self Programming enable; [SELFPRGEN=0]


Das Problem ist doch jetzt
1) ist er auf einen Externen Clock eingestellt, d.H. mein Quarz bringt 
mir nichts mehr und ich müsste z.B. mit einem Frequenzgenerator einen 
Clock vorgeben.
2) der RESET Pin ist deaktiviert
3) Durch das Aktivieren der Debugwire Verbindung funktioniert SPI nicht 
mehr

Fazit: Mit dem Willem kommt man da nicht mehr weit, also etwas dazu 
gelern und einen neuen ATtiny kaufen...

von Georg G. (df2au)


Lesenswert?

peter müööer schrieb:
> neuen ATtiny kaufen

den kann man per HV-Programmierung wieder entsperren

von Stefanus (Gast)


Lesenswert?

Eine Fuse ist aktiviert, wenn sie "durchgebrannt" wird, dann ist das 
entsprechende Bit LOW.

Manche Programme zeigen ein Häckchen an, wenn das Bit auf HIGH steht.

Deswegen war es schon eine gute Idee von Dir, die HEX-Werte zu prüfen. 
Das mache ich auch immer, um Sicher zu gehen.

von Peter M. (hames)


Lesenswert?

Ja, das ist mir leider erst danach aufgefallen :)

Habe aber eine gute selber-Bastel-Lösung gefunden um die Fuses wieder 
auf Werkseinstellungen zu setzten:

http://www.elektronik-labor.de/Arduino/Fuses.html

Hätte ich auch alles da, habe mir nur schon etwas vorschnell einen neuen 
Attiny gekauft, dann sollte aber alles funktionieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.