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
>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
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.
>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.
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
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
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.