Guten Tag,
ich hab leider ein großes Problem bei der Progammierung verschiedener
uCs.
Rahmenbedingungen:
Programmer: AVR Dragon
Schnittstelle: ISP
Programm: AVR Studio 6.1
uC: verschiedene 8-Bit uC (ATtiny13, AtMega48, AtMega88 usw.)
Fehlermeldung: "Unable to enter programming mode.
Please verify device selection, interface settings, target power and
connections to the target device."
UuC: 3.3V
Problembeschreibung:
Jedesmal wenn ich die "device signature" im AS auslesen möchte kommt die
oben genannte Fehlermeldung (Spannung wird richtig angezeigt). Es ist zu
100% richtig verdrahtet, von daher fällt diese Fehlerquelle weg. Ich hab
die Signale natürlich auch an MISO/MOSI/RESET/SCK nachgemessen und dabei
ist mir aufgefallen dass RESET dauerhaft low ist, MISO dauerhaft high
ist, MOSI dauerhaft low ist und einzig und allein der SCK richtig
(Ausgabe des eingestellten Taktes) funktioniert.
Liegt dort der Hase begraben, sprich habe ich ein Hardwarefehler am
Dragon?
Noch etwas grundlegendes, habe ich es richtig verstanden, dass MOSI und
MISO auf den Takt genau zur selben Zeit Daten verschicken?
Ich hoffe Ihr könnt mir zeitnah helfen.
Daniel
MISO und MOSI übertragen Daten.
Die Reset Leitung wird vom Programmer auf GND gezogen, während er mit
dem Mikrocontroller kommuniziert.
Hast Du einen anderen Programmer zum Vergleich? Wenn nicht, würde ich
das erstmal versuchen. Damit findest Du ganz schnell heraus, ob nicht
doch ein Schaltungsfehler vorliegt.
Erstmal, Danke für deine schnelle Antwort!
Stefan Frings schrieb:> MISO und MOSI übertragen Daten.> Die Reset Leitung wird vom Programmer auf GND gezogen, während er mit> dem Mikrocontroller kommuniziert.
Ja, ist mir alles bewusst.
Stefan Frings schrieb:> Hast Du einen anderen Programmer zum Vergleich? Wenn nicht, würde ich> das erstmal versuchen. Damit findest Du ganz schnell heraus, ob nicht> doch ein Schaltungsfehler vorliegt.
Ja habe ich, allerdings sind diese nur JTAG tauglich und bringen mir bei
meinem Problem leider nichts.
Was ich vlt. nicht klar ausgedrückt habe, die verschiedenen uCs sind auf
verschiedenen Platinen die teilweise schon programmiert worden sind. ->
Beschaltung ist korrekt!
Du weißt auch nicht, ob zuerst MISO oder MOSI ein Signal führt, oder?
Daniel
Dan_Schneider schrieb:> Du weißt auch nicht, ob zuerst MISO oder MOSI ein Signal führt, oder?
MOSI natürlich. Der Slave (AVR, der in den ISP-Modus gehen soll)
liest das mit, und wenn die korrekte Bitfolge eingetroffen ist,
antwortet er schließlich auf MISO.
Wenn dein MOSI auch ohne angeschlossenen AVR (*) dauerhaft low ist,
dann hat der Dragon wohl wirklich einen Schuss weg.
Wenn der Dragon allein MOSI bedient, es aber mit angeschlossenem
AVR dauerhaft low ist, hast du wohl einen Kurzschluss drin.
(*) VTref (Pin 2) muss man natürlich beschaltet haben, auch wenn
kein AVR dran ist. Das ist ja die Referenzspannung für die
Pegelwandler. Kannst du auf dem Dragon aber bequem gegen seine
eigenen +5 V brücken, die ja auf einem eigenen 6-Pin-Header
herausgeführt werden.
p.s.: Bildformate! Wir müssen die Fotos nicht in einer Auflösung
haben, in der wir das Rauschen deiner Kamera erkennen können … hab
sie mal verkleinert.
Ich habe den Versuch unternommen, aber er ist praktisch zum Scheitern
verdammt. Da MOSI jetzt mit GND 'dauerhaft' verbunden ist, kann man das
nachmessen vergessen und die Leiterbahnen auf dem Dragon sind
verhältnismäßig schwer zu erkennen.
Jetzt muss eben ein JTAG Programmer missbraucht werden.
Wann kann so ein Fehler denn auftreten? Kann eigentlich nur an einer
falschen Beschaltung der Schnittstelle liegen bzw. gelegn haben, oder?
Dan_Schneider schrieb:> Da MOSI jetzt mit GND 'dauerhaft' verbunden ist, kann man das> nachmessen vergessen …
Stimmt. Ich könnte heute abend mal versuchen, das bei meinem
Dragon auszuklingeln.
Man kann natürlich auch mal 5 V mit 10 A einspeisen und dann gucken,
wo's qualmt. :-)
> Wann kann so ein Fehler denn auftreten? Kann eigentlich nur an einer> falschen Beschaltung der Schnittstelle liegen bzw. gelegn haben, oder?
Vermutlich. Die Pegelwandler/Ausgangsstufen des Dragon sind nicht
gerade für ihre Robustheit berühmt. Irgendwo musste man halt sparen,
um aus dem teuren JTAGICEmkII einen preiswerten Dragon zu bekommen.
Knut Ballhause schrieb:> Vielleicht solltest Du die kleinen Dualtransistoren "1Ft" mal> durchmessen, sind die hier:
Danke für den Tipp!!
Jörg Wunsch schrieb:> Stimmt. Ich könnte heute abend mal versuchen, das bei meinem> Dragon auszuklingeln.
Ich wäre dir sehr dankbar, wenn du es nochmal überprüfen könntest. Mit
dem oben genannten Tipp, habe ich rausgemessen dass es eigentlich nur
der 1Ft (Pins: 1,2,3) oberhalb des MAX942 sein kann?!
Dan_Schneider schrieb:>> Stimmt. Ich könnte heute abend mal versuchen, das bei meinem Dragon>> auszuklingeln.> Ich wäre dir sehr dankbar, wenn du es nochmal überprüfen könntest. Mit> dem oben genannten Tipp, habe ich rausgemessen dass es eigentlich nur> der 1Ft (Pins: 1,2,3) oberhalb des MAX942 sein kann?!
MOSI kommt am Pin 1 des ICs mit der Bezeichnung "AHL" raus, siehe Foto.
Ich habe auch nochmal die LA-Traces angehängt für das Signalspiel
ohne angeschlossenen Target-AVR. Das ist die auch im Datenblatt ja
beschriebene Sequenz 0xAC 0x53, gefolgt von zwei Nullbytes, wobei
ein angeschlossener AVR dann im dritten Byte die 0x53 echoen müsste.
Ja ich habe es finden können. Ein 1ft hatte es zerlegt und am AHL konnte
man auch an jedem Ausgang Masse messen. Noch genauer habe ich es mir
nicht angeschaut, sondern schlicht 'nen mkii geordert.
Das klingt ähnlich ist aber wohl nicht das selbe Problem:
Bei deinem Beitrag kam "wenigstens" noch 0x00 als Signal an, was
bedeutet, dass der Ausgang (MOSI) korrekt funktioniert und erst beim
Eingang der Fehler sich eingeschlichen hat. Da bei mir schon keinerlei
Ausgangssignale vorhanden waren, hatte der uC natürlich auch keine
"Aufforderung" mir (Programmer) etwas mitzuteilen und tat das auch nicht
(->Dauerhaft high an MISO).
Gruß
Andere haben sowas auch schon gehabt:
http://electronix.ru/forum/lofiversion/index.php/t86519.html
(Hier scheint es aber ein Fehler beim Lesen von MISO zu sein.)
AHL sei ein NLAS2066USG. Könnte sich ja mal lohnen, den auf Verdacht zu
tauschen.