MSP430 Zirkulationssteuerung
Startseite Übersicht Impressum






Unser Haus verfügt über eine Warmwasserzirkulation, die mittels einer Zeitschaltuhr gesteuert wurde. Da dies nicht flexibel genug war, wurde die Uhr durch eine MSP430 basiert Steuerung ersetzt. Diese Seite gibt einen kurzen Überblick über das Projekt. Den Kern der Steuerung bildet ein MSP430 auf dem MSP430-EasyWeb3 Module von Olimex. Dieses Modul verfügt bereits über einen Ethernet Anschluss und lies sich damit sehr leicht in das vorhandene Netzwerk integrieren.

Darüber hinaus wurden die folgenden Standardkomponenten verbaut:

ModuleBezugsquellePreis
MSP430Olimex65,-
JTAG-ProgrammerOlimex15,-
EA DOG-M LCDConrad15,-
5V Netzteilebay5,-
elektronisches LastrelaisConrad44,-
SMD TasterReichelt1,-
Real Time ClockReichelt2,-
Mini DIN BuchsenConrad5,-
Kaltgeräte BuchsenConrad6,-
GehäuseConrad10,-
Sie benötigen JavaScript um die Bilder zu sehen.
zurück 0/0 vor

Die Funktionsweise ist denkbar einfach. Das Module wird zwischen die Pumpe und die Stromversorgung geklemmt. Die Temperatur wird mittels zweier PT500 Sensoren gemessen, die über die Mini DIN Buchsen mit dem Modul verbunden werden. Außerdem ist hier auch ein Taster mit LED angeschlossen.

Das Module schaltet die Pumpe bei den folgenden Ereignissen ein:

  • drücken des Tasters,
  • zu einem konfigurierbarem Zeitpunkt und
  • durch ein Kommando per Netzwerk.

Die Pumpe wird wieder ausgeschalten, wenn die Temperatur des Rücklaufes ungefähr der des Vorlaufes entspricht oder nach spätestens n Minuten Laufzeit.

Das Konfigurieren des Moduls erfolgt entweder über das eingebaute Display und vier Cursor Tasten oder durch ein Server-Programm im Netzwerk. Dieses sendet eine Konfiguration, wenn es sich das erste Mal mit dem Modul verbindet. Ist ein Server im Netz verfügbar, sendet das Modul bei jedem Ein- und Ausschalten der Pumpe eine Signal an diesen. Zusätzlich lassen sich die Messwerte jederzeit per Netzwerk oder über das Display abfragen.

Anmerkung: Die Software ist eine Eigenimplementierung und als Compiler wurde der mspgcc verwendet. Die auf dieser Seite zur Verfügung gestellten Software-Module sind für diesen Compiler geschrieben und lassen sich mit unter nur mit diesem übersetzen.


 LCD Platine

Da die Steuerung auch über ein Display verfügen und eventuell ein paar Tasten für lokale Einstellungen vorhanden sein sollten, habe ich zusätzlich eine Platine gefertigt.

Auf der Platine kann ein EA DOG-M Display verlötet werden, welches bei conrad für ca. 15,- EUR erhältlich ist. Zusätzlich habe ich auf der Platine vier + ein Taster, eine Real Time Clock und Stiftleisten für die externen Anschlüsse platziert. Die Platine wird im Wesentlichen mit dem Ext2 Anschluss des EasyWeb2 Moduls verbunden. Zusätzlich müssen nur noch drei AD und die RST Leitung von Ext1 angeschlossen werden.

Das Schematic ist hier zu finden und ein Verdrahtungsbeispiel (Testplatine aus den Abbildungen) für die externen Anschlüsse ist hier.

Leider hat die aktuelle Version der Platine ein paar kleinere Fehler. So sind z.B. die Bohrungen für die Halterung zu weit außen und die Pads für die Real Time Clock für das Löten per Hand zu knapp. So würde ich bei einer neuen Version die folgenden Punkte noch einmal verbessern.

  • Platine umlaufend um 1mm vergrößern
  • Schiebeschalter statt Jumper JP1 für P1_2 Auswahl
  • STDP des RTC4513 an P1_2 über Schalter
  • RTC4513 Pads weiter auseinander schieben
  • Lithum Zelle für RTC4513
Sie benötigen JavaScript um die Bilder zu sehen.
zurück 0/0 vor

Sollte jemand trotzdem Interesse an der Platine haben, kann er sich gern bei mir melden. Da die Bestellung nur einer Leiterplatte leider nicht möglich ist, lagere ich noch einige Exemplare.


 Realtime Clock 4513 Treiber

Auf dem LCD-PCB wurde zusätzlich eine Realtime Clock RTC4513 von Epson platziert. Den Chip kann man bei reichelt für ca. 2,- EUR bestellen. Die Clock benötigt lediglich 3 Datenleitung, 4 wenn man die IRQ-Leitung nutzt, und eignet sich damit sehr gut für ein kleines Layout.
Für die Nutzung der Clock wurde im Rahmen des Projektes ein Treiber implementiert, der die folgenden Funktionen anbietet:

  • Initialisierung der Clock,
  • Auslesen von Uhrzeit/Datum und
  • Setzen von Uhrzeit/Datum

Sollte ich noch einmal ein neues Layout für das LCD-PCB machen, würde ich den Treiber um die folgenden Funktionen erweitern:

  • Unterstützung des IRQ-Signals und
  • Einbindung der Lithum-Zelle (Init on demand)

Als Vorlage für den Treiber diente eine Implementierung für einen ATmega128. Der Originaltreiber ist unter http://www.microcontroller.net/top/68361 oder hier zu finden.

DateiSignatur
rtc4513.2009-05-24.tar.bz2 rtc4513.2009-05-24.tar.bz2.sig

 UDPIP Stack

Da das Konfigurieren und teilweise die Steuerung des Systems über das Netzwerk möglich sein soll, wurde für den MSP430 ein IPv4 Stack implementiert. Der Stack unterstützt aktuell die folgenden Protokolle:

  • ARP,
  • IPv4 (ohne Fragmentierung),
  • ICMP (Code 0x03; Type 0x00, 0x03, 0x08) und
  • UDP.

Der Stack wurde für das MSP430 EasyWeb3 Module erstellt und nutzt den CS8900 Treiber aus der EasyWeb3 Test Software von olimex, die Dateien sind auch hier zu finden.

Warum nicht uIP ? Ganz einfach, mein Projekt startete ungefähr zur gleichen Zeit und da gab es nur die Test Software von olimex. Diese hatte für mich die gleichen Limitierungen, wie sie auch beim uIP Projekt aufgeführt werden.
Außerdem benötige ich immer noch kein TCP und ich finde UDP ist für einen Sensor Knoten vollkommen ausreichend. Ach ja und der wichtigste Grund ist, Not invented here. ;)

DateiSignatur
udpip.2010-05-25.tar.bz2 udpip.2010-05-25.tar.bz2.sig
Todo - Abgesehen von Bugfixes ist geplant als nächstes die folgenden Protokolle hinzufügen:
  • Dynamic Host Configuration Protocol (DHCP)
  • Network Time Protocol (NTP)
  • Internet Protocol Version 6 (IPv6)

 DOG-M Display Treiber

Für die Ansteuerung des Displays war die Erstellung eines Treibers für den MSP430 notwendig. Als Basis diente die Implementierung von Matthias Kahnt für eine 8051-Mikrocontroller, die hier oder hier heruntergeladen werden kann.
Der Anschluss des Moduls ist über SPI, 4- und 8-Leitungen möglich, zusätzlich kann zwischen 5V und 3,3 V unterschieden werden. Da der Treiber für das LCD PCB genutzt wird, wird hier nur der Modus mit 8-Leitungen und 3,3V unterstützt. Eine Anpassung an die anderen Modi ist jedoch leicht möglich.

DateiSignatur
dogm_drv.2009-07-11.tar.bz2 dogm_drv.2009-07-11.tar.bz2.sig


oben
15.08.2010