Forum: Mikrocontroller und Digitale Elektronik JTAG und SWD auf einem Pinheader


von Sebastian V. (sebi_s)


Lesenswert?

Hallo,

aus Platzgründen kann ich nur einen kleinen Stecker zum Programmieren 
meiner Platine einbauen. Es muss ein Altera MAX V CPLD über JTAG und ein 
STM32F1 über SWD programmiert werden. Für den µC würde ich ja auch JTAG 
nehmen und daisy chaining machen, wenn ich einen JTAG Programmer hätte 
(ich hab nur das STM32F4 Disco) und nicht zwei zusätzliche Pins am µC 
kosten würde. Die Frage die ich mir nun stelle ist ob man trotzdem 
welche von den SWD Pins mit den JTAG Pins kombinieren kann. Mindestens 
sollten ja schonmal die Clock Signale gehen aber was ist mit SWDIO? Kann 
man das mit TDI verbinden? Beim Programmieren des µCs könnte man 
möglicherweise den CPLD durcheinander bringen und beim Programmieren des 
CPLD darf der µC nichts auf SWDIO ausgeben. Kann man diese Fälle 
ausschließen?

von Jim M. (turboj)


Lesenswert?

Du brauchst für das CPLD einen JTAG Programmer, der sollte dann 
eigentlich auch den STM32 über JTAG programieren können, z.B. mit 
OpenOCD.

SWD mit JTAG irgendwie zuammenschalten geht nicht, Du müsstest die Pins 
getrennt ausführen.

von Sebastian V. (sebi_s)


Lesenswert?

Für den CPLD habe ich mir einen dieser Altera USB Blaster Klons 
bestellt. Damit soll man auch den STM32 programmieren können? Kurz nach 
dem posten hier habe ich selbst noch dieses Dokument gefunden: 
http://www.arm.com/files/pdf/Low_Pin-Count_Debug_Interfaces_for_Multi-device_Systems.pdf

Dort wird auf Seite 5 unten rechts gezeigt wo ein SWD Gerät am TMS 
Signal von JTAG hängt. Scheint also doch zu gehen. Hat das vielleicht 
schonmal jemand gemacht?

von Jim M. (turboj)


Lesenswert?

Sebastian V. O. schrieb:
> Für den CPLD habe ich mir einen dieser Altera USB Blaster Klons
> bestellt. Damit soll man auch den STM32 programmieren können?

Ja, wenn der STM32 denn JTAG unterstützt. Bei kleineren Packages muss 
das nicht der Fall sein.

von Sebastian V. (sebi_s)


Lesenswert?

Bisher ist JTAG noch recht neu für mich aber bisher schien es mir immer 
so, dass es zwar irgendwie standardisiert ist, die verschiedenen 
Hersteller aber doch irgendwie immernoch ihr eigenes Süppchen kochen. 
Wenn ich mir z.B. den Segger JLink anschaue dann kann der scheinbar auch 
nur ARM µCs programmieren aber kein CPLD von Altera. Daher erstaunt es 
mich nun, dass man mit dem Altera Teil auch µCs programmieren können 
soll.

von Bronco (Gast)


Lesenswert?

Der JTAG-Standard definiert bestimmte Protokolle zum Testen von 
Bausteinen (Boundary Scan etc.).

Die JTAG-Schnittstelle wird weiterhin dazu "mißbraucht", um 
herstellerspezifische Protokolle(z.B. Debuggen, Flash-Programmieren etc) 
zu implementieren. Diese Protokolle sind folglich von Hersteller zu 
Hersteller unterschiedlich.

Du brauchst für den CPLD eine PC-Software, die das CPLD-Flash-Protokoll 
unterstützt und einen JTAG-Adapter, der von der PC-Software unterstützt 
wird.
Das gleiche brauchst Du für den µC.

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.