Forum: Digitale Signalverarbeitung / DSP / Machine Learning Rigol DS1052e (Blackfin) und JTAG


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von krater (Gast)


Lesenswert?

Hallo Zusammen,

ich hab hier ein Rigol DS1052e Oszilloskop. Ich wollte das Teil etwas 
reverse engineeren und versuchen über den Internen JTAG-Anschluß ein 
Paar Informationen über Software/Hardware gewinnen.
Das Gerät hat einen Blackfin BF531 und eine 14 pin Pfostenleiste an der 
die JTAG-Signale vom Prozessor aufgelegt sind(Belegung durch nachmessen 
bekannt).

Leider bemüh ich mich jetzt seit 2 Tagen irgendeine Rückmeldung von 
diesem Anschluß zu bekommen. Der DSO-Pin verhält sich komplett neutral, 
keine Spannung gegen GND und auch nicht gegen Betriebsspannung messbar.

Inzwischen überleg ich ob ich den Ausganstreiber zerstört habe.

Hat jemand schonmal einen Kontakt über JTAG mit dem Gerät hinbekommen ? 
Erfahrungen ?

Gibt es irgendeine Möglichkeit JTAG bei dem BF531 abzuschalten ?
Wie empfindlich sind aller Erfahrung nach die Blackfin JTAG Pins ?

Ich habe das Xilinx Parallelport JTAG-Kabel benutzt, also die richtigen 
Spannngspegel waren gewährleitet.

Gruß
krater

von jonas biensack (Gast)


Lesenswert?

Ohne den Chip zu kennen, wette ich das JTAG deaktiviert wurde um eben 
solchem Treiben hier vorzubeugen...
Versuche gerade selber einen DSP zu knacken, mh...

gruß jonas

von BöserFisch (Gast)


Lesenswert?

Beim BF531 lässt sich das JTAG nicht deaktivieren. Die I/Os sind nicht 
wahnsinnig empfindlich, aber du brauchst eine scharfe Clock am TCK, also 
Parallelport-Adapter kannst du vergessen. Auch Kabellängen mit > 10 cm 
sind schon kritisch.
Bin mir nicht mehr sicher, ob beim Rigol der Blackfin und der Altera in 
einer Chain hingen. Was hast Du denn für ne Software mit dem 
Xilinx-Adapter verwendet? Zappelt überhaupt nix, oder antwortet es 
fehlerhaft?
Nach meinen Experimenten ist der ICEbear JTAG der einzige, der mehrere 
unterschiedliche Chips in einer Chain vernünftig detektieren (bzw. mit 
Hilfe einer Beschreibungsdatei handeln) kann. Hat auch sehr gute 
Signalqualität.

von krater (Gast)


Lesenswert?

Die Chips hängen nicht in einer Chain, der BF531 ist allein, hab ich 
nachgemessen.
Das is schonmal gut zu wissen. Im Moment wollte ich erstmal die Chain 
detektieren, deshalb bloß TopJTAG Probe(http://www.topjtag.com/probe/). 
Später wollt ich dann mit den GNU Tools ran.
Es kommt garnix, der Port verhält sich wie tod.
/TRST ist bei Rigol mit 10K auf Low gelegt. Hatte aber auch schon 
versuchts mit 3,3V zu verbinden(möglicherweise net geklappt?). Wie 
sollte sich der Chip verhalten wenn /TRST auf Low liegt ? Wirklich 
garnix tun, auch TDO Tri-State schalten ?

von krater (Gast)


Lesenswert?

@BöserFisch:
Hattest du das Gerät schon am JTAG hängen ? Ging das unproblematisch ?

von Martin S. (strubi)


Lesenswert?

Hi Krater,

> Die Chips hängen nicht in einer Chain, der BF531 ist allein, hab ich
> nachgemessen.

Hoffentlich nicht durchgepiepst, nicht dass die JTAG-Pins zuviel 
Spannung abbekommen haben..
Auf jeden Fall kann ich bestätigen, dass der BF531 allein in der Chain 
hängt. Der JTAG-Header ist zumindest bei meinem Rigol der Standard 
ADI-Header, ICEbear passt also direkt.

> Das is schonmal gut zu wissen. Im Moment wollte ich erstmal die Chain
> detektieren, deshalb bloß TopJTAG Probe(http://www.topjtag.com/probe/).
> Später wollt ich dann mit den GNU Tools ran.

Mit urjtag? Damit wurde ich nie so richtig glücklich, weiss nicht, ob 
inzwischen das Auslesen des SPI damit funktioniert.


> Es kommt garnix, der Port verhält sich wie tod.
> /TRST ist bei Rigol mit 10K auf Low gelegt. Hatte aber auch schon
> versuchts mit 3,3V zu verbinden(möglicherweise net geklappt?). Wie
> sollte sich der Chip verhalten wenn /TRST auf Low liegt ? Wirklich
> garnix tun, auch TDO Tri-State schalten ?

TRST ist ja Low-Aktiv, in diesem Falle ist also der JTAG dauernd im 
Reset und der TDO vermutlich im Tristate. Kannst du ja mit einem 
vorsichtigen "Pull"-Widerstand mal verifizieren.
Ist schon ein Weilchen her, aber laut eines Kunden funktionierte das 
Auslesen des Flash mit dem BFloader und einem angepassten 
spi_flash.dxe-Treiber. Kann nur sein, dass die Sources/Vendors der 
SPI-Flashes öfters wechseln. Weiss auch die genauen Anpassungen nicht 
mehr (vermutlich eine Flash-ID).

Gruss,

- Strubi

von krater (Gast)


Lesenswert?

Martin S. schrieb:
> Hoffentlich nicht durchgepiepst, nicht dass die JTAG-Pins zuviel
> Spannung abbekommen haben..
> Auf jeden Fall kann ich bestätigen, dass der BF531 allein in der Chain
> hängt. Der JTAG-Header ist zumindest bei meinem Rigol der Standard
> ADI-Header, ICEbear passt also direkt.

Das das keine so gute Idee war ist mir inzwschen auch klar geworden :/ 
Spannugn lag aber bei 2,6v in etwa, also hoffe ich das da nix passiert 
ist.


> Mit urjtag? Damit wurde ich nie so richtig glücklich, weiss nicht, ob
> inzwischen das Auslesen des SPI damit funktioniert.

Hauptsächlich wollte ich es mit der Blackfin Toolchain und dem GDB Proxy 
probieren. Hab mir aber noch keine großen Gedanken drüber gemacht weil 
erstmal der Rest klappen muß.


> TRST ist ja Low-Aktiv, in diesem Falle ist also der JTAG dauernd im
> Reset und der TDO vermutlich im Tristate. Kannst du ja mit einem
> vorsichtigen "Pull"-Widerstand mal verifizieren.

Werd ich die Tage mal testen und hoffen dass dann was kommt.Das wär dann 
zumindest ein Zeichen dafür das noch nix kaputt is.

> Ist schon ein Weilchen her, aber laut eines Kunden funktionierte das
> Auslesen des Flash mit dem BFloader und einem angepassten
> spi_flash.dxe-Treiber. Kann nur sein, dass die Sources/Vendors der
> SPI-Flashes öfters wechseln. Weiss auch die genauen Anpassungen nicht
> mehr (vermutlich eine Flash-ID).

Gut zu wissen das das schon jemand getan hat. Im Netz gibts leider nix 
drüber zu lesen. Ich schrecke auch nicht zurück mir was eigenes zu 
schreiben, also daran solls nicht scheitern.

Gruß
krater

von Martin S. (strubi)


Lesenswert?

Moin,

>
> Das das keine so gute Idee war ist mir inzwschen auch klar geworden :/
> Spannugn lag aber bei 2,6v in etwa, also hoffe ich das da nix passiert
> ist.
>

Nee, das wird dann wohl kaum was machen. Eigentlich kann der Blackfin 
erstaunlich viel ab, habe schon ne Menge "Unsinn" gemacht.

>
> Gut zu wissen das das schon jemand getan hat. Im Netz gibts leider nix
> drüber zu lesen. Ich schrecke auch nicht zurück mir was eigenes zu
> schreiben, also daran solls nicht scheitern.
>

Zumindest vor einem Jahr gab es doch einige (zumindest englische) Seiten 
zu den Rigol-Hacks. Allerdings kann sich das geändert haben. Viele 
Hersteller mögen's halt nicht so, wenn man zuviele technische Details zu 
ihrer HW/FW im Netz postet..

von krater (Gast)


Lesenswert?

Martin S. schrieb:
> Nee, das wird dann wohl kaum was machen. Eigentlich kann der Blackfin
> erstaunlich viel ab, habe schon ne Menge "Unsinn" gemacht.

Das macht mir Hoffnung :)

> Zumindest vor einem Jahr gab es doch einige (zumindest englische) Seiten
> zu den Rigol-Hacks. Allerdings kann sich das geändert haben. Viele
> Hersteller mögen's halt nicht so, wenn man zuviele technische Details zu
> ihrer HW/FW im Netz postet..


Ja die gabs, und gibts immernoch. Bloß bis auf "man könnte es mit JTAG 
versuchen, die Belegung ist...", "es gibt keinen anständigen 
Disassembler dafür" und "bügel die alte Firmware drauf, mach den Hack 
und bügel dann die Neue drauf, pass aber auf, manche Hardware mag manche 
Firmware nicht" steht da leider nix Brauchbares.

Da es mir aber nicht nur um den Hack geht sondern auch um ein Bißchen 
Home Brew hilft das nicht viel.

von Martin S. (strubi)


Lesenswert?

Hi krater,

einen vollfunktionalen Disassembler gibts schon seit 2004, der 
unterstützt auch alle Befehle. Ist längst Teil des bfinsight Debugger 
ports, siehe auch http://section5.ch/blackfin zu "Insight". Da GNU, 
gibt's den Source auch auf Anfrage.

Gruss,

- Strubi

von krater (Gast)


Lesenswert?

Hi strubi,

super, danke für den Tip, das wird mir sicher helfen den Code beim 
durchtracen besser zu verstehn.
Zum Reverse Engineering ist ein Plugin für IDA Pro aber besser. Darum 
hab ich mich schon gekümmert ;)
http://codenaschen.de/tichyblog/index.php?action=blog&entry=1_Blackfin+Disassembler+Processor+IDA+Pro+Plugin

Gruß
krater

von krater (Gast)


Lesenswert?

Okay, oft isses wenn man stundenlang nach nem Fehler sucht und ihn nicht 
findet die einfachste Lösung.....

Selbst wenn ich /TRST mit nem Pullup auf high(3,2V) leg liegt TDO noch 
auf Tri-State. Ich geh mal davon aus das ich mir irgendwie die 
Ausgangsstufe gekillt hab.
Wenigstens funktioniert der Rest des Geräts noch einwandfrei. Vielleicht 
werd ich mir aber trotzdem ein neues zum spielen besorgen.

Danke an alle für die Hilfe...

Gruß
krater

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.