ATmega16 ignoriert JTAG Befehle

Gast #1654330
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/doc2466.pdf).
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
Gast #1654357
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?
Gast #1655127
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.