PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erfahrung mit 2bit DAC



dwod
25.08.2006, 20:15
Hallo,

ich habe einen Carter Motorcontroller (das ist so ein professionelles Teil, wie es in Rollstühlen benutzt wird).
Den kann man programmieren wie er sich verhalten soll z.B 0 - max Drehzahl = 0 - 5V am Eingang ; oder 0 - max. Drehzahl = 0- 4V am Eingang.

Für die Ansteuerung wollte ich zwei AVR-Ausgänge nehmen = 2bit = 3 Geschwindigkeiten.

Frage : Hat jemand Erfahrung mit einem R2R DAC ? Geht das mit dem AVR oder gibt es Probleme wenn ich rückwärts Spannung auf den Ausgang gebe ? Oder sollte man die Ausgänge für 0V besser in tri-state schalten ?

Eine alternative hierzu wäre eine Schaltung aus den AVRFREAKS (kann leider keinen Link setzen, da Passwort erforderlich).
Hier lädt ein Ausgang über einen Widerstand einen Kondensator auf. Am Kondensator wird die analoge Spannung abgegriffen, die gleichzeitig auf einen ADC Eingang des AVRs zurückgekoppelt wird.
Ein kleines Programm mißt laufend die Spannung am Kondensator und schaltet dementsprechend den Ausgang.

Hat jemand Erfahrung mit dieser Schaltung in Bezug auf Genauigkeit / Restwelligkeit ?
Der AVR muss ja auch noch andere Programme ausführen.

Andere preiswerte Alternativen ?


Gruss

Wolfgang

alter Mann
26.08.2006, 11:51
Hallo,

ein R2R DAC sieht ungefähr so aus, wie auf dem Bild.
Ein normaler Port am Controller ist ja so etwas wie ein Umschalter. Er schaltet zwischen Vcc und GND um, wenn man mal von OpenCollector oder Tristate Ausgängen absieht.
Bei einer Schaltung wie auf dem Bild ergeben sich bei 5V Versorgungspannung folgende Ausgangsspannungen:

A B U

0 0 0v
0 1 1,66V
1 0 3,33V
1 1 5V

Diese Schaltung kann man nahezu beliebig erweitern, wenn man für jede weitere Stufe den Widerstandswert gegenüber der vorherigen verdoppelt, wodurch sich die auch Auflösung bei jeder Stufe verdoppelt.
Je nach Eingangswiderstand des Motorcontrollers können die Werte etwas nach unten abweichen und die Widerstände müssen etwas angepasst werden.



Hier lädt ein Ausgang über einen Widerstand einen Kondensator auf. Am Kondensator wird die analoge Spannung abgegriffen, die gleichzeitig auf einen ADC Eingang des AVRs zurückgekoppelt wird.


Ich kenne die genaue Schaltung aus den AVRFREAKS nicht, aber das hört sich eher nach einem AD-Wandler an der aus der Ladezeit des Kondensators die anliegende Spannung ermittelt.


Florian

dwod
26.08.2006, 13:01
Danke,
die Schaltung kenne ich.
Die Frage war, wenn ein Port auf low ist nd der andere Port auf high, dann bekommt der erste Port doch Spaanung rückwärts. Machen das die Ports mit ?

Gruss

Wolfgang

Bernhard667
26.08.2006, 14:13
Halllo,

das sollte doch ganz einfach gehen.
Einfach Portpin --> Widerstand -> Analoger Ausgang -> Kondensator nach Masse, RC Tiefpass genannt.
Auf dem Portpin gibst du PWM aus
-> x% Einzeit -> x% von Vcc als analoger Ausgang.
Die Wiederholfrequenz des PWM sollte hoch sein, um die Wellikeit niedrig zu halten.
Sollte der Innenwiderstand deines Motorcontrollers etwas niedrig sei, muß t Du noch einen OP als Impedanzwandler dazwischen schalten.

Werte:
Tau = R * C
R und C so wählen, daß ein Tau raus kommt, daß möglichst hoch ist. Natürlich auch nicht so hoch, daß Du den Motor nicht mehr schnell genug steuern kannst. Auf jeden Fall sollte Tau 5-10 mal die PWM Wiederholrate betragen.

Den Ausgabewert mitttels ADC zurückzulesen ist eine Erfolgskontrolle. Bei sauberer Dimensionierung glatt überflüssig.

Bernhard

alter Mann
26.08.2006, 16:53
Hallo,


Die Frage war, wenn ein Port auf low ist nd der andere Port auf high, dann bekommt der erste Port doch Spaanung rückwärts. Machen das die Ports mit ?

Das kann ich hier nur für Atmel Controller sagen, weil ich mit anderen nicht viel zu tun habe.
Das macht den einzelnen Ports nichts aus, da sie sowohl als Quelle als auch als Senke jeweils 20mA verkraften. Deshalb sollten die Widerstände so berechnet sein, daß maximal 20mA fliessen können.
Angenommen, ein Port ist auf Hi = 5V und der andere auf Low = 0V dann liegen die beiden Widerstände in Reihe zu einander und der Gesamtwiderstand beträgt 750 Ohm.

Rgesamt = 750Ohm; U=5Volt ---> I=6,6mA

Florian