Forum: FPGA, VHDL & Co. Frage zu FPGA Board/Infos/Quellen


von Rene B. (Gast)


Lesenswert?

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.

von Christoph Z. (christophz)


Lesenswert?

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.

von Martin S. (strubi)


Lesenswert?

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.

von Rene B (Gast)


Lesenswert?

@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.

von Martin S. (strubi)


Lesenswert?

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.

von Rene B (Gast)


Lesenswert?

@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 ....

von Martin S. (strubi)


Lesenswert?

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.

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.