Auf der Suche nach neuen Kontakten
Oft sind die Bauteile einer Schaltung interessant, die sich nicht auf der Leiterplatte befinden. Einige Bauteile sind nur während der Software-Entwicklung notwendig, aber nicht für die Massenproduktion. Dazu zählen Anschlüsse für eine serielle Schnittstelle zur Ausgabe von Debug-Meldungen und ein JTAG-Programmierer, um Software zu laden und zu debuggen.
Oberhalb des SoC gibt es vier Kontakte für Pins, die ein serieller Anschluss sein könnten, in der linken oberen Ecke sind zehn weitere Kontakte, die womöglich für einen JTAG-Programmierer bestimmt sind. Drei weitere Kontakte zwischen dem VGA- und USB-B-Anschluss könnten ein weiterer serieller Anschluss sein.
Zuerst probiere ich die vier Pins über dem SoC aus, doch dort erhalte ich keinerlei Signale. Mehr Erfolg habe ich mit den Kontakten neben dem VGA-Anschluss. Der mittlere Pin erweist sich als der Massekontakt, die beiden anderen als Transmitter- und Receiver-Leitung eines seriellen Anschlusses.
Nachdem ich einen USB-zu-Seriell-Adapter an die Pins angeschlossen habe, stelle ich mein Terminalprogramm auf 115200 BPS ein und schalte das Oszilloskop an. Ich bekomme tatsächlich eine Ausgabe:
****************************** LILLIPUT DSO TARGEY BOARD VER 1.0 LILLIPUT SamSung MCU S3C2440 Program Ver 1.0(2006613) FCLK = 400000000Hz, USB Crystal Type : 12M **************************** * LOADBOOT * * * * LILLIPUT * * (2004) * **************************** Boot to load (Y/N)? Wait for Enter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DSO TARGEY BOARD VER 1.0
Lilliput ist das Unternehmen hinter der OWON-Marke.
Die Ausgabe ist vielversprechend. Doch nichts passiert, als ich Y oder Enter drücke. Der Bootloader setzt stattdessen seine Arbeit fort und lädt die Firmware des Oszilloskops. Ich gebe an dieser Stelle erst einmal auf und will mein Glück mit dem JTAG-Anschluss versuchen.
JTAG verstehen
JTAG steht für Joint Test Action Group, ursprünglich ein Standard, um zusammengebaute Leiterplatinen zu prüfen. Über den sogenannten Boundary Scan ist es damit möglich, alle IO-Pins eines ICs damit zu steuern, und er wird verwendet, um zu prüfen, ob diese korrekt verbunden sind. Für ICs mit einem Prozessor, wie die ARM-CPU im Samsung-Chip, fungiert er als Debug-Schnittstelle.
Ein JTAG-Anschluss muss mindestens vier Pins haben: Test Clock (TCK), Test Mode Select (TMS), Test Data In (TDI) und Test Data Out (TDO). Optionale Pins sind Test Reset (TRST), um den Anschluss zurückzusetzen und System Reset (SRST), womit das ganze System neustartet. Üblicherweise steht auch ein VREF-Pin als Spannungsreferenz für die übrigen Pins zur Verfügung wie auch ein Masseanschluss (GND).
Das sind ein halbes Dutzend Kontakte, die beliebig angeordnet werden können. Manchmal haben Leiterplatinen gar keinen JTAG-Anschluss, sondern die JTAG-Kontakte sind als Testkontakte über die Platine verteilt. Manchmal ist der Anschluss auch hinter einem Aufkleber versteckt oder befindet sich auf einem Platinenteil, der nach der Herstellung abgebrochen wird.
Auf dem Mainboard des Oszilloskops gibt es Platz für einen 2-x-5-Anschluss, der sehr erfolgversprechend aussieht. Beim Test mit dem Multimeter ergibt sich, dass die fünf Pins der einen Seite mit der Stromversorgung und der Masse verbunden sind, die anderen Pins sind mit Widerständen verbunden. Wenn es sich um einen JTAG-Anschluss handelt, dann müssten vier Pins die Pflichtpins sein, der fünfte ein Reset-Pin oder überhaupt nicht angeschlossen. Es gibt eine Liste von Pinbelegungen, aber dort ist nur ein Bruchteil der Möglichkeiten verzeichnet. Und keine der Belegungen stimmt mit der vorliegenden überein.
Es gibt ein Projekt namens JTAGulator, das anhand eines selbstgebauten Testers alle möglichen Kombinationen durchprobiert. Auf der Webseite sind auch einige interessante Vorträge und Videos, die zeigen, wie die JTAG-Schnittstelle in einem Gerät bestimmt werden kann. Zum Glück muss ich mich nicht tiefer damit befassen. Tinhead hat auch die Belegung bereits ermittelt und im EEVblog-Forum gepostet, wie ich herausfand.
Die Belegung sieht wie folgt aus:
RST 1 2 GND TMS 3 4 GND TDO 5 6 GND TDI 7 8 VCC TCK 9 10 VCC
Ich lötete einige Kabel an den JTAG- und den seriellen Anschluss. Dann baue ich das Oszilloskop wieder zusammen und führe die Kabel nach außen.
Die losen Kabel liegen am seriellen Anschluss. Die Buchsenleiste führt zum JTAG-Anschluss und die Belegung funktioniert mit einem Bus Blaster MIPS, das ich besitze.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Reverse Engineering: Wie ich Linux auf dem Oszilloskop installierte | OpenOCD zum Debuggen |
+1 Mehr davon und ich abonniere auch. Und wie laoladabamba sagt, die Weltraumartikel...
Aber ehrlich. Wenn's nur News über neue Grafikkarten gibt heulen die selben Leute über...
ich seh das ja auch immer mit einem zwinkernden Auge. Entwickler sollen entwickeln und...
Die Chancen dass es ein Linux ist sind relativ gross. Würde es mich interessieren hätte...
Hier kann man mal sehen, was Fachkraft wirklich bedeutet. *Davon* haben wir zu wenige.