Hi, ich möchte hier mein kleines vor kurzem fertiggestelltes Projekt namens openbiosprog-spi vorstellen. Das ist ein USB-basierter Programmer für SPI Chips (Hauptanwendung ist das Programmieren von DIP-8 SPI-Chips aus neueren Mainboards, z.B. wenn ein BIOS-Upgrade schief gegangen ist). All relevanten Infos gibts hier, inklusive Schaltplan, Layout, Bill of Materials, Gerber files, Drill files, und einen Haufen Fotos: http://randomprojects.org/wiki/Openbiosprog-spi http://hermann-uwe.de/blog/openbiosprog-spi-a-diy-open-hardware-and-free-software-usb-based-spi-bios-chip-flasher-using-flashrom Ich habe Schaltplan und Platine komplett in Kicad entworfen (2 Layer, 0603 SMD Teile beidseitig bestückt), und unter einer Creative Commons Lizenz freigegeben (CC-BY-SA 3.0). Das Design basiert auf einem FTDI FT2232H, der sowohl USB als auch SPI (via MPSSE-Engine) übernimmt. Auf PC-Seite wird das GPL'te Tool "flashrom" benutzt (unter Linux, sollte aber auch auf Windows laufen): http://flashrom.org/Supported_hardware Alle Dateien sind in folgendem git repository verfügbar: $ git clone git://gitorious.org/openbiosprog/openbiosprog-spi.git Wer nur die fertigen Gerber Files will: http://randomprojects.org/wiki/images/a/a8/Openbiosprog-spi-0.1-gerber.zip Ich poste das hier aus mehreren Gründen, u.a. a) Es ist mein erstes "ernsthaftes" Hardware-Projekt überhaupt, und ich wäre für jedwede Verbesserungsvorschläge und Hinweise auf Fehler die ich gemacht habe dankbar. Es wird wohl früher oder später eine zweite Version geben wo ich dann solche Dinge einfließen lassen will. b) Es ist natürlich auch mein erstes Kicad-Projekt, und ich muss sagen ich bin sehr zufrieden mit Kicad. EAGLE oder sonstige closed-source Programme kommen mir gleich sowieso nicht in die Tüte (schon gleich doppelt nicht wenn ich damit Open-Hardware Projekte realisiere), also hatte ich die Wahl zwischen gEDA/PCB (was auch ganz nett ist) und Kicad, das ich dann hier verwendet habe. Ich habe versucht möglichst alle Einstellungen in Kicad zum Generieren von brauchbaren Gerber + Drill Files ausführlich zu dokumentieren um anderen den Einstieg damit etwas zu erleichtern: http://randomprojects.org/wiki/Openbiosprog-spi#PCB_manufacturing Ich werde keine Sammelbestellung o.ä. organisieren, aber wenn jemand anderes das machen will -> gerne, die Hardware ist ja frei, u.a. genau aus diesem Grund. Möglicherweise kann ich später das Projekt im BatchPCB Market Place verfügbar machen damit man dort relativ leicht an Platinen kommt, mal sehen: http://batchpcb.com/index.php/Products Meine ersten Prototypen habe ich bei PCB-POOL.COM machen lassen, die genauen Einstellungen dafür sind auch auf der Projektseite dokumentiert. Jeder andere brauchbare PCB-Hersteller sollte aber auch gehen, die Leiterbahnen sind 8mil, Via Gesamtdurchmesser 1mm, damit sollte jeder zurechtkommen. Uwe.
:
Verschoben durch User
Klasse! (Ich habe mir die Freiheit genommen, das nach "Codesammlung" zu verschieben)
Warum hast Du nicht den FT2232D genommen? Ich denke, Hi-Speed dürfte hier nicht erforderlich sein, und mit den D wird der Lötaufwand ein wenig geringer, da nur 48 Pins. Plus: der D kann auf den IO-Leitungen noch 5V, falls jemand das braucht. fchk
Uwe Hermann schrieb: > Hauptanwendung ist das Programmieren von DIP-8 SPI-Chips aus > neueren Mainboards, z.B. wenn ein BIOS-Upgrade schief gegangen ist Gerade bei neueren Mainboards gibts aber immer eine Recovery-Funktion, die bei schief gegangenen BIOS-Upgrades trotzdem das neuflashen ermöglicht.
Rufus t. Firefly schrieb: > Klasse! > > (Ich habe mir die Freiheit genommen, das nach "Codesammlung" zu > verschieben) OK, kein Problem, ist das aber wirklich die richtige Kategorie? Ich hab keine einzige Zeile Code geschrieben ;-)
Frank K. schrieb: > Warum hast Du nicht den FT2232D genommen? Ich denke, Hi-Speed dürfte > hier nicht erforderlich sein, und mit den D wird der Lötaufwand ein > wenig geringer, da nur 48 Pins. Plus: der D kann auf den IO-Leitungen > noch 5V, falls jemand das braucht. > > fchk Hm, gute Frage, ich bin ehrlich gesagt gar nicht auf die Idee gekommen mir die älteren Chips anzuschauen. Vom Preis her rentiert sich der FT2232D nicht sonderlich, kostet fast genausoviel wie der FT2232H. Die Geschwindigkeit sollte schon so hoch wie möglich sein, aber vermutlich gibts bei dieser Applikation keine großen Unterschiede, weil man so gut wie nie volle (libftdi) Buffer hat, man sendet oder empfängt immer relativ wenige Bytes pro "Paket". Die Roundtrip-Zeiten pro USB Paket dürften aber etwas höher seim, keine Ahnung. Derzeit braucht das beschreiben (+löschen + verify) von einem 1MB Chip ca. 1 Minute und 10 Sekunden, das wäre vermutlich noch mehr mit dem FT2232D. http://randomprojects.org/wiki/Openbiosprog-spi#Usage Bei 2MB oder noch größeren Chips wird das entsprechend mehr. Wenn man das oft hintereinander machen will (bei mir in der Tat der Fall für coreboot-Portierungen) dann werden die Wartezeiten zunehmend nervig. http://www.coreboot.org Vom Löten her wage ich zu behaupten gibt es keinen großen Unterschied. Wenn man die Technik einmal raus hat, ist es egal ob das 48, 64, oder 144 Pins sind, das kann man alles problem löten. Löthonig/Lötfett/NocleanFlux und Entlötlitze ist alles was man braucht.
Nanometer schrieb: > Uwe Hermann schrieb: >> Hauptanwendung ist das Programmieren von DIP-8 SPI-Chips aus >> neueren Mainboards, z.B. wenn ein BIOS-Upgrade schief gegangen ist > > Gerade bei neueren Mainboards gibts aber immer eine Recovery-Funktion, > die bei schief gegangenen BIOS-Upgrades trotzdem das neuflashen > ermöglicht. Jein. Mit älteren Boards meinte ich solche mit parallelen, LPC- oder FWH-Chips (vs. SPI Chips in den neueren Boards). Es gibt zwar schon bei vielen so einen Recovery-Mechanismus, aber nicht bei allen Boards. Dieser Mechanismus zwingt einen auch oft bestimme (Windows/DOS) Software einzusetzen, im schlimmeren Fall sogar Floppies oder sowas, und ist oft auf nur genau "dein" BIOS-Image beschränkt (man kann nicht beliebige Inhalte auf den Chip schreiben), und die Liste der unterstützten Chips ist oft relativ kurz. Mit openbiosprog-spi und der flashrom Software kann ich problemlos alle SPI-Chips von so gut wie allen Herstellern mit beliebigen Inhalt versehen, und das bequem von Linux aus (auch per ssh wenns sein muss!), kein DOS/Win, keine Floppies. Zudem kann es auch passieren dass man aus anderen Gründen extern SPI-Chips flashen möchte, z.B. aus Set-Top-Boxen ohne Recovery-Option, SPI-Chips von Grafikkarten, Netzwerkkarten (PXE, netboot) oder Chips aus sonstigem Embedded-Kram. In meinem Fall kommt oft tatsächlich noch das Flashen von "normalen" Boards dazu, auch solche mit Recovery-Option, beim Portieren von coreboot (open-source BIOS/firmware) auf neue Boards: http://www.coreboot.org In diesem Fall ist die Recovery-Option oft nicht nützlich, da der oft im "Bootblock" des SPI-Chips enthaltene Recovery-Code eben auch mit coreboot überschrieben wird. Selbst bei Lösungen mit zwei Chips geht das oft nicht, da der Mechanismus um "von Hand" (ohne den Recovery-Code vom ersten Chip) auf den zweiten Chip umzuschalten proprietär und nicht dokumentiert ist.
Frank K. schrieb: > Warum hast Du nicht den FT2232D genommen? Der 2232H hat den SPI als Hardware. Du mußt nicht mit den Ports wackeln. Werf mal einen Blick ins Datenblatt, da hat sich doch einiges geändert.
Kurzes Update: Ich hab inzwischen auch mal die Variante mit einem Pin-Header statt DIP-8 Sockel aufgebaut, Foto anbei. Das ist nützlich wenn man direkt an einen eingelöteten Chip gehen will, z.B. mit kleinen Drähten oder Klemmen usw. Uwe.
OK, neuer Versuch für das Foto. Offenbar schneidet sie Software lange Dateinamen einfach ab (und damit das .jpg Suffix in diesem Fall) und checkt daher nicht mehr, dass es sich um ein jpeg handelt.
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.