Forum: FPGA, VHDL & Co. ICE40HX4K Board


von DocRaptor (Gast)


Lesenswert?

Hallo euch allen,
ich bin dabei ein Breakout Board zu machen für die Lattice ICE40 FPGAs 
(genauer gesagt dem ICE40HX4K). Neben dem ICE40HX4K ist auf dem Board 
neben der Spannungsversogung und SPI Flash (MX25R3235FM1xx0 ist 
derzeitig nur als Platzhalter. Da kann auch ein anderer genommen werden. 
Dann muss nur das Layout eventuell etwas angepasst werden) nicht anderes 
drauf. Jetzt werden einige sagen: Da muss doch noch RAM und/oder 
sonstiges drauf. Wenn ihr wollt, könnt ihr das selber hinzufügen, indem 
ihr euch das alles runterladet und nach euren Wünschen berarbeitet. Ich 
habe es unter die creativ commons BY 4.0 Lizenz gestellt. Ich habe das 
Board dazu gemacht, damit ich ein Design habe (und auch andere), von dem 
ich weiß, das es funktioniert und es für spätere Projekte nutzen kann. 
Für das Flashen habe ich SPI vorgesehen, so das man ein FTDI FT232H oder 
ein Mikrocontroller nutzen kann.

Nun ist meine Frage, ob ich irgenetwas noch übersehen habe, so das es 
nicht funktionieren kann. Hab ihr Verbesserungsforschläge.

https://github.com/Doc-Raptor/ICE40HX4K-Breakour-Board

Grüße

von ... (Gast)


Lesenswert?

Igel 7.7 kompatible Files waeren ein Gewinn.

von PCB (Gast)


Lesenswert?

Das Taktsignal vom Oszillator würde ich nicht unbedingt über einen 
Jumper führen. Hast du außerdem darauf geachtet, dass das Taktsignal auf 
einen GBIN geht, der direkt auf eine der PLLs geht?

Ich würde noch Serienwiderstände an den IOs vorsehen.

Um das Konfigurations-Interface könntest du dich auch kümmern.
Das ist nämlich nicht so trivial.
Das CRESET und das DONE solltest du z.B. auch an J1 heranführen.
CBSEL0 und CBSEL1 solltest du auf Jumper oder DIP-Schalter führen,
damit man den Konfigurationsmodus wechseln kann.

Ein paar weitere 10uF Kondensatoren könnten sicherlich auch nicht 
schaden.

Noch ein Tip: Ich hatte auf Arbeit ein Board mit einem ICE40HX4K im 
BGA121 Gehäuse und da ist mir aufgefallen, dass das Pinout in der 
Excel-Tabelle auf der Lattice-Seite nicht stimmte. Der Support hat das 
bestätigt aber noch nicht korrigiert. Das korrekte Pinout kannst du dir 
in icecube2 angucken.
Ich würde das an deiner Stelle auf jeden Fall nochmal checken!

Für den AMS1117 könntest du auch einen Ersatz raussuchen.
Zum Beispiel den TLV1117.

Mit nur 2 Lagen, hast du recht viele Leitungen, die über Splitplanes 
verlaufen. Für die EMV ist das nicht gut.
Ich würde da eine 4 Lagen Platine draus machen.
Nur einen Massepin für 2 Stiftleisten ist jetzt auch nicht so toll und 
unter den Stiftleisten hättest du auch die Masseplane führen können.
Die Kondensatoren würde ich kleiner machen.

von DocRaptor (Gast)


Lesenswert?

Ich habe ein Teil deiner Verbesserungsvorschläge nun in das Board 
eingebracht. Mit dem Oszilator, ja über einen Jumper ist nicht das 
beste, aber ich wollte mir die Möglichkeit lassen, andere Taktsignale 
"einzuspeisen" als das onboard. Wollte einen Sockel für einen Oszilator 
machen, aber die sind sehr groß. Das Takt geht in ein GBIN Pin (GBIN0 
nämlich).

CRESET und DONE sind nun auch auf J1.

CBSEL0 und CBSEL1 sind auf Jumpern

Paar 10nF Kondensatoren sind dazu gekommen.

Der TLV1117 ist ja kompatibel zum AMS1117. Da löte ich einen 1117 von 
einem Hersteller jeweils, welcher grad zu verfügung steht. Ist zwar 
nicht das allerbeste, aber dann muss man nicht paar Wochen warten.

Ich bleibe erst einmal bei 2 Lagen. Da hat man mehr Auswahl 
PCB-Herstellern und der Preis ist dann auch nicht alzuhoch. Und falls 
die EMV probleme macht: Alu ist ja derzeitig sehr in Mode, vor allen als 
Kopfbedekung. Man kann auch später eine weitere Variante mit 4 Lagen 
machen. Aber ich habe nicht vor Signale von mehreren hundert MHZ da 
durchzujagen.

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.