ATMega64 JTAG und alle AD Wandler

Gast #363583
Lesenswert?
• ▲
▼
Hallo
Ich brauche Hilfe. Ich programmiere meinen ATMega64 über JTAG und
möchte trotzdem alle 8 AD-Wandler nutzen. Ich setze in meiner Software
den JTD Pin richtig und kann auch nachvollziehen, dass mein JTAG
Interface dann nicht mehr geht. Solls ja auch nicht mehr.
Mein AD Wandler ließt aber immer 5V. Was muss ich mit dem OCDEN Fuse
machen? Kann es mit den internen Pull Up Widerständen was zu tun
haben?
Vielen Dank
Thorsten
Moderator Persönliche Seite #363584
Lesenswert?
• ▲
▼
OCDEN sollte darauf keinen Einfluss haben, da dessen Zustand nur von
Belang ist, solange JTAG aktiviert ist.  Man sollte OCDEN halt nur
abschalten, wenn man's nicht braucht, weil es (durch irgendeinen
Oszillator, der dann ständig läuft) zusätzlichen Stromverbrauch
verursacht.  Die Debugger (AVR Studio, AVaRICE) schalten diese Fuse
sowieso während ihrer Arbeit ein.

Nö, das Problem muss irgendwo in deiner Verdrahtung liegen.  Das JTAG
ICE hast du aber abgezogen, während du messen willst, ja?  Ich weiß
nicht, ob sich das Teil selbst hochohmig schaltet, wärend man es nicht
benutzt.  Beim mkI bin ich mir sogar fast sicher, dass die
Ausgangstreiber stets aktiviert waren.
Gast #363585
Lesenswert?
• ▲
▼
Vielen Dank für Deine Antwort. JTAG ICE war und ist abgezogen. Ich habe
noch mal etwas weiter geforscht.  Um den AD-Wandler vom JTAG Interface
während des Programmierens zu trennen habe ich einen Jumper eingebaut,
damit ich meine AD Eingangsschaltung (Spannungsteiler) vom Pin trennen
kann. Wenn ich den Jumper offen lasse, dann messe ich 5V an ADC4. wenn
ich ADC0-3 offen lasse, messe ich 0V. Damit kann das nicht an der
Vertrahtung liegen Wenn ich den Jumper schließe und keine Spannung an
den Spannungsteiler anlege, dann messe ich 1,7V. Kann es sein, dass da
noch ein Pull Up Widerstand aktiv ist?
Ich verwende folgende Initialisierung für den Port:

  MCUCSR |= (1<<JTD);
  MCUCSR |= (1<<JTD);

  DDRF = 0x00;
  PORTF = 0x00;
und habe es auch schon ohne die PORTF Initialisierung probiert:

  MCUCSR |= (1<<JTD);
  MCUCSR |= (1<<JTD);
Es führt beides zum oben beschriebenen Ergebnis. In der Dokumentation
des ATMega64 steht unter Alternat Functions of PortF, dass folgende
Flags geseetzt werden:

PUOE = JTAGEN (Das muss bei mit auf 1 bleiben, JTAG stelle ich
angeblich über JTD aus)
PUOV = 1 bei ADC4
Kann es sein, dass diese Flags beim setzen von JTD nicht richtig
gelöscht werden?
Gast #363587
Lesenswert?
• ▲
▼
Vielen Dank für Deine Hilfe. Ich konnte das Problem nicht grundlegend
lösen. Habe immer noch das Gefühl, dass ein Pull Up existiert. Da ich
nur eine Schwelle mit dem AD-Wandler dedektieren muss, habe ich diese
jetzt angepaßt. Nicht schön, aber reicht.
Besten Dank
Thorsten
Moderator Persönliche Seite #363588
Lesenswert?
• ▲
▼
Ich hab's nun mal probieren können.  Testprogramm im Anhang,
Testobjekt ein ATmega128 in einem STK501.  Port F beschaltet
mit einer Widerstandskaskade von 9 x 4,7 kOhm, PF0 liegt
oberhalb des ersten 4,7 k Widerstands, PF7 unterhalb des
letzten.

Selbst mit angestöpseltem JTAG ICE sind die Messungen OK.

Hier ein Zyklus:

chan 0: 0.689150 V
chan 1: 1.378299 V
chan 2: 2.072336 V
chan 3: 2.771261 V
chan 4: 3.484848 V
chan 5: 3.973607 V
chan 6: 4.315738 V
chan 7: 4.677419 V
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.