Mini-USV mit 1-Wire Sensorik

Begonnen von Prof. Dr. Peter Henning, 11 Juni 2019, 18:21:01

Vorheriges Thema - Nächstes Thema

PeMue

So, ich habe nochmal nachgemessen, siehe hier. Wenn man - wie üblich - die Bananenbuchsen in die Prüfspitzen steckt, misst man natürlich den Widerstand der Prüfspitzen mit. Fazit: ich habe auch 0,015 Ohm Widerstände (Voraussetzung: Spannungsmessung direkt am Widerstand).

Bezüglich Auslegung: wenn der max. Strom 3 A ist und der Sense Eingang des Batteriesensors 0,25 V kann, könnte man doch auf 0,05 (bzw. max. 0,08 Ohm) erhöhen, um eine saubere Aussteuerung zu erreichen, oder?

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Prof. Dr. Peter Henning

#136
Ich bin eben gerade einer sehr komischen Sache auf der Spur. Wenn man sich das Datenblatt des DS2438 anschaut, ist in der Memory Page 1 sowohl das Register für die Spannung, als auch für den Strom untergebracht. Letzteres in den Bytes 5 und 6. Aus irgendeinem Grund lese ich in den hier eingebauten DS2438 aus Byte 6 immer nur die Werte 0 oder 255 - alle benachbarten Bytes haben wechselnde Werte. Das verfälscht also das höherwertige Byte der Strommessung - sieht so aus, als ob das gesamte Byte mit dem Vorzeichen überschrieben würde.

Edit: Denkfehler, ist natürlich vollkommen korrekt - bei dem Wetter nur Matsch in der Birne.

LG

pah

Papa Romeo

...ich habe das Teil selber nicht und weiß daher jetzt nicht genau wo die Akkus bzw. die Zu- und Ableitungen angeschlossen werden, aber nochmal auf pah´s "Gnd-Frage" zu kommen.
Laut Schaltplan liegen Pin 1 und Pin 2 vom DS auf Gnd. Auf der Platine erfolgt die Verbindung dieser 2 Pins über eine Schleife von auch etwas dünneren Leiterbahnen wo eventuell Spannungsabfälle erfolgen könnten.
Vielleicht bringt´s was,  wenn man die beiden Pin´s direkt am IC verbindet.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Prof. Dr. Peter Henning

#138
Ich habe hier mal eine Version beta2 des Moduls angehängt. Bitte mal testen - interessant für mich zu wissen, welche Werte msb und "naked data[6]" im Log annehmen.

LG

pah

UweH

Entladung mit ca. 800 mA:
2019.08.27 19:36:34 1: ====> RAW SENSE lsb=0 msb=0 sign=0 (naked data[6] 0)
2019.08.27 19:37:35 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:38:34 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:39:34 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:40:35 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:41:35 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:42:34 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:43:35 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:44:35 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:45:34 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:46:35 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:47:34 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:48:35 1: ====> RAW SENSE lsb=180 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:49:35 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:50:34 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:51:35 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:52:35 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:53:34 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:54:35 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:55:35 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:56:34 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:57:35 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:58:35 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)
2019.08.27 19:59:34 1: ====> RAW SENSE lsb=179 msb=3 sign=128 (naked data[6] 255)


Der Akku ist entsprechend dem DS2438-Datenblatt angeschlossen, die Vsense-Leitungen sind niederohmig an den DS2438 herangeführt.

Gruß
Uwe

UweH

Und so sieht der Übergang von Entladen zu Laden aus:

2019.08.27 20:37:35 1: ====> RAW SENSE lsb=176 msb=3 sign=128 (naked data[6] 255)
2019.08.27 20:38:34 1: ====> RAW SENSE lsb=175 msb=3 sign=128 (naked data[6] 255)
2019.08.27 20:39:35 1: ====> RAW SENSE lsb=176 msb=3 sign=128 (naked data[6] 255)
2019.08.27 20:40:34 1: ====> RAW SENSE lsb=175 msb=3 sign=128 (naked data[6] 255)
2019.08.27 20:41:34 1: ====> RAW SENSE lsb=175 msb=3 sign=128 (naked data[6] 255)
2019.08.27 20:42:35 1: ====> RAW SENSE lsb=175 msb=3 sign=128 (naked data[6] 255)
2019.08.27 20:43:34 1: ====> RAW SENSE lsb=175 msb=3 sign=128 (naked data[6] 255)
2019.08.27 20:44:35 1: ====> RAW SENSE lsb=175 msb=3 sign=128 (naked data[6] 255)
2019.08.27 20:45:34 1: ====> RAW SENSE lsb=96 msb=0 sign=0 (naked data[6] 0)
2019.08.27 20:46:35 1: ====> RAW SENSE lsb=96 msb=0 sign=0 (naked data[6] 0)
2019.08.27 20:47:35 1: ====> RAW SENSE lsb=96 msb=0 sign=0 (naked data[6] 0)
2019.08.27 20:48:34 1: ====> RAW SENSE lsb=96 msb=0 sign=0 (naked data[6] 0)

Prof. Dr. Peter Henning

#141
Hmmm. Da lichtet sich der Nebel etwas, danke Dir.

Könnte es sein, dass der Entladestrom bei ca. 1,22 A, und der Ladestrom bei 1,5 A liegen ? Dann hätte ich den Fehler gefunden - eigentlich trivial, und nur bei Entladung auftretend. Doofer Fehler bei der Zweierkomplementbildung. Anbei das korrigierte Modul.

Das mit den Widerständen ist mir zwar immer noch ein Rätsel, aber den Entlötvorgang haben die leider nicht überstanden. Und natürlich nehme ich meine flapsige Bemerkung zurück, wenn der Händler das alles überprüft hat, muss auch hier der Fehler bei mir liegen.

Noch ein Verbesserungsvorschlag für die Platine (Version 2): Es sollte möglich sein, darauf genau hinter dem entsprechenden Loch im Gehäuse einen Mikroschalter anzubringen, den man von außen bedienen kann zwecks Kurzschluss des Widerstandes => Kalibrierung.


LG

pah

@PeMue:

Nicht sicher - es kann sein, dass der Strom am Anfang etwas höher ist als 3A - dann würde man die Integration der Ströme massiv stören, damit also keine verlässliche Information über den Batteriezustand bekommen. Die 0,015 sind die Empfehlung aus dem Datenblatt.

UweH

Zitat von: Prof. Dr. Peter Henning am 27 August 2019, 23:03:50
Hmmm. Da lichtet sich der Nebel etwas, danke Dir.
Könnte es sein, dass der Entladestrom bei ca. 1,22 A, und der Ladestrom bei 1,5 A liegen ?
Ja, kann hinkommen, hatte es in dem Moment nicht gemessen.

Zitat von: Prof. Dr. Peter Henning am 27 August 2019, 23:03:50
Noch ein Verbesserungsvorschlag für die Platine (Version 2): Es sollte möglich sein, darauf genau hinter dem entsprechenden Loch im Gehäuse einen Mikroschalter anzubringen, den man von außen bedienen kann zwecks Kurzschluss des Widerstandes => Kalibrierung.
Ist vermerkt.

Und nun das Beste zum Schluss: Jetzt sieht Vsense schon mal ganz anders aus  :D

Danke und Gruß
Uwe
(heute Nacht kann ich bestimmt besser schlafen...)

Prof. Dr. Peter Henning

#143
Und ich erst - schau mal auf die Zeit, zu der ich gestern den letzten Post gemacht habe.

Anbei eine schon ganz gute Version des Moduls, inklusive CommandRef mit Beschreibung der neuen Kommandos und des Kalibrierungsvorgangs.

Mit den Definitionen
define USV OWMULTI <ROM-ID> 30
attr USV VName battery voltage|Vbatt
attr USV VUnit V
attr USV WName battery current|Ibatt
attr USV WUnit mA
attr USV WFunction 1000*W/0.015
attr USV XName battery capacity|Cbatt
attr USV XUnit mAh
attr USV_M XFunction 8800-1000*(255/2048.-X)/0.015


bekommt man auch die richtigen Readings für verbleibende Kapazität in mAh und den Strom in mA. Achtung: muss natürlich vorher kalibriert werden...

LG

pah

UweH

Zitat von: Prof. Dr. Peter Henning am 28 August 2019, 17:12:58
Und ich erst - schau mal auf die Zeit, zu der ich gestern den letzten Post gemacht habe.
Hab ich gesehen...  ???

Zitat von: Prof. Dr. Peter Henning am 28 August 2019, 17:12:58
Anbei eine schon ganz gute Version des Moduls, inklusive CommandRef mit Beschreibung der neuen Kommandos und des Kalibrierungsvorgangs.

Sieht sehr gut aus, läuft jetzt seit Deinem Post und ich werde erst mal eine Flasche Wein aufmachen...  8)

Gruß
Uwe

Prof. Dr. Peter Henning

Noch etwas zur Wahl des Widerstands: Der wird weniger durch den Strom bestimmt, als durch die Kapazität des Akkus.

Der Wert 255/(2048*Rsens) sollte etwas kleiner sein als die Akkukapazität in Ah. Mit einem Widerstand 0,015 Ohm ergibt sich gerade 8,3.

Nur so kann man eine möglichst hoch aufgelöste Messung der Akkukapazität erreichen.

LG

pah

PeMue

#146
Zitat von: Prof. Dr. Peter Henning am 27 August 2019, 23:03:50
Noch ein Verbesserungsvorschlag für die Platine (Version 2): Es sollte möglich sein, darauf genau hinter dem entsprechenden Loch im Gehäuse einen Mikroschalter anzubringen, den man von außen bedienen kann zwecks Kurzschluss des Widerstandes => Kalibrierung.
Hm, ohne Dir nahe treten zu wollen:
Ich vermute mal, dass der Übergangswiderstand eines Mikroschalters nicht <<0,015 Ohm liegen wird (idealerweise mehr als Faktor 10 unter 0,015 Ohm, besser Faktor 100). Daher ist m.E. die Kalibrierung nur mit einem satten Lötkurzschluss auf Uwe's parallel vorgesehenen Pads möglich. Danach wieder mit der Entlötpumpe runtersaugen.
Aber: probieren geht über studieren ...

Ich habe gestern noch mal eine komplette Entladung geloggt (Festwiderstand an USB mit 755 mA), m.E. sind die vorgeschlagenen 6,7 V zu knapp, ich würde hier sicherheitshalber auf 6,8 V hochgehen. Aber mit zwei Hefeweizen intus werde ich heute nix mehr auswerten, das schreit nur nach Fehlern  :D.

Gruß Peter

Edit:
Hab's doch noch geschwind eingelesen, siehe Bild. Am Anfang kurz Netzspannung ausgeschaltet, wieder eingeschaltet und dann dauerhaft ausgeschaltet. Um ca. 1 Uhr hat der Akku schlapp gemacht, um kurz vor zwei habe ich das Netz (und die USV) wieder eingeschaltet. Dann kommt der Ladevorgang.
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Prof. Dr. Peter Henning

#147
OK, neueste Version funktioniert auch mit OWServer

Dabei habe ich lustigerweise noch herausgefunden, dass bei negativen Spannungen über dem VSense-Eingang die Spannungsberechnung von OWFS um ein niedrigwertiges Bit falsch ist. Nicht das erste Mal, dass ich so einen Fehler in OWFS finde...

Und die Werte für den integrierten Strom, sowie den Zeit-Ticker findet man bei OWFS nur als binäre Werte in den Memory pages.

LG

pah

Prof. Dr. Peter Henning

Hier mal ein Bild von einem kompletten Entlade-Lade-Zyklus.

Noch unbefriedigend: Das Integral des Stroms führt nicht wieder auf den vollen Kapazitätswert (erkennbar: Vor dem Beginn des Entladevorgangs ist die schwarze Linie unterhalb der Nennkapazität. Durch den Befehl set ... startdischarge wird das behoben. Dann Entladung und Ladung - und wieder kommt die schwarze Linie nicht ganz zurück auf den Nennwert). Mal sehen, ob man das nicht durch eine andere Kalibrierung beheben kann.

Ab etwa 12:00 habe ich die Daten nicht mit OWX/OWMULTI abgefragt, sondern mit OWServer/OWMULTI. Erkennt man daran, dass Treppchen zu sehen sind - weil keine Kontrolle darüber besteht, wie häufig OWFS den DS2438 abfragt.

LG

pah

PeMue

#149
Hallo pah,

welches 21_OWMULTI.pm ist denn gerade aktuell: das oben gepostete, oder das, was ich gerade eben per Update bekommen habe (ohne XName, etc.)?

Danke + Gruß

Peter

Edit:
Irgend etwas passt noch nicht mit der Hardware/Software:
USV an Netzspannung, 750 mA Last an USB
2019-09-01 16:42:29 OWMULTI OWX_26_C7C7CF000000 Vbatt:  8.31 V (T:  23.8 °C Ibatt:  0.44 mA)
2019-09-01 16:42:59 OWMULTI OWX_26_C7C7CF000000 battery voltage: 8.31
2019-09-01 16:42:59 OWMULTI OWX_26_C7C7CF000000 battery current: 0.34
2019-09-01 16:42:59 OWMULTI OWX_26_C7C7CF000000 VDD: 4.87
2019-09-01 16:42:59 OWMULTI OWX_26_C7C7CF000000 temperature: 23.8
2019-09-01 16:42:59 OWMULTI OWX_26_C7C7CF000000 Vbatt:  8.31 V (T:  23.8 °C Ibatt:  0.34 mA)
2019-09-01 16:43:29 OWMULTI OWX_26_C7C7CF000000 battery voltage: 8.32
2019-09-01 16:43:29 OWMULTI OWX_26_C7C7CF000000 battery current: 0.33
2019-09-01 16:43:29 OWMULTI OWX_26_C7C7CF000000 VDD: 4.87
2019-09-01 16:43:29 OWMULTI OWX_26_C7C7CF000000 temperature: 23.8
2019-09-01 16:43:29 OWMULTI OWX_26_C7C7CF000000 Vbatt:  8.32 V (T:  23.8 °C Ibatt:  0.33 mA)

USV von Netzspannung getrennt, 750 mA Last an USB
2019-09-01 16:44:00 OWMULTI OWX_26_C7C7CF000000 battery voltage: 8.22
2019-09-01 16:44:00 OWMULTI OWX_26_C7C7CF000000 battery current: 16.06
2019-09-01 16:44:00 OWMULTI OWX_26_C7C7CF000000 VDD: 4.87
2019-09-01 16:44:00 OWMULTI OWX_26_C7C7CF000000 temperature: 23.8
2019-09-01 16:44:00 OWMULTI OWX_26_C7C7CF000000 Vbatt:  8.22 V (T:  23.8 °C Ibatt: 16.06 mA)
2019-09-01 16:44:29 OWMULTI OWX_26_C7C7CF000000 battery voltage: 8.21
2019-09-01 16:44:29 OWMULTI OWX_26_C7C7CF000000 battery current: 16.06
2019-09-01 16:44:29 OWMULTI OWX_26_C7C7CF000000 VDD: 4.87
2019-09-01 16:44:29 OWMULTI OWX_26_C7C7CF000000 temperature: 23.8
2019-09-01 16:44:29 OWMULTI OWX_26_C7C7CF000000 Vbatt:  8.21 V (T:  23.8 °C Ibatt: 16.06 mA)
2019-09-01 16:44:59 OWMULTI OWX_26_C7C7CF000000 battery voltage: 8.26
2019-09-01 16:44:59 OWMULTI OWX_26_C7C7CF000000 battery current: 16.57
2019-09-01 16:44:59 OWMULTI OWX_26_C7C7CF000000 VDD: 4.87
2019-09-01 16:44:59 OWMULTI OWX_26_C7C7CF000000 temperature: 23.9

USV von Netzspannung getrennt, 750 mA Last an USB entfernt
2019-09-01 16:44:59 OWMULTI OWX_26_C7C7CF000000 Vbatt:  8.26 V (T:  23.9 °C Ibatt: 16.57 mA)
2019-09-01 16:45:29 OWMULTI OWX_26_C7C7CF000000 battery voltage: 8.26
2019-09-01 16:45:29 OWMULTI OWX_26_C7C7CF000000 battery current: 16.57
2019-09-01 16:45:29 OWMULTI OWX_26_C7C7CF000000 VDD: 4.87
2019-09-01 16:45:29 OWMULTI OWX_26_C7C7CF000000 temperature: 23.9
2019-09-01 16:45:29 OWMULTI OWX_26_C7C7CF000000 Vbatt:  8.26 V (T:  23.9 °C Ibatt: 16.57 mA)

Könntest Du bitte auch die Vsense Spannung als Reading ausgeben? Danke.
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser