Forum: Mikrocontroller und Digitale Elektronik Einfacher (R2R) 4-Bit DAC mit Referenz-Spannungseingang


von Simon K. (simon) Benutzerseite


Lesenswert?

Hallo Gemeinde,
Ich bastle zur Zeit (nur halb ernstgemeint) einen Stepper-Motor Driver. 
Halb Ernstgemeint deswegen, weil ich nicht weiß ob er tatsächlich auch 
mal aufgebaut wird (Ist eher ein Zeitvertreib :-)).
Das Teil soll natürlich auch einen Chopper-Stromregler, sowie 
Microstepping besitzen.
Das Ganze soll dann über einen CPLD angesteuert werden.

Nun benötige ich für das Microstepping einen DAC (4 Bit wären schon 
genug) um die Referenzspannung einstellen zu können.
Im Prinzip genau den "4-Bit DAC"-Kasten auf Seite 1 des Datenblatts vom 
LMD18245:
http://www.national.com/profile/snip.cgi/openDS=LMD18245
Da das Ganze etwas Richtung Low-Cost und leicht beschaffbare Bauteile 
hingetrimmt werden soll fiel die Wahl ganz klar auf einen R2R DAC.


Allerdings gibt es dabei noch ein Problem:
Der R2R DAC wird aus dem CPLD-Port versorgt (3,3V). Somit ist der 4-Bit 
Einstellbereich zu groß. Angepeilt waren ca. 0-0,5V als 
Referenzspannung.


* Man könnte den "untersten" Widerstand eines R2R DACs durch einen 
Trimmer ersetzen um damit den Stellbereich einzustellen (wenn ich mich 
jedenfalls nicht irre). Allerdings: Ich benötige dann zwei Trimmer (die 
logischerweise getrennt sind), da ich ja bei einem Stepper-Motor den 
Strom von 2 Spulen choppern muss. Idealerweise sollten aber beide 
Chopper genau die gleiche "Referenzspannung" kriegen.

* Ok, noch eine Alternative wäre es, eine niederohmige Referenzspannung 
bereitzustellen und den R2R DAC mittels 4-Fach SPDT Analog-Schalter 
aufzubauen, was allerdings erst mal nur die Notlösung ist, da ein 
solcher Schalter schon relativ teuer ist und nicht unbedingt Standard.

* Bei AvrFreaks habe ich noch einen guten Tipp gelesen: Statt 4-Fach 
Switch einfach ein 74LVX (oder eine andere Familie mit Over-The-Top 
Eingängen) als Pegelwandler zu benutzen. Dabei ist die Referenzspannung 
dann die Versorgungsspannung des Chips.
Problem hierbei: 0,5V Versorgungsspannung sind wohl kaum genug :-)

* Man könnte die Variante 74LVX trotzdem benutzen und die 
"Referenzspannung" von 1,8V - 5,0V variieren lassen und am R2R-DAC 
"durch 4 teilen". Somit könnte man immerhin von 0,5 - 1,2V 
Referenzspannung einstellen.


Natürlich könnte man auch einfach einen normalen (8-Bit ist ja das 
"Kleinste") DAC nehmen, aber ich suche wie gesagt eine einfache Low-Cost 
Methode.
Ich hab mal den Tietze Schenk und den Horowitz durchgeblättert und auch 
nichts aufschlussreiches dazu gefunden. Angeblich gibts im Horowitz ne 
Schaltung wo ein Sinus per Widerstands-DAC und einem Schieberegister mit 
durchlaufender 1 erzeugt wird, allerdings konnte ich die Schaltung nicht 
ausfindig machen ;-)

Vielleicht hat ja jemand einen Tipp für mich, wie man im Prinzip am 
einfachsten einen R2R-DAC mit Referenzspannungseingang aufbaut.

von Purzel H. (hacky)


Lesenswert?

Wie der Name schon sagt  :R2R. Es braucht widerstaende und 
doppelt-Widerstaende. Standard sind 10k & 20k. Als Treiber kann man 
einen 74HC574 verwenden. Wenn man sich innerhalb der 
Versorgungsspannunggrenzen des 574 aufhaelt kann man damit 
multiplizieren.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ja das wäre eine Möglichkeit. Der Referenzspannungsbereich geht dann von 
2,0V - 5,0V. Muss ich mir noch mal überlegen. Der Einstellbereich ist 
dann ja nicht allzu groß.

Mir ist noch die Methode mit einem leicht beschaffbaren CD4053 
eingefallen. Da hätte man aber nur 3 Bits drin. Gleichzeitig braucht man 
eine größer Versorgungsspannung um den Analogbereich hinzukriegen.

Dann bleibe ich eher bei zwei einzelnen Trimmern. Danke Trotzdem! ;-)

von Falk B. (falk)


Lesenswert?

@Simon K. (simon) Benutzerseite

>Der R2R DAC wird aus dem CPLD-Port versorgt (3,3V). Somit ist der 4-Bit
>Einstellbereich zu groß. Angepeilt waren ca. 0-0,5V als
>Referenzspannung.

Schon mal was von enem Spannungsteiler gehört? Einfach den letzten 
Widerstand aufteilen und die geteilte Spannung abgreifen. WOW!

Was willst du hier machen? Probleme lösen, die nicht da sind? Klemm die 
4 Bits an deinen CPLD und fertig. Der hat CMOS-Auagänge, für deinen 4 
Bit DAC mehr als ausreichend.

>Vielleicht hat ja jemand einen Tipp für mich, wie man im Prinzip am
>einfachsten einen R2R-DAC mit Referenzspannungseingang aufbaut.

Siehe oben!

MfG
Falk

P S

K I S S!

Keep it smart and simple!

von Simon K. (simon) Benutzerseite


Lesenswert?

Falk Brunner schrieb:
> @Simon K. (simon) Benutzerseite
>
>>Der R2R DAC wird aus dem CPLD-Port versorgt (3,3V). Somit ist der 4-Bit
>>Einstellbereich zu groß. Angepeilt waren ca. 0-0,5V als
>>Referenzspannung.
>
> Schon mal was von enem Spannungsteiler gehört? Einfach den letzten
> Widerstand aufteilen und die geteilte Spannung abgreifen. WOW!
Ja klar. Habe ich auch im Eingangspost geschrieben. Das Problem ist, 
dass ich zwei Stromregler habe, die beide die gleiche "Referenzspannung" 
ergo die gleiche Poti-Einstellung haben sollen. Also entweder Tandem 
Poti oder irgendwie anders realisieren.

Aber da werde ich einfach zwei einzelne Trimmer einbauen. Muss man halt 
zwei mal den Strom auf einen bestimmten Wert abgleichen.

von Falk B. (falk)


Lesenswert?

@  Simon K. (simon) Benutzerseite

>Ja klar. Habe ich auch im Eingangspost geschrieben. Das Problem ist,
>dass ich zwei Stromregler habe, die beide die gleiche "Referenzspannung"
>ergo die gleiche Poti-Einstellung haben sollen.

Und wo ist das Problem? Einfach beide Eingänge am Motortreiber an deinen 
DAC klemmen.

> Also entweder Tandem Poti oder irgendwie anders realisieren.

???

>Aber da werde ich einfach zwei einzelne Trimmer einbauen. Muss man halt
>zwei mal den Strom auf einen bestimmten Wert abgleichen.

???
Das muss nicht 0,1% genau sein, da braucht man keinen Abgleich, 1% 
Widerstände und gut.

Mfg
Falk

von Simon K. (simon) Benutzerseite


Lesenswert?

Wir reden etwas aneinander vorbei.

Es geht darum, dass man für das Microstepping "Zwischenwerte" für den 
Strom-Chopper erzeugt, wo der Rotor zwischen zwei Rastpunkten gehalten 
wird. Ein Stepper-Motor hat aber 2 Spulen, demnach auch 2 Strom-Chopper. 
(Der Stromchopper ist im wesentlich nur ein schneller Komparator der den 
Motorstrom auf den Sollstrom regelt. Und zwar als Zweipunktregler).

Natürlich unterscheiden sich die Momentanwerte beider Strom-Chopper 
(Während einer Umdrehung verhält sich der Motorstrom in Spule 1 um 90° 
verdreht zum Strom in Spule 2. Gewissermaßen eine Sinus/Cosinus 
Beziehung.

Was ich jetzt machen möchte ist: Ich gebe per Poti die Referenzspannung 
für 2 DACs vor (So wie es auch schon im Thread-Titel steht). 
Referenzspannung heißt: Full-Scale Ausschlag. Dieser soll bei beiden 
Stromchopper-DACs gleich sein. Nun werden über die 4-Bit DACs nur noch 
beide Ströme Sinus/Cosinus-förmig verstellt, wobei aber beide DACs (bzw. 
Sinus/Cosinus) die gleiche Amplitude besitzen sollen.

Wie schon gesagt, es sind zwei einzelne R2R DACs, die aber beide den 
gleichen (einstellbaren) Full-Scale Wert, bzw. die gleiche 
Referenzspannung haben sollen.

Hier ein Bild zur Verdeutlichung:
http://i.cmpnet.com/industrialcontroldesignline/2008/1/microstepping_techniques_fig8.jpg

Ich möchte jetzt über EINEN Trimmer/Poti die "Amplitude" beider 
Sinus/Cosinus-Ströme einstellen können.

von Falk B. (falk)


Lesenswert?

Nimm einen Stereopoti.

MFG
Falk

von Simon K. (simon) Benutzerseite


Lesenswert?

:-) Könnte ich machen. Da ich allerdings Trimmer einsetzen wollte, 
müsste man sowas wie einen Stereo-Trimmer haben. Aber dann nehme ich 
lieber zwei einzelne, einfache Trimmer.

Die Trimmer werden ja nur einmalig auf den maximalen Stepper-Motorstrom 
eingestellt.
Wenn es da keine "einfache" Möglichkeit gibt das über einen Trimmer 
laufen zu lassen, nehme ich halt zwei. Damit kann man ja wohl leben. Man 
könnte damit sogar noch die Toleranz der Shunt-Widerstände ausgleichen.

Und die Trimmer kommen statt dem 2R Widerstand gegen Masse im R2R 
Netzwerk als Spannungsteiler verschaltet. Richtig?

von Falk B. (falk)


Lesenswert?

Ja.

von Peter D. (peda)


Lesenswert?

Simon K. schrieb:
> aber ich suche wie gesagt eine einfache Low-Cost
> Methode.

Low-cost ist, man nimmt einfach nen Chip, wo schon alles komplett drin 
ist, z.B. den TMC222.

http://www.trinamic.com/tmc/render.php?sess_pid=211


Peter

von Simon K. (simon) Benutzerseite


Lesenswert?

Ja, lustig ;-) Sowas suche ich dann mit 6A Spulenstrom. :-)
Allzugünstig sind die Trinamic Chips leider auch nicht. Außerdem: Wo 
bleibt dann noch der Spaß?

von Peter D. (peda)


Lesenswert?

Simon K. schrieb:
> Ja, lustig ;-) Sowas suche ich dann mit 6A Spulenstrom. :-)

Dann eben TMC249 mit externen FETs.


Simon K. schrieb:
> Wo
> bleibt dann noch der Spaß?

War auch mein Eindruck, Dir geht es garnicht um die Kosten, sondern 
darum, alles diskret aufzubauen.


Peter

von Simon K. (simon) Benutzerseite


Lesenswert?

Der TMC249 sieht natürlich auch nicht übel aus. Mit "a few extra 
components" hätte man mit 58V Betriebsspannung genug Reserve um den bei 
den angedachten 48V zu betreiben.

Allerdings wird da wieder irgendein "kluges" Front-End nötig, was das 
Microstepping macht, da der DAC nur über das SPI angesprochen werden 
kann.

Trotzdem werde ich mir den mal abspeichern. Leider kostet der Chip bei 
Abnahme unter 1k Stück auch 10€ :-)

Wie gesagt, es geht darum alles so einfach und damit auch günstig wie 
möglich zu halten.

von Ulirch (Gast)


Lesenswert?

Man kann den Ausgang des R2R DAC einfach runterteilen.  Damit ginge dann 
die Möglichkeit mit dem TreiberIC wie 74xxx244 über die 
Versorgungsspannung.

Eine Alternative wäre es das gemeinsame runterteilen auch Digital zu 
machen, also z.B. über DIP Schalter, oder gleich die R2R Ketten 7 oder 8 
Bit lang.

So teuer sind DA Wandler auch nicht z.B. AD7528 oder MCP4922.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ulirch schrieb:
> Man kann den Ausgang des R2R DAC einfach runterteilen.  Damit ginge dann
> die Möglichkeit mit dem TreiberIC wie 74xxx244 über die
> Versorgungsspannung.
Schon, aber dann kann ich den Treiber auch direkt weglassen, weil der 
CPLD ja schon recht potente Ausgangstreiber drin hat. Den 74XXX hätte 
ich dann zum Multiplizieren genommen (indem ich seine 
Versorgungsspannung ändere).

> Eine Alternative wäre es das gemeinsame runterteilen auch Digital zu
> machen, also z.B. über DIP Schalter, oder gleich die R2R Ketten 7 oder 8
> Bit lang.

> So teuer sind DA Wandler auch nicht z.B. AD7528 oder MCP4922.

8Bit R2R und SPI DACs fallen erstmal aus, da ich das Ganze nicht an 
einem Mikrocontroller verwende, sondern an einem einfachen CPLD.

von Peter D. (peda)


Lesenswert?

Simon K. schrieb:
> 8Bit R2R und SPI DACs fallen erstmal aus, da ich das Ganze nicht an
> einem Mikrocontroller verwende, sondern an einem einfachen CPLD.

Womit willst Du denn den Motor steuern, wenn nicht durch einen MC?
Irgendwer muß ihm doch sagen, wieviel Schritte er fahren soll.
Ich wüßte keine Stepperanwendung, die ohne CPU auskommt.


Peter

von Simon K. (simon) Benutzerseite


Lesenswert?

Peter Dannegger schrieb:
> Simon K. schrieb:
>> 8Bit R2R und SPI DACs fallen erstmal aus, da ich das Ganze nicht an
>> einem Mikrocontroller verwende, sondern an einem einfachen CPLD.
>
> Womit willst Du denn den Motor steuern, wenn nicht durch einen MC?
> Irgendwer muß ihm doch sagen, wieviel Schritte er fahren soll.
> Ich wüßte keine Stepperanwendung, die ohne CPU auskommt.

Mit dem Computer. Ist natürlich auch eine CPU, aber eben kein 
Mikrocontroller, der die nötigen Schnittstellen bereitstellt ;-)

In erster Bastel-Näherung verwendet man üblicherweise den LPT-Anschluss 
für sowas.

von Ulirch (Gast)


Lesenswert?

Ein kleiner µC ist ggf. eine preisgünstige Alternative zum CPLD. Ggf 
gibt es da auch einige wenige gleich mit DAC drin.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.