Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:channels:meters:power:kd_302

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
hardware:channels:meters:power:kd_302 [2011/09/12 03:53] – [Motivation] stv0ghardware: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.
 +</note>
 ===== Features ===== ===== Features =====
-  * preisgünstig (z.B. bei [[http://www.reichelt.de/?;ARTICLE=88135|Reichelt]]+  * preisgünstig (z.B. bei [[http://www.reichelt.de/?;ARTICLE=88135|Reichelt]] für ca. 10 €)
   * hohe Messgenauigkeit   * hohe Messgenauigkeit
   * Reverse-Engineering freundlich   * Reverse-Engineering freundlich
-  * bekannt aus dem Test in [[http://www.heise.de/artikel-archiv/ct/2008/24/226_kiosk|c't 2008/24]] (der c't Artikel ist bei Reichelt kostenlos zu haben!) +  * bekannt aus dem Test in [[http://www.heise.de/artikel-archiv/ct/2008/24/226_kiosk|c't 2008/24]] [[http://www.heise.de/ct/artikel/Pulsmesser-291796.html|leseprobe]] (der c't Artikel ist bei Reichelt [[http://www.reichelt.de/?ACTION=7;INDEX=0;FILENAME=D100%252FCT2408226231.pdf|kostenlos zu haben]]!)
-  * [[http://www.heise.de/newsticker/meldung/8-Euro-Stromkosten-Messgeraet-mit-Messfehler-214515.html|Artikel von Heise]]+
  
 ===== Motivation ===== ===== Motivation =====
Zeile 172: Zeile 175:
  
 ==== Messcontroller ==== ==== Messcontroller ====
-  * CS5460A : Single-Phase, Bi-Directional Power/Energy IC +  * CS5460A : Single-Phase, Bi-Directional Power/Energy IChttp://www.cirrus.com/en/products/cs5460a.html 
-  * Datenblätter: [[http://www.cirrus.com/en/products/cs5460a.html|1]], [[http://www.cirrus.com/en/pubs/proDatasheet/CS5460A_F5.pdf|2]]+  * Datenblatt: http://www.cirrus.com/en/pubs/proDatasheet/CS5460A_F5.pdf
   * Anbindung über serielles Interface (lt. Datenblatt SPI kompatibel)   * Anbindung über serielles Interface (lt. Datenblatt SPI kompatibel)
   * kalibrierung per Software   * kalibrierung per Software
Zeile 191: Zeile 194:
  
 Folgende schöne Ansicht ergibt sich im [[http://dangerousprototypes.com/docs/Logic_analyzer_mode|Logic Analyzer Modus]], getriggert auf das INT Signal auf Kanal 4: Folgende schöne Ansicht ergibt sich im [[http://dangerousprototypes.com/docs/Logic_analyzer_mode|Logic Analyzer Modus]], getriggert auf das INT Signal auf Kanal 4:
- 
-{{ :hardware:channels:meters:power:kd320:kd302_spi_cycle.png?900 }} 
- 
-Bei der Auswertung ergeben sich hier folgende Fehler: MISO/MOSI vertauscht, Bit-Reihenfolge rückwärts, außerdem Timingangaben falsch weil eine hohe vom BusPirate nicht unterstützte Samplerate eingestellt war. 
- 
-Hier nun die **korrigierte** Variante der Messung: 
  
 {{ :hardware:channels:meters:power:kd320:kd302_spi_cycle_v2.png?900 }} {{ :hardware:channels:meters:power:kd320:kd302_spi_cycle_v2.png?900 }}
  
-Controller -> CS5460A CS5460A -> Controller Beschreibung |+^Controller -> CS5460A^CS5460A -> Controller^Beschreibung^
 | 0x5E / 0b01011110 | - | Write Register 15 (SREG) (Datenblatt 4.1.7) | | 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, damit wird das Interruptsignal zurück gesetzt (siehe Kanal 4) (Datenblatt 3.4 , 5.11) |+| 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 4Datenblatt 3.4 , 5.11) |
 | 0x16 / 0b00010110 | - | Read Register 11 (RMS current) | | 0x16 / 0b00010110 | - | Read Register 11 (RMS current) |
 | - | 0x00,0x04,0x74 | 24-bit signed-int Wert (Datenblatt 4.6) | | - | 0x00,0x04,0x74 | 24-bit signed-int Wert (Datenblatt 4.6) |
Zeile 264: Zeile 261:
 </code> </code>
  
-Das sind die gleichen anfragen wie oben. Und dann nach einem Reset des Controllers, endlich die gesuchte Initialisierungssequenz (Hier aus meinem Gerät Nr. 1, der dazugehörige EEPROM Inhalt ist oben):+Das sind die gleichen anfragen wie oben. Und dann nach einem Reset des Controllers, endlich die gesuchte Initialisierungssequenz (Hier aus meinem Gerät Nr. 1, dazugehöriger EEPROM Inhalt siehe oben):
  
 <code> <code>
Zeile 276: Zeile 273:
 (...) (...)
 </code> </code>
 +
 Nach Datenblatt: Nach Datenblatt:
 +
 <code> <code>
 [ [
Zeile 330: Zeile 329:
 </code> </code>
 ==== Impulsausgang ==== ==== Impulsausgang ====
-EOUT/EDIR ist ein impulsausgang ("S0-Ausgang"), im einfachsten fall <html><del>kann</del></html> koennte man den benutzen, +EOUT/EDIR ist ein Impulsausgang ("S0-Ausgang"). Im einfachsten Fall <del>kann</del> könnte man ihn benutzen, sofern er vom Controller sinnvoll initialisiert <del>wird</del> werden würde:
-sofern er vom controller sinnvoll konfiguriert <html><del>wird</del></html> wuerde:+
  
 +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 ich bei ersten messungen keine impulse auf EOUT gesehen hatte, nahm ich an meine last war zu klein, und versuchte es mit mehreren kW last, was auch nichts brachte. dann stellte ich fest, das meine last _zu_gross_ war... +Nachdem ich bei ersten Messungen keine Impulse auf EOUT gesehen hatte, nahm ich an, dass meine Last zu klein war, und versuchte es mit mehreren kW Last. Leider ohne ErfolgErst dann stellte ich fest, das meine Last **zu groß** war!
- +
-das "pulse-rate register" wird vom controller definitiv nicht sinnvoll programmiert, vermutlich steht es auf null o.ae.. +
- +
-(update: an der oben analysierten initialisierungssequenz ist abzulesen: das pulse-rate register wird nicht beschrieben, und dazu wird netterweise noch die pulsweite auf extra lang eingesstellt, was das problem noch begunstigt...)+
  
-die impulsrate liegt ueber 1 impuls pro **wattsekunde**, schon ab ca 2 Watt laufen die impulse aufgrund der impulslaenge ineinander, und es entsteht ein dauerpegel!+Das "pulse-rate register" wird vom Controller definitiv nicht sinnvoll programmiert. Vermutlich steht es auf Null o.ä.
  
-{{:hardware:channels:meters:power:kd320:kd320_eout_0w0.jpg?384}}{{:hardware:channels:meters:power:kd320:kd320_eout_0w5.jpg?384}}{{:hardware:channels:meters:power:kd320:kd320_eout_1w3.jpg?384}}{{:hardware:channels:meters:power:kd320:kd320_eout_1w8.jpg?384}}+(**Update:** an der oben analysierten Initialisierungssequenz ist abzulesendas pulse-rate register wird nicht beschriebenDazu wird netterweise noch die Pulsweite auf extra lang eingesstellt, was das Problem noch begünstigt.)
  
-somit ist der Impulsausgang ohne aenderungen an der programmierung definitv nicht nutzbar.+Die Impulsrate liegt über 1 Impuls pro **Wattsekunde**, schon ab ca 2 Watt laufen die Impulse aufgrund der Impulslaenge ineinander, und es entsteht ein Dauerpegel!
  
-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+{{:hardware:channels:meters:power:kd320:kd320_eout_0w0.jpg?450}} 
-__moeglicherweise__ ist es moeglich ueber aenderungen der daten im eeprom den wert im pulse-rate register zu aendern.+{{:hardware:channels:meters:power:kd320:kd320_eout_0w5.jpg?450}}
  
-(updatedie eeprom daten sehen nicht danach aus, als ob man irgendwo einen wert fuer das pulse-rate register eintragen koennte.)+{{:hardware:channels:meters:power:kd320:kd320_eout_1w3.jpg?450}} 
 +{{:hardware:channels:meters:power:kd320:kd320_eout_1w8.jpg?450}}
  
-ansonsten wird man um den einbau eines eigenen controllers nicht herumkommen.+Somit ist der Impulsausgang ohne Änderungen an der Programmierung definitv nicht nutzbar. Andererseits bedeutet dies auch, dass er vom vorhandenen Controller wohl nicht benutzt wird (obwohl er angeschlossen ist!). 
 +__Möglicherweise__ ist es möglich über Änderungen der Daten im EEPROM den Wert im pulse-rate register zu ändern.
  
 +(**Update:** die EEPROM Daten sehen nicht danach aus, als ob man irgendwo einen Wert für das pulse-rate register eintragen könnte.)
  
-alternativ koennte man den standalone-betrieb des CS5460A nutzen, bei dem er seine konfiguration aus einem eeprom liest: controller (und display) hinauswerfen, das eeprom umprogrammieren und direkt mit dem CS5460A verbinden.+Ansonsten wird man um den Einbau eines eigenen Controllers nicht herum kommen. Alternativ könnte man den Standalone-Betrieb des CS5460A nutzen, bei dem er seine Konfiguration aus einem EEPROM liest: Controller (und Display) hinauswerfen, das EEPROM umprogrammieren und direkt mit dem CS5460A verbinden.
  
 ==== Netzteil ==== ==== Netzteil ====
-  * nicht galvanisch getrenntes netzteil+  * nicht galvanisch getrenntes Netzteil
  
-todo: ausmessen, verfuegbaren strom fuer moegliche einbauten ermitteln!+<note>TODO: ausmessen, verfügbaren Strom für mögliche Einbauten ermitteln!</note>
  
 ==== Anschlüsse ==== ==== Anschlüsse ====
hardware/channels/meters/power/kd_302.1315792391.txt.gz · Zuletzt geändert: 2011/09/12 03:53 von stv0g