Forum: Mikrocontroller und Digitale Elektronik AVR JTAG Spannung 5V ?


von Dennis B. (Firma: Home) (deboman)


Lesenswert?

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

von Dennis B. (Firma: Home) (deboman)


Lesenswert?

kurzes Update:
Wenn ich das JTAG Flag deaktiviere, dann liegen keine 5V mehr an. 
Aktiviere ich die Funktion wieder, dann sind 5V wieder parat...

von (prx) A. K. (prx)


Lesenswert?

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.

von Dennis B. (Firma: Home) (deboman)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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?

von Dennis B. (Firma: Home) (deboman)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von Dennis B. (Firma: Home) (deboman)


Lesenswert?

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 :).

von Dennis B. (Firma: Home) (deboman)


Angehängte Dateien:

Lesenswert?

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.

von Dennis B. (Firma: Home) (deboman)


Angehängte Dateien:

Lesenswert?

Sorry Projekt vergessen!

von (prx) A. K. (prx)


Lesenswert?

Stimmt, daraus werde ich nicht schlau, denn auf dem Zwerg habe ich kein 
Eagle drauf. PNG/GIF wär klüger.

von Dennis B. (Firma: Home) (deboman)


Angehängte Dateien:

Lesenswert?

Ok hier sind die PNGs zu dem Schematic und Board
Ach meine Leitung N$73 ist gleich VCC, also 5V.

von (prx) A. K. (prx)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Dennis B. (Firma: Home) (deboman)


Lesenswert?

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.

von Dennis B. (Firma: Home) (deboman)


Lesenswert?

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...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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. ;-)

von (prx) A. K. (prx)


Lesenswert?

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.

von Dennis B. (Firma: Home) (deboman)


Lesenswert?

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
Noch kein Account? Hier anmelden.