Forum: Mikrocontroller und Digitale Elektronik DAC Empfehlung für Arduino?


von A. A. (dieahnungslosen)


Lesenswert?

Hallo, ich suche einen DAC (bevorzugt mit einer bestehenden Libary) um 
folgendes zu tun: Der Arduino soll ein 3-bit Signal das er an seinen 
Pins empfängt auswerten. je nach dem welches Signal angibt, soll die 
Ausgangspannung des DACs angepasst werden (also zum Beispiel bei einer 
dezimalen 4 -> 3V, bei einer 2 ->1V,...). Das Signal wechselt alle 80ms. 
Habt ihr eine Empfehlung für einen DAC, der möglichst schnell das Signal 
ausgibt. Die Auflösung sollte dabei mindestens 8 bit betrgen.
Vielen Dank schonmal im Voraus!

von Wilhelm M. (wimalopaan)


Lesenswert?

Nimm einen AVR mit eingebautem DAC.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Adrian A. schrieb:
> Habt ihr eine Empfehlung für einen DAC, der möglichst schnell das Signal 
ausgibt.
Ist dir klar, dass dass die Forderung "möglichst schnell" automatisch 
"möglichst teuer" ergibt?

Fazit: man sucht nicht nach einem "möglichst schnellen" Bauteil, sondern 
einem, das "hinreichend schnell und bezahlbar" ist.

Und um das abwägen zu können, muss man wissen, woher das Signal kommt 
und was damit hinterher gemacht werden soll.

Du musst also passend zur "Mindestauflösung" eine 
"Mindestgeschwindigkeit" angeben.

> Der Arduino soll ein 3-bit Signal das er an seinen Pins empfängt
> auswerten.
Schnarchlangsam. Nimm irgendeinen DAC.

> Das Signal wechselt alle 80ms.
Schnarchlangsam. Nimm irgendeinen DAC.

: Bearbeitet durch Moderator
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Adrian A. schrieb:
> der möglichst schnell das Signal ausgibt.

"Möglichst schnell" bedeutet, dass Du offenbar einen DAC mit einer 
möglichst hohen Wandlungsrate und/oder Latenz suchst. Das ist jedoch im 
Zusammenhang mit einem Arduino ziemlich sinnlos, denn dessen 
Bearbeitungszeit für die Zustandsänderungen an den Eingangpins liegt ja 
schon bei etlichen Mikrosekunden. Folglich täte es jeder DAC ab 100 
kS/s, vermutlich auch noch deutlich langsamer.

Oder legst Du allergrößten Wert darauf, einen sehr teuren DAC auf eine 
sehr teure Leiterplatte in Sonderausführung zu packen und das ganze 
aufwändig zu temperieren? Möchtest Du Dir bei "möglichst schnell" ggf. 
auch noch einen Haufen Bürokratie ans Bein binden, d.h. mit dem 
Wirtschaftministerium darüber verhandeln, ob Du den DAC überhaupt kaufen 
und importieren darfst? Ggf. musst Du regelmäßig über dessen Verbleib 
berichten. Gerade angesichts der aktuellen Lage in der Ukraine könnte es 
schon beträchtliche Auflagen geben, damit der DAC nicht in russische 
Hände gerät.

"Möglichst schnelle" DAC werden nämlich überwiegend z.B. in 
militärischen Radarsystemen o.ä. eingesetzt.

> Die Auflösung sollte dabei mindestens 8 bit betrgen.

Das ist bei "normalen" DACs eine übliche Untergrenze. Damit dürfte fast 
jeder DAC passen.

Viel wichtiger ist jedoch die Art des gewünschten Ausgang: Strom oder 
Spannung, unipolar oder bipolar, mit oder ohne integriertem Verstärker, 
mit oder ohne interne Referenzspannung?

: Bearbeitet durch User
von Georg M. (g_m)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Adrian A. schrieb:
> Das Signal wechselt alle 80ms.
> Habt ihr eine Empfehlung für einen DAC, der möglichst schnell das Signal
> ausgibt. Die Auflösung sollte dabei mindestens 8 bit betrgen.

Da sollte die fast PWM mit RC-Filter ausreichen.

von Sebastian W. (wangnick)


Lesenswert?

Adrian A. schrieb:
> Habt ihr eine Empfehlung für einen DAC, der möglichst schnell das Signal
> ausgibt. Die Auflösung sollte dabei mindestens 8 bit betrgen.
> Vielen Dank schonmal im Voraus!

Ich würde als Arduino einen Teensy 3 oder 4 nehmen. Die haben einen 
eingebauten DAC, und der lässt sich einfach über analogWrite() steuern.

LG, Sebastian

von Harald A. (embedded)


Lesenswert?

Adrian A. schrieb:
> Das Signal wechselt alle 80ms.
> Habt ihr eine Empfehlung für einen DAC, der möglichst schnell das Signal
> ausgibt. Die Auflösung sollte dabei mindestens 8 bit betrgen.

Wenn Du hier im Forum "möglichst schnell" sagst, hast Du sofort das 
Problem am Hals, dass Du die Geschwindgkeit konkret benennen sollst. 
Schlimmer noch, ruck zuck werden Dir Lösungen aus dem High-End Bereich 
geraten, die Du vermutlich nicht brauchst. Suche doch einfach nach 
"arduino dac", suche Dir einen schicken Wandler aus und schaue in das 
Datenblatt des verwendeten Typs, ob Dir die Änderungsgeschwindigkeit 
reicht. Bedenke auch, dass je nach gewähltem Interface SPI oder I²C auch 
eine gewisse Zeit für jeden Wechsel draufgeht, bei SPI tendentiell 
weniger. Eine fertige Lib wird es in fast allen Fällen geben. Für 
Arduino ist alles mögliche bereits umgesetzt.

Ich weiß es natürlich nicht, aber vermutlich kannst Du da so ziemlich 
ALLES nehmen.

: Bearbeitet durch User
Beitrag #7415372 wurde vom Autor gelöscht.
von Ingo L. (corrtexx)


Lesenswert?

Adrian A. schrieb:
> Die Auflösung sollte dabei mindestens 8 bit betrgen.
Warum 8-Bit, wenn du nur 3-Bit bzw. 8 Stufen hast? Reicht nicht einfach 
ein R2R-Netzwerk an 3 IOs?

von Ralph S. (jjflash)


Lesenswert?

Adrian A. schrieb:
> Die Auflösung sollte dabei mindestens 8 bit betrgen.

Wenn du nur ein 3 Bit Signal hast, warum sollte dann die Auflösung 8 Bit 
betragen?

Außerdem: Der höchste Zustand eines 3 Eingangs entspricht 7. Wenn du 
hierfür (wie in der Annahme einer Extrapolation) am Ausgang des DAC 6V 
haben möchtest wird das i.a.R. nicht funktionieren, hierfür mußt du dem 
DAC einen Verstärker nachschalten.

Wenn du also "nur" die 3 Bit "analogisieren" möchtest, reichen dir für 
die Auflösung dann sogar nur 3 Bit.

Natürlich kannst du ein analoges Signal mittels PWM und nachgeschaltetem 
Tiefpassfilter erreichen, für den Fall jedoch, dass du tatsächlich nur 
die 3 Bit analogisieren möchtest würde ein R2R Netzwerk (mit auch hier 
nachgeschaltetem Verstärker) schon reichen.

von A. A. (dieahnungslosen)


Lesenswert?

Ralph S. schrieb:
> Wenn du nur ein 3 Bit Signal hast, warum sollte dann die Auflösung 8 Bit
> betragen?

Die verschiedenen Signale des 3 bit signals stehen für Gruppen. Der 
Arduino soll erkennen, welche Gruppe gerade ausgewählt ist und dann eine 
vorher definierte SPannung ausgeben. Die Gruppen "fordern" 
unterschiedliche Spannungen.

von Ingo L. (corrtexx)


Lesenswert?

Adrian A. schrieb:
> welche Gruppe gerade ausgewählt ist und dann eine
> vorher definierte SPannung ausgeben. Die Gruppen "fordern"
> unterschiedliche Spannungen.
Also gibst du nicht eine Spannung pro Gruppe aus, sondern einen 
Spannungsverlauf! Das wäre jetzt nicht unwichtig gewesen...

Adrian A. schrieb:
> Der Arduino
Dann hat DER Arduino bestimmt 8-Pins frei => R2R-Netzwerk. Einfach, 
genau und schnell. Kleinen OPV dahinter und dann kannst du deine 
Melodien ausgeben.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Adrian A. schrieb:
> Die verschiedenen Signale des 3 bit signals stehen für Gruppen. Der
> Arduino soll erkennen, welche Gruppe gerade ausgewählt ist und dann eine
> vorher definierte SPannung ausgeben. Die Gruppen "fordern"
> unterschiedliche Spannungen.
Wenn das mit dem gewichteten Widerständen nicht möglich ist, dann könnte 
ich mir aber auch
1. einen Spannungsteiler und einen Analog-Multiplexer oder
2. einen Digitalmultiplexer und einem nachfolgenden Spannungsteiler

vorstellen. Dann muss ich mangels µC nichts programmieren und bin zudem 
"so schnell wie möglich".
1
1.
2
   5V ---o----  
3
         |        E2 E1 E0
4
         R1       |  |  |
5
         |     .----------.
6
         o-----|          |
7
         |     |          |           
8
         R2    | 8:1 Mux  |
9
         |     | analog   |
10
         o-----|          |--------- Uout
11
         :          :
12
         :          :
13
         o-----|          |
14
         |     |          |           
15
         R8    |          |
16
         |     |          |
17
         o-----|          |
18
         |     '----------'
19
         R9    
20
         |     
21
 GND ----o----
22
23
2.
24
5V ------------o--------------------------------
25
               |
26
        .-----------.
27
        |           |---->|--R1--. 
28
E2 -----|           |---->|--R2--o              
29
        |           |---->|--R3--o   
30
E1 -----|           |---->|--R4--o 
31
        |           |---->|--R5--o 
32
E0 -----|           |---->|--R6--o 
33
        |           |---->|--R7--o 
34
        |           |---->|--R8--o-----> Uout
35
        '-----------'            |
36
               |                R9
37
               |                 |
38
GND -----------o-----------------o------------

: Bearbeitet durch Moderator
von Peter D. (peda)


Lesenswert?

Ingo L. schrieb:
> Dann hat DER Arduino bestimmt 8-Pins frei => R2R-Netzwerk. Einfach,
> genau und schnell.

Kannst voll knicken. Mit üblichen 1% Widerständen schaffst Du nichtmal 7 
Bit Genauigkeit. Von den Fehlern durch den Innenwiderstand der 8 
Treiberstufen und Störungen auf GND/VCC mal ganz abgesehen.

Eine PWM hat den Vorteil, daß sie automatisch streng monoton ist. Und 
mit einem Single-Gate hinter dem MC kann man sie bequem mit sauberem 
GND/VREF versorgen.
Bei 16MHz F_CPU hat die 8Bit-PWM 62kHz, die kann man bequem wegfiltern.

: Bearbeitet durch User
von Wilhelm M. (wimalopaan)


Lesenswert?

Georg M. schrieb:
> Wilhelm M. schrieb:
>> Nimm einen AVR mit eingebautem DAC.
>
> Z.B.:
> https://www.microchip.com/en-us/product/AVR32EA28

Oder einen tiny1 (8bit) oder DA, DB, DD (und EA) (10bit).

Da kann man sich dann das ganze externe Geraffel (R2R incl. Buffer) 
sparen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Ingo L. schrieb:
> Dann hat DER Arduino bestimmt 8-Pins frei => R2R-Netzwerk. Einfach,
> genau und schnell. Kleinen OPV dahinter und dann kannst du deine
> Melodien ausgeben.

Ein selbstgebasteltes R2R-Netzwerk ist alles, aber nicht genau. Bei 8 
Bit Auflösung und z.B. 1%-Widerständen wäre nicht einmal die Monotonie 
sichergestellt. Und der Verdrahtungsaufwand wäre auch höher als bei 
einem schnöden 8-Bit-DAC mit Paralleleingang. Die uralte Gurke ZN426 
wäre hierfür perfekt.

Wir wissen aber noch nicht, welche Anforderungen an das Ausgangssignal 
bestehen. Wohin soll es geführt werden? Soll der Ausgang kurzschlussfest 
und/oder strombegrenzt sein. Welches ist der maximale 
Ausgangsspannungsbereich? Ggf. wäre auch ein DAC mit entsprechender 
Signalaufbereitung am Ausgang sinnvoll, da sich damit sehr viel 
Außenbeschaltung einsparen lässt. Mit DACs wie z.B. AD5753 oder AD 5758 
lassen sich äußerst kompakte Wandler mit per SW konfigurierbarem Ausgang 
(Spannung/Strom, unipolar/bipolar, usw.) realisieren, aber der Baustein 
ist so mächtig, dass man ihn nicht mal in fünf Minuten konfiguriert 
bekommt.

Bevor hier irgendwelche Unterstellungen bezüglich Kanonen auf Spatzen 
kommen: ich empfehle nicht unbedingt einen AD575x, sondern zeige nur 
auf, wie kompakt sich heute die Signalaufbereitung integrieren lässt.

von A. A. (dieahnungslosen)


Lesenswert?

Lothar M. schrieb:
> Wenn das mit dem gewichteten Widerständen nicht möglich ist, dann könnte
> ich mir aber auch
> 1. einen Spannungsteiler und einen Analog-Multiplexer oder
> 2. einen Digitalmultiplexer und einem nachfolgenden Spannungsteiler

Das ist auch ein Ansatz von mir gewesen, jedoch sollen die Spannungen 
der einzelnen "Gruppen" auch veränderbar sein (mindestens 3 verschiedene 
Werte je Gruppe). Das wären dann einige Wierstände und für ein neues 
Projekt müsste ich die Widerstände alle neu dimensionieren,...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Adrian A. schrieb:
> Der Arduino soll erkennen, welche Gruppe gerade ausgewählt ist und dann
> eine vorher definierte SPannung ausgeben.
Und wie "möglichst schnell" muss diese Gruppenauswahl geschehen?

Peter D. schrieb:
> Bei 16MHz F_CPU hat die 8Bit-PWM 62kHz, die kann man bequem wegfiltern.
Allerdings ist man da dann in der Analogtechnik unterwegs und muss 
Dämpfungen und Grenzfrequenzen und so ein Zeug herleiten:
- http://www.lothar-miller.de/s9y/archives/11-RC-Glied-fuer-PWM.html

Da ist es dann gut, wenn man weiß, dass 1 Bit zusätzlicher Auflösung dem 
Faktor 2 und damit 6 dB entsprechen.

> schaffst Du nichtmal 7 Bit Genauigkeit.
Würde mich nicht sehr wundern, wenn das auch schon reichen täte... ;-)

: Bearbeitet durch Moderator
von Ingo L. (corrtexx)


Lesenswert?

Adrian A. schrieb:
> Das ist auch ein Ansatz von mir gewesen, jedoch sollen die Spannungen
> der einzelnen "Gruppen" auch veränderbar sein (mindestens 3 verschiedene
> Werte je Gruppe). Das wären dann einige Wierstände und für ein neues
> Projekt müsste ich die Widerstände alle neu dimensionieren,...
Solange du nicht mehr Infos hinsichtlich Geschwindigkeit und Genauigkeit 
rausrückst, stochern wir im Nebel und du bekommst u.U. unnütze Lösungen 
unterbreitet.

von Ralph S. (jjflash)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ralph S. schrieb:
> https://www.falstad.com/circuit/circuitjs.html
Realisiere mit dieser Schaltung mal das hier:
1
E2 E1 E0 ->  dez  -> Uout/V
2
0  0  0      0       3,5 
3
0  0  1      1       2,7
4
0  1  0      2         0
5
0  1  1      3       4,7
6
1  0  0      4       2,2
7
1  0  1      5       1,9
8
1  1  0      6       3,3
9
1  1  1      7       0,6

: Bearbeitet durch Moderator
von A. A. (dieahnungslosen)


Lesenswert?

Andreas S. schrieb:
> "Möglichst schnell" bedeutet, dass Du offenbar einen DAC mit einer
> möglichst hohen Wandlungsrate und/oder Latenz suchst. Das ist jedoch im
> Zusammenhang mit einem Arduino ziemlich sinnlos, denn dessen
> Bearbeitungszeit für die Zustandsänderungen an den Eingangpins liegt ja
> schon bei etlichen Mikrosekunden. Folglich täte es jeder DAC ab 100
> kS/s, vermutlich auch noch deutlich langsamer.

Kann ich mir ausrechnen wielange ein Arduino Nano braucht um das 3 bit 
Signal zu verwerten und dann etwas schalten/Daten an einen DAC 
senden,...?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Adrian A. schrieb:
> Kann ich mir ausrechnen wielange ein Arduino Nano braucht um das 3 bit
> Signal zu verwerten und dann etwas schalten/Daten an einen DAC
> senden,...?
Rechnen ist schwierig, aber geh mal bei Verwendung eines SPI-DACs von 
100µs aus. Dann hast du genügend Luft für die lansgsamen IO-Routinen des 
Arduino.

Aber wie wäre es, wenn du einfach mal sagst, wie lange das dauern 
darf?

Oder viel, viel einfacher, dass du beantwortest, was ich schon lange mal 
gefragt habe,

als ich schrieb:
> Und um das abwägen zu können, muss man wissen, woher das Signal kommt
> und was damit hinterher gemacht werden soll.

: Bearbeitet durch Moderator
von A. A. (dieahnungslosen)


Lesenswert?

Lothar M. schrieb:
> Rechnen ist schwierig, aber geh mal bei Verwendung eines SPI-DACs von
> 100µs aus. Dann hast du genügend Luft für die lansgsamen IO-Routinen des
> Arduino.

Du würdest also SPI als Schnittstelle verwenden?

von A. A. (dieahnungslosen)


Lesenswert?

Lothar M. schrieb:
>> Und um das abwägen zu können, muss man wissen, woher das Signal kommt
>> und was damit hinterher gemacht werden soll.

Tut mir leid. Also der gesamte Ablauf ab Signalempfang sollte max 10 ms 
dauern (je schneller desto sicherer). Das signal kommt von einem IC und 
die Spannungen werden dann vor einem ADC eingespeist

von Ingo L. (corrtexx)


Lesenswert?

Adrian A. schrieb:
> Tut mir leid. Also der gesamte Ablauf ab Signalempfang sollte max 10 ms
> dauern
In der Zeit berechnest du die Laufbahn eines Kometen für die nächsten 
100 Jahre ganz nebenbei...

von A. A. (dieahnungslosen)


Lesenswert?

Ingo L. schrieb:
> In der Zeit berechnest du die Laufbahn eines Kometen für die nächsten
> 100 Jahre ganz nebenbei...

Optimal wäre alles unter 1ms

von Εrnst B. (ernst)


Lesenswert?

Adrian A. schrieb:
> Das signal kommt von einem IC und
> die Spannungen werden dann vor einem ADC eingespeist

Also: Ein "IC" gibt ein Digital-Signal aus, das willst du in einem 
Arduino einlesen, damit einen DAC ansteuern der ein Analog-signal draus 
macht, und das Analog-Signal in einen ADC einspeisen, der es dann wieder 
digitalisiert?

Warum bleibst du da nicht durchgängig digital?

von A. A. (dieahnungslosen)


Lesenswert?

Εrnst B. schrieb:
> Warum bleibst du da nicht durchgängig digital?

Weil ich mit meiner Schaltung ein analoge Signale simulieren möchte. Der 
IC steuert nur welches der Signale auf den ADC geschalten wird

von Ingo L. (corrtexx)


Lesenswert?

Adrian A. schrieb:
> Optimal wäre alles unter 1ms
Ich habe mal ein Projekt mit einem TLV5614 gehabt, der hat für 3 Kanäle 
aktualisieren ~3µs benötigt (settling Time).

Was machst du mit den übrigen 997µs?

von Nils S. (wall-e)


Lesenswert?

Eine fertige Platine kaufen ist eine Option?
https://www.ebay.de/itm/254623876337

von Εrnst B. (ernst)


Lesenswert?

Adrian A. schrieb:
> steuert nur welches der Signale auf den ADC geschalten wird

-->

Lothar M. schrieb:
> Analog-Multiplexer

Der macht genau das. 8 Analoge Eingangssignale, die du per drei 
digitalen Steuereingängen auswählen und auf einen analogen Ausgang 
schalten kannst.

von Ingo L. (corrtexx)


Lesenswert?

Adrian A. schrieb:
> Weil ich mit meiner Schaltung ein analoge Signale simulieren möchte. Der
> IC steuert nur welches der Signale auf den ADC geschalten wird
Weisste ey?! Ich bin raus, dass is mir einfach zu blöde. Du kommst in 
jedem zweiten Post mit neuen Infos, die die vorherigen Infos über den 
Haufen werfen. Mach dein Ding...

von Εrnst B. (ernst)


Lesenswert?

74HC4067
->
https://www.aliexpress.com/item/1005001665493534.html

Von den 16 Kanälen kannst du ja die Hälfte ungenutzt lassen, einfach 
einen der "S"elect-Pins fix auf GND legen.

von A. A. (dieahnungslosen)


Lesenswert?

Εrnst B. schrieb:
> Der macht genau das. 8 Analoge Eingangssignale, die du per drei
> digitalen Steuereingängen auswählen und auf einen analogen Ausgang
> schalten kannst.

Ja, da sProblem ist jedoch, dass ich mehr als 8 Werte brauche, da die 8 
Messignale nicht konstant sind und unabhängig voneinder verändert werden 
sollen, während der MUX in einem PEriodisch durchschaltet

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Adrian A. schrieb:
> Du würdest also SPI als Schnittstelle verwenden?

lgt8f328p
Fast ein AVR, nur billiger, schneller und mit eingebautem DAC

von A. A. (dieahnungslosen)


Lesenswert?

Nils S. schrieb:
> Eine fertige Platine kaufen ist eine Option?

Theoretisch schon. Aber habe auch eine Platine wo der DAC drauf kann

von A. A. (dieahnungslosen)


Lesenswert?

Arduino F. schrieb:
> Fast ein AVR, nur billiger, schneller und mit eingebautem DAC

Und wie ist das zum programmieren? Habe da nur wenig erfahrung

von Nils S. (wall-e)


Lesenswert?

Adrian A. schrieb:
> Nils S. schrieb:
>> Eine fertige Platine kaufen ist eine Option?
>
> Theoretisch schon. Aber habe auch eine Platine wo der DAC drauf kann

Im EBay-Link ist ja eine Typenbezeichnung für das IC angegeben.
Das kannst du dann auf deine LP klatschen

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ingo L. schrieb:
> In der Zeit berechnest du die Laufbahn eines Kometen für die nächsten
> 100 Jahre ganz nebenbei...
Aller in Frage kommenden Kometen...

> der hat für 3 Kanäle aktualisieren ~3µs benötigt (settling Time).
Das ist aber nur die Zeit, die die Ausgänge nach dem Beschreiben der 
Ausgangsregister zum Stabilisieren brauchen.

Adrian A. schrieb:
> max 10 ms dauern (je schneller desto sicherer).

Adrian A. schrieb:
> Optimal wäre alles unter 1ms
Baust du öfters unnötigerweise eine 10-fache Reserve ein?

Adrian A. schrieb:
> Weil ich mit meiner Schaltung ein analoge Signale simulieren möchte.
Nächste Salamischeibe: wofür?

Mein vorschlag: beschreibe mal mit Bauteilnamen und Typen und 
Herstellern und so viel Informationen wie du hast, was die eigentliche 
Aufgabe ist, wer das Signal ausgibt, wer das Signal bekommt und wie der 
darauf reagiert. Und dann kann dir gezielt geholfen werden.

Derzeit kann man nur sagen: nimm irgendeinen DAC mit irgendeiner 
Schnittstelle und das wird schon fluffen, wenn du nicht noch einen Bock 
und ein delay() ind die Software einbaust.

: Bearbeitet durch Moderator
von Ingo L. (corrtexx)


Lesenswert?

Adrian A. schrieb:
> Ja, da sProblem ist jedoch, dass ich mehr als 8 Werte brauche, da die 8
> Messignale nicht konstant sind und unabhängig voneinder verändert werden
> sollen, während der MUX in einem PEriodisch durchschaltet
Hänge 8 Potis an VCC und GND und schalte die Schleifer periodisch mit 
einem analogen MUX um. Sollen sich die 8 analogen Signale selber ändern, 
nimm 8 Funktionisgeneratoren und schalte die periodisch über den MUX auf 
deinen ADC.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Adrian A. schrieb:
> Und wie ist das zum programmieren?
Wie ein AVR, der gleiche Maschinencode.
Leicht andere Register+Fähigkeiten.

Adrian A. schrieb:
> Habe da nur wenig erfahrung
Die wirst du wohl machen müssen.

Zum selber lesen: Das Datenblatt liegt öffentlich aus.

von Ingo L. (corrtexx)


Lesenswert?

Lothar M. schrieb:
> Das ist aber nur die Zeit, die die Ausgänge nach dem Beschreiben der
> Ausgangsregister zum Stabilisieren brauchen.
Ich habe das Ding mit 21MHz SPI befeuert, gut, die ~3µs dafür kannste 
noch draufschlagen ;)

von Εrnst B. (ernst)


Lesenswert?

Adrian A. schrieb:
> und unabhängig voneinder verändert werden
> sollen,

Irgendwie versteh ich das Problem nicht...
Wenn du die Werte analog verändern willst, machst du das vor dem MUX, 
wenn du sie digital verändern willst, nach dem ADC?

Wenn man nur einen Hammer hat, schaut jedes Problem wie ein Nagel aus.
Wenn man grad frisch erfahren hat, dass es sowas Tolles wie DACs gibt, 
schaut jedes Problem aus, als müsste man es damit lösen.

Der beste Lösungsweg kommt so aber leider seltenst heraus.

von Joe L. (joelisa)


Lesenswert?

Ingo L. schrieb:
> Adrian A. schrieb:
>> Das ist auch ein Ansatz von mir gewesen, [...]
> Solange du nicht mehr Infos hinsichtlich Geschwindigkeit und Genauigkeit
> rausrückst, stochern wir im Nebel und du bekommst u.U. unnütze Lösungen
> unterbreitet.

Antworten mit dem Credo "Ich habe auch mal was gehört ..." oder "Ich 
weis nichts Genaues nicht ..." sind hier doch Programm.

Der überwiegende Anteil der Antworten SIND unnütz, nicht nur 'unter 
Umständen'. Aber das juckt hier keinen: Hauptsache man kann hier einen 
auf großen Zampano machen und sich selbst aufpupsen.

Nicht TO Adrian ist das Problem, er fragt halt so gut er kann - denkt 
sich u.U. einen unbrauchbaren Ansatz aus, einfach weil er es nicht 
besser weis -- aber die ganzen Torfnasen hier benutzen das als 
willkommene Chance um sich aufzuplustern und locken den TO 
(wissentlich?) mit unnützen Vorschlägen auf eine falsche Fährte ...

von Ingo L. (corrtexx)


Lesenswert?

Joe L. schrieb:
> Nicht TO Adrian ist das Problem
Doch, eindeutig

> denkt
> sich u.U. einen unbrauchbaren Ansatz aus, einfach weil er es nicht
> besser weis
Das wäre verschmerzbar, wenn es fachlich dünn wird. Er ist aber nicht 
einmal in der Lage, seine Aufgabe in Worte zu fassen, damit es andere 
auch verstehen bzw. rückt nur scheibchenweise damit raus. Man geht doch 
auch nicht für 5 Artikel 5x hintereinander in den Supermarkt.

> Hauptsache man kann hier einen
> auf großen Zampano machen und sich selbst aufpupsen.
Lange nicht so einen Unsinn gelesen...

von Rainer W. (rawi)


Lesenswert?

Harald A. schrieb:
> Suche doch einfach nach
> "arduino dac", suche Dir einen schicken Wandler aus und schaue in das
> Datenblatt des verwendeten Typs, ob Dir die Änderungsgeschwindigkeit
> reicht.

Adrian A. schrieb:
> Du würdest also SPI als Schnittstelle verwenden?

Nimm einen Arduino Due, der hat zwei echte DACs integriert. Kein SPI, 
keine extra Platine und kein Multiplexer nötig.
Einfach mit analogWrite() den Wert auf 12Bit genau ausgeben ...

von A. A. (dieahnungslosen)


Lesenswert?

Rainer W. schrieb:
> Nimm einen Arduino Due, der hat zwei echte DACs integriert. Kein SPI,
> keine extra Platine und kein Multiplexer nötig.
> Einfach mit analogWrite() den Wert auf 12Bit genau ausgeben ...

Das wäre natürlich das einfachste, aber auf der Webseite steht 
folgendes: "Please note that DAC output range is actually from 0.55 V to 
2.75 V only."

von A. A. (dieahnungslosen)


Lesenswert?

Εrnst B. schrieb:
> Adrian A. schrieb:
>> und unabhängig voneinder verändert werden
>> sollen,
>
> Irgendwie versteh ich das Problem nicht...
> Wenn du die Werte analog verändern willst, machst du das vor dem MUX,
> wenn du sie digital verändern willst, nach dem ADC?
>
> Wenn man nur einen Hammer hat, schaut jedes Problem wie ein Nagel aus.
> Wenn man grad frisch erfahren hat, dass es sowas Tolles wie DACs gibt,
> schaut jedes Problem aus, als müsste man es damit lösen.
>
> Der beste Lösungsweg kommt so aber leider seltenst heraus.

Ich möchte damit 8 Sensoren simulieren. Der IC wählt dabei immer den 
Sensor aus den er braucht indem er de MUX steuert. Deshalb vor dem MUX.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Adrian A. schrieb:
> Ich möchte damit 8 Sensoren simulieren.
Noch eine Salamischeibe. Nachdem der Tag halb um ist, haben wir doch 
wenigstens das herausgefunden...

EDIT:
Vor Zensurbedenken aufkommen: die nachfolgenden Beiträge wurden auf 
Userwunsch gelöscht.

: Bearbeitet durch Moderator
Beitrag #7415604 wurde von einem Moderator gelöscht.
Beitrag #7415611 wurde vom Autor gelöscht.
Beitrag #7415612 wurde von einem Moderator gelöscht.
von M. K. (sylaina)


Lesenswert?

Adrian A. schrieb:
> Hallo, ich suche einen DAC (bevorzugt mit einer bestehenden Libary)

MCP4822, simpel und schnell

von Stefan F. (Gast)


Lesenswert?

Adrian A. schrieb:
> Das wäre natürlich das einfachste, aber auf der Webseite steht
> folgendes: "Please note that DAC output range is actually from 0.55 V to
> 2.75 V only."

Na und? Dafür gibt es Operationsverstärker. Den brauchst du 
wahrscheinlich sowieso, weil die Ausgänge von DAC üblicherweise kaum 
belastbar sind.

Leider kannst oder willst du deinen Anwendungsfall nicht detailliert 
genug beschreiben. Bisher habe ich den Eindruck, dass ein Satz 
Trimmpotis mit einem nachfolgenden analog-Multiplexer erheblich 
einfacher und besser geeignet ist, als Mikrocontroller mit DAC.

Schau dir den CD4051 an: https://www.ti.com/lit/ds/symlink/cd4053b.pdf

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.