Hallo liebes Forum,
ich habe vor kurzem mein Steinaltes FPGA Board Nexys von Digilent
herausgekramt und unter Win 10 mit viel Flucherei, Verwünschungen und
Tobsuchtsanfällen ans laufen gebracht. Das meiste war in der SW
begründet und der nicht nachvollziehbaren Entscheidung des Cuts den
Xilinx mit Vivado und den "alten" FPGAs gemacht hat.
Habe das ISE 14.7 am laufen, kann damit simulieren und mit iMPACT auch
programmieren (zumindest ein anderes board). Das Nexys Board
Programmiere ich über die Adept Suite.
Alles soweit so gut.
Gestern abend habe ich dann wohl einen Verdrahtungsfehler gemacht der
das Board auf den ersten Blick "gekillt" hat. Es geht dabei noch
nichteinmal die Power LED an. Nach einigem messen habe ich dann
festgestellt das einfach nur der MOSFET das Board nicht einschaltet.
Wenn ich diesen Brücke, läuft das Board tadellos wieder an.
Da ich das Board per USB an meinem Läppi betreibe habe ich mal geschaut
was der an USB Geräten erkennt.
Nach dem Fauxpas von mir sagt der nur noch "unbekanntes" Gerät.
Es sieht für mich so aus als wenn entweder der Mikrocontroller hinüber
ist, oder, was ich eher vermute bzw hoffe, das der Inhalt des EEProms
futsch ist, und das Board einfach nicht anläuft weil der uC sich
"verhakt".
Wäre der Mikrocontroller wirklich geschrottet würde ja nicht unbedingt
ein unbekanntes USB Device im Gerätemanager auftauchen.
Meine Frage ist : Gibt es irgendwo Quellen wo/wie ich die FW des
Mikrocontrollers nochmal neu programmieren kann ? Was brauche ich dazu ?
Ich würde nach Möglichkeit dieses Board gerne noch retten, da es
einerseits recht schnuckelig ist, aber auch alle wichtigen Anschlüsse
hat die ich für meine derzeitige Bastelei brauche.
Es geht sich um dieses Board :
https://reference.digilentinc.com/nexys/nexys
Zum Firmwareupdate selbst habe ich nicht wirklich viel brauchbares
gefunden. Bis auf eine Quelle, aber da waren viele Links schon tot.
Rene B. schrieb:> Wäre der Mikrocontroller wirklich geschrottet würde ja nicht unbedingt> ein unbekanntes USB Device im Gerätemanager auftauchen.
Doch, am USB werden Geräte erkannt, weil zwischen D+ bzw. D- und Vbus
ein Widerstand hängt. Dieser wird auch erkannt, wenn der Controller
nachher auf keinerlei Anfragen reagiert.
Wenn du mit Adept arbeitest ist ein FTDI Chip verbaut. Den baut Digilent
heute noch ein (z. B. JTAG-HS3), von Trenz gibt es kompatible Module
dazu mit etwas mehr Information.
Wenn der EEPROM Inhalt fehlen würde, werden diese Chips immer noch
erkannt am USB.
Vielleicht mal an einem PC mit Linux anhängen und in mit lsusb und dmesg
nachsehen was nach dem Einstecken passiert.
Ich schmeiss mal eben Stichwoerter rein, google nach:
- Opennexys (offene Firmware fuer FX2)
- gnu-radio Sourcen/Tools (FX2 reprogrammieren)
Liste sonst mal VID:PID des 'toten' FX2, dann kann man dir mehr sagen.
@Martin
erstmal danke für die Hinweise. War wohl doch zu blöde Google richtig zu
benutzen. Ich bekam immer nur Werbung bzw. Links für die neuen Nexys
FPGA Boards.
Werde ich mir mal anschauen.
@Christoph
Das mit D+ und D- war auch mein erster Gedanke ... Laut Schaltplan gehen
die aber direkt in den uC ohne irgendwelche Widerstände.
Das hat mich vermuten lassen das der uC noch in irgendeiner Form lebt.
Es ist kein FTDI in dem Board verbaut, sondern ein Cypress.
Ich hatte anfangs die Vermutung das vllt nur das EEProm einen weg hat
bzw. der Inhalt verloren gegangen ist.
Ich glaube diese Vermutung war doch richtig.
Unter Windows wird doch etwas mehr angezeigt. VID und PID sind "gültig".
In einer VirtualBox wird mir im USB Menü "Cypress FX2 FPGA .."
angezeigt.
Der Gerätemanager liefert auch doch etwas mehr Infos (hatte ich beim
ersten mal übersehen)
Bei den Treiberereignissen steht z.B. :
"Das Gerät USB\VID_04B4&PID_8613\7&9671850&1&4 wurde aufgrund einer
teilweisen oder mehrdeutigen Übereinstimmung nicht migriert."
Bei Details steht unter "kompatibler ID" z.B. :
USB\Class_FF&SubClass_FF&Prot_FF
USB\Class_FF&SubClass_FF
USB\Class_FF
Das lässt mich vermuten das in einem Teil der Descriptoren etwas steht
das aus dem EEProm ausgelesen wurde, und wenn das irgendwie geplättet
ist kann der Treiber auch nicht richtig geladen werden.
Daher denke ich das ich "nur" das EEProm neu schreiben muss und es
sollte vllt wieder laufen.
Das Board selbst läuft auch noch. Wenn ich die Spannungsversorgung
wechsel läuft das Board auch direkt an und ich kann es mit dem Xilinx
USB Cable auch die Chips auslesen und programmieren.
Falls jemand zufällig weiß was in dem EEProm stehen muss oder dieses
vllt schonmal ausgelesen hat wäre es nett wenn jmd mir den Inhalt
zukommen lassen könnte, in der Hoffnung das ich das Board auch wieder
über USB betreiben und porgrammieren kann.
Rene B schrieb:> Ich glaube diese Vermutung war doch richtig.
Wuerde ich auch drauf tippen.
Bei garstigen Spannungs-Shifts kommt's ab und mal vor, dass ein
Flash-Chip die Graetsche macht und geloescht wird, und der Rest der
Logik es ueberraschend gut vertraegt (Clamp-Dioden an I/Os).
Betr. Firmware: Leider hab ich diese Boards und die ganzen Hacks dazu
erst Anfang Jahr eingemottet, aber im Netz sollten allenfalls noch
Firmware-Files mit Namen 'donbusb.iic' dazu herumliegen, allenfalls bei
Digilent noch selber auf einem FTP-Server, oder ueber archive.org
(wayback machine).
Das solltest du mit einem Linux-Tool a la fxload programmiert bekommen.
Die Windows-Seite davon kenne ich leider weniger.
@martin
erstmal danke für die hinweise. Eine Hex oder IIC Datei würde mir da
schon reichen. Notfalls kann ich mitm STM Board per I2C das Dingen
befüllen. Laut Schaltplan ist ein 24AA128, also ein 16kByte EEprom,
verbaut. Sollte also ja kein Problem sein da was rein und rauszupopeln.
Wahrscheinlich einfacher als wenn der Cypress neuprogrammiert werden
müsste. Das dürfte sich deutlich schwieriger gestalten. Aber wenn der
Descriptor schon teilweise richtig übertragen wird, wird es denke ich
aller Wahrscheinlichkeit nach tatsächlich "nur" das EEProm sein.
Schade das es nicht mehr Infos direkt über die Digilent Seite gibt,
zumal Schaltplan, User Manual und Beispieldesigns alle noch erreichbar
sind.
Aber vllt bringen mich deine Infos ja weiter.
Wichtig ist das es das Board noch tut und ich es "normal" benutzen kann.
Zumal ich echt was "böses" gemacht habe. Ich hatte das FPGA Board aus
versehen über die GPIOs vom STM-Board "rückversorgt". Hatte echt schon
Angst gehabt das ich beide Boards geschrottet hatte. Manchmal hasse ich
die fliegende Test-Verdrahtung um nicht ein Board löten zu müssen ...
Aber um mal eben ein paar Tests zu machen ....
Rene B schrieb:> Ich hatte das FPGA Board aus> versehen über die GPIOs vom STM-Board "rückversorgt"
Ah, Klassiker :-)
Die Spartaner koennen das aber recht gut ab.
Rene B schrieb:> Wahrscheinlich einfacher als wenn der Cypress neuprogrammiert werden> müsste
Der FX2 wird ja so programmiert.
Wenn du das EEPROM schrottest (0xff..), geht er in die
Default-VID-PID-Config, die du gerade siehst. Ueber die entsprechenden
Vendor-Commands kannst du ihn immer ad-hoc mit Firmware laden und ein
angeschlossenes EEPROM programmieren. Wenn eine ungueltige Konfig mit
kaputten Descriptoren geladen ist, musst du allenfalls beim Starten das
EEPROM in den Reset ziehen, damit er in die default config geht. So
richtig 'bricken' kann man den also nicht, wie andere Cypress-Controller
mit on-chip Flash.
Eine eigene Frage?
Dieser Thread ist über 5 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.