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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.