Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | Nächste ÜberarbeitungBeide Seiten der Revision | ||
jtag:tutorials:start [Sun. 11.03.2018 15:28] – wikiadmin | jtag:tutorials:start [Sun. 11.03.2018 15:52] – wikiadmin | ||
---|---|---|---|
Zeile 38: | Zeile 38: | ||
== Grundlegende Kommunikation == | == Grundlegende Kommunikation == | ||
- | Mit JTAG kann man mehr als einen Chip verbinden. Diese sind dabei datentechnisch in Reihe geschaltet. Das nennt man eine "JTAG-Chain". Es gilt also erstmal herauszufinden wieviele Chips intern im Gerät vorhanden | + | Diese ist seriell, sowohl für die Daten als auch für die Befehle. Die Daten werden an den TDI und TDO-Pins gesendet bzw. empfangen, die Befehle über den TMS-Pin. Wann die jeweilige Information an den Pins stabil ist und übernommen wird, regelt die Taktleitung TCK. Hierbei |
- | Die Kommunikation erfolgt seriell. Über den TDI-Pin des Chips werden | + | Intern liegt zwischen TDI und TDO ein Schieberegister. |
+ | |||
+ | Sind mehrere JTAG-fähige | ||
+ | |||
+ | TAP Chip 1 Chip 2 | ||
+ | TDO ---->| TDI [010100011] TDO |---->| TDI [11111] TDO |---. | ||
+ | TDI < | ||
+ | |||
+ | Will man also nur die Daten eines bestimmten Chips lesen oder schreiben, muss man wissen an welcher Stelle der Chain sich dieser befindet. | ||
+ | |||
+ | |||
+ | Die Befehls- und Taktleitung liegt an allen parallel an, was bedeutet das immer alle den gleichen Betriebszustand einnehmen werden. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Mit JTAG kann man mehr als einen Chip verbinden. Diese sind dabei datentechnisch in Reihe geschaltet und man nennt das eine " | ||
+ | |||
+ | |||
+ | Die Kommunikation vom Testadapter (unserem Arduino) mit der Chain erfolgt | ||
+ | |||
+ | Zur Synchronisation dient das Clocksignal | ||
+ | |||
+ | ===== Anzahl der JTAG-Controller einer Chain bestimmen ===== | ||
+ | |||
+ | Es gilt als erstes herauszufinden wieviele Chips in einer Chain verkettet sind. Das ist die Basis für alle weiteren Untersuchungen. Später wirst Du das verstehen! | ||
- | In einer JTAG-Chain ist der TDO-Pin eines Chips mit dem TDI des nächsten verbunden. So ergibt sich eine Kette. Im Chip selbst wird zwischen TDI und TDO ein Schieberegister verbunden. Bei jedem Taktübergang wird ein Bit vom TDI in das Register geschoben und ein Bit aus diesem an den TDO gelegt. An allen Chips der Chain liegt das TCK-Signal parallel an. Somit ergibt sich ein großes, langes Schieberegister: | ||
- | TDO ----> TDI [010100011] TDO ----> TDI [11111] TDO ---. | ||
- | TDI < | ||
- | Wozu die Bits im Schieberegister dienen und wie " | ||
- | == Der Betriebsmodus der JTAG-Controller in der Chain wird mit dem TMS-Signal bestimmt == | ||
- | Hierzu muss man wissen das das TMS-Signal parallel an allen Chips der JTAG-Chain anliegt. Man stellt damit also den Betriebsmodus von JEDEM Chip ein. Der Modus wird seriell eingestellt. Über den TMS ist eine Statemachine verbunden. Ausgehend von einem Betriebszustand wird eine Folge von Bits einen anderen Betriebszustand wählen. | ||
Nach dem einschalten des Chips befindet sich der Controller im Zustand " | Nach dem einschalten des Chips befindet sich der Controller im Zustand " |