Forum: Analoge Elektronik und Schaltungstechnik Externer 16 Bit D/A-Wandler parallel an 8 Bit AVR


von Alex R. (no_one)


Lesenswert?

Hallo Forum!

Ich möchte einen externen 16 Bit D/A-Wandler(LTC1821) über eine 
parallele Schnittstelle mit einem AVR ATxmega128A3U ansteuern. Was muss 
ich dabei prinzipiell beachten? Ich meine, dass ich einen 16 Bit DAC 
nicht so einfach an einen 8 Bit Miktocontroller anschließen kann, oder 
etwa doch? Würde mich über ein Paar Tipps riesig freuen.

Danke.

von Purzel H. (hacky)


Lesenswert?

Na. Ueblicherweise muessen die 16bit anliegen, und dann kommt der 
Strobe. Falls man nur 8 bit hat, kann man die anderen 8 Bit ja aus einem 
Latch beziehen. zB einem 74HC574

von David .. (volatile)


Lesenswert?

Delta Oschi schrieb:
> Na. Ueblicherweise muessen die 16bit anliegen, und dann kommt der
> Strobe. Falls man nur 8 bit hat, kann man die anderen 8 Bit ja aus einem
> Latch beziehen. zB einem 74HC574

Oder sie ueber 2 Ports ausgeben

von Matthias L. (Gast)


Lesenswert?

>Oder sie ueber 2 Ports ausgeben

Oder durch zwei Schreibbefehle.

So wie das Lesenn/Schreiben von internen 16bit Registern.

Dazu brauchst du einen 74HC573.

Wenn Du willst, mach ich dir ne Skizze, wie das verschaltet werden muss

von Ingo L. (Gast)


Lesenswert?

Darf man fragen warum 16Bit parallel? Das schreit doch geradezu nach 
einer seriellen Lösung?


Ingo

von Purzel H. (hacky)


Lesenswert?

Der LTC1821 ist in 2us gesettelt. Wenn man diese Geschwindigkeit 
braucht... Einen SPI Wandler mit 500kSample anzusteuern beschaeftgt 
einen normalen controller in hohem Masse.

Wieder mal die Frage : Was soll's denn werden? Weil ... irgendwoher 
muessen die Daten ja auch kommen.

von Matthias L. (Gast)


Lesenswert?

>Einen SPI Wandler mit 500kSample anzusteuern beschaeftgt
>einen normalen controller in hohem Masse.

Ob du 500k mal pro Sekunde
1
SPDR = ... ; // (8bit)
2
warte auf flag
3
SPDR = ... ; // (8bit)

oder
1
OWN_ADC = ... ; // (16bit)

ist egal. Die Auslastung ist gleich hoch. Es müssen in beiden fällen pro 
Sekunde 500k WORDs geholt und ausgegeben werden.

von Ingo L. (Gast)


Lesenswert?

Und was glaubst du in 2us (wenn das das Interval ist) noch so tun zu 
wollen? Mit 500kHz Datenausgabe ist jeder normale uC schon ganz schön 
ausgelastet.


Ingo

von Wilhelm F. (Gast)


Lesenswert?

Alex Red schrieb:

> Würde mich über ein Paar Tipps riesig freuen.

Wie sind denn die Echtzeitanforderungen an die Einlesezeiten und 
Wandlungszyklen?

Die serielle Lösung, z.B. mit 2 kaskadierten 8-bit-Schieberegistern, 
wurde schon genannt. Unter Umständen übernimmt sogar ein noch freier 
UART im Halbduplex-Mode den Einlesevorgang automatisch.

von Alex R. (no_one)


Lesenswert?

Wow, vielen Dank an alle für die Hilfe!

Die Aufgabenstellung(kurz gefasst) ist folgendermassen: es muss eine 
Elektronik entwickelt werden die Nervenzellen über einen 
Multi-Elektroden Array mit diversen Signalformen stimuliert(Sinus, 
Dreieck, Saegezahn...)

Zeitliche Aufloesung: 20 us
Spannungsbereich: +-10 V
Spannungsaufloesung: 2 mV
Strombereich: max 50 mA
Stromaufloesung: 1 uA

Es gab noch 2 weitere DAC's AD669 und DAC712, hab mich aber für den 
LTC1821 entschieden. Oder würdet ihr doch was anderes empfehlen?

Alex

von Harald W. (wilhelms)


Lesenswert?

Alex Red schrieb:

> ...Strombereich: max 50 mA...

Also eine tödliche Dosis?
Gruss
Harald

von Ingo L. (Gast)


Lesenswert?

Ich würde fast sagen der XMega ist mit 32MHz evtl zu langsam. Deine 
Spezifikationen scheinen auch arg utopisch, wie willst du denn so kleine 
Ströme messen? Willst du lookup Tables benutzen? Oder wie sieht deine 
Programmstructur aus. Klingt jedenfalls interessant.
Meinst du mit 2mV die Schrittweite oder möchtest du auf 2mV genau 
regeln?



Ingo

von Wilhelm F. (Gast)


Lesenswert?

Alex Red schrieb:

> Oder würdet ihr doch was anderes empfehlen?

Vor 10 Jahren arbeitete ich mal mit einem AD7712, das ist ein 
integrierter Sigma-Delta-Wandler 24 bit auch mit integrierten 
Abgleichmodes, Kalibriermodes, sehr komfortabel. Hatte ca. 50k 
Wandlungszyklen pro Sekunde, und Zweidraht-Interface. Der hatte eine 
binär in 8 Stufen einstellbare Verstärkung, integrierte 
Differenzverstärker. Das faszinierte mich schon.

Allerdings war das Teil auch sauteuer, 40-50 Euronen, und noch mal 20 
Euronen mindestens für die Referenz.

Da gibts nach 10 Jahren bestimmt besseres, schnelleres, billigeres.

von Alex R. (no_one)


Lesenswert?

Ingo L. schrieb:
> wie sieht deine
> Programmstructur aus

Daran arbeite ich gerade...

Ingo L. schrieb:
> Meinst du mit 2mV die Schrittweite oder möchtest du auf 2mV genau
> regeln?

die Schrittweite

von Purzel H. (hacky)


Lesenswert?

Fuer Nervensignale scheinen mir 8 bit genuegend.

von Matthias L. (Gast)


Angehängte Dateien:

Lesenswert?

Möglichkeiten gibts da viele...

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.