Hi Leute, nach so langer Zeit muss ich mich auch mal wieder zu Wort melden. Bin gerade dabei ein altes Projekt aus Spaß an der Freude zu redesignen. :) Es geht dabei um einen USB-EEPROM-Programmer (24Cxx / 93Cxx). Der alte mit V-USB war mir einfach zu langsam bei großen 24C-EEPROMs. Mittlerweile hab ich das auf nem ATMEGA32u4. Das Projekt wird noch OpenSource. Der 24C-Part ist nun schon umgesetzt und jetzt ist der 93C-Teil dran. Dabei hat sich mir die Frage gestellt, wie man ein byte-orientiertes Hexfile in die EEProms schreiben soll. Genauer gefragt: Welche Byteorder herrscht bei 16Bit-Organization (Man kann ja leider nicht alle 93C-ICs byte-weise schreiben)? Da hab ich einfach mal pragmatisch ein 16Bit Wort in ein 93Cxx geschrieben und 2x 8Bit ausgelesen, um die Endianess zu bestimmen. Das hab ich, um auf Nummer sicher zu gehen für alle 93C-EEProms mit ORG-Pin, die ich hier hab gemacht und habe sowohl Big- als auch Little-Endian beobachten können. Da muss die Programmer-Software also einen Schalter für bekommen, was sehr unschön ist. Eine einheitliche Lösung hätte ich hier durchaus bevorzugt. Mir stellt sich nun die Frage, wie z.B. Hersteller von Programmiergeräten damit umgehen bzw. wie ihr damit umgegeht? Wie sind da eure Erfahrungen diesbezüglich? PS. Mir ist es durchaus bewusst, dass diese Teile uralt sind und es vernünftig betrachtet keinen wirklichen Sinn macht, den 93Cxx-Support auch nur ansatzweise in Betracht zu ziehen. ;) Grüße Oliver
Oliver J. schrieb: > Da muss die Programmer-Software also einen Schalter für bekommen, was > sehr unschön ist. Das ist nur bei komplett gelöschten EEPROMs nötig, sonst genügt ein Lesen mehrerer Bytes im 8- und im 16-Bit-Modus, um die Organisation zu erkennen. Bei einem leeren EEPROM genügt es, im Byte-Modus z.B. 01 02 zu schreiben und mit einem 16-Bit-Zugriff auszulesen. Ist natürlich ein Schreibzugriff mehr, und daher nicht ganz elegant, aber da die Dinger ein paar hunderttausend Schreibzyklen durchhalten, wohl auch kein Drama.
Rufus Τ. F. schrieb: > Das ist nur bei komplett gelöschten EEPROMs nötig, sonst genügt ein > Lesen mehrerer Bytes im 8- und im 16-Bit-Modus, um die Organisation zu > erkennen. > > Bei einem leeren EEPROM genügt es, im Byte-Modus z.B. 01 02 zu schreiben > und mit einem 16-Bit-Zugriff auszulesen. Ist natürlich ein > Schreibzugriff mehr, und daher nicht ganz elegant, aber da die Dinger > ein paar hunderttausend Schreibzyklen durchhalten, wohl auch kein Drama. danke für die schnelle Antwort. Die Idee ist grundsätzlich gut. Werd ich so mit einbauen. Leider deckt das aber nur die Fälle für EEProms mit ORG-Pin an. 93C06 zb. Habe auch einige 93C46 ohne ORG. Diese lassen sich nicht im 8-Bit Modus betreiben. Weiß zufällig jemand von welcher Byteorder im 16-Bit Modus im Normalfall beim Kommunizieren ausgegangen wird? Also ich meine die standardmäßige Abbildung von 2 Bytes eines Bytestroms auf die 16-Bit Worte für die EEPROMs. Die Frage die mich aktuell eigentlich quält ist: Wie stelle ich sicher, dass ein fremdes Hexfile/Binfile richtig geschrieben wird bzw. wie werden die Files beim Auslesen richtig erzeugt für andere Tools? Grüße Oliver
Oliver J. schrieb: > Diese lassen sich nicht im 8-Bit Modus betreiben. Dann musst Du dem Anwender die Möglichkeit lassen, selbst über die Byteorder zu entscheiden. Da kann es keinen "Standard" geben, denn so ein EEPROM kann sowohl von "little endian" als auch "big endian"-Systemen angesteuert werden, und von 8-Bit-Systemen, bei denen es rein willkürlich festgelegt wird.
Rufus Τ. F. schrieb: > Dann musst Du dem Anwender die Möglichkeit lassen, selbst über die > Byteorder zu entscheiden. Da kann es keinen "Standard" geben, denn so > ein EEPROM kann sowohl von "little endian" als auch "big > endian"-Systemen angesteuert werden, und von 8-Bit-Systemen, bei denen > es rein willkürlich festgelegt wird. Werde dann den 8-Bit und den 16-Bit Modus unterstützen. Bei 16-Bit muss die Endianess mit angegeben werden. Denke damit sollten alle Fälle zu erschlagen sein. "-o <ORG>" ORG: {8, 16L, 16B} Danke und Grüße Oliver
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.