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.
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
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
Gast
#2637414
>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
Gast
#2637428
Darf man fragen warum 16Bit parallel? Das schreit doch geradezu nach einer seriellen Lösung? Ingo
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.
Gast
#2637442
>Einen SPI Wandler mit 500kSample anzusteuern beschaeftgt >einen normalen controller in hohem Masse. Ob du 500k mal pro Sekunde
1 | |
2 | |
3 | |
oder
1 | |
ist egal. Die Auslastung ist gleich hoch. Es müssen in beiden fällen pro Sekunde 500k WORDs geholt und ausgegeben werden.
Gast
#2637447
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
Gast
#2637459
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.
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
Alex Red schrieb: > ...Strombereich: max 50 mA... Also eine tödliche Dosis? Gruss Harald
Gast
#2637508
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
Gast
#2637535
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.
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
Fuer Nervensignale scheinen mir 8 bit genuegend.
Gast
#2637750
Möglichkeiten gibts da viele...
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
