|

DA Wandler oder PWM Ausgang?
Funktion und Nutzung der DA Ausgänge
bei C-Control M-Unit
C-Control M-Unit hat zwei Ausgänge mit der Bezeichnung
DA (Digital Analog) Wandler. Auf den ersten Blick könnte
man annehmen, das diese Ausgänge die umgekehrte Funktion der acht
AD (Analog Digital) Wandler haben, welche eine Gleichspannung
in einen Digitalwert wandeln, der von einem Mikrocontroller verarbeitet
werden kann. Es handelt sich aber um PWM (Pulse Width Modulation)
Ausgänge.
Bei PWM wird der Ausgang mit einer konstanten Frequenz
angesteuert. Bei der M-Unit 2.x beträgt der Wert etwa 1,95KHz. Schreibt
man nun in das Register für den PWM Ausgang einen Wert, verändert
man nicht die Frequenz sondern das Verhältnis der Zeit in welcher
der Ausgang HIGH oder LOW ist. Der DA Ausgang einer M-Unit kann also,
genau wie jeder andere Digitalport, nur die Werte HIGH oder LOW annehmen.

Das Bild zeigt den Impulsverlauf bei der
M-Unit 2.x mit einem DA Wert von 0. Eine Periode der 1,95KHz Schwingung
dauert 512µs. Davon ist der Port 2µs HIGH die restliche Zeit
LOW.
Wird das DA Register mit dem Wert 127 beschrieben
ist der Port jeweils die Hälfte der Zeit HIGH oder LOW.

Bei einem Wert von 255 wird der Port für
510 µs HIGH und für 2µs LOW sein.
Die Register der DA Wandler der M-Unit können
mit 8Bit beschrieben werden. Es sind also 256 Zustände möglich.
Nach dem Einschalten steht der Wert 0 in den DA Registern. Wird ein DA
Register beschrieben, behält es seinen Wert solange, bis es neu beschrieben
wird. Nach einem Reset oder einem Stromausfall steht wieder der Wert 0
im Register. Will man nach einem Reset oder Stromausfall einen bestimmten
oder den letzten Zustand erhalten, muss man selbst als Programmierer dafür
sorgen. Bei der Beschaltung eines DA Ausganges sind die gleichen Regeln
zu beachten, wie bei einem normalen digitalen Port der M-Unit.
PWM eignet sich gut um die aufgenommene Leistung
von Verbrauchern zu steuern.

Das Bild zeigt ein Beispiel um die Helligkeit
einer LED zu verändern.
Ein Beispiel Programm in CC-Basic:
define poti AD[1] define ausgang DA[1] ' #loop ausgang = poti goto loop
Die 8Bit Werte am AD1 werden ständig
in das Register von DA1 geschrieben. Eine Änderung von P1 bewirkt
eine Änderung des AD1 Wertes und somit eine Änderung des DA1
Wertes. Die LED wird sehr schnell, abhängig vom DA1 Wert, Ein- und
Ausgeschaltet. Das menschliche Auge kann der 1,95KHz Frequenz nicht folgen.
Wir sehen deshalb eine Helligkeitsänderung der LED wenn das Poti
P1 verändert wird. Da bei der M-Unit 2.x bei einem DA1 Wert von 0
die Einschaltzeit 2µs beträgt, kann eine LED immer noch schwach
leuchten, wenn das Poti P1 ganz nach GND gestellt wurde.

Mit dieser Schaltung kann man an A1 und A2
stärkere Verbraucher ansteuern. Möglich sind z.B. Gleichstromverbraucher
wie Halogenlampen, Motoren oder Heizkörper. Der eingesetzte HEXFET
POWER MOSFET kann mehr als 10A bei etwa 50V schalten.
R1 verhindert mit C1 bei einem DA Registerwert von 0, das T1 noch angesteuert
wird. Da T1 im reinen Schalterbetrieb arbeitet, entsteht nur eine geringe
Verlustleistung. Deshalb benötigt T1 keinen Kühlkörper. Wenn man induktive Lasten ansteuert, sollte man die übliche Diode gegen induktive Spannungen nicht vergessen.
Dies ist ein Beispiel. Bei der Auswahl von T1 für konkrete Anwendungen
sollte man die Datenblätter lesen. Man muss für solche Leistungsanwendungen
auch die Versorgungsspannungen zwischen Leistungsteil und M-Unit sorgfältig
trennen. Es ist zu beachten, dass ein Verbraucher die mit T1 geschaltete
Spannung auch verträgt.
Besonders bei induktiven Verbrauchern, wie Motoren, kann es vorkommen,
dass man die PWM Frequenz (etwa 1,95KHz) wahrnimmt, da diese Frequenz
in den Hörbereich des Menschen fällt.
Das Beispiel zeigt die Steuerung mit P1. Was im Register DA1 tatsächlich
steht ist aber von den Ideen des Programmierers abhängig und somit
ein weites Betätigungsfeld.

Mit einem RC Filter kann man aus einem PWM
Signal ein echtes Analogsignal machen. Das Bild zeigt den einfachsten
Weg. Diese Schaltung wurde auf dem Starter Board C-Control1 der ersten
Generation eingesetzt. Mit einem hochohmigen Voltmeter kann man am Ausgang
A eine Spannung zwischen 0 und 5V messen. Die Auflösung beträgt
5V/256 etwa 20mV. Der Nachteil dieser Schaltung ist der relativ große
Innenwiderstand und die hohe Restwelligkeit.

Ein aktives Filter mit IC1 als Spannungsfolger
kann diese Werte verbessern. Ein OPV LM358 kann fast bis 0V auf der GND
Seite gesteuert werden. Um am Ausgang eine Spannung von 5V zu erreichen
muss UB am IC1 etwa 6,5V betragen. Hat man nur 5V als Spannungsversorgung
gibt es die Möglichkeit einen RAIL TO RAIL OPV (z.B. AD822) einzusetzen.
Diese speziellen OPV können bis auf wenige mV an die Betriebsspannung
gesteuert werden.
Will man höhere Spannungen als 5V steuern,
muss man die 5V verstärken.
Einfache Beispiele findet man auf meiner Webseite:
M.L. 09/2005
|