Nico K. schrieb:
> Hallo,
>
> ich bin gerade dabei ein Programmiergerät für Flash Chips zu bauen.
Welchen Typ Flash Chips? NAND flash oder NOR flash? Falls letzteres:
paralleles Interface, LPC, FWH, oder SPI? Willst du Sockel für die
jeweiligen Packages in denen es die Chips gibt auf den Programmer packen
(DIP-8, PLCC32, DIP32, andere)?
Ich habe auch änhliches vor, im Moment einen FTDI FT2232H-basierten
USB-Programmer der nur SPI-Chips unterstützt (DIP-8 Sockel), später eine
flexiblere Variante für weitere Chiptypen wenn der erste mal läuft:
http://randomprojects.org/wiki/Openbiosprog-spi
http://randomprojects.org/wiki/Openbiosprog
Das Ganze wird natürlich ein Open Hardware Projekt, d.h. Schaltpläne und
PCB Layouts stehen unter einer freien Lizenz (CC-BY-SA 3.0) und werden
mit freier Software erstellt (Kicad in diesem Fall).
> Bei
> der Programmierung stellt sich mir gerade eine kleine Frage bezüglich
> den Commands, die die Chips bekommen.
> Gibt es bei den Commands irgendwelche (quasi) Standards, an die sich die
> Hersteller halten oder kocht da jeder sein eigenes Süppchen?
Teilweise, aber mit vielen Ausnahmen. Die entspr. Datenblätter haben die
jeweiligen Infos, falls sie nicht gerade inkorrekt sind (sind die ab und
an mal).
> Gerade habe ich ein paar AM29F040 und SST29EE020 hier zum testen. Diese
> haben beispielsweise die selbe Sequenz für den Chip-erase. Ich würde die
> software aber am liebsten möglichst flexibel schreiben, um einfach
> andere Chips beschreiben zu können.
Schau dir mal flashrom an, ist ein Open-Source Linux-Tool (läuft
inzwischen aber auch auf FreeBSD, Solaris, DOS, und demnächst evtl. auch
auf Windows) das über 200 Chips, diverse Mainboards als "Programmer" und
verschiedene "externe Programmer" unterstützt. Ist in C geschrieben,
Lizenz ist die GNU GPL.
http://flashrom.org
Es wäre (IMHO) sinnvoll für deinen Programmer flashrom-Support zu
schreiben, dann kannst du auf einen Schlag diese 200 verschiedenen Chips
lesen/löschen/schreiben.
Es wird derzeit daran gearbeitet, dass der Code auch standalone oder als
Library kompiliert werden kann damit man (Teile davon) auch direkt auf
einem Mikrocontroller verwenden könnte (nicht auf dem Host).
Uwe.