hardware:channels:meters:power:kd_302
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
hardware:channels:meters:power:kd_302 [2011/09/12 03:35] – [controller: EM78P468N (LCD Type)] stv0g | hardware:channels:meters:power:kd_302 [2018/03/25 11:06] (aktuell) – alte Version wiederhergestellt (2014/02/26 20:23) jau | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Energiekostenmessgerät KD 302 ====== | ====== Energiekostenmessgerät KD 302 ====== | ||
+ | |||
+ | <note info> | ||
+ | das KD302 ist inzwischen nichtmehr lieferbar. der grundaufbau ist jedoch bei vielen aehnlichen geraeten der gleiche, die auch auf chips von cirrus logic basieren. | ||
+ | </ | ||
===== Features ===== | ===== Features ===== | ||
- | * preisgünstig (z.B. bei [[http:// | + | * preisgünstig (z.B. bei [[http:// |
* hohe Messgenauigkeit | * hohe Messgenauigkeit | ||
* Reverse-Engineering freundlich | * Reverse-Engineering freundlich | ||
- | * bekannt aus dem Test in [[http:// | + | * bekannt aus dem Test in [[http:// |
- | * [[http:// | + | |
===== Motivation ===== | ===== Motivation ===== | ||
Zeile 15: | Zeile 18: | ||
Bei einem Eigenbau solch eines Gerätes währe idr. schon alleine das Gehäse (oder ein Mess-IC, so man eins verwendet) teurer, als das ganze KD302! | Bei einem Eigenbau solch eines Gerätes währe idr. schon alleine das Gehäse (oder ein Mess-IC, so man eins verwendet) teurer, als das ganze KD302! | ||
- | Der verwendete CS5460A beinhaltet A/D Konverter für Strom/ | + | Der verwendete CS5460A beinhaltet A/D Konverter für Strom/ |
- | diese Daten lassen sich auslesen, so dass man die Strom/ | + | |
+ | Diese Daten lassen sich auslesen, so dass man die Strom/ | ||
===== Umbau ===== | ===== Umbau ===== | ||
Zeile 75: | Zeile 79: | ||
* inkl. Schutz gegen Auslesen des Programmcodes (wer Lust hat kann ausprobieren ob er benutzt wird ;)) | * inkl. Schutz gegen Auslesen des Programmcodes (wer Lust hat kann ausprobieren ob er benutzt wird ;)) | ||
- | ==== EEPROM: 24c02 ==== | + | ==== EEPROM ==== |
{{: | {{: | ||
{{: | {{: | ||
- | * Standard I< | + | * 24c02: |
* [[http:// | * [[http:// | ||
* hier dürften die Kalibrationsdaten für den CS5460A abgelegt sein | * hier dürften die Kalibrationsdaten für den CS5460A abgelegt sein | ||
Zeile 170: | Zeile 174: | ||
</ | </ | ||
- | ==== "CS5460A : Single-Phase, | + | ==== Messcontroller ==== |
- | * http:// | + | * CS5460A : Single-Phase, |
- | * http:// | + | * Datenblatt: |
- | * anbindung ueber < | + | * Anbindung über serielles |
- | * kalibrierung per software | + | * kalibrierung per Software |
- | {{: | + | {{: |
- | {{: | + | {{: |
- | === messungen | + | === Messungen |
- | <note warning>bei messungen | + | <note warning>Bei Messungen |
- | < | + | < |
- | messungen | + | |
- | soweit: | + | Im Betrieb ca. einmal pro Sekunde ein Signal auf INT, und (daraufhin? |
- | im betrieb ca einmal pro sekunde ein signal | + | {{: |
- | (vermutlich signalisiert der CS5460A die verfuegbarkeit neuer daten, die der controller dann abholt.) | + | {{: |
+ | {{: | ||
- | |{{:kd302_spi-clock.jpg?512|messung SCLK signal... (nachahmung dieses aufbaus nicht empfohlen!}}|{{:kd320_sdo_safe.jpg? | + | Folgende schöne Ansicht ergibt sich im [[http:// |
- | |bild: messung SCLK signal... (nachahmung dieses aufbaus nicht empfohlen!)|bild: | + | |
- | < | + | {{ : |
- | {{: | + | ^Controller -> CS5460A^CS5460A -> Controller^Beschreibung^ |
+ | | 0x5E / 0b01011110 | - | Write Register 15 (SREG) (Datenblatt 4.1.7) | | ||
+ | | 0x80 / 0b10000000 ,0x00,0x00 | - | oberstes Bit im SREG = DRDY, Flag für Daten verfügbar, wird durch Schreiben einer 1 gelöscht.\\ So dass das Interruptsignal zurück gesetzt wird (siehe Kanal 4, Datenblatt 3.4 , 5.11) | | ||
+ | | 0x16 / 0b00010110 | - | Read Register 11 (RMS current) | | ||
+ | | - | 0x00, | ||
+ | | 0x18 / 0b00011000 | - | Read Register 12 (RMV voltage) | ||
+ | | - | 0x01, | ||
+ | | 0x14 / 0b00010100 | - | Read Register 10 (E (energy))| | ||
+ | | - | 0xFF, | ||
+ | < | ||
- | folgende schoene ansicht ergibt sich im [[http:// | + | Irgendwann |
- | + | ||
- | {{: | + | |
- | + | ||
- | bei der auswertung ergeben sich hier folgende fehler: miso/mosi vertauscht, bit-reihenfolge rueckwaerts, | + | |
- | + | ||
- | fixed: | + | |
- | + | ||
- | {{: | + | |
- | + | ||
- | | controller -> CS5460A | CS5460A -> controller | was | | + | |
- | | 0x5E / 0b01011110 | + | |
- | | 0x80 / 0b10000000 , | + | |
- | | 0x16 / 0b00010110 | - | read register 11 (RMS current) | | + | |
- | | - | 0x00, | + | |
- | | 0x18 / 0b00011000 | - | read register 12 (RMV voltage) | + | |
- | | - | 0x01, | + | |
- | | 0x14 / 0b00010100 | - | read register 10 (E (energy))| | + | |
- | | - | 0xFF, | + | |
- | + | ||
- | irgendwann | + | |
< | < | ||
$ serialclient -r 115200 / | $ serialclient -r 115200 / | ||
Zeile 268: | Zeile 260: | ||
[0x00(0x14)0xFF(0xFF)0xFF(0xFF)0xFF(0xFF)] | [0x00(0x14)0xFF(0xFF)0xFF(0xFF)0xFF(0xFF)] | ||
</ | </ | ||
- | (das sind die gleichen anfragen wie oben) | ||
- | und dann nach einem reset des controllers, endlich die gesuchte | + | Das sind die gleichen anfragen wie oben. Und dann nach einem Reset des Controllers, endlich die gesuchte |
< | < | ||
[0x00(0x46)0x00(0x15)0x00(0x8C)0x00(0x71)0x00(0x42)0x00(0xFF)0x00(0xB5)0x00(0x62)] | [0x00(0x46)0x00(0x15)0x00(0x8C)0x00(0x71)0x00(0x42)0x00(0xFF)0x00(0xB5)0x00(0x62)] | ||
Zeile 281: | Zeile 273: | ||
(...) | (...) | ||
</ | </ | ||
- | nach datenblatt: | + | |
+ | Nach Datenblatt: | ||
< | < | ||
[ | [ | ||
Zeile 334: | Zeile 328: | ||
0xE8 0b11101000 start conversions! continuous mode | 0xE8 0b11101000 start conversions! continuous mode | ||
</ | </ | ||
- | |||
- | |||
==== Impulsausgang ==== | ==== Impulsausgang ==== | ||
- | EOUT/EDIR ist ein impulsausgang | + | EOUT/EDIR ist ein Impulsausgang |
- | sofern er vom controller | + | |
+ | Zitat Datenblatt: | ||
> 3.1 Pulse-Rate Output | > 3.1 Pulse-Rate Output | ||
> As an alternative to reading the real energy through the serial port, the EOUT and EDIR pins provide a simple interface with which signed energy can be accumulated. Each EOUT pulse represents a predetermined quantity of energy. The quantity of energy represented in one pulse can be varied by adjusting the value in the Pulse-Rate Register. | > As an alternative to reading the real energy through the serial port, the EOUT and EDIR pins provide a simple interface with which signed energy can be accumulated. Each EOUT pulse represents a predetermined quantity of energy. The quantity of energy represented in one pulse can be varied by adjusting the value in the Pulse-Rate Register. | ||
- | nachdem | + | Nachdem |
- | + | ||
- | das " | + | |
- | + | ||
- | (update: an der oben analysierten initialisierungssequenz ist abzulesen: das pulse-rate register wird nicht beschrieben, | + | |
- | die impulsrate liegt ueber 1 impuls pro **wattsekunde**, | + | Das " |
- | {{:hardware:channels: | + | (**Update:** an der oben analysierten Initialisierungssequenz ist abzulesen: das pulse-rate register wird nicht beschrieben. Dazu wird netterweise noch die Pulsweite auf extra lang eingesstellt, |
- | somit ist der Impulsausgang ohne aenderungen an der programmierung definitv nicht nutzbar. | + | Die Impulsrate liegt über 1 Impuls pro **Wattsekunde**, |
- | andererseits bedeutet dies auch, dass er vom vorhandenen controller wohl nicht benutzt wird (obwohl er angeschlossen ist!), und somit fuer eigene zwecke umprogrammiert werden kann, soweit moeglich. | + | {{: |
- | __moeglicherweise__ ist es moeglich ueber aenderungen der daten im eeprom den wert im pulse-rate register zu aendern. | + | {{: |
- | (update: die eeprom daten sehen nicht danach aus, als ob man irgendwo einen wert fuer das pulse-rate register eintragen koennte.) | + | {{:hardware: |
+ | {{: | ||
- | ansonsten | + | Somit ist der Impulsausgang ohne Änderungen an der Programmierung definitv nicht nutzbar. Andererseits bedeutet dies auch, dass er vom vorhandenen Controller wohl nicht benutzt |
+ | __Möglicherweise__ ist es möglich über Änderungen der Daten im EEPROM | ||
+ | (**Update: | ||
- | alternativ koennte | + | Ansonsten wird man um den Einbau eines eigenen Controllers nicht herum kommen. Alternativ könnte man den Standalone-Betrieb |
==== Netzteil ==== | ==== Netzteil ==== | ||
- | * nicht galvanisch getrenntes | + | * nicht galvanisch getrenntes |
- | todo: ausmessen, | + | < |
==== Anschlüsse ==== | ==== Anschlüsse ==== |
hardware/channels/meters/power/kd_302.1315791342.txt.gz · Zuletzt geändert: 2011/09/12 03:35 von stv0g