1-wire Speicher lesen und beschreiben (DS2434)

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
plottermeier
Beiträge: 1444
Registriert: Fr 16. Aug 2013, 14:32

1-wire Speicher lesen und beschreiben (DS2434)

Beitrag von plottermeier »

Hallo,
hab hier eine leere sehr teure Spezialbatterie. Die Zellen lassen sich leicht und preiswert tauschen leider wird die Batterie dann vom Gerät weiterhin als leer erkannt...
Es ist ein DS2434 Batterieidentifikationschip verbaut. Ich denke, damit soll ein Nachbau dieser Batterie und auch der Zellentausch verhindert werden.
Ich vermute, das Gerät erkennt an der ROM-Seriennummer, dass es eine Originalbatterie ist und schreibt irgendwo einen Wert, wenn die Batterie leer ist.
Wenn ich jetzt eine volle Batterie auslese, und die Daten speichere müsste ich doch nachher den Chip "resetten können?
Ich hab mir jetzt das Datenblatt vom Chip angesehen. Da gibt es eine genaue Beschreibung vom Protokoll. Ist das irgendein Standard zu dem ich was fertiges finden kann oder muss ich das jetzt Stück für Stück nachbauen? (Arduino zum Beispiel...)

Danke Jens
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: 1-wire Speicher lesen und beschreiben (DS2434)

Beitrag von ch_ris »

Es gibt 1wire libs für arduino.
Aber... lässt sich so ein ID chip mehrfach beschreiben?
edit: ach so, ist kein ID chip.
plottermeier
Beiträge: 1444
Registriert: Fr 16. Aug 2013, 14:32

Re: 1-wire Speicher lesen und beschreiben (DS2434)

Beitrag von plottermeier »

Hi,
ja, danke auch grad gesehen. Nächstes mal erst googeln, dann posten. :-)
Ja, das ist die zweite Frage. Kennt wer den Chip? Ich denke mit der ROM-Seriennummer lässt sich ein Nachbau recht wirkungsvoll erschweren.
Der Rest scheint aber mehrfach beschreibbar zu sein, weshalb ich das Rücksetzen des originalen Chips nach Zellentausch für möglich halten würde.
Hab im Datenblatt auch keine Schreiblogik entdeckt, die nur ein Schreiben eines kleineren Wertes o.ä. erlauben würde (wie z.B. seinerzeit bei den Telefonkarten.)
Benutzeravatar
barclay66
Beiträge: 1066
Registriert: Di 13. Aug 2013, 04:12
Wohnort: im Speckgürtel Münchens

Re: 1-wire Speicher lesen und beschreiben (DS2434)

Beitrag von barclay66 »

Hi,

das 1-Wire Protokoll ist Dallas-Käfern eigentlich immer gleich implememtiert (hier gut erklärt: https://playground.arduino.cc/Learning/OneWire-DE).
Man müsste also die Library für 1-Wire für Arduino hernehmen und die jeweiligen Adressen der verschiedenen Speicherbereiche im DS2434 abklappern und auslesen. Wenn es mehrere Batterien in unterschiedlichen Ladungszuständen gibt, ließe sich durch Vergleich der Daten auch herausfinden, in welchem Speicherbereichen der Ladezustand sowie die Anzahl der Ladezyklen gespeichert sind und wie man die durch Überschreiben manipulieren kann. Auch interessant wären Datenbereiche, die bei allen Batterien gleich sind (womöglich Hersteller, Typennummer usw.).
Eine fertige Lib für den DS2434 habe ich allerdings noch nicht gefunden.
Beachte: Auch wenn Dallas spezifische Bereiche (NV-Ram bzw. Register) für bestimmte Daten vorgesehen hat, heißt das nicht, dass die bestimmungsgemäß verwendet werden...

Gruß
barclay66
plottermeier
Beiträge: 1444
Registriert: Fr 16. Aug 2013, 14:32

Re: 1-wire Speicher lesen und beschreiben (DS2434)

Beitrag von plottermeier »

Hallo,

ja das war wirklich schön erklärt. Auslesen hat schon einmal geklappt. Mal sehen, was passiert, wenn ich versuche, zu schreiben.
Ich hab eine Batterie in leer, in der ich die Zellen schon getauscht habe, eine in fast leer und eine fabrikneue.
Die leere wieder auf voll zu setzten könnte man ja leicht verhindern, indem man einen CRC oder eine Prüfsumme über einen Bereich des Speichers legt.
Die Inhalte der beiden noch nicht leeren werde ich mal abspeichern. Wenn ich die später, nachdem die Batterien leer waren und ich die Zellen getauscht habe, einfach wieder zurück schreibe sollte das ja eigentlich passen.
Ein anderer Plan wäre es, die Zellen der fast leeren Batterie schon jetzt zu tauschen...
Benutzeravatar
barclay66
Beiträge: 1066
Registriert: Di 13. Aug 2013, 04:12
Wohnort: im Speckgürtel Münchens

Re: 1-wire Speicher lesen und beschreiben (DS2434)

Beitrag von barclay66 »

Hi,

das sollte so klappen wenn Du stumpf alle NVM-Speicher und Register, die beschreibbar sind somit wieder auf die Werte zurücksetzt, die die Batterie im vollen Zustand hatte. Falls Du Lust und Zeit hast, könntest Du natürlich auch an Hand der vorhandenen Exemplare versuchen, die innere Logik (IDs, Ladezustand, Prüfsummen usw.) zu entschlüsseln. Das würde es Dir erlauben, gezielt einzelne Parameter einzustellen. Auf jeden Fall viel Erfolg!

Gruß
barclay66

Edith sagt: Bitte beachte, dass das direkte Schreiben in NVM-Bereiche wohl nicht möglich ist (zumindest sieht das im DaBla für mich so aus). Man muss wohl erst in das jeweilige RAM schreiben und den Inhalt dann per Befehl ins NVM schieben...
Antworten