PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DA Wandler mit SPI-Interface



Ruppi
04.11.2005, 17:09
Hallo!
Suche einen seriellen DA-Wandler, z.B. mit SPI Interface. Wäre schön, wenn Reichelt so einen im Sortiment hätte. Auflösung sollte maximal 8bit sein.

Danke, Ruppi

PicNick
04.11.2005, 18:37
Serielle 8-Bit DA sind eher selten, hab ich schon gesucht. Was sehr oft und leicht zu finden ist, sind 16-Bit serielle Wandler, meist mit zwei kanälen, weil die braucht man in Massen die die ganzen MP3 Bitstream Player usw.
Du könntest ja das Lower Byte immer auf Null setzen, dann hast du ja auch die gewünschte Auflösung.

Ruppi
05.11.2005, 16:51
Hi,
sowas wäre schon super, kennst Du zufällig einen genauen Typ oder auch nur Hersteller? Dann weiß ich, wo ich suchen muss.
Vielen Dank!

Ruppi

PicNick
05.11.2005, 17:15
Schau mal da, ob sowas hinkommt, ev. ein bisschen stöbern

http://www.analog.com/en/prod/0,,AD5543,00.html

PICture
06.11.2005, 07:01
Hallo Rupi!
Das Leben ist leider nicht so schön. Ich denke, dass so ein DAC entweder schwer oder teuer zu beschaffen wäre. Vielleicht wäre es was für Dich?. Ein eifachster seriell-paralell Wandler. Beide IC´s hat der Reichelt i n Angebot. Hier die Skizze.
MfG





Clock Data
V V
| |
| |
| |
.-+----+-. .--------.
| +----------+ |
| +----------+ |
| +----------+ |
| +----------+ |
| 164 +----------+ DAC 08 |-----> U
| +----------+ |
| +----------+ |
| +----------+ |
'--------' '--------'

PicNick
06.11.2005, 08:47
DasZeugs kostet Geld, logo.
Der da kostet konkret bei rs-components 6.30 EUR
http://www.analog.com/en/prod/0%2C2877%2CAD5320%2C00.html

PICture
06.11.2005, 09:09
Wie die meisten hat er Stromausgang, je nach gewünschter Polarität der Ausgangspannung braucht man noch 1 bis 2 OpAmps. Der DAC 08 von Reichelt hat zwar Spannungsausgang aber braucht auch ein OpAmp, wenn die Spannung mit dem Eigangswert in positiver Richtung wachsen soll.
MfG

Ruppi
06.11.2005, 10:26
Oh, das wusste ich nicht. Heist das, dass jeder DAC einen OP braucht? Dachte, man könnte direkt eine analoge Spannung erzeugen!? So langsam denke ich, ich mache das besser mit einem R2R Netzwerk. Ich möchte einen Sinusförmigen Spannungsverlauf erzeugen, dazu habe ich auch gleich noch eine Frage: ich weiß, dass es möglich ist, die einzelnen Bits eines R2R-DA's so auszulegen, dass jede Abstufung auf einer Sinuskurve liegt. Aber wie legt man sowas aus? Habe schön kräftig gegoogelt, aber nie was dazu gefunden. Hoffe, das war verständlich ausgedrückt.
Vielen Dank für eure Hilfe!
Ruppi

Jan_Weber
06.11.2005, 10:31
Einen 16-Bit-DAC einzusetzen, wenn man nur 8 Bit braucht, ist wirklich Verschwendung. Und das die 8-Bit-Typen selten sind, stimmt auch nicht. Es mag sein, dass Reichelt keine gute Auswahl auf diesem Gebiet hat. Das IC von Analog hat auch ein ziemlich haariges Gehäuse.

Schau mal bei http://www.maxim-ic.com/ nach, über die parametrische Suche kannst du SPI und 8 Bit kombinieren. Von Maxim gibt es zum Beispiel den MAX533 bei Reichelt, allerdings läuft der nur bei 2,7 - 3,6 V.

Da bräuchtest du halt einen Spannungsteiler in den Steuerleitungen. Das ist aber kein Problem.

Wenn es nicht unbedingt SPI sein muss sondern nur generell seriell sein sollte, dann könntest du auch den TLV5628 von TI verwenden.

Gruß,

Jan

Ruppi
06.11.2005, 10:36
@PICture: die Idee hatte ich auch schon, nimmt mir aber leider sehr viel platz auf der Platine und die möchte ich ungern vergrößern, trotzdem Danke!

PICture
06.11.2005, 10:42
@Ruppi
Nichts zu danken!
Viel Spass und Erfolg! :)
MfG

Jan_Weber
06.11.2005, 10:50
Oh, das wusste ich nicht. Heist das, dass jeder DAC einen OP braucht? Dachte, man könnte direkt eine analoge Spannung erzeugen!? So langsam denke ich, ich mache das besser mit einem R2R Netzwerk. Ich möchte einen Sinusförmigen Spannungsverlauf erzeugen, dazu habe ich auch gleich noch eine Frage: ich weiß, dass es möglich ist, die einzelnen Bits eines R2R-DA's so auszulegen, dass jede Abstufung auf einer Sinuskurve liegt. Aber wie legt man sowas aus? Habe schön kräftig gegoogelt, aber nie was dazu gefunden. Hoffe, das war verständlich ausgedrückt.
Vielen Dank für eure Hilfe!
Ruppi

Na, das stimmt so nicht. Mit einer R2R-Leiter baust du generell eine digital einstellbare Stromquelle, denn bei fester Referenzspannung und digital verstellbarem Widerstand resultiert ein einstellbarer Strom, logisch. Es würde auch ein Widerstand reichen, um einen Strom wieder in eine Spannung zu verwandeln (->Ohmsches Gesetz). Mit einem I/U-Konverter in Form eines Opamps hat man aber diverse Vorteile. Es gibt aber durchaus eine Menge Spannungs-DACs. Die Technologien sind gleich stark vertreten. Es kommt halt einfach auf das IC an. Es gibt ja auch R2R-DACs mit integriertem I/U-Konverter, so dass eine Spannung am IC anliegt.

Das Stichwort nach dem du suchen musst ist "asymmetrischer DAC" oder "Binary Weighted DAC". So werden zum Beispiel auch Videosignale mit einem AVR erzeugt.

Vielleicht habe ich hier eine passende Schaltung, ich sehe noch mal nach.

Jan

PICture
06.11.2005, 12:05
@Ruppi!
Eine sinusförmige Spannung kannst Du mit R2R nur mit anlegen fur jeden Punkt der Sinuskurve ensprechenden bits. Um das ohne R2R zu erzeugen brauchst Du fur jeden punkt der Sinuskurve entweder eine einschaltbare Konstantstromquelle und ein gemeinamer Resistor, oder eine gemeinsame Konstantstromquelle und eischaltbare Resistoren. Die R2R methode ist Hardwaremessig einfacher.
MfG

bluelight_electronic
06.11.2005, 12:29
hmm,


wenn du nen Sinus Generieren willst nimm nen Sinusgenerator ^^,

(z.b. den ML2036) kannst von DC zu 50KHz Frequenzen einstellen (Per SPI)
oder den MAX038 (gut kostet bissl aber kann auch viel !!!) 0 - 20Mhz.
und auch nich nur Sinus sondern rechteck sägezahn ......


ML2036 http://katalog.elektroda.net/download.php?id=112165
MAX038 http://www.qsl.net/n9zia/siggen/MAX038.PDF


ein IC und gut ^^ (musst dich nich groß verkopfen..) den MAX gibts bei musterbymaxim oder C***** ooder ELV (wie gesagt kostet einiges aber kann auch viel ;). Den ml bekommst (für knapp die hälfte bei farnell)

PICture
06.11.2005, 12:35
@Ruppi
... oder den "alten" ICL 8038" vom Reichelt (2,65 EUR). :)
MfG

Jan_Weber
06.11.2005, 12:51
Da is aber nix mit digital. Den kannst du nur über eine Spannungs steuern (gilt für beide, MAX038 und ICL8038).

Jan

PICture
06.11.2005, 13:00
Genau, dazu brauchst Du nur D/A Wandler und .... :)
MfG

bluelight_electronic
06.11.2005, 13:03
dafür ebend der ml2036... kommt eben drauf an was man machen will ...(kannst ja mit dem DA wieder auf den Max gehn ...) oder eben den ML nehmen der hat spi..

Jan_Weber
06.11.2005, 16:08
Wenn es wirklich ein Sinus sein soll, ist eine Generierung über einen PWM-Port mit einer Sinustabelle im ROM auch nicht weiter schwierig (wenn du die Resourcen im Prozessor noch offen hast). Mit einem guten Filter kommst du einem Sinus sehr nahe.

Jan

Ruppi
06.11.2005, 18:50
Ok, das waren zu wenig Info's, wir kommen vom Thema ab. Frequenzgeneratoren wie z.B. der 8038 kommen nicht in Frage, ebensowenig PWM und dies aus folgendem Grund: Ich brauche die Sache für eine Mikroschritt-Schrittmotorsteuerung. Bisher habe ich dies mit 6bit-fast-PWM gemacht, läuft auch gut, allerdings ist die anschließende Filterung (2.Ordnung) etwas aufwendig und hohe Schrittfrequenzen schwer möglich. Die bessere Variante wäre in jedem Fall ein DA Wandler, aber möglichst so, dass sich jedes Bit für einen Mikroschritt nutzen lässt. Daher wäre mir ein für einen sinusförmigen Spannungsverlauf optimerter "selbstbau" R2R Wandler am liebsten. Im Prinzip würden 5 bits völlig ausreichen.

Ruppi

Jan_Weber
06.11.2005, 19:58
Ich glaube, dass man das Prinzip eines R/2R-DAC nicht zur Generierung von Sinuskurven optimieren kann. Die sich abschwächende Steigung eines Sinus kannst du damit nicht nachbilden, da immer wieder die gleichen LSB mit ihren festen Werten verwendet werden und der Anstieg eines Sinus bei sagen wir 0-10 Grad ein ganz anderer ist als bei 80 - 90 Grad. Das Prinzip R/2R funktioniert aber nur, wenn die Steigung konstant ist. Keine sehr gute Erklärung, aber ich glaube, dass das gedanklich richtig ist.

Ich wollte auch eine Mikroschrittendstufe mit einem µC aufbauen, habe mich dann aber zu einer hartverdrahteten Logik umentschieden, da sie einfach schneller ist. Ich habe die Kurvenzüge in zwei EPROMs abgelegt(da reicht ja selbst ein 27C16 für die zillionenfache Datenmenge aus), der Datenbus führt zu je einem AD7524 DAC. Zähler in einem CPLD sind für die Adressgenerierung da. Der µC tickert nur die Zähler rauf und runter, das macht ein Timerinterrupt.

Jan

Ruppi
07.11.2005, 12:07
Das mit dem Eeprom ist ne interessante Sache, aber wie genau funktioniert das? Man legt also einfach die entsprechenden Werte (bits) im Eeprom ab und spricht die richtigen Addressen an. D.h. die verschiedenen Mikroschritte sind sicher in Array's im µC abgelegt, oder? Leider kenne ich mich mit Zählern nicht so aus, ist aber vom Prinzip klar. Nur was ist ein CPLD? Kannst Du vielleicht eine kleine Skizze für die Ansteuerung des Zählers bis DAC geben? Klingt nach der besten Variante, die man treffen kann.

Vielen Dank, Ruppi

Jan_Weber
07.11.2005, 19:55
Hallo Ruppi,

ein CPLD ist ein programmierbarer Logikbaustein, größer als ein GAL, kleiner als ein FPGA. Ich habe so ein IC genommen, da ich noch ein paar Sonderfunktionen mit in die Schaltung aufgenommen habe, die wenn sie aus Einzel-ICs aufgebaut worden wären, die Schaltung aufgebläht hätten.

Für einen bipolaren Motor brauchst du zwei EPROMs, zwei DACs und eine Zählereinheit. Die gilt für beide EPROMs, da die Mikrostep-Spannungsfolgen ja konstant 90° auseinander sein müssen.

In ein EPROM schreibst du also einen Sinus von 0-360° und in das andere den Cosinus 0-360°, beginnend mit ADresse 0. Die Anzahl der einzelnen Sinussegmente bestimmt die erreichbare Schrittzahl, ist klar.

Ich habe dir gerade mal den Schaltplan gezeichnet.

http://img432.imageshack.us/img432/3817/mstep7bo.png

/Reset ist low aktiv und setzt die Zähler gleich 0, Dir legt die Drehrichtung fest und ein Puls an Step bewirkt einen einzelnen Schritt.

Der Prozessor muss also für jeden Schritt nur einmal einen Port toggeln. Von der Frequenz, mit der das passiert, ist die Verfahrgeschwindigkeit abhängig. Die Pulse habe ich mit einem Timer-interrupt erzeugt. Der Prozessor muss sonst keine intelligenten Aufgaben im Zusammenhang mit der Steuerung wahrnehmen.

Der Analogteil ist nicht mitgezeichnet. Der AD7524 ist ein r2r-DAC und braucht einen I/U-Konverter (im Datenblatt ist eine Standardapplikation).

Jan