Forum: Mikrocontroller und Digitale Elektronik Probleme mit OpenOCD-USB-Adapter


von Oliver (Gast)


Lesenswert?

Hallo Leute,

ich verzweifel hier langsam. Ich bringe jetzt schon Tage damit zu, mein 
Problem tief in den Quelltexten von OpenOCD zu suchen, allerdings ohne 
Erfolg.

OpenOCD habe ich gebaut, es läuft auch und findet den Tap. Sobald man 
aber Aktionen durchführt wie "reset halt" oder Register etc. auslesen 
möchte, gibt es Fehlermeldungen wie

> reset halt
JTAG tap: pxa3xx.cpu tap/device found: 0x7e642013 (mfg: 0x009, part: 
0xe642, ver: 0x7)
Bad value '00' captured during DR or IR scan:
 check_value: 0x02
 check_mask: 0x07
JTAG error while writing DCSR
target state: halted
target halted in ARM state due to debug-request, current mode: 
Supervisor
cpsr: 0xf80000d3 pc: 0x00000000
MMU: disabled, D-Cache: disabled, I-Cache: disabled
(processor reset)

> resume 0
Failed to receiving data from debug handler after 1000 attempts
in procedure 'resume'

Und so weiter... Es scheint also Kommunikationsprobleme zu geben. Ich 
habe nachvollziehen können, dass die Konfiguration der Reset-Signale 
stimmt, diese wechseln einwandfrei ihren Status (bei CPU gemessen), wie 
man es erwarten würde.

Ich habe leider nur ein analoges Oszi. Dort sehe ich hübsche Flanken und 
Signale auf TDI, TMS und TCK, kann aber nichts aufzeichnen und 
auswerten.

Allerdings wundere ich mich über TDO: Die Leitung liegt im Ruhezustand 
ungefähr auf der halben Betriebsspannung. Man sieht, dass die CPU Daten 
sendet und dabei die Leitung auch (fast) auf 0V und 3,3V ziehen kann. 
Allerdings geht sie zwischendurch (mit relativ unschönen Flanken) immer 
mal wieder auf 1,5V. Ich vermute, dass die Kommunikationsprobleme hier 
evtl. verursacht werden.

Ist das normal? Die halbe Betriebsspannung liegt auch an, wenn ich den 
JTAG-Adapter von meinem Target trenne und direkt am Adapter messe. Laut 
Schaltplan gibt es nur einen 100k Pull Down nach Masse. Schaut man in 
den OpenOCD-Quelltext, kann man auch nachvollziehen, dass im Init der 
Port auf Eingang definiert wird und kein interner Pull-Up gesetzt wird.

Der OpenOCD-USB-Adapter hat einen Jumper, mit dem man wählen kann, woher 
der FT2232 seine VCCIO bezieht. Entweder VTARGET (3,3V) oder VUSB (5V). 
Beim Jumpern sieht man auch, dass TDO auf 1,6V bzw. 2,5V wechselt. Also 
kommt das definitiv vom Adapter.

Wer weiß Rat?

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.