-         
Ergebnis 1 bis 5 von 5

Thema: Erfahrung mit 2bit DAC

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.07.2006
    Beiträge
    149

    Erfahrung mit 2bit DAC

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    05.07.2006
    Ort
    Kassel
    Beiträge
    264
    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
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken 2bit_da.jpg  

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    16.07.2006
    Beiträge
    149
    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

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.04.2005
    Beiträge
    181
    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

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    05.07.2006
    Ort
    Kassel
    Beiträge
    264
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •