jtag:tutorials:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
jtag:tutorials:start [Sun. 11.03.2018 16:44] wikiadminjtag:tutorials:start [Mon. 12.03.2018 14:43] – [Aller Anfang ist schwer...] wikiadmin
Zeile 19: Zeile 19:
 Nimm ein Gerät von dem die JTAG-Schnittstelle bekannt und bereits dokumentiert ist. Google einfach danach: "<GERÄTENAME> JTAG Signale Header". Später lernen wir noch, wie man die Schnittstelle eines nicht bekannten Systems ermittelt. Für den Anfang wäre das aber der falsche Weg, glaub mir. Sobald Du also weißt wo auf Deinem Test-Board die JTAG-Anschlüsse ''TCK, TMS, TDI, TDO'' (und natürlich ''GND'') liegen kann es schon losgehen. Nimm ein Gerät von dem die JTAG-Schnittstelle bekannt und bereits dokumentiert ist. Google einfach danach: "<GERÄTENAME> JTAG Signale Header". Später lernen wir noch, wie man die Schnittstelle eines nicht bekannten Systems ermittelt. Für den Anfang wäre das aber der falsche Weg, glaub mir. Sobald Du also weißt wo auf Deinem Test-Board die JTAG-Anschlüsse ''TCK, TMS, TDI, TDO'' (und natürlich ''GND'') liegen kann es schon losgehen.
  
-== Wie kann ich den PC mit der JTAG-Schnittstelle des Geräts verbinden? ==+== Womit und wie kann ich Daten über die JTAG-Schnittstelle senden und lesen? ==
  
-Ich verwende dafür nachfolgend einen Arduino verwenden, mit dem ich die Signale erzeuge und ausleseSowas sollte jeder in der Bastelkiste habenhier reicht ein Arduino Nano Clone, der für unter 5,- € zu haben ist.+Dafür sind die "Test-Adapter" da. Die machen die Kommunikation vom PC aus möglich und kommen meist auch mit einer Steuersoftware daherAnstelle jetzt aber hunderte von Euros dafür auszugebenverwenden wir erstmal einen billigen 5,- € Arduino Nano (oder Uno) und kommunizieren direkt bzw. per Serial-Terminal mit dem JTAG-Chip.
  
-Desweiteren brauchst Du einen Pegelwandler um die IO-Signale vom Arduino an den Spannungspegel des JTAG-Chips auf dem Testgerät anzupassenSuch auf ebay nach "Pegelwandler TXS0108" und Du wirst was passendes für wenige Euro finden. **HEY, DAS IST WICHTIG** nicht einfach drauf verzichten, sonst grillst Du womöglich gleich Dein Testgerät([[nerdwissen_pegelwandler|Nerd-Wissen: Warum braucht man das?]])+Damit uns der nicht wegen unterschiedlicher Betriebs- und IO-Signalspannung hopps  geht, schalten wir noch einen Pegelwandler zwischen ihm und der JTAG-Schnittstelle vom GerätIch verwende hier einen 8-Kanaligen mit nem "TXS0108" IC drauf. Der kostet auf Ebay auch nur ein paar Euro.
  
-== Hardware-Aufbau mit Arduino und Pegelwandler ==+**UND HEY, DAS IST WICHTIG** nicht einfach auf den Pegelwandler verzichten, sonst grillst Du womöglich gleich Dein Testgerät. ([[nerdwissen_pegelwandler|Nerd-Wissen: Was macht ein Pegelwandler und wozu braucht man das?]])
  
-Verbinde das ganze so:+===== Wir bauen uns ein JTAG-Interface mit Arduino und Pegelwandler ===== 
 + 
 +== Prinzipschaltbild == 
 + 
 +<code> 
 +[PC]<---USB---> [Arduino]<--->[Pegelwandler]<--->[JTAG-Schnittstelle vom Testgerät] 
 +</code> 
 + 
 +== Schaltplan und physikalischer Aufbau == 
 + 
 +<SCHALTPLAN> 
 + 
 +<FOTO VOM AUFBAU>
  
 ^ Arduino ^ Pegelwandler HS ^ Pegelwandler LS ^ JTAG-Signal ^ Kabelfarbe ^ ^ Arduino ^ Pegelwandler HS ^ Pegelwandler LS ^ JTAG-Signal ^ Kabelfarbe ^
Zeile 35: Zeile 47:
 | D10 | H4 | L4 | TDO | Lila | | D10 | H4 | L4 | TDO | Lila |
  
-<FOTOS> +== Software-Grundgerüst für den Arduino ==
- +
-== Arduino-Code dazu ==+
  
 Zunächst definieren wird die Signale mit Namen um sie einfach verwenden zu können: Zunächst definieren wird die Signale mit Namen um sie einfach verwenden zu können:
Zeile 48: Zeile 58:
 </code> </code>
  
-Dann, im ''setup()'' Teil die Signalrichtungen einstellen:+Im ''setup()'' Teil des Codes konfigurieren wir damit die Signalports und stellen ihren Grundzustand ein:
  
 <code c> <code c>
-void setup()+void initPins()
 { {
   pinMode(TCK, OUTPUT);   pinMode(TCK, OUTPUT);
Zeile 61: Zeile 71:
   digitalWrite(TMS, HIGH);   digitalWrite(TMS, HIGH);
   digitalWrite(TDO, HIGH);   digitalWrite(TDO, HIGH);
-  digitalWrite(TDI, HIGH); 
 } }
-</code> 
  
-**Damit ist der grundlegende Aufbau der Schnittstelle erledigt!** +void setup() 
- +{ 
-== Was haben wir nun gelernt? == +  initPins(); 
- +  ... 
-  * Du weißt nun das JTAG mindestens 4 Signalleitungen braucht, nämlich TCK, TMS, TDI und TDO. +
-  * Der Spannungspegel dieser Leitungen ist zu beachten und entsprechend anzupassen um sicher darauf zuzugreifen.+</code>
  
 ===== Wie kommuniziere ich nun mit dem Chip? ===== ===== Wie kommuniziere ich nun mit dem Chip? =====
  • jtag/tutorials/start.txt
  • Zuletzt geändert: Tue. 13.03.2018 07:26
  • von wikiadmin