Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwehrt bleiben

Reparatur Pogo E02 mittels Raspi als Jtag

joerg_999

Stamm User
Registriert
11. Mai 2010
Beiträge
1.040
Reaktionspunkte
758
Punkte
273
Reparatur Pogo E02 mittels Raspi als Jtag v3.1

Update 28.04.18 - aktuelles uboot 2017.07-tld-1 und uboot-envs 2016.05-tld-1
- Jetzt mit Konfiguration für alle RPIs auch der RPI3

*******************************************************************
Habe mir zur Reparatur einiger defekter Pogos einen Buspirate (Jtag) besorgt.
Du musst dich Anmelden oder Registrieren um diesen link zusehen!

funktioniert natürlich prima, kostet aber so viel wie ein neuer Pogo.

Es geht jedoch auch anders:
Vermutlich hat fast jeder von euch einen RASPI rumliegen oder kennt jemand der einen hat.
Der Raspberry Pi bietet sich durch seine GPIOs ja förmlich an auch als Jtag vergewaltigt zu werden.
Es gibt zwar ein paar Ansätze im Netz aber alle sind entweder nicht komplett oder veraltet.
Nach einiger Zeit des Recherchierens und einigen Tests, habe ich nun eine fertige Lösung zusammengestellt,
mit der man mittels eines Raspberry Pi und darauf compiliertem openOCD + 6 Kabeln einen defekten Pogo E02 wiederbeleben kann.
(wenn zb mtd0 falsch geflasht/zerstört wurde)

Da openOCD auf dem Raspi läuft, kann das Ganze auch ohne zusätzlichen PC betrieben werden,
sofern man Tastatur,Maus und Monitor am Raspi angesteckt hat.
Ich habe den Raspi aber in mein Netzwerk eingebunden und die Terminals im (Windows)PC über putty aufgemacht.

Im Prinzip brauchen wir 3 Terminals:

Terminal1: (ssh Terminal) hier wird openOCD aufgerufen und man sieht die Reaktionen der Eingaben aus Terminal2
Terminal2: (openOCD Schnittstelle über Telnet Port 4444) hier werden die Steuerbefehle eingegeben
(zb uboot ins ram laden und starten)
Terminal3: über USB/TTL Adapter mit Pogo verbunden, von hier stoppen wir den Bootvorgang und flashen das neue uboot bzw die uboot envs ins nand

Was wird alles benötigt (Hardware):
Raspberry Pi B, B+, PI2 oder den neuen PI3
- Raspi auf standard clock Speed lassen - (B,B+700Mhz, RPI2 900Mhz und RPI3 1200Mhz)
6 Stück Verbindungskabeln vom Raspi (GPIO) zum Pogo Länge max 30cm
1 USB/TTL Adapter für die serielle Konsole auf dem Pogo.
Internetverbindung für den RaspberryPi, (funktioniert beim RPI3 auch über W-Lan, da eingebaut)

Installation auf dem Raspi:
Als erstes nehmen wir den Raspi installieren das aktuelle Raspbian
danach noch ein paar Abhängigkeiten und openOCD welches wir uns mit den passenden Einstellungen selber compilieren:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Danach kommt ein massiver Compilebefehl (Bitte komplett mit copy & paste in der Befehlszeile einfügen)

Etwas Geduld aufbringen, denn das Compilieren dauert ein Wenig

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Installiert wird das Ganze mit:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Wenn das erledigt ist legt ihr im Verzeichnis:
/usr/share/openocd/scripts/board/ die Datei pogo.cfg an:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
und befüllt sie mit folgendem Inhalt:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
und erstellen einen Symlink dafür:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Im nächsten Schritt laden wir uns das aktuelle uboot und die uboot envs herunter entpacken sie und erstellen ebenfalls einen Symlink:
(uboot 2017.07-tld-1 und uboot-envs 2016.05-tld-1)

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Zum Schluss erstellen/ändern wir noch eine Datei auf der Basis von raspberrypi-native.cfg, passen die Einstellung für die richtigen Reset Pins, die Adapter Geschwindigkeit und der Übergangsverzögerung je nach Raspi Modell an) in der Datei: /usr/share/openocd/scripts/interface/raspberrypi123-native.cfg
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
mit folgenden Inhalt: ## Bitte hier die Einstellungen an den benutzten RASPI (B,RPI2 oder RPI3) entsprechend anpassen ##

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Starten von openOCD:
Gestartet wird die ganze Show im Terminal1 mit:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
Im nächsten Spoiler seht ihr die Kommandos/Rückmeldungen und wie man seine 3 Terminals benutzt.
Die wichtigen Eingaben sind grün angepinselt den Rest könnt ihr wenn keine Fehler kommen als Info ansehen.
Für die Reparatur reicht es und ist (bis auf die Treiber Einbindung beim Compilieren) gleich wie beim Buspirate.
(zur Info T1=Terminal1 T2=Terminal2 usw):

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Anmerkung:
bodhis neues uboot.2016.05-tld-1.environment.img beinhaltet universal uboot-envs für alle gängigen plugs!
Wenn ihr neue uboot-envs benötigt könnt ihr die vom Terminal 2 oder besser über einen
gebooteten Linux USB Stick über Termial 3
flashen bzw. auch über ein eventuell bestehendes rescue-system im nand.

Die Verdrahtung und das Pin Layout der beiden Kandidaten:
:(bitte die ganzen Teile natürlich spannungslos zusammen bauen und verdrahten!!)

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Foto vom Aufbau:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Meine Quellen:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

PS: Für Anregungen, Verbesserungen und auch Kritik habe ich immer ein offenes Ohr
** lange lebe der Pogo ;-) **
 
Zuletzt bearbeitet:
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Hey joerg_999,
die Anleitung sieht gut aus. Aber die Verdrahtung macht mir sorgen. Ich könnte ein Raspi von einem freund ausleihen. Das Blaue T-Stück überträgt die Pins einfach auf das Board oder?

Irgendwie sehe ich keinen Zusammenhang zwischen der Zeichnung und deinem Bild. Dein Bild sieht einfacher aus, aber die Perspektive und quaität lässt es nicht zu, dass ich mich nur daran orientiere.
Hast du noch eine einfache Schaltung/Bild?

Edit:
z.B. bei J1: (3) SRST -> NC. Auf deinem Bild hast du aber das Rote Kabel dran?
Und den TTL hast du auf dem Board mit dem Raspi und CON3 verbunden? Quasie Knoten oder? Welche Schaltung benötige ich dazu? Und muss der TTL nicht an den USB Port vom Raspi?
 
Zuletzt bearbeitet:
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Update: siehe Beitrag1
###############

Was du auf dem Foto siehst ist ein Adapter den ich mir gebastelt habe, da ich das Ding öfter mal benutze.
( der besteht aus einem handelsüblichen Breadboard das man per Flachbandkabel an den Raspi anschließen kann und von dort gehe ich über ein weiteres Flachbandkabel mit Stiften bzw. Buchsen dran auf einen Adapter der mir den 2,54mm Raster Stecker auf einen 2,0mm Raster Buchse wandelt die direkt auf den Raspi J1 passt).

Das alles muss aber nicht sein, besorge dir aus dem Elektronikladen ein Flachkabel wo Buchsen drauf sind: (zb)
Du musst dich Anmelden oder Registrieren um diesen link zusehen!

(die steckst du direkt auf den Raspi) und löte die anderen Enden direkt an den Pogo auf der Platinen Unterseite.

Die Farben die ich angegeben habe stimmen schon und beziehen sich auf das Flachbandkabel.
Wie du richtig festgestellt hast ist der SRST (Pin3) vom J1 nicht verbunden.
Verbunden gehört es genau so:

Raspi Pin# -------------- J1 (Pogo) Pin#
20 - (Brown) -- GND -------- GND (1)
19 - (Grey) -- MOSI --------- TDI (2)
21 - (Black) -- MISO --------- TDO (4)
23 - (Violett) -- CLK --------- CLK (5)
22 - (White) -- CS ----------- TMS (6)
26 - (Blue) -- AUX/TRST ---- RES (7)

Steht aber in der Beschreibung darüber, ich habe nur der Vollständigkeit halber die GPIO Nummern vom Raspi dazugeschrieben, da die ja nicht gleich mit den Pin Nummern sind.

Der ttl Adapter geht nur von con3(Pogo) auf einen PC-USB Port oder auf einen Raspi USB Port - sonst nirgendwo hin!
(sieht man am Bild wirlich nicht so gut...)
Da ich wie in meiner Beschreibung das ganze über den PC betrieben habe steckt bei mir der ttl-Adapter an einem USB am PC,
bei dir wenn du das ganze ohne PC nur direkt mit dem Raspi machen möchtest gehört er natürlich in einen der USB Ports am Raspi.

Wenn du noch Infos brauchst melde dich ruhig.
PS: wenn es dir vom Verständnis hilft habe ich noch einen Anhang:

Du musst dich Anmelden oder Registrieren um diesen link zusehen!


so habe ich den Buspirate angeschlossen.
joerg_999
 
Zuletzt bearbeitet:
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Der TTL wird also ganz "normal" an die Pogo (CON3) angeschlossen, oder?
Auf dem Bild sieht es so aus als ob der mit dem Breadboard verbunden ist.
 
AW: Reparatur Pogo E02 mittels Raspi als Jtag

So ist es. nur an CON3. Das ist am Foto schlecht zu erkennen.
(Dafür war das Foto aber auch nicht gedacht ;-)
 
Zuletzt bearbeitet:
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Update -> siehe Beitrag1 - Nun läuft alles wie der geölte Blitz....

Die wichtigsten Änderungen
:

1.) switched to raspi-nativ mode für mehr Speed (Neucompilierung OpenOCD mit nativ mode erforderlich!),
2.) set adapter_khz 2000 - Adapter Speed erhöht
3.) ändern des Reset von Pin 18 (GPIO24) to Pin 26 (GPIO7) -- das war das Hauptproblem

Update1: Mit der neuen Konfiguration konnte ich das uboot in 12sec flashen -- superfast ! (7 times faster than buspirate)

Update2: Beschreibung Seite 1 aktualisiert! + update uboot / uboot-env auf die letzte Version von bodhi.
---------> aktuelles uboot (uboot.2015.10-tld-1)+ uboot-env (uboot.2014.07-tld-3.environment)

Update3
: Konfiguration der raspberrypi123-native.cfg angepasst,nun laufen alle Raspis (B,B+,RPI2 und der neue RPI3)

--joerg_999
 
Zuletzt bearbeitet:
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Hallo joerg_999,

nach langer zeit habe ich es gewagt deine Anleitung zu probieren :)
Ich komm mal gleich zu meinem Problem, weil es schon spät geworden ist.
Ich hab ein RP2 und es ist mit Verdrahtung noch nicht verbunden. Liegt eventuell hier der Fehler wenn ich versuche (wie nach Anleitung) sudo openocd -f pogo.cfg ausführe?


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
raspberrypi123-native.cfg:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

VG, Spyer
 
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Die Fehlermeldung kommt da du noch keine Verdrahtung hast.
Sonst schaut es gut aus ;-)

LG
joerg_999
 
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Hallo joerg_999,

gut das du da bist.:DDD
Nach der Verdrahtung siegt das besser aus:


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

Am pogo gehen aber die Lichter beim einschalten kurz an und dann wieder aus und die verbindung per TTL spuckt auch nichts aus.
Ich schau mal wie es mit telnet weiter geht.

Telnet ausgabe:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
telnet2. Versuch:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Irgenwas stimmt da nicht.. soll ich weiter mit
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
machen oder ist da was falsch?

VG, Spyer


edit:
3. versuch. Jetzt hat der gelöscht, aber es kommt ein time out beim schreiben.

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
 
Zuletzt bearbeitet:
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Drück mal die reset taste im Pogo.
Weiters muss bei nand probe 0 was vernünftiges kommen sonst kannst du nicht weitermachen

Kurze Zwischenfrage: ist dein Pogo tot oder möchtest du nur flashen mittels Raspi probieren?
 
Zuletzt bearbeitet:
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Hallo joerg_999,

ich habe hier damals zwei pogos zerschossen.
Jetzt hat es glaube geklappt. Man muss paar versuche tätigen.
Bekomme gerade keine Verbindung mit dem TTL her, aber der pogo blinkt erstmal :)

Warum hat der bei mir nur 4 Blöcke gelöscht und in deiner Anleitung steht 5?

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

VG, Spyer
 
AW: Reparatur Pogo E02 mittels Raspi als Jtag

0-4 sind 5 Blöcke (Block0 Block1 Block2 usw) das passt so.

PS: TTL Adapter brauchst erst nach dem flashen des uboots
--joerg_999
 
AW: Reparatur Pogo E02 mittels Raspi als Jtag

okay da bin ich bei dir. Ich habe mich nicht eindeutig ausgedrückt.
Bei dir steht in der "soll" Ausgabe" : erased blocks 0 to 5 on NAND flash device #0 'NAND 128MiB 3.3V 8-bit'
Und bei mir stand : erased blocks 0 to 4 on NAND flash device #0 'NAND 128MiB 3.3V 8-bit'
 
AW: Reparatur Pogo E02 mittels Raspi als Jtag

Das stimmt es werden sicherheitshalber Block 0-5 gelöscht - das alles sauber ist bis dorthin
Das uboot wird dann in block 0-4 geschrieben (4x128k = 512kb)
dann bleibt Block 4 bis 6 frei
und ab Block 6 werden die uboot envs geschrieben.
so steht es in der Bibel.....(von bodhi)

Hier zur Erinnerung nochmals das nand layout:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!

--joerg_999
 
Zuletzt bearbeitet:
Zurück
Oben