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?
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?
@ 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
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.