Ich versuche mich gerade an der Reparatur einer Displayplatine eines Radios mit TFT-Bidlschirm. Dort werkelt ein FPGA als Display-Treiber. Ich konnte ermitteln das der verbaute Flash-Speicher entweder ne Macke oder seine Programmierung verloren hat. Ich habe noch einen intakten, mit intakter Software hier und überlege nun wie ich den Inhalt auf den vermeintlich defekten bzw. einen Austausch-Flash bekomme. Flash-Programmiergeräte sind leider nicht vorhanden. Der Aufbau besteht im wesentlichen aus folgenden Komponenten: * Cyclone II FPGA (EP2C8F256I8) * 4 Mbit Serial Configuration EEPROM (EPCS4N) * 128 MB SDRAM (MT48LC4M32B2) * 64 MB Flash (S29GL064N90TFA02) Nach allem was ich bislang erfahren konnte ist das ein typischer Aufbau für den Betrieb eines FPGA. Er ähnelt dem eines CPU-Basierten Systems. Wenn ich es richtig verstanden habe dient das EEPROM für den Bootloader, welcher beim Power-Up von hier geladen und ausgeführt wird. Dieser wiederrum lädt die FPGA-Programmierung (kompiliertes VHDL bzw. beim Altera AHDL) vom Flash-Speicher in das SDRAM und führt dieses dann aus. Meine Vermutung ist nun das man einen solchen Aufbau via JTAG mit der Programmierung betankt, sodass die FPGA den sich um die Flash-Adressierung kümmert. Gibt es hier irgendwelche Standards? Oder könnte ich da auf eine Kopiersperre stoßen? Ich muss ja zum einen die Software des einen Bausteins auslesen und zum anderen in den neuen Baustein einprogrammieren können. Evtl. liegt ich auch komplett falsch, oder es ist einfacher den Flash ausserhalb der Schaltung auszulesen und zu beschreiben. Wenn ja, dann mit welchen Mitteln ausser sündhaft teuren Programmern für mehrere hundert Euro? Ich dank schonmal für die Hinweise und Mithilfe!
Laut Datenblatt passt das komplette Bit File des kleinen FPGA in den 4MBit Speicher. Falls dort ein wie auch immer geartetes CPU System synthetisiert sein sollte, könnte das aus dem großen Flash betankt werden. Aber eigentlich ist der Cyclone mit seinen reichlich 8k Logikelementen bissl klein für sowas. Kann aber möglich sein. Der Konfig-Speicher kann üblicherweise indirekt über JTAG programmiert werden, darum kümmert sich die jeweilige Design Software also in dem Fall Quartus. Auslesesperre scheint der nicht zu haben, beim Überfliegen des Datenblattes.
Super Christian, das bringt mich wieder etwas weiter! Wenn ich mir das auf der Intel-Homepage so ansehe, könnte dann der Stand-Alone-Programmer "Quartus Prime Pro Edition Programmer and Tools" das sein was ich suche?
Ich kenne mich nur mit Xilinx aus, aber vom Namen her könnte das sein. Wenn allerdings im großen Flash was defekt ist, wirds damit wahrscheinlich schwierig, bei einem so kleinen FPGA wird der ganz sicher nicht für den Bitstream gebraucht, der muss zu was anderem da sein. Und wie der prigrammiert wird, weiß ich auch nicht.
Ich fürchte ich verstehe nicht ganz was Du mir sagen willst. Was ist mit "Bitstream" gemeint? Ich habe natürlich weder Schaltplan noch eine Idee was dort im Flash gespeichert wird. Aber die Tatsache das es mit dem Flash-Chip eines anderen Board klappt sagt mir das dort in dem defekten Teil was fehlt oder dieses wirklich hin ist. Am liebsten würde ich ja auch außerhalb vom System programmieren, dann wär ich aber gleich bei der Frage wie man DAS dann wieder macht. Neben einem Programmieradapter (oder fürs einmalige zur Not auch eine Platine, dann muss ich halt drauf und später wieder runterlöten...) benötige ich ja ein Interface, welches den Chip parallel programmiert. Also neben den Daten- und Adressleitungen auch die Signale und vor allem Spannungen dafür bereitstellt. Grundsätzlich könnte ich mir sowas als Breadboard-Aufbau in Verbindung mit einem Arduino Mega vorstellen, der hat genügend I/O-Leitungen. Ich bin mir aber nicht sicher ob ich die Software zum programmieren/auslesen des Flash so ohne weiteres selbst hinbekomme. Das Teil ist ja doch etwas mehr als ein dummer Datenspeicher, kennt Kommandos und Modi, etc. Evtl. ist auch ein gewisses Timing wichtig. Da müsste ich schon eine Programmiersoftware und eine für den Mega passende Firmware haben. Sowas konnte ich aber im Netz nicht finden. Aus diesen Gründen hatte ich ja die Programmierung via FPGA in Betracht gezogen, denn da gibt es sicher Tools und Hardware zu. P.S.: Habe mich oben bei der Flash-Kapazität vertan. Der Speicher hat 8 MB (64 Mbit) Kapazität. Ist vielleicht eher sekundär, wollte es nur richtig stellen.
:
Bearbeitet durch User
Unter "Bitstream" versteht man üblicherweise die Konfigurationsdatei des FPGA's. Bevor der den nicht hat, tut er nix (jedenfalls nichts vernünftiges). Die FPGA Config dürfte im EPCS4N stecken. Das S29GL064N90TFA02 hat damit nichts zu tun, das FPGA kann damit nicht umgehen (jedenfalls nicht für seinen eigenen "Bootstrap"). Schau' mal, ob die Platine einen "AS" (active Serial) Steckverbinder hat. Damit wird das EPCS4N üblicherweise "betankt". Vielleicht gibt's auch einen JTAG Stecker (damit kann das FPGA direkt vom USB-Blaster geladen werden). Vielleicht gibt's auch gar nichts (dann wäre das EPCS4N schon geflasht verbaut worden). Die Quartus Programmiersoftware ist im (kostenlosen) Quartus Web-Pack enthalten. Die letzte Version, die Cyclone II unterstützt ist m.W. die 13.0.
Bezüglich möglicher Steckverbindungen kannst Du vielleicht auf den Fotos was entdecken?! Mein Problem steckt aber definitiv im Flash. Das Config Eeprom habe ich schon gewechselt, jedoch ohne Effekt, das ist intakt. Wenn es aber dann so ist, das eine Flash Programmierung von hause aus garnicht vorgesehen ist, dann ist es auch ncht wahrscheinlich den Chip irgendwie auslesen und programmieren zu können. Das ist dann höchstwahrscheinlich eine eigenimplementation des Herstellers, welche dann im EPCS4N Bootloader steckt. Dann bleibt mir ja eigentlich nur die Programmierung im ausgelöteten Zustand.
:
Bearbeitet durch User
Woher weißt du dass das Problem am Flash liegt? Das Config Prom wechseln bringt ja nix, dann hast du jetzt ein leeres drauf, damit bootet das FPGA natürlich nicht. Steckverbinder dediziert für JTAG sehe ich jetzt nicht. Was ist denn das für ein Display? Und wieso hat das so einen großen Flash? Kann das irgendwelche speziellen Sachen?
Olli Z. schrieb: > Das Config Eeprom habe ich > schon gewechselt, jedoch ohne Effekt, das ist intakt. Wenn Du das getauscht hast, was steckt dann im getauschten drin? Wie gesagt, ohne eine passende Config kommt das FPGA nicht hoch. Ich nehme an, da gehört eine Config rein, die aus dem FPGA einen SOC (µC) macht, der dann aus dem Flash bootet und das SDRAM als Hauptspeicher verwendet. Vorstellbar wäre auch, eine spezielle Config zu erstellen, die als Flashloader über JTAG sozusagen die Brücke zum S29GL064N90TFA02 schlägt. Dann könnte - falls die restliche Beschaltung das erlaubt - ein Flashen über JTAG -> FPGA -> Flash möglich sein. Das würde aber erstens eine für den Altera-Blaster zugängliche JTAG-Schnittstelle an's FPGA's (seh' ich zumindest auf Anhieb nicht) und zweitens eine ziemlich genaue Kenntnis des "Drumrums" erfordern. Nicht ganz so einfach, wenn man's doppelt nimmt..
Also nochmals: > * Cyclone II FPGA (EP2C8F256I8) Der ist von Haus aus doof > * 4 Mbit Serial Configuration EEPROM (EPCS4N) In dem steckt die Konfiguration des FPGA > * 128 MB SDRAM (MT48LC4M32B2) Von Haus aus auch doof > * 64 MB Flash (S29GL064N90TFA02) Hier können irgendwelche relevanten Daten drin stehen, die vom FPGA verwendet werden. Was hast du aus einem funktionsfähigen Gerät getauscht? EPCS4N und S29GL064N90TFA02 enthalten ab Werk nix, müssen also erst programmiert werden.
Also, das ist von einem Navi. Ich habe zwei Displayboards, ein funktionierendes (B) und ein defektes (A). Der Defekt besteht darin, das auf dem Display Texte und Zeichen einfach fehlen. Auf der Suche nach dem Fehler habe ich angefangen Komponenten von (B) nach (A) umzubauen, in der Hoffnung die defekte Komponente zu finden. Zuerst habe ich das EEPROM von (B) nach (A) gewechselt, der Fehler blieb. Dann habe ich den Flash, ebenfalls von (B) nach (A) getauscht und siehe da, das vorher defekte Board zeigte alles an. Ergo muss das Problem im Flash liegen! Ob der nun wirklich defekte Speicherstellen hat, oder aus irgendeinem Grund teile seines Programms überschrieben wurden oder verloren gingen weiss ich nicht. So oder so muss ich den Inhalt umkopieren und da würde ich gleich einen neuen Flash Chip einbauen.
> So oder so muss ich den Inhalt umkopieren und da würde ich gleich > einen neuen Flash Chip einbauen. Dann wirst du einen Weg finden müssen, ein paralleles Flash auszulesen und zu schreiben. Mit Datenblatt und uC einen Programmer bauen? Wird außerhalb vom Board einfacher sein.
Such dir mal bei Altera zum CycloneII die Pinout Doc zu deinem Chip, damit lassen sich dann mit ein wenig Glück die Config-Leitungen und damit vlt. Abgreifpunkte finden. Beispiel: MSEL0=J13, MSEL1=K12. Je nach Beschaltung hast du dann schon mal den Konfigurationsmodus. Btw: wie heisst das Display/der Monitor?
> Je nach Beschaltung hast du dann schon mal den > Konfigurationsmodus. Das bringt ihm leider nichts, wenn das Problem tatsächlich im parallelen Flash liegt und nicht im EPCS4. Im EPCS4 wird ne Soft-CPU stecken die Daten aus dem Flash lesen will...
1N 4. schrieb: > Das bringt ihm leider nichts MSEL* wird hier natürlich kaum weiterhelfen, entscheidend sind aber weitere Config-Pins (JTAG). Und wenn diese angezapft werden können, dann kann auch ein neues/eigenes Design aufgespielt werden, unabhängig vom Flash.
Moin, wenn du ein BSDL-File für dein FPGA hast, kannst du ev. mit gängigen Boundary-Scan-Tools den Flash-Inhalt auslesen, aber mit Altera/Intel habe ich da keine Erfahrung. Auf dieselbe Weise kriegst du auch ein zerfetztes Flash auch wieder programmiert. Möglicherweise könntest Du mit openjtag und einem FTDI 2232H zum Erfolg kommen, alles andere ist deutlich teurer und lohnt wohl kaum. Bei spezifischen Plattform-Flashes muss man teils aber selber Code schreiben...
> Und wenn diese angezapft werden > können, dann kann auch ein neues/eigenes > Design aufgespielt werden, unabhängig vom > Flash. Ja, aber was bringt ihm das? So wie er schreibt, liegt das Problem im Inhalt des parallelen Flash und nicht im Inhalt des EPCS4. Er will ja das Navi reanimieren und keinen Kaffeetoaster daraus bauen.
Gebrauchte GALEP 4 gehen für gewöhnlich für'n Fuffi über den Tisch. Neu kosteten die mal 399 Äste. Guck mal hier in die Liste, ob dein Stein mit dabei ist: http://www.conitec.net/german/galep4device_list.htm Dann brauchst du nur noch einen Recher mit echter paralleler Schnittstelle. Wenn du den Stein ausgelesen hast, dann gucke doch mal mit einem Hex-Editor rein. Vielleicht steht da was in Klartext, was über die Funktion Aufschluss gibt.
Vielen Dank für die Ideen. In der Tat möchte ich nur die Daten vom einen Flash in den anderen (oder einen neuen) übertragen. Weder will ich aus dem Inhalt schlau werden, noch was daran ändern. Der Weg über einen Flash Prommer, egal ob günstiger fertiger, oder Selbstbaulösung, scheint mir am sinnvolsten.
Wahrscheinlich läßt sich das Ding per SD-Karte oder CD ROM flashen (so eine Upgrade-Möglichkeit ist ja bei den meisten Auto-Navigationssystemen vorgesehen). Vorausgesetzt, es fehlen tatsächlich nur ein paar Zeichen und keine "wichtigeren" Softwarebestandteile (was ich eher seltsam fände). Ist das ein Blaupunkt? Bevor ich irgend etwas anderes probieren würde, wäre das meine erste Tat.
Kauf dir einen TL866 (CS oder A Version, würde die CS nehmen und auf A umflashen). http://www.autoelectric.*cn/minipro/miniprosupportlist.txt Da ist die Liste mit den unterstützen Devices. Kauf dir dazu entsprechende Adapter. (Den Stern im Link entfernen).
Es gibt eine, wenn auch etwas unschöne Neuigkeit in der Sache. Seit gestern macht das eigentlich intakte Display ebenfalls, änhliche Probleme. Jetzt fehlen auch wieder Teile der Bildschirminhalte. Ich vermute das ich es selbst schuld bin, denn bei einem Mainboardtest ohne Display habe ich dieses draufsteckt ohne das Gerät vorher stromlos zu machen :-( Ja, böser Fehler! Seitdem ist das so. Vermutlich ist dann das andere Display auf ähnliche Art "kaputt" gegangen. Hat jemand ne Idee was dabei passiert sein klnnte? Weisst ja eher auf Flashinhalt als auf Chipdefekt hin...
TL866 schrieb im Beitrag #5133085: > http://www.autoelectric.*cn/minipro/miniprosupportlist.txt > > (Den Stern im Link entfernen). Was soll der Scheiss?
TL866 schrieb im Beitrag #5133085: > Kauf dir einen TL866 (CS oder A Version, würde die CS nehmen und auf A > umflashen). Einen Flasher flashen... das hat was ;-) Der günstigste CS kostet mit Versand aus Deutschland knappe 50,- €. Was muss ich denn tun und warum? Sprich wo ist der Unterschied zur A Version?
Alex W. schrieb: > Was soll der Scheiss? Links nach China werden hier üblicherweise als Spam erkannt... Der '*' stelt eine Maßnahme dar, um der Zensur zu entkommen.
Beitrag #5134383 wurde von einem Moderator gelöscht.
Duke Scarring schrieb: > Links nach China werden hier üblicherweise als Spam erkannt... Funktioniert tadellos... ;-) TL866 schrieb im Beitrag #5133085: > http://www.autoelectric.cn/minipro/miniprosupportlist.txt
:
Bearbeitet durch Moderator
Olli Z. schrieb: > TL866 schrieb im Beitrag #5133085: >> Kauf dir einen TL866 (CS oder A Version, würde die CS nehmen und auf A >> umflashen). > Einen Flasher flashen... das hat was ;-) > Der günstigste CS kostet mit Versand aus Deutschland knappe 50,- €. > Was muss ich denn tun und warum? Sprich wo ist der Unterschied zur A > Version? Die A Version hat ICSP. Die CS nicht. Einziger unterschied. Bei der CS fehlt nur die Stiftleiste und es ist ein Blinddeckel im Gehäuse. Stiftleiste einlöten, Blinddeckel raus und umflashen. Dann wird aus der CS eine A Version. Für dein Flash nicht nötig. Kannst halt Geld sparen. Lothar M. schrieb: > Duke Scarring schrieb: >> Links nach China werden hier üblicherweise als Spam erkannt... > Funktioniert tadellos... ;-) > > TL866 schrieb im Beitrag #5133085: >> http://www.autoelectric.*cn/minipro/miniprosupportlist.txt Bei mir gings nicht ohne Stern. (Brauch schon wieder einen)
Olli Z. schrieb: > Es gibt eine, wenn auch etwas unschöne Neuigkeit in der Sache. Seit > gestern macht das eigentlich intakte Display ebenfalls, änhliche > Probleme. Jetzt fehlen auch wieder Teile der Bildschirminhalte. Sollte es tatsächlich mit dem Flash-Inhalt zu tun haben, hast Du jetzt ja wohl keinen funktionierenden mehr, den Du kopieren könntest? Damit scheint mir der Fall erst mal erledigt zu sein ...
Markus F. schrieb: > Olli Z. schrieb: >> Es gibt eine, wenn auch etwas unschöne Neuigkeit in der Sache. Seit >> gestern macht das eigentlich intakte Display ebenfalls, änhliche >> Probleme. Jetzt fehlen auch wieder Teile der Bildschirminhalte. > > Sollte es tatsächlich mit dem Flash-Inhalt zu tun haben, hast Du jetzt > ja wohl keinen funktionierenden mehr, den Du kopieren könntest? > > Damit scheint mir der Fall erst mal erledigt zu sein ... Weit gefehlt! So leicht kommt ihr mir nicht davon ;-) Ich hab inzwischen noch einen weiteren funktionierenden hier. AAABER, wie und warum auch immer hat sich das Teil wieder selbst geheilt. Plötzlich ging das Board mit dem umgelöteten Chip wieder. Dazwischen lagen aber mehrere Stunden und ich kann nicht wirklich sagen ob ich was besonderes gemacht hab. Jetzt könnte es natürlich sein das der Flash nicht kaputt ist und auch der ausgelötete es nicht war, sondern das hier ein thermisches Problem auf dem Board vorliegt. Das könnte ich evtl. herausfinden indem ich den "defekten" Flash in das andere Board umlöte. Wandert der Fehler mit, ist mit dem Flash auf jeden Fall was nicht in Ordnung. Die Ursache ist aber noch unklar. Nicht das es ein Problem auf dem Display-Board ist, welches den Flash korrumpiert...
Olli Z. schrieb: > Die Ursache ist aber noch unklar. Schon mal die Stromversorgung kritisch beäugt? Solche 'komischen' Fehler kommen gerne mal von ausgelutschten Elko am Schaltregler. Duke
Duke Scarring schrieb: > Olli Z. schrieb: >> Die Ursache ist aber noch unklar. > Schon mal die Stromversorgung kritisch beäugt? Meinst Du bezüglich Restwelligkeit? Mehr als mit nem Oszi draufschauen kann ich eigentlich nicht tun und das sah für mich erstmal ok aus. Was genau würdest Du erwarten zu sehen?
1N 4. schrieb: > Der ist BGA und damit verdächtig. Was ist an denen denn verdächtig? Sind die besonders empfindlich? Reballing hab ich noch nie gemacht und etwas Respekt vor...
Olli Z. schrieb: > Meinst Du bezüglich Restwelligkeit? Mehr als mit nem Oszi draufschauen > kann ich eigentlich nicht tun und das sah für mich erstmal ok aus Eher bezüglich Spannungseinbrüchen, die letztendlich zum Reset (ggf. nur teilweise) führen können. Vielleicht mal auf fallende Flanke triggern und die Triggerschwelle knapp unterhalb der Betriebsspannung legen. Außerdem sollte man die automatische Triggerung deaktivieren. 1N 4. schrieb: > Mal den FPGA mit Kältespray und Lötlampe stressen. Ich würde statt Lötlampe einen Fön nehmen und auch mal den SDRAM-Chip anpusten: Olli Z. schrieb: > Der Defekt besteht darin, das > auf dem Display Texte und Zeichen einfach fehlen. Da im FPGA vermutlich zu wenig Speicher ist, um den kompletten Bildschirm drin unterzubringen wird wohl der SDRAM als Bildschirmspeicher herhalten. Dort könntest Du auch nochmal näher draufschauen... Duke
>> Mal den FPGA mit Kältespray und Lötlampe stressen. > Ich würde statt Lötlampe einen Fön nehmen und auch mal den SDRAM-Chip > anpusten: Irgendeine kalte Lötstelle könnte es sein. SDRAM kann man mit dem Mikroskop kontrollieren, FPGA im BGA leider nicht.
Das mit dem SDRAM könnte natürlich sein. Am besten ich löte es erstmal nach. Evtl. ist es auch kaputt. Auf Wärme reagiert es jedenfalls nicht. Aber, es ist auch ein Micron RAM, wenn auch leicht anderer Typ. Und der machte auf dem Mainboard definitiv Probleme, deshalb hatte ich die dort ausgetauscht. Womöglich war die wiederhergestellte Funktion beim Flash-Tausch nur Zufall. Danke nochmal für den Tipp mit dem Spannungstriggerm das werde ich mal tun. Habe ein Rigol DSO, damit geht das ja ganz einfach. Grundsätzlich bin ich aber auch immer noch mit dem auslesen den Flash beschäftigt. Werde mir wohl so einen TL866CS zulegen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.