mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega16 ignoriert JTAG Befehle


Autor: Frentzen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich versuche schon seit längerem einen ATmega16 mit eine selbst 
entwickelte Software für Keil ULink und über JTAG zu programmieren. Ich 
konnte die Software bereits so weit testen, dass ich sicher bin, dass 
beim auführen einse Befehl das richtige gemacht wird. Das heißt die 
JTAG-State-Machine wird richtig durchlaufen und z.B. wenn ich Daten aus 
dem DR schiebe diese am PC richtig ankommen, weiters werden auch immer 
die richtigen Daten in das DR geschoben.
Jetzt zu meinem Problem:
Wenn ich z.B. die Signature Bytes auslesen möchte führe ich alle 
Schritte wie im Datenblatt beschrieben aus (S.290 
http://www.atmel.com/dyn/resources/prod_documents/...).
Die Signature Bytes die ich bekomme sind jedoch alle auf NULL, das kann 
laut Datenblatt nicht sein.
Nach einigen Test bin ich jetzt darauf gekommen das ich die Befehle, die 
ich in das DR (in diesem Fall 15 bit PCR Register) schiebe, beim 
nächsten Durchlauf (nach einer Runde in der State-Machine) wieder aus 
dem Register schiebe, jedoch das 2.Byte, in welchem die Signature bytes 
eingetragen sein sollten immer auf NULL gesetzt wird.
Somit kann man sagen das der µC meine Befehle ignoriert bzw. die 
Rückgabedaten immer auf Null setzt.

Hat vielleicht irgendjemand eine Idee woran das liegen kann?

Grüße
Manuel

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast wohl eher ignoriert das es mehrere JTAG Instructions gibt. Und 
du die Daten mit einer anderen Instruction ausliest als du den Befehl 
reinschiebst. Die Controller funktionieren mit JTAG einwandfrei bisauf 
das Atmega16 und 32 nicht im Daisy Chain Betrieb funktionieren.

Autor: Frentzen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Datenblatt S. 282:

The Programming Command Register is a 15-bit register. This register is 
used to serially shift in programming commands, and to serially shift 
out the result of the previous command, if any.

Über die Instruction PROG_COMMANDS habe ich dieses Register ausgewählt, 
was laut meinen Test auch funktioniert haben sollte, da ich immer 15-Bit 
auslese bzw. schreibe und keine Bitverschiebungen erhalte und es das 
einzige 15-Bit Register ist.
Laut der Erklärung auf S.284 die Signature bytes auszulesen sollte alles 
also über diese Register laufen, oder verstehe ich da etwas falsch?

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne sollte dann schon passen, normalerweise liest oder schreibt man daten 
nur über ein anderes register, aber wenn atmel das tatsächlich so 
unglücklich umgestezt hat ... habs jetzt nicht mehr im kopf

Autor: Frentzen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich verwende dabei ein OLIMEX AVR-P40-USB evaluation board. Ich bin 
nicht sicher ob der ATmega der darauf sitzt schon einmal verwendet wurde 
und ob die fuses vielleicht falsch gesetzt sind.
Könnte das ein Grund sein?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.