Forum: PC-Programmierung SPI EEprom 25LC040


von Andreas B. (bitverdreher)


Lesenswert?

Kennt jemand einen Weg (suche Windows sowie Linux Lösung) um ein SPI 
EEprom 25LC040 über die Kommandozeile zu programmieren und auszulesen?
CH341A Adapter ist vorhanden. Mit der CH341A_Programmer.exe funktioniert 
das prima, aber ich suche halt etwas, das ich in eigener SW ohne viel 
Aufwand einbinden kann.

von Dieter S. (ds1)


Lesenswert?

Eine Internetsuche liefert als einen der ersten Treffer:

https://github.com/ilyakurdyukov/ch341tool

"CH341A/B progammer command line tool", laut Doku für Windows und Linux.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Synaptic listet außer dem uralten Ponyprog noch das:

https://www.flashrom.org/
aber in der Liste der supported Devices steht nirgends Microchip
https://github.com/flashrom/flashrom/blob/main/flashchips.c
Aber PICkit2 als Programmer:
https://www.flashrom.org/classic_cli_manpage.html?highlight=microchip

und speziell nur für Xilinx
https://xc3sprog.sourceforge.net/

von Andreas B. (bitverdreher)


Lesenswert?

Dieter S. schrieb:
> https://github.com/ilyakurdyukov/ch341tool

Das sieht leider recht unausgegoren aus.
sudo ./ch341tool read 512 test.bin
liefert:
bad command

Christoph db1uq K. schrieb:
> https://www.flashrom.org/

Das war das erste, das ich getestet hatte. Mit so kleinen SPI EEproms 
kann der aber nichts anfangen.

von Dieter S. (ds1)


Lesenswert?

Andreas B. schrieb:
>
> Das sieht leider recht unausgegoren aus.
> sudo ./ch341tool read 512 test.bin
> liefert:
> bad command
>

Laut Doku hat "read" vier Parameter:

reading: `read addr size filename'

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Dieter S. schrieb:
> Laut Doku hat "read" vier Parameter:

Ahh, sorry. Ist schon spaet hier. Das scheint zu funktionieren. 
Zumindest schreibt er jetzt eine Datei.
Ich teste es morgen mal ausfuehrlich.

von Andreas B. (bitverdreher)


Lesenswert?

Gerade mal getestet:
Lesen: Es fehlen die ersten beiden Bytes
Schreiben: Absoluter Müll.

Es hätte mich auch gewundert, wie das funktionieren soll, ohne 
irgendwelche EEprom typen anzugeben.
Der 25LC040A ist ein EEprom im SOT23-6 (sorry, das A oben vergessen. Das 
dürfte aber nicht viel ändern). Da gibt es auch keine IDs zum Auslesen, 
wo er selbst irgend etwas erkennen könnte.

von Gerhard O. (gerhard_)


Lesenswert?

Moin,

in 2005 machte ich ein AVR Projekt (ATMEGA644) mit einem 25LC640 drin. 
Damals arbeitet ich mit CodeVision AVR und der hat fertige Bibliotheken 
dafür und alles funktionierte damals auf Anhieb. Falls man diesen Weg 
gehen möchte, kann man sich eine Demoversion herunterladen um davon 
Gebrauch zu machen. Mit CVAVR arbeitet es sich gut.

Auf GITHUB gibt es auch eine Aduino Version:

https://github.com/wollewald/EEPROM_SPI_WE

ist wahrscheinlich der leichteste Weg, schnell zu Resultaten zu kommen. 
Dort steht, daß der Autor auch den LC04 getestet hatte. Mir kommt es 
vor, daß dies exakt ist, nachdem Du suchst, vorausgesetzt, Arduino Dich 
nicht zwingt, Dir die Nase zuzuhalten;-)

Gerhard

: Bearbeitet durch User
von Dieter S. (ds1)


Lesenswert?

Andreas B. schrieb:
> Gerade mal getestet:
> Lesen: Es fehlen die ersten beiden Bytes
> Schreiben: Absoluter Müll.
>

So wie es aussieht geht das Tool von drei Addressbytes bei den SPI 
Kommandos aus. Der 25LC040 (512 Bytes) hat nur ein Addressbyte und das 
MSB der 9-Bit Adresse ist ins READ/WRITE Kommando gepackt.

Das könnte man vermutlich bei Bedarf relativ einfach anpassen.

Nachtrag: eventuell ist das ja besser, das Tool verweist darauf:

https://github.com/setarcos/ch341prog

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Gerhard O. schrieb:
> in 2005 machte ich ein AVR Projekt (ATMEGA644) mit einem 25LC640 drin.
Es geht um das Schreiben am PC, nicht mit dem uC. Das habe ich schon 
(LPC824).

Dieter S. schrieb:
> Das könnte man vermutlich bei Bedarf relativ einfach anpassen.

Ja, das dachte ich mir zuerst auch. Nur das Schreiben macht mir da mehr 
Sorgen. Wenn ich Zeit habe, muss ich mir das dann doch mal reinziehen, 
wenn es keine fertige Loesungen fuer kleine EEproms gibt.

Dieter S. schrieb:
> Nachtrag: eventuell ist das ja besser, das Tool verweist darauf:
>
> https://github.com/setarcos/ch341prog

Danke! Das schaue ich mir auch mal an.

: Bearbeitet durch User
von Dieter S. (ds1)


Lesenswert?

Andreas B. schrieb:
>
> Ja, das dachte ich mir zuerst auch. Nur das Schreiben macht mir da mehr
> Sorgen. Wenn ich Zeit habe, muss ich mir das dann doch mal reinziehen,
> wenn es keine fertige Loesungen fuer kleine EEproms gibt.

Auf den ersten Blick hat das Tool beim Schreiben nur das selbe Problem 
mit der Adresse wie beim Lesen, der Rest könnte soweit passen. Man kann 
mit einem Parameter die Größe der Page angeben, damit sollte man 
flexibel genug sein (wenn die Adresse stimmt).

Hier gibt es eine Sammlung von Software für den CH341A, allerdings ist 
für Linux nicht viel anderes dabei:

https://github.com/YTEC-info/CH341A-Softwares

von Andreas B. (bitverdreher)


Lesenswert?

Mal ein Feedback:
Ich habe die 24-bit Addressierung bei
https://github.com/ilyakurdyukov/ch341tool
quick and dirty rausgeworfen (für read und write) und dann funktioniert 
es prima.

Danke nochmal an Dieter S.

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.