Hallo Leute! Ich habe ein Problem mit meinem Atmega2560 (http://www.mikroe.com/eng/products/view/83/bigavr-mcu-cards/). Es liegen an meinen JTAG Pins 5V an, wenn ich mein selbst ersteltes Board mit Spannung versorge. Jedoch sind keine Pins in irgendeiner Weise verbunden, sei es VCC oder GND oder untereinander. Wenn ich jedoch den Prozessor an meinem "Developer Board" teste, dann habe ich an den PINS ~1V. Wie soll denn ein PIN 5V bekommen, wenn er nicht mit VCC verbunden ist. Meine eigene Platine habe ich natürlich auf Brücken untersucht. Ich weiß echt nicht weiter. Hoffentlich kann mir jemand weiterhelfen. Gruß Dennis
kurzes Update: Wenn ich das JTAG Flag deaktiviere, dann liegen keine 5V mehr an. Aktiviere ich die Funktion wieder, dann sind 5V wieder parat...
Wenn Fragen im Forum nicht beantwortet werden, dann kann es auch daran liegen, dass niemand sie verstanden hat. Ich hab das jedenfalls nicht, also was nun wo zu welchem Zeitpunkt angeschlossen war und um welches Board es geht etc. Der Link bringt wenig Erkenntnis, denn ich sehe da bloss einen MegaIrgenwas mit anderem Gehäuse.
Ok sorry für das Durcheinander. Erklärung: Ich habe zwei Mikrocontrollerboards 1. DeveloperBoard mit allem Schnick-Schnack Wenn ich da meinen Prozessor verwende, dann funktioniert das JTAG Interface. 2. Eigenes Layout mit Sensoren, SD-Karte,... Wenn ich da meinen Prozessor verwende, dann funktioniert das JTAG Interface nicht, da ich die Meldung vom AVR Studio erhalte IDR Event 0xff. Ich habe die JTAG Pins durchgemessen und festgestellt, dass an TCK,TDO,TMS und TDI 5V anliegen, also VCC. Wenn ich das JTAG Flag deaktiviere und flashe, dann habe ich keine Spannung am JTAG anliegen. Die vier PINS habe ich auf Brücken und Verbindungen zu VCC überprüft, aber nichts gefunden. Ich kann mir nicht erklären warum ich da 5V anliegen habe. Der Prozesser ist in Ordnung, da in einem anderen Board auch funktioniert. Ich hoffe diesmal habe ich mein Problem verständlicher ausdrücken können. Sorry. Gruß Dennis
Wenn das JTAG vom Controller aktiviert ist, dann sind die 4 JTAG-Pins nicht floatend, sondern der Ausgang treibt aktiv und die Eingänge haben einen internen Pullup. Ein Controller mit aktivierter JTAG-Fuse wird also bei nicht angeschlossener JTAG-Probe auf mindestens 3 der 4 Txx Leitungen "high" liefern. Das Verhalten ist also völlig normal und somit nicht die Ursache deines Problems. Such erst einmal woanders weiter. Beim Takt beispielsweise. Kannst ja mal Schaltung und Layout deines Boards hier reinstellen.
A. K. schrieb: > Das Verhalten ist also völlig normal und somit nicht die Ursache deines > Problems. Such erst einmal woanders weiter. Beim Takt beispielsweise. Ja, ich würde auch auf Timing-Probleme tippen. Man könnte mal probieren, den JTAG-Takt runterzusetzen. Wenn die Leitungen etwas länglich werden, könnte auch eine Serienterminierung (jeweils an der Quelle, also je nach Datenrichtung entweder am JTAG-Stecker oder am Controller) hilfreich sein, weil sie das Überschwingen unterdrückt, das durch die nichtangepasste Leitung sonst entsteht.
Ketzerische Frage: Funktioniert dein Board überhaupt irgendwie, d.h. kannst du mit ISP was laden und das läuft, und wenns nur eine blinkende LED ist? Oder willst du JTAG verwenden, um das erste Programm draufzuladen, und es läuft bisher garnichts?
Danke erst einmal für die Antworten. A. K. schrieb: > Wenn das JTAG vom Controller aktiviert ist, dann sind die 4 JTAG-Pins > nicht floatend, sondern der Ausgang treibt aktiv und die Eingänge haben > einen internen Pullup. Ein Controller mit aktivierter JTAG-Fuse wird > also bei nicht angeschlossener JTAG-Probe auf mindestens 3 der 4 Txx > Leitungen "high" liefern. Das habe ich verstanden. Jedoch bin ich ein bisschen verwundert wieso ich bei dem gekauften "Developer Board" nur 1V an jeder JTAG Leitung habe und bei meinem eigenen 5V. A. K. schrieb: > Ketzerische Frage: Funktioniert dein Board überhaupt irgendwie, d.h. > kannst du mit ISP was laden und das läuft, und wenns nur eine blinkende > LED ist? Oder willst du JTAG verwenden, um das erste Programm > draufzuladen, und es läuft bisher garnichts? Das Board "sollte" funktionieren, da ich es lediglich überarbeitet habe und die Platine diesmal extern Fertigen lassen habe. Die Logik und Verbindungen habe ich fast zu 100% übernommen. Ich hatte auch noch das Programm auf meinem Prozessor und er hat auch jede 60s das Ventil kurz geöffnet. A. K. schrieb: > Kannst ja mal Schaltung und Layout deines Boards hier reinstellen. Das könnte ich versuchen. Muss kurz suchen, ob ich die aktuellste Version auch hier zu Hause habe.
Er benutzt AVR Studio, da weiß er doch gar nicht, was das Teil eigentlich für ihn gerade tut. ;-) Soweit ich AVR Studio kenne, konnte es bereits erfolgreich ein Problemm laden, denn es ist bereits beim Debuggen angekommen. Nur damit ist dieses "IDR Event 0xff" erklärbar. Da nicht davon auszugehen ist, dass seine Firmware vorsätzlich das IDR beschreibt, klingt mir das alles verdammt nach einem übertakteten JTAG. Das kann einerseits (wie schon genannt) die Leitungsführung sein, aber es kann andererseits auch ganz profan sein, dass der JTAG-Takt nicht der Forderung genügt, dass er kleiner als 1/4 der CPU-Frequenz sein muss. Mit der Standard-CPU-Frequenz von gerade mal 1 MHz liegt man da ganz schnell mal drüber. Programmieren funktioniert deshalb trotzdem noch, auch über JTAG, weil da der Takt direkt vom JTAG-Interface genommen wird statt vom Hauptoszillator. Fürs Debuggen jedoch muss die Forderung f_JTAG < f_CPU/4 dann eingehalten werden.
Dennis B. schrieb: > Jedoch bin ich ein bisschen verwundert wieso > ich bei dem gekauften "Developer Board" nur 1V an jeder JTAG Leitung > habe und bei meinem eigenen 5V. Ist da ein anderer Controllertyp drauf, oder vielleicht einfach nur eine andere Silizium-Version? Dein Voltmeter ist hochohmig, das misst ja nur irgendeine Hausnummer.
Das mit dem Takt habe ich beachtet und auch kontrolliert. Mein Prozessor ist auf 16MHz eingestellt und läuft mit einem 10MHz Quarz. Das AVR Studio hat 1MHz als Standard JTAG Frequenz vorgegeben und ich habe da auch nichts dran geändert. Das "Developer Board" funktioniert ja :).
Jörg Wunsch schrieb: > Ist da ein anderer Controllertyp drauf, oder vielleicht einfach nur > eine andere Silizium-Version? Dein Voltmeter ist hochohmig, das > misst ja nur irgendeine Hausnummer. Ich nehme für beide Boards den gleichen Controller. Dieser ist fest auf dem Sockel verbunden (siehe Bild). Ich tausche lediglich hin und her. A. K. schrieb: > Kannst ja mal Schaltung und Layout deines Boards hier reinstellen. Ich habe den Schaltplan und das Board als Projekt angehangen. Jedoch glaube ich nicht, dass ihr daraus schlau werdet. Die Sockelverbindung zum Controller ist nicht mit den Pinbezeichnungen gekennzeichnet. Wie schon erwähnt, wurden nur kleine Änderungen hinzugefügt und ich habe an den JTAG Verbindungen nichts geändert.
Stimmt, daraus werde ich nicht schlau, denn auf dem Zwerg habe ich kein Eagle drauf. PNG/GIF wär klüger.
Ok hier sind die PNGs zu dem Schematic und Board Ach meine Leitung N$73 ist gleich VCC, also 5V.
Ich bin hier wirklich nicht der Layout-Spezialist, aber trotzdem die Frage, ob insbesondere den VCC und GND Leitungen gewisse Regeln angedacht wurden, oder ob die frei Schnauze übers Board spazieren, Hauptsache Durchgang.
Der Takt-Jumper auf dem Sockel stimmt? Könnte ja sein, dass beim anderen Board Takt von aussen anliegt und es daher nicht auffällt.
A. K. schrieb: > Der Takt-Jumper auf dem Sockel stimmt? Könnte ja sein, dass beim anderen > Board Takt von aussen anliegt und es daher nicht auffällt. Ja dieser ist auf XTAL gestellt und somit wird der Quarz auf dem Sockel verwendet. Das DeveloperBoard hat zwar noch einen externen Quarz, aber den habe ich schon entfernt, um zu schauen, ob es daran liegt. Negativ... Wie gesagt ich habe mich lange an das Board gesetzt und versucht irgendwelche Fehler zu finden. * Jeden Sockelpin durchgemessen * Brücken gesucht * Eagle File kontrolliert Wenn ich über JTAG zugreifen will, dann muckt AVR Studio nicht rum (cannot connect,...). Regulär würde ich dann die z.B. die main.c auf dem Bildschirm sehen, aber bevor das geschiet zeigt er mir in der Messagebox IDR 0xff, JTAG sleep, IDR 0xff, IDR 0xffm... an.
Guten Morgen, ich habe jetzt wieder ein wenig Zeit in das Board gesteckt, um den Fehler zu finden. Eine Frage habe ich: Ist es notwendig Pull-Down Widerstände (10k) für die 4 Leitungen vorzusehen? Die sind mir nämlich bei dem DeveloperBoard aufgefallen. Wenn ich diese deaktivere, dann erhalte ich auch den IDR Event 0xff. Bevor ihr mir hier Sachen um die Ohren werft. Bei meinem ersten Board habe ich auch keine Pull-Down Widerstände eingeplant und die JTAG Schnittstelle hat funktioniert! Ich bin echt am Ende mit den Nerven...
Dennis B. schrieb: > Ist es notwendig Pull-Down Widerstände (10k) für > die 4 Leitungen vorzusehen? Nein. Die bekämpfen höchstens Symptome. Mit den langen und ver- worrenen Leitungen da würde ich es aber zumindest mal mit einer Serienterminierung probieren. 33 Ω an jede Signalquelle. Mit bisschen Geschick bekommst du das auch nachträglich reingefummelt, mit einem kleinen Fräser (Cutter-Messer geht auch, aber sehr vorsichtig arbeiten, damit du keinen Kollateralschaden anrichtest) die Leitung durchtrennen und freikratzen, sodass du einen Widerstand auflöten kannst. > Die sind mir nämlich bei dem DeveloperBoard aufgefallen. Das erklärt dann auch, warum du dort bei ungefähr 1 V misst statt 5 V. Die meisten JTAG-Leitungen (bis auf TDO) sind ja Eingänge, die nur interne Pullups haben. Diese erzeugen dir ohne externe Widerstände dann glatte 5 V, mit den Pulldowns jedoch bricht die Spannung ein. (Was schon zeigt, dass die Pulldowns eigentlich keine gute Idee sind, denn der Pegel schwirrt dann "irgendwo" herum.) Du könntest trotzdem auch noch probieren, den JTAG-Takt noch weiter zurück zu nehmen. U. U. bekommst du damit das Debuggen überhaupt in Gang, es wird natürlich dann schnarchlangsam. Wie A. K. schon schrieb, ein vernünftiges Konzept zum Führen der Masseleitungen und der Abblockkondensatoren hätte auch nicht geschadet. Sowas wie da hätte ja mein Autorouter noch geschafft. ;-)
Dennis B. schrieb: > Eine Frage habe ich: Ist es notwendig Pull-Down Widerstände (10k) für > die 4 Leitungen vorzusehen? Theoretisch eigentlich nicht. Das kann nämlich in Verbindung mit den internen Pullups vom Controller ganz lustige Effekte ergeben. Allerdings sieht man das öfter. Aber man sollte dann wenigstens drauf achten, dass man extern und intern nicht in verschiedene Richtungen zieht. Und man wenn man auch das schon nicht lassen kann, dann zumindest derart unterschiedliche Werte für die Pullups/downs verwendet, dass die Leitung nicht ausgerechnet dadurch in dem Pegelbereich landet, wo man sie mit dem Pulldown grad raus haben wollte. > Die sind mir nämlich bei dem DeveloperBoard aufgefallen. Wenn ich diese > deaktivere, dann erhalte ich auch den IDR Event 0xff. Jetzt kanns natürlich sein, dass die JTAG-Probe bzw. deren Software ein bestimmtes Verhalten dabei voraussetzen. Dann bleibt einem nichts anderes übrig, als laut zu fluchen und den Fehler, den früher mal jemand anderes gemacht hat, brav zu reproduzieren.
Ich danke euch für die Hilfe und den Vorschlägen. Zum Glück läuft es jetzt mit den Pull-Down Widerständen. Bei meinen nächsten Boards werde ich mehr in die Theorie einsteigen müssen und ein wenig Grundlagen beherzigen. Zum Glück ist mein Wochenende jetzt gerettet :). Euch auch ein schönes Wochenende!
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.