ECL-Bus-Decoder: Unterschied zwischen den Versionen

Aus Hobbyelektronik.org
K (Platinenfotos, korrigierter Stromlaufplan Bus-Interface)
(ein paar Infos zum Phy)
Zeile 1: Zeile 1:
Da mir die Betriebsdatenerfassung unserer Wärmepumpe, die den zum Raumleitgerät zugehörigen Regler verwendet, nicht ganz [[Energieerfassung#W.C3.A4rmepumpe|koscher]] war, hab ich diese Sache relativ schnell auf die Seite gelegt. Trotzdem hat es mir immer wieder in den Fingerspitzen gekribbelt, dem Gerät doch ein paar Kennwerte zu entlocken.
+
Da mir die Betriebsdatenerfassung unserer Wärmepumpe nicht ganz [[Energieerfassung#W.C3.A4rmepumpe|koscher]] war, hab ich diese Sache relativ schnell auf die Seite gelegt. Trotzdem hat es mir immer wieder in den Fingerspitzen gekribbelt, dem Gerät doch ein paar Kennwerte zu entlocken.
  
In der Bedienungsanleitung der Anlage entdeckte ich ein paar Schaltpläne, in denen ein externes Sensor-/Alarmmodul samt Busanbindung zu finden war. Die Recherche nach dem mit ECL betitelte Bus lieferte bis auf ein paar kommerzielle Datenwandler keine brauchbaren Ergebnisse - also schnappte ich mir das Oszilloskop und versuchte auf eigene Faust, dem Teil etwas zu entlocken:
+
Wie im Blog [http://hobbyelektronik.org/b/?p=386 erwähnt] bin ich durch einen (un)glücklichen Zufall an ein [http://de.fernwaerme.danfoss.com/xxTypex/17616_MNU17407524.html ECA60] von Danfoss gekommen.
 +
 
 +
Um die Entwicklung eines Businterfaces zu vereinfachen, habe ich die Platine des Geräts fotografiert und per Bildbearbeitung übereinandergelegt:
 +
 
 +
<gallery>
 +
Datei:ECL_ECA60-top.jpg|Oberseite
 +
Datei:ECL_ECA60-top.jpg|Unterseite (gespiegelt)
 +
</gallery>
 +
 
 +
Mit etwas Buntstift und überlegen entstand in EAGLE folgender Stromlaufplan:
 +
 
 +
<gallery>
 +
Datei:ECL-eca60-sch.png|Bus-Interface ECL-Bus
 +
</gallery>
 +
 
 +
Oben wird das Bussignal eingefüttert, an der mittleren CPU-Leitung liegt das  auf Vcc + ~0,7V begrenzte Signal, das vom Bus empfangen wird.
 +
Die obere und untere Leitung zur CPU dienen offensichtlich dem Senden auf dem Bus.
 +
Zuerst (siehe Historie des obigen Bildes) war ich etwas irritiert, warum T1 und T2 den Bus gegen sich selbst kurzschloss. Bis mir aufgefallen ist,  dass da zur Spannungsglättung noch ein Elko an der Schaltung hängt. Das  machte die Sache deutlich klarer: "Jeder" Teilnehmer im Bus sendet in  den Low-Phasen des Trägersignals.
 +
Über T3 kann der Bus (der übrigens mit knapp 27Vss getrieben wird) gegen GND gezogen werden. Zwar ergibt sich durch den Widerstand von 48kOhm nur ein Strom von 550µA, der dürfte aber reichen, Störeinflüsse bis zu einem gewissen Maß einzudämmen.
 +
 
 +
In der Bedienungsanleitung der Anlage entdeckte ich ein paar Schaltpläne, in denen ein externes Sensor-/Alarmmodul samt Busanbindung befindet, die auch an externe Klemmen geführt werden. Die Recherche nach dem mit ECL betitelte Bus lieferte bis auf ein paar kommerzielle Datenwandler keine brauchbaren Ergebnisse - da der ECA60 an dem Bus so wunderbar funktioniert, wird kurzerhand das Oszilloskop angeschlossen:
  
 
<gallery>
 
<gallery>
Zeile 10: Zeile 30:
 
Das Signal besteht aus einem 50Hz Rechtecksignal, wobei der Duty-Cycle etwa 36/64 ist.  
 
Das Signal besteht aus einem 50Hz Rechtecksignal, wobei der Duty-Cycle etwa 36/64 ist.  
  
Nutzinformationen selbst werden in der Low-Phase des (ich nenne es einfach mal) Trägersignals übermittelt. In dessen Low-Phasen (7,28ms) werden die Daten mit einer Bitlänge von 428µs übertragen. Also können in dieser Zeit 17 Bit übertragen werden, wobei das erste immer 0 ist.
+
Die Nutzinformationen werden in der Low-Phase des (ich nenne es einfach mal) Trägersignals übermittelt. In dessen Low-Phasen werden die Daten mit einer Bitlänge von ca. 428µs übertragen. Also können in dieser Zeit 17 Bit übertragen werden, wobei das erste immer 0 ist.
  
Da ich mit meinem Oszilloskop leider keinen vollständigen Datensatz einfangen konnte und mein Logic-Analyzer wohl auch zu kurzspeichrig ist, werde ich wohl einen alten PC als primitivst-Oszi verwenden, zumal die Frequenzen für die Soundkarte kein Problem darstellen sollten.
+
Da ich mit meinem Oszilloskop leider keinen vollständigen Datensatz einfangen konnte und die Messversuche mit einer Soundkarte auch nicht besser waren, wurde ein wirklich einfaches Interface - bestehend aus Widerständen und Optokoppler - gestrickt und der Logic Analyzer daran angeschlossen.
  
 +
Nach einer Woche gespannter Leitung durchs halbe Haus habe ich selbige durch Leerrohre gelegt. Aus Toleranz wird Akzeptanz und der weiteren Bastelei steht nichts mehr im Weg ;-)
  
Wie im Blog [http://hobbyelektronik.org/b/?p=386 erwähnt] bin ich durch einen (un)glücklichen Zufall an ein [http://de.fernwaerme.danfoss.com/xxTypex/17616_MNU17407524.html ECA60] von Danfoss gekommen.
+
Invertiert durch den Optokoppler kommen die Signale wie folgt am LA an:
  
Um die Entwicklung eines Businterfaces zu vereinfachen, habe ich die Platine des Geräts fotografiert und per Bildbearbeitung übereinandergelegt:
 
 
<gallery>
 
Datei:ECL_ECA60-top.jpg|Oberseite
 
Datei:ECL_ECA60-top.jpg|Unterseite (gespiegelt)
 
</gallery>
 
  
 +
[[Datei:Ecl la1.png|800px]]
  
Mit etwas Buntstift und überlegen entstand in EAGLE folgender Stromlaufplan:
+
Zu sehen ist ein komplettes Datenpaket - bestehend aus 5 Paketteilen.
  
<gallery>
+
[[Datei:Ecl la2.png|800px]]
Datei:ECL-eca60-sch.png|Bus-Interface ECL-Bus
 
</gallery>
 
  
Oben wird das Bussignal eingefüttert, an der mittleren CPU-Leitung liegt das auf Vcc + ~0,7V begrenzte Signal, das vom Bus empfangen wird.
+
Mit der Hilfe von ein paar Zeitmarken lassen sich die Parameter des PHY etwas genauer bestimmen:
Die obere und untere Leitung zur CPU dienen offensichtlich dem Senden auf dem Bus.
 
Zuerst (siehe Historie des obigen Bildes) war ich etwas irritiert, warum T1 und T2 den Bus gegen sich selbst kurzschloss. Bis mir aufgefallen ist, dass da zur Spannungsglättung noch ein Elko an der Schaltung hängt. Das machte die Sache deutlich klarer: "Jeder" Teilnehmer im Bus sendet in den Low-Phasen des Trägersignals.
 
  
Wie T3 zum Senden von Daten verwendet werden soll, ist mir bis jetzt noch etwas schleierhaft. Bei den gemessenen 27Vss Busspannung würden die 48kOhm einen Strom von etwa 550µA verursachen. Der dürfte die Versorgungsspannung nur einbrechen lassen, wenn ihr Strom sehr stark begrenzt wird (was ich etwas bezweifel).
+
{| class="wikitable"
 +
|-
 +
| Bitdauer (T2-T1) || 0,415ms
 +
|-
 +
| Teilpaketlänge (T3-T1) || 7,26ms
 +
|-
 +
| Inaktiv-Phase (T4-T3) || 12,75ms
 +
|-
 +
| Periode (T4-T1) || 20,01ms
 +
|}

Version vom 22. März 2011, 00:45 Uhr

Da mir die Betriebsdatenerfassung unserer Wärmepumpe nicht ganz koscher war, hab ich diese Sache relativ schnell auf die Seite gelegt. Trotzdem hat es mir immer wieder in den Fingerspitzen gekribbelt, dem Gerät doch ein paar Kennwerte zu entlocken.

Wie im Blog erwähnt bin ich durch einen (un)glücklichen Zufall an ein ECA60 von Danfoss gekommen.

Um die Entwicklung eines Businterfaces zu vereinfachen, habe ich die Platine des Geräts fotografiert und per Bildbearbeitung übereinandergelegt:

Mit etwas Buntstift und überlegen entstand in EAGLE folgender Stromlaufplan:

Oben wird das Bussignal eingefüttert, an der mittleren CPU-Leitung liegt das auf Vcc + ~0,7V begrenzte Signal, das vom Bus empfangen wird. Die obere und untere Leitung zur CPU dienen offensichtlich dem Senden auf dem Bus. Zuerst (siehe Historie des obigen Bildes) war ich etwas irritiert, warum T1 und T2 den Bus gegen sich selbst kurzschloss. Bis mir aufgefallen ist, dass da zur Spannungsglättung noch ein Elko an der Schaltung hängt. Das machte die Sache deutlich klarer: "Jeder" Teilnehmer im Bus sendet in den Low-Phasen des Trägersignals. Über T3 kann der Bus (der übrigens mit knapp 27Vss getrieben wird) gegen GND gezogen werden. Zwar ergibt sich durch den Widerstand von 48kOhm nur ein Strom von 550µA, der dürfte aber reichen, Störeinflüsse bis zu einem gewissen Maß einzudämmen.

In der Bedienungsanleitung der Anlage entdeckte ich ein paar Schaltpläne, in denen ein externes Sensor-/Alarmmodul samt Busanbindung befindet, die auch an externe Klemmen geführt werden. Die Recherche nach dem mit ECL betitelte Bus lieferte bis auf ein paar kommerzielle Datenwandler keine brauchbaren Ergebnisse - da der ECA60 an dem Bus so wunderbar funktioniert, wird kurzerhand das Oszilloskop angeschlossen:

Das Signal besteht aus einem 50Hz Rechtecksignal, wobei der Duty-Cycle etwa 36/64 ist.

Die Nutzinformationen werden in der Low-Phase des (ich nenne es einfach mal) Trägersignals übermittelt. In dessen Low-Phasen werden die Daten mit einer Bitlänge von ca. 428µs übertragen. Also können in dieser Zeit 17 Bit übertragen werden, wobei das erste immer 0 ist.

Da ich mit meinem Oszilloskop leider keinen vollständigen Datensatz einfangen konnte und die Messversuche mit einer Soundkarte auch nicht besser waren, wurde ein wirklich einfaches Interface - bestehend aus Widerständen und Optokoppler - gestrickt und der Logic Analyzer daran angeschlossen.

Nach einer Woche gespannter Leitung durchs halbe Haus habe ich selbige durch Leerrohre gelegt. Aus Toleranz wird Akzeptanz und der weiteren Bastelei steht nichts mehr im Weg ;-)

Invertiert durch den Optokoppler kommen die Signale wie folgt am LA an:


Ecl la1.png

Zu sehen ist ein komplettes Datenpaket - bestehend aus 5 Paketteilen.

Ecl la2.png

Mit der Hilfe von ein paar Zeitmarken lassen sich die Parameter des PHY etwas genauer bestimmen:

Bitdauer (T2-T1) 0,415ms
Teilpaketlänge (T3-T1) 7,26ms
Inaktiv-Phase (T4-T3) 12,75ms
Periode (T4-T1) 20,01ms