Forum: Mikrocontroller und Digitale Elektronik JTAG an mehreren Proz ohne Chain


von Sit (Gast)


Lesenswert?

Hallo,

ich habe eine JTAG Programmierschnittstelle auf einer selbstgebastelten 
Karte. Diese Schnittstelle ist mehrfach vorhanden, jedoch an 
unterschiedlichen Prozessoren. Die Prozessoren (bzw. deren JTAG 
Schnittstelle) sind nicht in einer Chain verschaltet.

Ich habe nur einen Programmer und würde nun gerne die Schnittstellen 
durchschalten können. D.h. über ein CS Signal soll ausgewählt werden, 
welcher Prozessor gerade dran ist. Die Prozessoren sind verschieden, die 
JTAG schnittstelle sicher nicht 100% identisch. Es gibt immer folgende 
Pins TDO, TCK, TMS, TDI, TRST

Die Signale sind ja anscheinden alle Unidirektional. Meine Idee war es 
nun mit einem Bustreiber mit Enabeleingang (74xx245) die Signale zu 
Trennen und dann einzelen zu aktivieren. Kann ich irgendwelche Leitungen 
hart verbinden, um mir Aufwand zu sparen?

Ich hätte jetzt einfach mal aus dem Bauchgefühl, TCK, TRST und TMS hart 
verbunden und nur die TDI und TDO Leitungen geschaltet?

Seht ihr da Problem, oder habt bessere Ideen?

von Sit (Gast)


Lesenswert?

74xx125 sollte dann die Beste Wahl sein....

von Jim M. (turboj)


Lesenswert?

Sit schrieb:
> Ich hätte jetzt einfach mal aus dem Bauchgefühl, TCK, TRST und TMS hart
> verbunden und nur die TDI und TDO Leitungen geschaltet?

Und hättest bei ARM Prozessoren das Pech, das SWD nur TMS und TCK 
benutzt und Deine JTAG Signale fürn fremden Prozessor fehlinterpretieren 
und stören könnte (theoretisch).

Bustreiber könnten Dir da helfen, aber man müsste dann auch Fan-out und 
Verzögerungen beachten, wenn es in die MHz bei der JTAG Frequenz gehen 
soll.
Wenn es langsamer sein darf: Kein Problem.

Bidirektionaler Tranceiver ist unnötig, unidirektional (74xx125/74xx126) 
würde reichen (wie schon erwähnt).

Allerdings braucht man für JTAG auch manchmal Level-Shifter, da JTAG 
mitunter sehr niedrige (Core) Spannung bis deutlich unter 2 Volt 
braucht.

von Sit (Gast)


Lesenswert?

Jim M. schrieb:
> Und hättest bei ARM Prozessoren das Pech, das SWD nur TMS und TCK
> benutzt und Deine JTAG Signale fürn fremden Prozessor fehlinterpretieren
> und stören könnte (theoretisch).

hm okay das wusste ich nicht. Dann würde ich nur den Reset mit allen 
verbinden und jeder JTAG Schnittstelle einen vollen 125er spendieren.

Jim M. schrieb:
> Bustreiber könnten Dir da helfen, aber man müsste dann auch Fan-out und
> Verzögerungen beachten, wenn es in die MHz bei der JTAG Frequenz gehen
> soll.
> Wenn es langsamer sein darf: Kein Problem.

Hm sollte schon flott sein. Danke für den Hinweis. Der JTAG ist nicht 
ganz langsam. Ich versuche es einfach mal mit einem schnellen 125er der 
hat glaub ich so 5 ns Verzögerung und hoffe, dass dies noch geht.

Gibt es außer einem Relais noch schnellere Alternativen?

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Lesenswert?

> Gibt es außer einem Relais noch schnellere Alternativen?

Ein kleiner 2x5 50 mil Steckverbinder per JTAG.
Falls du da nicht selber draufkommst.

von Sit (Gast)


Lesenswert?

Muss ohne umstecken passieren, aber Danke für den Tipp.

Frequenz ist 12,5 Mhz, also leider sehr schnell. D.h. 80 ns 
Periodendauer. Da sind 5 ns wohl zu viel. Bleibt da außer Relais noch 
was? Sonst muss ich wohl oder übel den Takt senken.

Also Bedingungen sind 3,3 Volt und 12,5 Mhz...
Wer noch einen Tipp hat gern...

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.