www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Whirlpool-Steuerung Manipulieren / Fernsteuern: Welches Protokoll?


Autor: Henry (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Liebe Experten,

ich brauche Euren Rat!
Es geht um einen Whirlpool, der in einem Ferienhaus betrieben wird. 
Dieser benötigt einige Zeit um warm zu werden. Daher wäre es toll diesen 
von Zuhause aus einschalten zu können. Eine einfache Strom an / Strom 
aus Variante geht nicht, da Umwälzpumpe, Frostschutz, Ozonator etc. 
weiter laufen müssen, auch wenn die Temperatur runter gedreht ist.

Die Temperatur wird mittels eines Bedienteils über zwei Knöpfe +/- 
eingegeben. An einem LCD Display kann man aktuelle und Solltemperatur 
ablesen.

Vom Bedienteil gehen 8 Kabel in die Steuerplatine des Whirlpools. Sie 
sind folgendermaßen bezeichnet: Key1, Key2, CS, DATA, CLK, A, DNS, +5. 
Um welche Art von Serieller-Kommunikation (Protokoll?) könnte es sich 
hierbei handeln?

Ich möchte gerne mit Arduino das Drücken des + bzw. - Knopfes simulieren 
und so die Temperatur regeln. Schön wäre es auch die derzeitige und 
Solltemperatur auszulesen. Seht ihr da eine Chance?

Vielen Dank für Euren Rat und Tipps!

Henry

Autor: Remote One (remote1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als ersten Schnellschuss würde ich SPI tippen. Falls es das ist, kannst 
du ohne Probleme mit einem SPI2USB Konverter am Rechner mitlesen und das 
entsprechende Protokoll verifizieren.

Wenn du gar nicht über das Protokoll an deine Temperaturen kommst, dann 
kannst du immer noch den Tastendruck simulieren. Problem dabei ist nur, 
dass du die aktuell eingestellte Temperatur nicht weißt.

Als recht günstiges und vielseitiges Tool kann ich dir das AVRLab 
empfehlen.
http://wiki.ullihome.de/index.php/Hauptseite
Da ist z.B. auch ein Firmware dabei, mit welcher es möglich ist, die SPI 
Kommunikation mitzulesen.
http://wiki.ullihome.de/index.php/USBAVR-ISP-Firmw...

Autor: Henry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für den Tipp. Ich habe überlegt mir den Logic-Analyzer von 
Saleae zu kaufen und damit alle 8 Leitungen zu loggen, während ich die 
gewollten Aktionen durchführen. SPI sollte ich damit ja dann erkennen 
können. Bleibt nur die Frage der Belegung der Kabel, ist ja aus der 
Bezeichnung nicht alles ersichtlich.
Den Tastendruck direkt zu simulieren wird ohne Protokoll vlt. schwierig, 
da das Bedienfeld wasserdicht versiegelt ist und ich das nur ungern 
öffnen möchte... Vielleicht habe ich aber Glück und Key1 und Key2 sind 
genau die beiden Temp +/- Knöpfe.

Autor: Remote One (remote1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Key1 und Key2 schon die Knöpfe sind, besteht immer noch das 
Problem, dass du nur die aktuelle Temperatur erhöhen oder absenken 
kannst. Du weißt aber nicht wo du angefangen hast.

Sich für solch eine Aufgabe extra einen Logik Analysator zu kaufen finde 
ich übertrieben. Die Bezeichnung ist ziemlich eindeutig. Mach dich mal 
ein wenig über SPI schlau, da werden dir ganz schnell die Parallelen an 
der Belegung auffallen (CS, Data, CLK). Ich würde schon zu nahezu 95% 
darauf tippen, das es SPI ist. Da reicht dann eine einfache SPI2USB 
Bridge vollkommen aus. Das AVR Lab kann zudem auch gleich als Programmer 
für einen später angedachten µC eingesetzt werden. Für 15€ ein 
wirkliches Schnäppchen.

Hier noch ein Link zum Verständnis von SPI
http://www.rn-wissen.de/index.php/SPI

PS: ob da nun Data, SDI oder SDO steht soll dich erst mal nicht weiter 
stören
Sollte es kein SPI sein, wäre auch noch I2C möglich. Wie der Zufall so 
will, kannst du mit dem AVR Lab auch das Protokoll einfach mitloggen.

Autor: Henry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hört sich sehr gut an, vielen Dank. Ich werd mich da jetzt erst mal 
weiter einlesen. Aber du hast recht, es sieht von der Belegung sehr nach 
SPI aus...

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Auf dem Bild sieht die Beschriftung etwas anders aus:
Key1, Key2, CS, DATA, CLK, A, GND, +5.

Nach SPI riecht da garnix, eher nach I2C. Denn Für SPI müsste MOSI und 
MISO oder wenigstens Data1 und Data2 oder ähnliches zu finden sein.
Ohne gleich mit schwerem Gerät alles mit zu lesen, würde ich zuerst mal 
das Bedienteil öffnen und nachsehen, ob dort nicht der ein oder andere 
Chip mit lesbarer Beschriftung zu finden ist. Dann man suchen, was diese 
Chips so können und welche Interfaces sie unterstützen.

Es hilft auch immer mal auf beiden Seite nachzusehen, wo die Signale 
dort auf einen Chip geführt werden und welche Fähigkeiten dieser Chip an 
den entsprechenden Pinnen hat.

Da das Display ja die aktuelle Solltemperatur anzeigt, spricht nix 
dagegen, diese Anzeige über simulierte Tastendrücke zu provozieren und 
dann den Datenstrom zum Display auszulesen und diese Information dann 
auszuwerten oder ebenfalls per Internet zu versenden. Wäre eine nette 
Applikation für eine Ethernut 1.3.

Gruß, Ulrich

Autor: remote (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ulrich P. schrieb:
> Nach SPI riecht da garnix, eher nach I2C.

Remote One schrieb:
> Sollte es kein SPI sein, wäre auch noch I2C möglich. Wie der Zufall so
> will, kannst du mit dem AVR Lab auch das Protokoll einfach mitloggen.

Das wurde ja auch schon angesprochen. Bei I2C stört mich persönlich 
lediglich die Chip Select (CS) Leitung. Da bei I2C eigentlich mit der 
Adresse selektiert wird.
Nichtsdestotrotz gibt es natürlich auch Bausteine welche mehrfach am Bus 
hängen können und produktionsseitig die gleich Adresse haben, so dass 
man um ein Chip Select nicht herum kommt.
Zu den Datenleitungen bei SPI, also SDI und SDA, ist es genauso gut 
mgl., dass der Baustein nur sendet und deswegen nur eine Datenleitung 
vorhanden ist. Evtl. werden die aktuelle Einstellungen ja lediglich an 
die Steuerung übergeben. Das ist ja schließlich nur die 
"Eingabeeinheit". Zudem kann es auch sein, dass nicht alle Leitungen an 
diese Stiftleiste herausgeführt sind.
Also einfach mal verfolgen, wo die Data und CLK Leitung hinführt und den 
entsprechenden Chip näher identifizieren.

Autor: remote (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das Datenblatt zu dem µC, welcher oben abgebildet ist, hab ich mal eben 
angehängt.

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Henry,

die idee mit dem logic von salae ist nicht verkehrt, da du damit 
sämtliche signale parallel und zeitlich zugeordnet loggen kannst. Ob das 
nun SPI-like oder eher I2C ist, wirst du sehr schnell erkennen können 
und dann einfach den richtigen interpreter benutzen.

das avrlab ist zwar auch eine option aber da wird es mit den 
key-leitungen und der a-leitung schon schmal.

hmmm, eine manipulation der busleitungen von aussen kann klappen, aber 
du solltest bedenken, das da auch jemand gegen deine eingespeisten pegel 
treiben könnte, also erstmal loggen, anschauen und dann einen plan 
machen - alles andere ist zuviel glaskugel.

gruss aus berlin, tom.

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss mich korrigieren:

Die allermeisten LCD-Controller Chips, die auch SPI unterstützen, können 
nur Daten empfangen und brauchen das /CS um sich auf den SPI Datenstrom 
zu synchronisieren. CS, DATA, CLK können also sehr wohl einen 'halben' 
SPI darstellen, der nur Daten zum Display senden kann.

Es würde mich nicht wundern, wenn die Tasten einfach an einem R2R 
Netzwerk hängen und von ein oder zwei ADC Kanälen des Controllers 
ausgelesen werden.
Ich habe meine Glaskugel nicht dabei, aber es gibt eine nicht zu 
verachtende Wahrscheinlichkeit, dass die beiden Tasten Up/Down auf Key1 
und Key2 digital liegen und der Steuerkreis über eine Widerstandskaskade 
am Pin A zu finden ist. Das sollte sich sehr einfach herausfinden 
lassen, ganz ohne igendeinen Analyzer zu kaufen:

Display Einheit abstöpseln, dann
Multimeter in Ohm-Stellung an +5 und A, dann Tasten betätigen und sehen, 
ob sich dort je nach Tastendruck die Werte ändern. Das ganze mit +5V und 
Key1/2 wiederholen. Dann die ganze Reihe noch mal mit GND und A / GND 
und Key1/2.

Wenn ich damit recht habe, gibt es vielleicht immer noch einen einfachen 
und einen schweren Weg das Ding fern zu steuern:
Einfach:
Der Hersteller hat RXD/TXD als serielle Schnittstelle beibehalten und 
man kann heraus finden, wie man Parameter darüber direkt setzt.
(Bitte über Pegelwandler an den PC, nicht direkt!)
Schwer:
Man kauft sich ein Digital-Poti mit I2C oder SPI Schnittstelle und 
bringt dem Web-Server das simulieren eines Tastendruckes bei. Sorry fpr 
die Wiederholung, aber man kann auch das SPI mitlesen, dass das Display 
steuert und daraus herleiten, welche aktuellen Werte angezeigt werden.

Gruß, Ulrich

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ulrich:
1. denke, deine vermutung mit den analog codierten tastern ist 
wahrscheinlich zutreffend. aber da es ja paar mehr als nur key-up/down 
sind glaskugele ich eher in die richtung zwei kanäle (KEY1, KEY2) an 
adc-eingänge des uC, das lässt sich mit ohmmeter ja herausfinden.

2. der SPI oder I2C data-bus steuert wahrscheinlich das display an.

3. Leitung A könnte auch die ansteuerung für die hintergrundbeleuchtung 
oder kontrasteinstellung des displays sein. falls es ein menü zum 
einstellen gibt, könnte man das damit z.B. herausfinden oder 
ausschliessen.

4. um soll/ist temperatur oder komplette displayausgaben nach "remote" 
zu übertragen wird trotzdem nichts anderes übrigbleiben als den 
digitalen bus zu ananlysieren und die ausgaben daraus zu extrahieren. da 
sind vernünftige tools, die man auch weiterbenutzen kann nie schlecht...

5. digitales poti als taster-emulation ist eine gute idee, muss man aber 
mal schauen wegen dem widerstandsbereich der gebraucht wird. ggf. eher 
ein 8-bit port mit R2R Netzwerk spendieren.

anyway, gutt lack and häv fann, Hännrie.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.