Forum: Projekte & Code FPGA Board mit FT2232H und Spartan7


von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe als Lernprojekt ein kleines FPGA Board entworfen. Heute habe 
ich es endlich soweit bestückt, dass das FPGA läuft, von VIVADO gesehen 
wird und auch vom Flash bootet.

Noch nicht bestückt sind die PMODs, der DAC und der ADC weil ich noch 
auf Teile warte.

Schaltung und Layout sind im Anhang, ich musste beim Bestücken nichts 
ändern oder fixen bisher.

Edit:
Ja, ich hatte die Platine im Schraubstock und habe dann mit Heißluft 
draufgebraten. Sie hat sich natürlich ausgedehnt und eine weitere freie 
Dimension dazu verwendet und ist jetzt entsprechend gewellt/gebogen.

: Bearbeitet durch User
von Tippgeber (Gast)


Lesenswert?

Super Arbeit ich hoffe das dass Ding auch mit der restlichen Peripherie 
läuft. Ich selber habe kein Interesse an den Board, aber gutes gelingen 
zu deinem Werke wünsch ich dir trotzdem.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

So langsam muss ich mich auch mal an BGA trauen.
Haste den FPGA direkt auf die Goldkontakte geföhnt ohne vorherige 
Verzinnung?

von Martin O. (ossi-2)


Lesenswert?

Was für ADCs DACs kommen denn drauf (.sch Dateien kann ich nicht 
ansehen)

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Saubere Arbeit, gefällt mir sehr gut!

Welche Lizenz hat das Board? :-)

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Tippgeber schrieb:
> [...] zu deinem Werke wünsch ich dir trotzdem.

Vielen Dank!

Mw E. schrieb:
> Haste den FPGA direkt auf die Goldkontakte geföhnt ohne vorherige
> Verzinnung?

Direkt drauf gesetzt. Ich habe einen Stencil und hatte da auch versucht 
Paste aufzutragen, aber immer wenn ich den Stencil dann wegnehme 
verwischt die Paste. Klar das Lot in der Paste zieht sich dann beim 
Löten zusammen aber ich hab es dann ohne Paste gemacht. Ich hatte aber 
eine ganz dünne Schicht Flussmittel aufgetragen.

Martin O. schrieb:
> Was für ADCs DACs kommen denn drauf (.sch Dateien kann ich nicht
> ansehen)

.sch ist Eagle. Mir ging es eigentlich darum Dinge zu probieren die ich 
noch nie gemacht hatte. Hier das BGA und die Beschaltung vom FPGA und 
der DCDC Regler. Damit das dann auch einen Nutzen hat habe ich noch DAC 
und ADC draufgepackt. Der DAC hatte ich schon mehrmals so verbaut. Das 
wird der DAC8581IPW und dadran dann ein OPA551UA. Damit kann ich dann 
Signale von -12.5 V bis +12.5 V erzeugen um die Beschaltung vom ADC zu 
testen.
Als ADC ist natürlich der XADC vom FPGA dabei, der wird so beschaltet, 
dass er eben von -12.5 V bis +12.5 V geht. Und es kommt ein AD9650 mit 
25 MHz drauf. Der hat zwei Kanäle und 16 Bits.
Wenn das alles funktioniert werde ich vermutlich ein Platine für 
Radioaktivitätsmessungen bauen die dann zwei AD9650 bekommt, aber dafür 
keinen DAC und keine PMODs. Vielleicht werde ich auch mal sowas wie ein 
USB Oszi basteln und da einen schnellen ADC hinsetzen, wer weiß ... das 
wird jedenfalls so eine Art Grundplattform für kommende Projekte.

Mampf F. schrieb:
> Saubere Arbeit, gefällt mir sehr gut!
Vielen Dank!

> Welche Lizenz hat das Board? :-)
Braucht es eine? Also meinetwegen darf das Jeder nachbasteln, 
modifizieren und kopieren. Für mich ist das ein reines Lernprojekt. Und 
falls ich nach dem Referendariat doch nicht Lehrer werden will ist das 
etwas was ich bei Bewerbungsgesprächen herzeigen kann.

Edit:
Kritik ist natürlich auch sehr willkommen. Nur weil es funktioniert habe 
ich vermutlich noch lange nicht alles so gemacht wie man es machen 
sollte.

: Bearbeitet durch User
von 2⁵ (Gast)


Angehängte Dateien:

Lesenswert?

Gustl B. schrieb:
> Martin O. schrieb:
>> Was für ADCs DACs kommen denn drauf (.sch Dateien kann ich nicht
>> ansehen)
>
> .sch ist Eagle.

Ich war jetzt mal so frei und habe das Projekt in KiCad importiert. Das 
Board sieht auch richtig gut aus (und vor allem kann ich die vier Lagen 
bearbeiten, in Eagle kann ich es nicht ;-). Beim Schaltplan scheint auf 
den ersten Blick alles da zu sein, aber er wirkt etwas durcheinander. 
War das bei Eagle auch nur eine Seite? Ich habe mal ein PDF erzeugt und 
angehängt.
Ihr müsst das PDF ordentlich aufzoomen, um was erkennen zu können.

Bitte bitte bitte keinen Eagle vs KiCad Thread draus machen. Will nur 
wissen, ob KiCads Eagle Importer den Schaltplan halbwegs sauber 
importiert hat.

Tolles Projekt übrigens...

von Gustl B. (-gb-)


Lesenswert?

Wow, der Importer ist richtig gut! Genau so sieht der Schaltplan auch in 
Eagle aus. Ich weiß, das gefällt nicht Jedem, aber ich mag das so alles 
auf einer Seite, ihr dürft das gerne für euch anpassen.

von 2⁵ (Gast)


Lesenswert?

2⁵ schrieb:
> Ihr müsst das PDF ordentlich aufzoomen, um was erkennen zu können.

Hm Mist. Scheint so, dass KiCad doch als PDF nur ein Bitmap exportiert 
und keine Vektordarstellung. Wird unscharf bei hohen Zoomstufen. Genau 
genommen exportiert KiCad kein PDF sondern man lässt ins PDF drucken.

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Sogar die Anordnung ist im Eagle genau so. Im Anhang einmal klein und 
einmal als 300 Dpi Bild, also alles gut lesbar, aber eben auch groß.

von 2⁵ (Gast)


Angehängte Dateien:

Lesenswert?

2⁵ schrieb:
> Hm Mist. Scheint so, dass KiCad doch als PDF nur ein Bitmap exportiert
> und keine Vektordarstellung.

Sorry, mein Fehler. Scheinen doch Vektoren zu sein (zumindest wird das 
Bild so aufgebaut). Aber warum zeigt mir dann Firefox bei 1000% nur 
einen unscharfen Text an? In KiCad selbst ist der Schaltplan vernünftig 
zu lesen.
Will jetzt den Thread nicht weiter kapern.

von Gustl B. (-gb-)


Lesenswert?

Naja, vielleicht exportiert KiCad das nicht als Vector-PDF sondern als 
Pixel.
Der Adobe Reader zeigt zwar sowas wie Vektoren an, aber es sieht auch 
seltsam kaputt aus.

2⁵ schrieb:
> Will jetzt den Thread nicht weiter kapern.

Kein Problem! Ich werde vielleicht nach KiCad wechseln wenn meine 
Education-Lizenz für Eagle ausläuft.

von 2⁵ (Gast)


Angehängte Dateien:

Lesenswert?

Es scheint schon der Druck-Export gewesen zu sein. Exportiert man in 
KiCad den Schaltplan mittel "Plotten", dann ist auch das PDF brauchbar 
bzw. lesbar. Aber jetzt wirklich der letzte Post zu diesem Thema.

Interessant finde ich ja, dass du den Spartan so einfach mit dem 
Heißluftfön und ohne Lötpaste da draufgebacken hast. Hast du von unten 
und oben erhitzt und wie hast du ihn ausgerichtet? Konntest Du schon 
testen, ob alle Pads Kontakt haben?

von Gustl B. (-gb-)


Lesenswert?

2⁵ schrieb:
> Konntest Du schon
> testen, ob alle Pads Kontakt haben?

Ne, aber da der FPGA beim Löten gleichmäßig abgesackt ist sollte alles 
passen.
Ausrichten war eher nach Gefühl. Da ist ja um die Pads der Lötstopplack, 
sprich wenn der richtig sitzt, dann sitzen die Bälle in kleinen 
Vertiefungen die man spüren kann wenn, wenn man das FPGA hin und her 
schiebt.
Erhitzt habe ich mit einem normalen Heißluftfön mit großer Öffnung. 
Zuerst das Board ohne FPGA bis es schön heiß war, dann FPGA drauf und 
nochmal warm machen bis das FPGA abgesackt ist. Ich habe in der zweiten 
Phase nur senkrecht von oben mittig auf das FPGA gefönt.

von Gruselfrosch (Gast)


Lesenswert?

Nettes Projekt, mit so was liebäugle ich auch schon seit einiger Zeit. 
Eine Frage hätte ich aber auch noch:

Wie ich sehe nutzt du einen FTDI Chip als Programmer, geht dass so Out 
of the Box oder muss man da im Flash vom FTDI noch zusätzlich irgendwas 
hinterlegen damit Vivado den erkennt (abgesehen natürlich dass man den 
Chip eh als JTAG konfigurieren muss)

von Gustl B. (-gb-)


Lesenswert?

Ja :-D Siehe Beitrag "FT2232H JTAG clonen?" .

Und nein, das poste ich aus rechtlichen Gründen nicht. Aber es ist 
machbar. Sogar sehr einfach. Man braucht aber einen original Programmer 
(ich habe einen XMOD von Trenz) den man auslesen kann.

Warnung:
Wenn man das mit FT_Prog macht kann man auch den originalen Programmer 
"löschen".

von Gruselfrosch (Gast)


Lesenswert?

Mist, ich hatte gehofft dass die Config irgendwo im Internet kursiert. 
Ich hab hier leider nur einen DLC9G zu Verfügung, da steckt aber wimre 
irgend ein Teil von Cypress drin + ein nicht beschrifteter CPLD oÄ. So 
ein FT2232 ist da natürlich zum spielen besser.

Trotzdem Danke

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Also den FT2232H von nem ZYBO aulesen ginge auch?
Supi.

Ist jetzt die Frage ob Trenz ne Vertrag mit Xilinx hat oder nicht, aber 
die bieten ihren FT2232H Programmer als normal JTAG an und als Xilinx 
kompatibel:
https://shop.trenz-electronic.de/de/TE0790-02L-XMOD-FTDI-JTAG-Adapter-nicht-kompatibel-mit-Xilinx-Tools?c=247
https://shop.trenz-electronic.de/de/TE0790-02-XMOD-FTDI-JTAG-Adapter-Xilinx-kompatibel

Ist die Frage ob der Aufpreis Lizenzgebühren sind oder weil das Teil wer 
umflashen muss.

von Gustl B. (-gb-)


Lesenswert?

Vermutlich geht das, ja. Und ja das sind wohl Lizenzgebühren.

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

So, fertig bestückt mit kleinen Änderungen.
Fazit: Ich bin zufrieden. Den ADC kann ich schön über SPI einstellen. 
Mit dem interleaved Output hätte ich deutlich IOs eingespart, wird auf 
der nächsten Platine gemacht. Ausserdem kommt ein schnellerer DAC drauf.

Im Anhang ein 10 MHz Sinus gemessen mit dem AD9650@25MSamples/s. Der 
sehr saubere Sinus stammt aus einem TSW2110EVM.

von Strubi (Gast)


Lesenswert?

Gustl B. schrieb:
> Vermutlich geht das, ja. Und ja das sind wohl Lizenzgebühren.

Lizenzgebühren für eine simple Flash-Konfiguration??

Also gut, wie auch immer - aber abgesehen vom rechtlich hypersauberen 
Weg gibt es auch einfach den OpenSource-Weg per xc3sprog, allerdings 
weiss ich nicht, wie weit der Spartan7-Support dafür gediehen ist.
Gefällt mir aber deutlich besser, "make download" zu tippen als die 
Programmer-GUI zu starten, insbesondere wenn ich dabei einige Schritte 
des Bauens (danke Make) sparen kann.

von Gustl B. (-gb-)


Lesenswert?

OK, mit xc3sprog habe ich noch nie was gemacht. Geht das auch mit dem 
FT2232H JTAG? Für mich war meine Lösung die einige Möglichkeit ausser 
eben einen teuren JTAG Adapter zu kaufen.
Kann man mit dem xc3sprog auch das PROM beschreiben?

Edit:
Mein Flash S25FL ist nicht als supported gelistet.

: Bearbeitet durch User
Beitrag #5607454 wurde vom Autor gelöscht.
von -gb- (Gast)


Angehängte Dateien:

Lesenswert?

So, fertig.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Schönes Projekt :)

Ich hatte zeitlich parallel zu deinem auch ein FPGA-BGA Layout erstellt, 
Platinen fertigen lassen und mittlerweile bestückt.

Bei mir ist es ein Altera/Intel Cyclone 10 LP im UFBGA256 (0,8mm Pitch).

Ich glaube der Spartan ist ein bisserl größer (und mit größerem Pitch), 
wenn ich das richtig gesehen habe.

Mit den BGAs hatte ich so meine Probleme - zwei Platinen hab ich aber 
auf das jeweils erste mal hinbekommen, aber so diesen typischen 
Einschwimm-Effekt, von dem man oft liest, konnte ich nicht beobachten.

Da deine Erfahrungen quasi frisch sind, wollte ich dich folgendes 
Fragen:

Wie viel Flussmittel hattest du auf die Platine geschmiert?

Konntest du das Einschwimmen beobachten?

Hast du die Platine von unten beheizt? Falls ja, mit was?

Vielen Dank!
Mampf

von Gustl B. (-gb-)


Lesenswert?

Habe deine Platine ebenfalls gesehen :-)

Mampf F. schrieb:
> Bei mir ist es ein Altera/Intel Cyclone 10 LP im UFBGA256 (0,8mm Pitch).

Das war mir etwas zu fein. Wenn ich bei 1mm die Pads etwas kleiner 
mache, würde ich zwei Bahnen zwischen je zwei Vias durchbekommen. Habe 
ich aber noch nicht gemacht.

Mampf F. schrieb:
> Ich glaube der Spartan ist ein bisserl größer (und mit größerem Pitch),
> wenn ich das richtig gesehen habe.

15mm x 15mm hat aber auch weniger IOs.

Mampf F. schrieb:
> Wie viel Flussmittel hattest du auf die Platine geschmiert?

Fast keines. Also dünn drauf und dann mit einer Plastikkarte abgezogen.

> Konntest du das Einschwimmen beobachten?

Nein. Nur, dass das FPGA etwas abgesunken ist.

> Hast du die Platine von unten beheizt? Falls ja, mit was?

Nein. Habe aber zuerst lange aus größerer Entfernung warm gemacht und 
bin dann langsam näher ran.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Mampf F. schrieb:
>> Wie viel Flussmittel hattest du auf die Platine geschmiert?
>
> Fast keines. Also dünn drauf und dann mit einer Plastikkarte abgezogen.

Auch eine gute Idee :)

Hab einen Klecks in die Mitte der Pads und dann mit einem Q-Tip 
verstrichen.

Gustl B. schrieb:
>> Konntest du das Einschwimmen beobachten?
>
> Nein. Nur, dass das FPGA etwas abgesunken ist.

Okay, dann wirklich nicht so wie bei den QFNs, die ja richtig schwimmen.

>> Hast du die Platine von unten beheizt? Falls ja, mit was?
>
> Nein. Habe aber zuerst lange aus größerer Entfernung warm gemacht und
> bin dann langsam näher ran.

Hatte da ziemliche Probleme ... Hab so eine China-Heißluft für 50EUR und 
musste da mit 350°C von oben drauf brutzeln und das einige Minuten lang 
... Ich hab allerdings keine Ahnung, wie heißt die Luft wirklich ist, 
die da rauskommt.

So einen Platinenheizer würde ich mir aber wünschen - glaub das könnte 
das etwas vereinfachen.

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Mampf F. schrieb:
> Okay, dann wirklich nicht so wie bei den QFNs, die ja richtig schwimmen.

Mit viel Flussmittel schwimmt das, bei mir schwimmen auch die nicht.

Als Fön zum Löten verwende ich einen alten Steinel HL1800E ohne den 
feinen Aufsatz. Habe also ca. 2,3 cm Düsendurchmesser.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Mein Spartan-7 Projekt ist jetzt auch langsam so weit, dass ich mit der 
Hardware anfangen kann - da ist deins natürlich eine große Inspiration!

Dazu würden mich noch ein paar Sachen interessieren:

Hast du eigentlich auch indirekt SPI programming verwendet?

Im Schaltplan sehe ich einen SPI-Flash am FPGA hängend, der im 
Quad-Modus angebunden ist.

Kannst du den auch über Vivado flashen?

Ist das egal, wo das Flash hängt oder gibt es dedizierte Pins für den 
indirect programming mode? :)



VG
Mampf

: Bearbeitet durch User
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Edit:
> Mein Flash S25FL ist nicht als supported gelistet.

Das hängt wohl daran, dass xc3sprog keinen indirekten Flashing-Modus 
kann.

Auf meinem Arty S7 hab ich mit den encryption-Settings mein Flash 
unbrauchbar gemacht. Scheinbar wird im Flash für den indirekten 
Flash-Modus irgendwas eingebettet, mit dem zunächst das FPGA geladen 
wird, damit über das FPGA der Flash beschrieben werden kann und wenn man 
die eFuses programmiert, bevor ein verschlüsselter Bitstream im Flash 
ist, kann das nicht mehr beschrieben werden.

"First, the FPGA is programmed with a circuit that can program flash 
devices, and then data is transferred to the flash device via the FPGA 
circuit (this complexity is hidden from the user by the Xilinx tools). 
This is called indirect programming." (Arty S7 Manual)

Früher gab es das meines Wissens nicht und da hingen die Platform-Flashs 
einfach auf der anderen Seite. (Direkt an JTAG glaub ich sogar).

Funktioniert das heute nicht mehr?

: Bearbeitet durch User
von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Moin!
Also der Flash hängt am FPGA und der/das FPGA über einen FT2232H am USB. 
In den FT2232H habe ich die Firmware von einem Digilent USB-JTAG Adapter 
geklont. Der Digitelt Adapter verwendet nämlich auch den FT2232H. Im 
Vivado wird das jetzt als USB-JTAG von Digilent erkannt und da sehe ich 
dann das FPGA und den Flash. Der andere Kanal vom FT2232H ist ein UART.
Laut Datenblatt kann man leider mit dem FT2232H nicht gleichzeitig den 
schnellen synchronen FT245 FIFO verwenden und JTAG machen, das ist eine 
Einschränkung. Der asynchrone FIFO müsste aber gehen. Das hatte ich bei 
der Platine aber beides nicht angeschlossen.

Für den Flash gibt es feste Pins am FPGA, ich hatte hier ja das .sch 
irgendwo im Thread ... mal suchen ... warte ... ja genau, bei Bank14 und 
der Config "Bank" hängt JTAG und Flash. Ich habe da so ziemlich die 
Minimalbeschaltung verwendet.

Die Nachfolgeplatine ist auch schon in Planung, Layout ist fast fertig, 
ich muss nur noch testen ob mir beim DCDC-Wandler auch für alle drei 
Ausgänge die gleichen Spulen genügen. Da hatte ich bisher jeweils wie es 
im Datenblatt steht die Ströme berechnet und unterschiedliche Spulen 
verbaut, aber in einer Beispielschaltung die auch im Datenblatt steht 
wird dreimal die gleiche Spule verwendet. Das werde ich auch testen und 
dann hoffentlich deutlich Platz sparen.
Im Anhang ist schonmal ein Layout ...

Mampf F. schrieb:
> Früher gab es das meines Wissens nicht und da hingen die Platform-Flashs
> einfach auf der anderen Seite. (Direkt an JTAG glaub ich sogar).

So ist das bei mir. Den indirekten Flashing-Modus verwende ich nicht.

: Bearbeitet durch User
von Alex W. (a20q90)


Lesenswert?

Gustl B. schrieb:
> ich habe als Lernprojekt ein kleines FPGA Board entworfen

Poste doch bitte mal die PCB-Files. Mich interessiert das sehr!

von Gustl B. (-gb-)


Lesenswert?

Sind doch im ersten Post.

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Gustl B. schrieb:
> Moin!
> Also der Flash hängt am FPGA und der/das FPGA über einen FT2232H am USB.
> In den FT2232H habe ich die Firmware von einem Digilent USB-JTAG Adapter
> geklont. Der Digitelt Adapter verwendet nämlich auch den FT2232H. Im
> Vivado wird das jetzt als USB-JTAG von Digilent erkannt und da sehe ich
> dann das FPGA und den Flash. Der andere Kanal vom FT2232H ist ein UART.

Hmm, das ist bei meinem Arty S7 board genauso ... Vlt kann man das 
genauso klonen :)

> Die Nachfolgeplatine ist auch schon in Planung, Layout ist fast fertig

Sehr schick! Sieht echt gut aus. Machst du das nur als Hobby?

> Mampf F. schrieb:
>> Früher gab es das meines Wissens nicht und da hingen die Platform-Flashs
>> einfach auf der anderen Seite. (Direkt an JTAG glaub ich sogar).
>
> So ist das bei mir. Den indirekten Flashing-Modus verwende ich nicht.

Ich glaube da täuscht du dich ... Zumindest bei Version 1 deines 
Projekts bin ich mir ziemlich sicher, dass du indirekt Flashing 
verwendest.

Ich weiß nicht, ob du das bei der zweiten Version geändert hast - falls 
ja, dann wäre interessant, was du für ein Flash verwendet hast, um es in 
die JTAG-Chain einzubinden.

Im Anhang ein Bild aus einem PDF für indirect programming. Ist zwar 
Spartan 3 - dürfte jetzt aber immer noch gleich sein.

Früher gab es die XCF0irgendwas Platform-Flashs, die direkt an JTAG in 
der Chain hingen. Die konnte man dann auch mit xc3sprog beschreiben.

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Mampf F. schrieb:
> Hmm, das ist bei meinem Arty S7 board genauso ... Vlt kann man das
> genauso klonen :)

Hier der Thread dazu. Die Digilent Firmware werde ich nicht hochladen, 
aber das C Programm kann ich bereitstellen.

Mampf F. schrieb:
> Sehr schick! Sieht echt gut aus. Machst du das nur als Hobby?

Derzeit ja. Ich habe Lehramt studiert und bin gerade im Referendariat. 
Aber was ich danach mache ist noch ungewiss ...

Mampf F. schrieb:
> Ich glaube da täuscht du dich ... Zumindest bei Version 1 deines
> Projekts bin ich mir ziemlich sicher, dass du indirekt Flashing
> verwendest.

OK, ne, habe in der zweiten Version nichts geändert. Im Vivado sehe ich 
am JTAG den Flash und das FPGA, ich kann die getrennt beschreiben. Ja, 
verstehe, bei mir hängt das Fpash nicht direkt am JTAG.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Mampf F. schrieb:
>> Ich glaube da täuscht du dich ... Zumindest bei Version 1 deines
>> Projekts bin ich mir ziemlich sicher, dass du indirekt Flashing
>> verwendest.
>
> OK, ne, habe in der zweiten Version nichts geändert. Im Vivado sehe ich
> am JTAG den Flash und das FPGA, ich kann die getrennt beschreiben. Ja,
> verstehe, bei mir hängt das Fpash nicht direkt am JTAG.

Oh, auf digikey kostet zB der XCF32P um die $55!

Ja hmm, das ist ja blöd ... Ich hab herausgefunden, wenn man das FPGA so 
konfiguriert, dass es nur noch encrypted Bitstreams akzeptiert, kann man 
das per indirect programming nie wieder flashen.

:/

von Gustl B. (-gb-)


Lesenswert?

OK, naja, vielleicht ist das ein Feature.

Ich verwende da so einen anderen Flash Stein, den S25FL128SAGN der hat 
ein WSON-8 Package. Kostet so um die 2-3€.

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hast du eigentlich rausfinden können, wieviel Strom der VCCAUX benötigt?

Vivado meint bei meinem Design irgendwas mit kleiner 100mA ... Ist sowas 
realistisch?

Für mein neues Design hab ich (wie bei meinem anderen Cyclone 10 
Projekt) den EN5329QI (1V, 2A) und für VCCAUX den EP5388QI verwendet.

Der EP5388QI kann 800mA ... Ist vermutlich weit mehr, als man wirklich 
braucht.

Hmm ... ich weiß gar nicht so recht, wofür man das außer JTAG überhaupt 
benötigt.

(btw: den Footprint für den WSON8-Flash hab ich mir von dir geklaut :-) 
)

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Man diese Empirons muss ich mir auch mal angucken, die sind ziemlich 
schick klein.

Ist das PCIe? Dafür braucht man glaube ich einen XC*****T FPGA.
Ich hatte auch keinen Footprint gefunden.

VCCAUX braucht recht wenig nach Datenblatt, ich habe dafür aber keine 
getrennte Versorgung.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Ist das PCIe? Dafür braucht man glaube ich einen XC*****T FPGA.
> Ich hatte auch keinen Footprint gefunden.

Ja, aber leider kein richtiges PCIe. Der Artix7 könnte PCIe - ich hab 
nur den Connector verwendet. Da ist das gleiche FPGA drauf, wie du in 
deinen Projekten verwendet hast. Hatte meinen FPGA-Core mit dem Arty S7 
(auch 50kLE) Board gebaut und jetzt kriegt der Core ein eigenes Board :)

Für KiCad hab ich sofort einen hübschen Footprint für den PCIe-Connector 
gefunden - mit Eagle hab ich seit 5.x nicht mehr gearbeitet und weiß 
daher nicht, was es alles gibt.

Gustl B. schrieb:
> Man diese Empirons muss ich mir auch mal angucken, die sind ziemlich
> schick klein.

Jau, die sind echt nett :)

von Gustl B. (-gb-)


Lesenswert?

Mit Footprint meinte ich den Flash. Eagle hat auch PCIe Footprints, aber 
das bringt mir ohne die schnellen SerDes nichts.

Sind das auch 4-Lagen?
Welche Signale gehen über den Verbinder?
Wo lässt du das fertigen?
Welchen Durchmesser haben die Vias? Das sieht verdammt klein aus ...

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Mit Footprint meinte ich den Flash. Eagle hat auch PCIe
> Footprints, aber
> das bringt mir ohne die schnellen SerDes nichts.

Aaah ok, ja den hatte ich auch irgendwie nirgends gefunden xD


> Sind das auch 4-Lagen?

Jup, sind auch 4.

> Welche Signale gehen über den Verbinder?

Alles mögliche. In dem FPGA läuft ein Cortex-M1. Da geht Peripherie wie 
2*SPI raus. Oder auch ein SWD-Interface für das Debugging. Ein paar Ein- 
und Ausgänge.

> Wo lässt du das fertigen?

JLCPCB müsste das fertigen können. Ich hatte heute mal den Rechner 
gefragt und für 10Stück 4-Layer Platinen in 30x30mm (50x50 kostet gleich 
viel), mit ENIG und Gold-Fingern verlangen sie inklusive Pastenschablone 
und Versand 42EUR. Unglaublicher Preis.

> Welchen Durchmesser haben die Vias? Das sieht verdammt klein aus ...

0,2mm Drill mit 0,4mm Durchmesser. JLCPCB kann das bei 
Multilayer-Platinen. Die schaffen auch  Strukturen unter 0,1mm.

Für den Preis schon fast unglaublich.

: Bearbeitet durch User
von Gustl B. (-gb-)


Lesenswert?

Wow das klingt genial. Ich lasse bei Beta Layout fertigen. Poste mal 
Fotos wenn das da ist, die Qualität interessiert mich doch sehr.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Wow das klingt genial. Ich lasse bei Beta Layout fertigen. Poste
> mal
> Fotos wenn das da ist, die Qualität interessiert mich doch sehr.

Ja in Ordnung, werde ich machen :)

Bzgl Vias hatte ich mich leider dann doch getäuscht ... 0,2mm Drill mit 
0,45mm Diameter geht. Muss ich noch bisserl nacharbeiten :)

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich frag mich, ob man so einen Adapter wie im angehängten Bild ebenfalls 
um-klonen kann.

Da braucht man natürlich Glück, dass die JTAG-Signale an den richtigen 
Pins des FT2232 anliegen ... Mich würde es aber fast wundern, wenn die 
das nicht schon ebenfalls kopiert hätten und das ein quasi-Standard ist.

Ich hab mir so einen mal besorgt und werde das testen. Wäre echt nett, 
weil das RS232 auch schon drauf ist.

Du hattest letztens was von einem C-Programm erzählt, das du mir zur 
Verfügung stellen könntest.

Könntest du mir das bitte zuschicken oder falls du es selbst irgendwo 
gefunden hast, mir den Link dazu schicken? :-)

PS: JLCPCB hat mein Design reviewed und akzeptiert und es ist jetzt in 
Produktion.

von Gustl B. (-gb-)


Angehängte Dateien:

Lesenswert?

Das sucht aber eben genau nach dem FTDI auf einem Digitent Adapter mit 
genau der passenden ID. Da müsstest du wohl die ID oder so ändern damit 
es deinen FT2232H findet, aber ja das schreibt da dann auch die Firmware 
ins EEPROM. Das EEPROM braucht man dafür glaube ich zwingend.

Ich glaube nicht, dass in dem Adapter ein FTDI Stein drinnen ist, die 
sind nämlich recht teuer. Aber es interessiert mich schon, also zerlege 
ihn wenn er da ist.

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

Kleines Update - und sorry, wenn ich dir in deinen Thread spamme.

Also von dem FT232 hab ich nun Abstand genommen.

Ich hab ein "Dev-Board" dazu gebaut, in das man das Modul stecken kann 
und dort gibt es einen Standard JTAG-Header und zusätzlich hängt JTAG 
noch an einem STM32, der an USB hängt.

Ich versuche, soweit wie es geht, dann ohne proprietäre Tools 
auszukommen. Auch den Core, den man für das indirekt Flash Programming 
benötigt, baue ich dann selbst nochmal nach.

In dem FPGA läuft ein Cortex M1 SoC, das Peripherie für den Quad-SPI 
schon drin hat - da sollte es möglich sein, den Bitstream selbst in da 
SPI-Flash zu laden.

Für die eFUSE-Register braucht man aber leider einen richtigen 
Xilinx-Programme, weil das über das XSVF-Format nicht unterstützt wird.

Platinen-Design wird in ca. 2 Wochen unter MIT Lizenz freigegeben.

Mit 30x26mm ist das Modul hübsch klein geworden :)

: Bearbeitet durch User
von Bernd (Gast)


Lesenswert?

Mampf F. schrieb:
> Ich versuche, soweit wie es geht, dann ohne proprietäre Tools
> auszukommen. Auch den Core, den man für das indirekt Flash Programming
> benötigt, baue ich dann selbst nochmal nach.
Da kannst Du Eich evtl. bei xc3sprog bedienen. Da müßte ein 
JTAG-to-Flash-Programmer dabei sein...

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Bernd schrieb:
> Mampf F. schrieb:
>> Ich versuche, soweit wie es geht, dann ohne proprietäre Tools
>> auszukommen. Auch den Core, den man für das indirekt Flash Programming
>> benötigt, baue ich dann selbst nochmal nach.
> Da kannst Du Eich evtl. bei xc3sprog bedienen. Da müßte ein
> JTAG-to-Flash-Programmer dabei sein...

Jein - der xc3sprog kann nur Xilinx Platform-Flashs, die an JTAG mit dem 
FPGA hängen. Die sind aber unglaublich teuer. Für einen XC7S50 kostet so 
ein Flash um die $55.

Das SPI-Flash ist ein $3-Teil, das quasi auf der anderen Seite des FPGAs 
hängt. Beim indirekt Programming wird von Xilinx ein proprietärer Core 
in das FPGA geladen, um dann das Flash flashen zu können.

Sowas werde ich dann nachbauen, weil es anders leider nicht geht.

Zudem kommt, dass man das SPI-Flash nicht mehr flashen kann, sobald man 
die eFUSE-Register gesetzt hat (das ist wirklich so! Es gibt eine 
offizielle Seite von Xilinx, wo die das bestätigen). Wenn man einen 
eigenen Core zum Flashen verwendet, dann kann man den encrypten und 
damit sollte das Beschreiben dann problemlos möglich sein - trotz 
programmierte eFUSEs.

: Bearbeitet durch User
von berndl (Gast)


Lesenswert?

Mampf F. schrieb:
> Jein - der xc3sprog kann nur Xilinx Platform-Flashs, die an JTAG mit dem
> FPGA hängen. Die sind aber unglaublich teuer. Für einen XC7S50 kostet so
> ein Flash um die $55.

Stimmt so nicht. Ein Kollege und ich haben letztes Jahr mit xc3sprog 
rumgemacht, man kann sehr wohl auch mindestens einen Spartan6 mit einem 
Winbond Feld-Wald-Und-Wiesen SPI-Flash bespassen.

Wir mussten nur im xc3sprog-Source die Chip-ID des Winbonds eintragen, 
der Rest lief mit einem billigen Digilent JTAG Adapter und ein paar 
Cmd-Optionen.

Muesste ich nach Ostern mal 'auf Arbeit' nachsehen. Aber es geht 
definitiv.

Beitrag #5813558 wurde vom Autor gelöscht.
von -gb- (Gast)


Lesenswert?

Das sieht tatsächlich ziemlich schick aus. Da würde mich ja der 
Anwendungsfall interessieren.

von Mampf F. (mampf) Benutzerseite


Angehängte Dateien:

Lesenswert?

-gb- schrieb:
> Das sieht tatsächlich ziemlich schick aus. Da würde mich ja der
> Anwendungsfall interessieren.

Das ist quasi eine Art Secure Crypto Prozessor für die Crypto-Währung 
IOTA. So ähnlich wie die Crypto-µCs von STM, aber mit 
Hardware-Beschleunigung für die Algorithmen, die viel von IOTA benötigt 
werden und wofür es keine ASICs gibt :) Der Cortex-M1 im FPGA ist 
relativ lahm (trotz 100MHz Clock) und Algorithmen wie 
Type-Konvertierungen (trinär <-> binär), Hashing (curl-p81, keccak384, 
troika) und Proof-of-Work (damit werden keine Coins erzeugt) laufen ohne 
Hardware-Beschleunigung sehr langsam. Außerdem ist auf dem Modul noch 
ein Secure-Storage für Seeds (quasi die privaten Schlüssel zu den 
Coins). :)

Gibt noch ein "Dev-Board" dazu, mit dem ich dann noch ein paar Sachen 
testen wollte.

Nächster Schritt ist ein Linux SoM auf Basis des ATSAMA5D27, das dann 
das Modul verwenden soll.

Ahja, alles was da entwickelt wird, ist dann quelloffen und unter MIT 
Lizenz.

: Bearbeitet durch User
von -gb- (Gast)


Lesenswert?

IOTAs habe ich auch noch ein paar bei Bitfinex. Hoffentlich steigen die 
mal wieder ...

von Mampf F. (mampf) Benutzerseite


Lesenswert?

-gb- schrieb:
> IOTAs habe ich auch noch ein paar bei Bitfinex. Hoffentlich
> steigen die
> mal wieder ...

Geduld Geduld xD Der nächste Bull-Cycle startet in 2-3 Monaten, in 2 
Jahren kannst du dann abkassieren xD

: Bearbeitet durch User
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.