Forum: Mikrocontroller und Digitale Elektronik ATmega8 nur mehr per High Voltage programmierbar


von Chris O. (lupin_iii)


Lesenswert?

Ich habe ein kleines Programm geschrieben, das mir Rechtecksignale 
verschiedener Frequenz auf Port B und D ausgibt (in 1-2-5 Schritten um 
die Kalibrierung eines Oszis zu prüfen). Da der interne Oszillator des 
ATmega dafür aber viel zu ungenau ist, habe ich einen externen 12.000 
MHz Quarz auf dem STK500 verwendet. Hat auch alles super funktioniert. 
Da ich dann das STK für was anderes gebraucht habe, habe ich den ATmega 
samt Quarz auf ein Breadboard ausgelagert. Quarz zwischen PB6 und 7, 
22pF Kondensatoren nach GND, 100nF zwischen VCC und GND, noch alles 2x 
geprüft, ob ich auch wirklich überall die richtigen Pins erwischt habe 
(werden ja im Prinzip nur 4 benötigt). Ich habe dann 5V angeschlossen 
und das Netzteil hat bei 30mA abgeriegelt (soviel sollte ein mega8 laut 
Datenblatt nicht brauchen).

Ok, µC wieder zurück auf's STK, Quarz wieder dazugesteckt, eingeschalten 
-> läuft wieder wie zuvor. Dann wollte ich zu den Fuses schauen, merke 
aber, dass ich plötzlich per ISP keinen Zugriff mehr habe ("Entering 
programming mode.. FAILED!"). Ich habe dann umgesteckt auf "High Voltage 
Programming" und siehe da, es geht. Ich konnte ein neues Programm 
raufladen und die Fuses setzen. Aber egal was ich mache, ISP geht nicht 
mehr. Der Reset-Pin ist OK (reagiert auf Reset-Signal, RSTDISBL ist 
nicht gesetzt), auf allen Pins von Port B und D (ausgenommen PB[6:7] 
wegen Quarz) kommen die gewünschten Signale raus.

Kann mir jemand sagen, was ich falsch gemacht habe? Ist da hardwaremäßig 
was kaputt gegangen?

von spess53 (Gast)


Lesenswert?

Hi

SPIEN Fuse gesetzt?

MfG Spess

von Chris O. (lupin_iii)


Lesenswert?

Nein! Die war nicht gesetzt! Vor dem Ausbau war die sicher gesetzt, 
sonst hätte ISP ja nie funktioniert. Im ISP-Modus ist die Checkbox vor 
der Fuse immer leer und ausgegraut (wenn man AVR-Studio verwendet), und 
deswegen das leere Kästchen im HV-Modus für normal gehalten. So nebenbei 
habe ich "serial program downloading" falsch herum interpretiert. Ich 
dachte die ist dafür da, um ein Programm wieder auszulesen (Downloads 
landen normalerweise immer auf meinem Computer ;-).

Aber jetzt die wichtige Frage: Wie konnte die Fuse bei meinem Aufbau 
überhaupt deaktiviert werden?

von Falk B. (falk)


Lesenswert?

@ Chris O. (lupin_iii)

>Aber jetzt die wichtige Frage: Wie konnte die Fuse bei meinem Aufbau
>überhaupt deaktiviert werden?

Genauso wie die restlichen Fuses deaktiviert wurden. Wahrscheinlich hast 
du durch Falschpolung den AVR bissel durchgekocht, dadurch und durch 
"vagabundierende" Ströme wurde der Flash und somit die Fuses gelöscht.
Aber mit STK500 an der Hand ist das doch kein Thema.

MfG
Falk

von Chris O. (lupin_iii)


Lesenswert?

Komisch, die anderen Fuses (z. B. externer Takt) und das Programm waren 
wie zuvor. Falschpolung war es ziemlich sicher nicht. Ich habe wie 
gesagt alles doppelt geprüft und bin mir ziemlich sicher, dass ich die 
vier Pins richtig hinbekommen haben. Obwohl, möglicherweise liegt genau 
hier (bei VIER Pins) das Problem: ich hatte beim ersten Test den zweiten 
Ground-Pin nicht verbunden. Ich habe den zum ADC gehörig interpretiert. 
Deswegen -> weglassen ;-) Muss der verbunden sein? (am STK werden einem 
solche Fragen ja blöderweise alle abgenommen)

von uwegw (Gast)


Lesenswert?

AVVC und AGND müssen IMMER angeschlossen sein! Wenn der ADC nicht 
benötigt wird, direkt auf VCC und GND hängen.

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.