| Start | Gästebuch | Kontakt | Impressum |

08. 09. 2010

ATmega8 Testboard...
DDS Generator...
EVG Steuerung...

Würfel...
Zeitschalter...
Lichtabh. Schalter...
Nostalgie...
Servotester...
Experimentierkoffer...

M-Unit...
M-Unit 2.x...
MICRO...
LCD Display...
DCF Uhr...
Infrarot mit RC5...
UKW PLL...
Videodisplay...
EPROM Programmer...
DCF Modul...
Testboard...
CC1 Programmer...
Temperatur Analog...
Elektronik Poti...
C-Control und USB...
MICRO Würfel...
E/A Port Anpassung...
DA Ausgang...
Inkrementalgeber...

TCP/IP Basic...
Netzwerk 1...
Netzwerk 2...
Terminal...
Ein neuer PC...
Video am PC...
DSL...
WLAN...
VoIP...

Libanon...
Montreal...
Québec...
Ein Tag in den USA...
Stockholm...

Gasometer...
Greifswald...


TESTBOARD

Aus der C-Control Familie verwende ich vorwiegend die M-Unit. Somit ist in der Regel zusätzliche Hardware erforderlich. Im Prinzip sind die Anforderungen ähnlich. Es entstand ein Grundgerüst, das einige Anwendungen abdecken kann. Diese Baugruppe stelle ich hier vor.

!!! Achtung Lebensgefahr !!!
Dieses Gerät arbeitet mit 230V Netzspannung. Diese Schaltung dürfen nur Leute mit entsprechender Ausbildung aufbauen.

Einige technische Daten:
- 8x digital Ausgang, es werden elektronische Lastrelais angesteuert (230V 1,5A)
- 8x digital Eingang TTL Pegel - 8x analog Eingang (8Bit Auflösung)
- 2x PWM Ausgang (8Bit Auflösung)
- LCD Standard Display (2x16Zeichen)
- 4x Taster für Eingaben
- 1x Piezoschwinger für Tonausgabe
- V.24 Interface für PC Verbindung
- Anschluss für DCF Modul über Klinkenbuchse
- eingebautes Netzteil 230V~/5V=

Testboard

Das Ganze ist in einem Standard Gehäuse für Eurokarten untergebracht. Das Gehäuse ist aus Kunststoff. Einige Durchbrüche und Lüftungslöcher sind relativ leicht herzustellen. Im oberen Deckel ist ein Durchbruch mit roter Folie abgedeckt. So kann man die LED, welche den Zustand der Lastrelais anzeigen, bei geschlossenem Gehäuse sehen.

Frontansicht

Die vier Taster sind so unter dem LCD Display angeordnet, das die untere Zeile als Beschriftung (Menüführung) dienen kann. Rechts neben dem Display befindet sich ein Schiebeschalter, der mit dem Autostart der M-Unit verbunden ist. Der Jumper auf der M-Unit muss entfernt werden. Die Beschriftung der Frontplatte erfolgt mit selbstklebender Folie die mit einem Tintenstrahl Drucker bedruckt und mit Fixierspray haltbar gemacht wurde.

Rückansicht

Hinten befindet sich unten der Netzschalter und das Netzkabel. Oben ist ein Durchbruch für die Zuleitungen der Lastrelais mit einem Kantenschutz versehen. Rechts daneben befindet sich eine Stereo Klinkenbuchse für den Anschluss eines DCF Moduls.

Übersichtsplan

Der Übersichtsplan zeigt die Zuordnung der Ports. Der Byteport1 (P1-P8) überträgt die Daten. P9 und P10 steuern das LCD Display, P15 steuert den TTL Eingang und P16 den TTL Ausgang. Für LP wird ein Piezoschwinger ohne eingebaute Elektronik verwendet. Die Baugruppen sind auf vier einseitigen Leiterplatten (LP1-LP4) verteilt. Die Abmessungen der Leiterplatten ergeben sich aus den Gehäuseabmessungen und der Anordnung innerhalb des Gehäuses. Die Schaltung wirkt nur auf den ersten Blick aufwendig weil einige Steckverbinder vorgesehen sind.

 

Auf der Main LP befinden sich die M-Unit, das V.24 Interface, sowie Steckverbinder zur Display- und Switch LP. Für die Stromversorgung des DCF Moduls habe ich ein RC Glied vorgesehen. Die Analogeingänge, sowie die Anschlüsse DA1, DA2, FREQ2, IRQ sind auf Steckerleisten zugänglich. Die DCF Anschlüsse werden durch kurze Drähte mit der Klinkenbuchse verbunden.

Testboard von unten

IC2 ist eine SMD Ausführung des MAX232 und befindet sich deshalb auf der Leiterseite. Das Bild zeigt das geöffnete Gehäuse von unten. Die Gehäusedeckel können jeweils oben und unten ohne Werkzeug entfernt werden.

 

Auf der Switch LP befinden sich zwei IC als Zwischenspeicher. IC1 speichert die Eingangssignale am Steckanschluss SV-DE. Die Eingänge sind mit dem Widerstandsnetzwerk RN1 auf HIGH gelegt. IC2 steuert die elektronischen Lastrelais, über jeweils eine LED zur Statusanzeige, an. IC2 kann 6mA Laststrom pro Ausgang vertragen. Danach sind die Vorwiderstände dimensioniert. Bei der Auswahl der Lastrelais ist darauf zu achten welchen Strom diese zum sicheren Ansprechen brauchen. Der gewählte Typ ist mit 5 - 25mA angegeben. Die LP ist über den Steckverbinder SV-S direkt mit der Main LP verbunden.

 

Testboard von oben

Das geöffnete Gehäuse von oben. Die LP ist über einen starren Steckverbinder mit der darunter liegenden Main LP verbunden. Die elektronischen Lastrelais können bei 42 bis 230V Wechselspannung 1,5A schalten. Es ist ein Typ mit Nullspannungsschalter. Das ist wichtig, damit auf der Netzseite keine Störungen entstehen. An X9 wird die Eingangsspannung angeschlossen, X1 bis X8 sind die geschalteten Ausgänge.

Achtung!!!
Für die ordnungsgemäße Ausführung und Absicherung der 230V~ Anschlüsse ist der Anwender selbst verantwortlich.

Die Platine ist einfach austauschbar, so das man je nach Anwendung verschiedene Bauteile einsetzen kann.

Schaltplan Display

Die Display LP ist hochkant hinter der Frontplatte angebracht. Das Gehäuse hat dafür Nuten. Das Basismaterial darf aber nicht dicker als 1mm sein. Auf der LP befinden sich ein Standard LCD Display, ein Einstellregler für die Kontrasteinstellung, 4 Taster und ein Schiebeschalter. Der Anschluss RW vom Display ist fest auf GND gelegt. Dadurch ist das Display nur beschreibbar was sich aber bisher nicht als Nachteil erwiesen hat. Die LP ist mit den Steckverbindern SV-D1 und SV-D2 direkt mit der Main LP verbunden.

Schaltplan Power

Ebenfalls hochkant hinter der Rückfrontplatte ist die Netzteil LP angeordnet. IC1 ist mit einem Aluminium Kühlkörper versehen. Der Netzschalter wird direkt in die hintere Frontplatte eingesetzt. Die Verdrahtung erfolgt mit farbiger Litze. Die Sicherung wird mit einer Abdeckkappe gegen zufällige Berührung geschützt.
Alle Schaltpläne und die Leiterplatten sind mit der Freeware Version von EAGLE erstellt worden. Es ist aber grundsätzlich möglich die Schaltung auf Standard Lochraster Platinen aufzubauen.

Vorausgesetzt wird ein fehlerfreier Aufbau der Hardware und eine Standard M-Unit. Zum Testen des Gerätes habe ich ein C-Basic Programm geschrieben das folgende Funktionen bereitstellt:

- Initialisierung des Displays und Anzeige eines Textes
- Ausgabe von Bitmustern an die Lastrelais
- Status der acht Digitaleingänge in einer Variablen abspeichern
- Status der acht Analogeingänge lesen
- Status des DCF Registers der C-Control in einer Variablen abspeichern
- Abfrage der vier Taster und Verzweigung wenn eine Taste gedrückt wurde
- Wahlweise Anzeige Uhrzeit oder Datum
- reagieren auf Kommandos vom PC
- Senden von Daten an einen PC auf Anforderung

Der Quelltext CBasicTest1.bas kann hier geladen werden. Die Anzeige ist in jedem Texteditor möglich. Übersichtlicher ist aber der C-Basic Editor wenn die Tab-weite auf drei eingestellt ist. Der Quelltext ist kommentiert. Für Profis vielleicht etwas zu viel aber glücklicherweise finden sich immer mal wieder Neulinge für das C-Control System.

Zusammen mit der Hardware kann man das Programm als Grundgerüst für ein Lichteffekt Gerät verwenden. Das Programm wird wie gewohnt in die C-Control über den COM Anschluss geladen. Dazu muss der Schiebeschalter an der Frontseite in Stellung LOAD geschaltet sein. Nach dem Laden wird der Schalter in Stellung RUN geschaltet.
Der Pizoschwinger gibt ein Signal aus. Dann wird das Display initialisiert und ein Text angezeigt. Der Vorgang dauert einen Augenblick. Diese Pause ist nur beim Start für die Initialisierung des Displays notwendig (trifft auf das verwendete Display zu und muss ausprobiert werden). Wird der Text angezeigt, gibt der Pizoschwinger ein Signal aus und die LED beginnen das erste Bitmuster anzuzeigen. Es müssen nacheinander alle LED aufleuchten entsprechend dem ersten Block in der Tabelle Muster.

Das Programm befindet sich jetzt in einer Endlosschleife. Es gibt ständig die Bitmuster aus, fragt die Tastatur ab und prüft ob ein Kommando vom PC am COM Anschluss anliegt. Ein Druck auf Taste Time zeigt die Uhrzeit, ein Druck auf Taste Date zeigt das Datum an. Taste P+ wählt den nächsten Bitmusterblock aus der Tabelle Muster. Taste T+ verringert die Geschwindigkeit der Bitmuster Ausgabe.

Ist ein DCF Empfänger angeschlossen, dann werden, nach etwa drei Minuten, Uhrzeit und Datum richtig angezeigt. Der Empfang des DCF Signals wird durch ein Sonderzeichen hinter der Zeit oder Datum Anzeige bestätigt. Solange kein gültiges DCF Signal empfangen wird, erscheint an dieser Stelle ein Fragezeichen im Display. Das passiert auch, wenn die Uhr schon synchronisiert wurde. Für die Genauigkeit der Uhr reicht eine Synchronisation ein- bis zweimal in 24 Stunden aus. Die Anzeige von Zeit oder Datum im Display erfordert Rechenzeit. Das erkennt man an der sich ändernden Geschwindigkeit der Ausgabe der Bitmuster. Um die höchstmögliche Geschwindigkeit zu erreichen wird beim Druck von Taste T+ oder P+ der Anzeigemodus verlassen und ein Festtext wie beim Programmstart angezeigt.

Für die Kommunikation mit dem PC ist ein einfaches Protokoll vorgesehen. Es werden die C-Basic Befehle PUT und GET auf der C-Control Seite benutzt. Folgende Kommandos sind implementiert:

Wert
Kommando
ASCII
 
49
key1
1
 
50
key2
2
 
51
key3
3
 
52
key4
4
 
53
PWM1
5
danach Wert für DA1 (0-255)
54
PWM2
6
danach Wert für DA2 (0-255)
98
C-Control empfangsbereit
b
 
115
PC erwartet Daten von C-Control
s
danach beliebiges Zeichen

Mit einem Terminalprogramm (z.B. Hyperterm 9600,8,1,n ANSI Emulation) kann man die Kommandos ausprobieren. Das C-Basic Programm beantwortet ein empfangenes Kommando mit der Sendung des Wertes 98. Dieser Zahlenwert entspricht dem Zeichen b des ASCII Zeichensatz. Drückt man also z.B. die RETURN Taste am Terminal erscheint ein b am Bildschirm. Die Tasten 1,2,3,4 am Terminal wirken so, als wenn die Tasten am Gerät gedrückt werden.
Zum Test der DA Wandler schließt man eine Leuchtdiode so an die DA Ausgänge an, wie das Bild zeigt.

Test DA

Drückt man am Terminal die Taste 5 oder 6, dann erwartet das C-Basic Programm einen Wert (0-255) den es in das Register für die DA Wandler schreiben kann. Die Taste 0 (Wert=48) am Terminalprogramm wird dann eine andere Helligkeit der LED ergeben als z.B. die Taste z (Wert=122).

Drückt man die Taste s am Terminal, dann antwortet das C-Basic Programm mit einem b und wartet auf ein weiteres Zeichen. Damit wird C-Control zum Senden von Daten vorbereitet. Es sind genau 17Byte mit folgender Bedeutung:

Byte Nr.
Inhalt
1
Wochentag
2
Tag
3
Monat
4
Jahr
5
Stunde
6
Minute
7
Sekunde
8
DCF Status
9
Digitaler Eingang
10
Wert AD Wandler 1
11
Wert AD Wandler 2
12
Wert AD Wandler 3
13
Wert AD Wandler 4
14
Wert AD Wandler 5
15
Wert AD Wandler 6
16
Wert AD Wandler 7
17
Wert AD Wandler 8

Diese 17 Byte werden nach Druck einer beliebigen Taste am Terminal von C-Control hintereinander zum PC gesendet. Das kann man so machen, da der Puffer am PC groß genug ist. Am Terminalprogramm können diese Zeichen aber unvorhergesehene Reaktionen auslösen. Bei Hyperterm kann das, je nach Version, bis zum Absturz führen. Das liegt daran, das Hyperterm nur einen Teil der empfangenen Daten richtig interpretieren kann. Die Zeichen können aber jeden Wert zwischen 0 und 255 annehmen. Für eine Anzeige im Terminalprogramm ist diese Vorgehensweise also nicht sinnvoll.

Deshalb habe ich ein kleines Windows Programm in der Sprache C# geschrieben. Als Programmierumgebung nutze ich SharpDevelop Beta Version 0.99b. Es ist eine freie Entwicklungsumgebung unter anderem für C#. SharpDevelop ist OPEN SOURCE und unterliegt der GNU General Public License. Für die Verbindung C# Programm und Windows API nutze ich die RSCOM.DLL von Burkhard Kainka. Der Autor hat diese DLL auf seiner Hompage für private Nutzung freigegeben.

C# Programm

Beim Programmstart von InterfaceV20.exe sollte das Programm CBasicTest1.bas in das Testboard geladen, das Testboard eingeschaltet und mit der COM 1 oder COM 2 verbunden sein. Die Programm Oberfläche ist weitgehend selbsterklärend. Das Programm sucht das Testboard auf der COM1 oder COM2. Die Schnittstelle wird eingestellt und die Kommunikation mit dem Testboard gestartet. Wenn man am Testboard einen Digital Eingang auf LOW (GND) schaltet, wird das entsprechende Kästchen gesetzt. Die Anzeige der Analog Wandler schwankt, wenn diese nicht beschaltet sind. Das ist normal und auf den großen Eingangswiderstand zurückzuführen. Das Leseintervall der Daten vom Testboard ist auf 500ms voreingestellt und kann je nach Leistungsfähigkeit des PC verändert werden. Wenn aus irgend einem Grund die Verbindung zum Testboard verloren geht, wird eine Fehlermeldung ausgegeben. Man kann dann, nach Beseitigung der Ursache, versuchen mit Click auf den Restart Button die Verbindung wieder herzustellen.

Das C# Programm kann man hier laden. Es benötigt das MS .NET Framework und läuft damit ab W98. Zum Installieren bitte die README.TXT Datei lesen. Dem ZIP Archiv liegt, entsprechend der GNU General Public License, der kommentierte Quelltext bei. Man kann den Quelltext mit jedem Texteditor lesen. Die richtige Formatierung entsteht aber erst mit SharpDevelop. Für die Installation dieser Entwicklungsumgebung ist aber MS .NET SDK unter WXP erforderlich. MS .NET Framework und MS .NET SDK kann man auf der Microsoft Webseite frei laden. Dazu sollte wenigstens ein DSL Anschluss benutzt werden, denn es sind große Dateien. Man bekommt diese Dateien aber auch auf CD-ROM in Büchern oder Zeitschriften zum Thema .NET.

Diese Beispiel Applikation zeigt eine einfache Möglichkeit, wie man C-Control mit einem PC steuern kann.

M.L. 04/2004

Meine große Liebe hat mich verraten, als ich 13 war. Jetzt liebe ich Jesus. Ich habe alles, was ich brauche.

Download...
Links...
Logbuch...
Über Mich...

Aktualisierung:
06.07.2009

Diese Webseite ist für IE ab Version 6 optimiert.
Copyright 2001 - 2010
webmaster

Webdesign:
MaLo-WEB