MC im richtigen Sockel?
ISP Geschwindigkeit kleiner als 1/4 der Taktfrequenz?
MC hat keinen Takt.
Hallo,
seit einiger Zeit besitze ich das STK500 und habe damit problemlos gearbeitet. Doch seit kurzem kann ich damit keine Controller mehr programmieren - weder über ISP noch mittels HV-Programmierung.
Folgende Analyse habe ich zusammengestellt - vielleicht kann mir ja jemand sagen, wo ich den Hardwarefehler am Board (bin mir so ziemlich sicher) suchen soll.
0. Upgrade des STK funktioniert ohne Probleme (inkl. verifying).
1. Verbindung mit STK500 klappt reibungslos, auch die diversen
Boardparameter lassen sich problemlos einstellen und wieder zurücklesen und liegen im grünen Bereich.
2. Bei Programmierung über ISP erscheinen immer folgende Meldungen:
a) Setting mode and device parameter OK
b) Entering program mode failed
c) Leaving program mode OK
Es ist weder Lesen noch Schreiben mögich.
Wenn ich probeweise keinen Prozessor stecke, dann kommen auch immer die Meldungen b) und c) - mit Ausnahme von a).
3. HV-Programmierung (Verbindungen garantiert richtig hergestellt):
a) Signature does not match device
b) Löschen der CPU scheinbar möglich
c) Schreiben und Lesen von Lock- und Fusebits scheinbar möglich.
In Wirklichkeit wird aber nichts in den Controller geschrieben.
Sonderbar ist auch, dass bei mehrfachem Click auf Lesen von Fuse- oder Lockbits sich die Werte willkürlich ändern.
Ein extern programmierter Controller arbeitet im Board (d. h. die LEDs werden z. B. angesteuert, das Programm läuft).
Ich habe diese Versuche an allen Sockeln mit unterschiedlichsten CPUs durchgeführt, das Board hat definitiv ein Hardwareproblem. Vielleicht habt ihr ja Tipps, wie ich den Fehler einkreisen kann.
Vielen Dank im voraus
MC im richtigen Sockel?
ISP Geschwindigkeit kleiner als 1/4 der Taktfrequenz?
MC hat keinen Takt.
Ja, habe ich alles überprüft - sogar die ISP-Geschwindigkeit auf Minimum reduziert. Es zeigen auch sämtliche Sockel das angeführte Problem.
Hat jemand einen Rat?
Da der PC mit dem stk500 vernünftig labern kann, kommt eigentlich nur noch die Verbindung zum Zielprozessor-Sockel in Frage.
"Sonderbar ist auch, dass bei mehrfachem Click auf Lesen von Fuse- oder Lockbits sich die Werte willkürlich ändern".
Hast du auf den Port Pins noch Kabel stecken (Kapazitäten), dann schmeiss die mal runter. Ist das 6-polige ISP-Kabel OK? Lose Kontakte? Tausch es doch mal aus. Ein 10-poliges, mittig eingesteckt, tut es testweise auch.
Sonst kommen IMHO nur noch die Doppeltransistoren Q900 & Co., bzw. Q203 für den Reset, in Frage, aber dann brauchst du ein Scope zum checken der Impulsformen.
Benutzt du das AVR-Studio?
Wenn du noch ein anderes Board und einen anderen Programmer hast, kannst du auch zum Fehlereingrenzen probieren vom STK aus das andere Board zu programmieren und mit dem Programmer den Kontroller im STK-Sockel.
Die Boardpins sind komplett unbeschaltet.
Heute Abend werde ich mal testweise auf einem Breadboard versuchen, ob ich einen MC mit dem STK programmieren kann.
Vielen Dank für eure Tipps.
Wie versprochen, die Erkenntnisse meiner Versuche:
1. Da ich noch einen myAVR-USB-Programmieradapter (AVR911) besitze, habe ich damit probeweise einen ATmega8 auf einem Breadboard gelöscht, gefust und programmiert.
2. Die gleichen Versuche auf dem STK500 zeigten wieder die tags zuvor benannten Ergebnisse. Da ich nun nicht den Prozessor im auf dem Board sondern auf dem Steckbrett programmieren wollte, fiel das Thema "schlechtes Kabel" schon mal weg, denn das 10-polige ISP-Kabel hat ja mit dem myAVR funktioniert.
3. Ich hatte Demoversionen (Codebeschränkung) von VMLAB und Bascom auf meinem Rechner; nun war mein Ziel, die Situation mit diesen Softwareplattformen zu testen - normalerweise habe ich nämlich über AVR-Studio und C programmiert.
4. VMLAB: Nach Auswahl von STK500 kann ich die Boardspannung und die Taktfrequenz schreiben und lesen.
Im ISP-Mode gibt es ebenfalls wie im AVR-Studio die Fehlermeldung, dass der Programmmodus nicht aufgerufen werden kann.
Bei Umschaltung auf HV (und garantiert richtig gesteckten Kabelverbindungen auf dem STK500 und zwischenzeitlich wieder auf den grünen Sockel des STK500 zurückgesteckten ATMega kann ich die Lock- und Fusebits lesen und schreiben und den Prozessor löschen (zumindest erscheint jedesmal eine grüne Anzeige im Fenster), das Überprüfen der Signatur scheitert jedoch. Ein Rücklesen bzw. Verify der Bits gibt jedoch ebenfalls eine Fehlermeldung (es wurde also kein Bit im Controller verändert!).
5. Bascom (SPI): Im Dos-Fenster wird eine korrekte Verbindung zum STK500 angezeigt, die darauffolgende Zeile meldet jedoch: "Entering programming mode failed".
Fazit:
===
Egal ob der zu programmierende Mikrocontroller im STK500 steckt oder extern über ISP angesprochen wird, über ISP ist mit keiner Software eine Verbindung zustandezubringen.
Bei gestecktem Prozessor im STK500 und korrekten Kabelverbindungen sieht es so aus, als ob das Lesen und Schreiben der Fuse- und Lockbits funktionieren würde; ein Rücklesen bzw. Verify liefert jedoch keine Änderung - außerdem ist die Signatur immer fehlerhaft.
Ich habe mir bereits über die Hilfe des AVR-Studios die kompletten Schaltpläne heruntergeladen und ein Oszilloskop besitze ich auch. Da ich den genauen Zusammenhang der einzelnen Bauteile auf dem STK500 nur vage kenne, wäre ich für jedmögliche Unterstützung sehr dankbar.
Vielleicht hat ja der eine oder andere noch eine Idee, wo und wie ich am besten mit meinen Messungen vorgehen soll.
Viele Grüße
Hallo francesco,
mach doch einfach mal ein Foto* vom nicht funktionierendem Aufbau und stell es hier ein!
Gruß, Michael
*scharf und hochauflösend
Na gut Michael, hier 2 Bilder - einmal als ISP und 1x HV.
Ich glaube zwar nicht, dass ich einen Fehler gemacht habe, aber ich lasse mich gerne belehren.
Übrigens, die Spannung des Boards ist auf den Fotos nicht ein, da ich es zum Fotografieren an einen helleren Ort gebracht habe, wo keine Steckdose in der Nähe war - die LEDs zeigen aber korrekt an und die gemessenen Spannungswerte (Target, Uref) stimmen auch.
francesco
Mess mal mit dem Scope den Reset Pin direkt am MC wärend der Programmierung und schau, ob der zwischen drin zuckelt und dadurch die Programmierung versaut.
Lesezeichen