PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC & DAC



nister
31.01.2006, 11:08
Hallo!

Habe ein Problem eine analoge Spannung mit dem µC (PSOC) von Cypress einzulesen! Besser gesagt, ich weis nicht genau was eingelesen wird! Verwende einen 12bit ADC und möchte diesen eingelesen Wert dann mittels einen 8 Bit DAC wieder ausgeben! (hat zwar keinen sinn, aber ich möchte gerne verstehe wie das funktioniert!)
Kann mit da jemand weiterhelfen?

danke

mfg
Stefan

H.A.R.R.Y.
31.01.2006, 11:35
Im Prinzip möchtest Du von einem 12-Bit ADC die Werte zum 8-Bit DAC durchreichen. Dummerweise fehlen am DAC 4 bit. Üblicherweise nimmt man dann die 8 höchstwertigen Bit vom ADC (läßt die unteren 4 Bit unter den Tisch fallen) und gibt sie zum DAC aus. Das war's dann. Naja, fast. Da 4bit für den DAC fehlen, ändert sich sein Ausgang erst, wenn sich der ADC-Wert um mindestens 16 geändert hat. Faktisch erreichst Du am DAC die gleiche Spannung wie am ADC, nur um einen Faktor 16 gröber.

Was Du vom ADC bekommst ist die digitale Repräsentation einer analogen Eingangsspannung. Typischerweise gehört dazu noch eine Refrenzspannung die zum Beispiel den Wert bei 100% festlegt. Dein 12-bit-ADC würde dann 0x0FFF als Wert ausgeben, wenn die Eingangsspannung die Referenzspannung erreicht (oder überschreitet). Legst Du 0V an den Eingang, dann liest Du normalerweise 0x0000 aus dem ADC. Bei halber Referenzspannung am Eingang siehst Du 0x07FF als digitalen Wert nach dem ADC.

Es gibt auch Wandler, bei denen die Referenzspannung den halben Wert des Eingangsbereiches darstellt. Da hilft nur ein Blick ins Datenblatt und ein bißchen ausprobieren.

Der DAC macht die Wandlung von digitalem Zahlenwert in analoge Größe (Spannung oder Strom). Einfach einen digitalen Wert reinschreiben und je nach Referenzspannung erhältst Du einen entsprechenden Anteil von der Referenz. Im Prinzip ist es Bruchrechnung:

Ausgangswert = Referenzspannung * digitaler Wert / 2^Bitzahl

Für 8 Bit DAC mit Spannungsausgang:

Ua = Uref * n / 256

n ist der digitale Wert (0..255) der reingeschrieben wird.

nister
31.01.2006, 11:53
Danke für deine Erklärung, aber weist du auch wie man das Softwaremäßig mit dem PSoC realisiert? Weil ich hab bei diesem µC meine Probleme dieses Wissen umszusetzen!!

mfg
Stefan

Ratber
31.01.2006, 14:25
Du bekommst 12 Bit vom ADC
Shifte 4 Stellen Rechts.
Nimm die untersten 8 Bit und schick se an den DAC
Fertig.

DIe Befehle dafür kennste ja sicher.

H.A.R.R.Y.
31.01.2006, 15:23
Für den PSoC speziell muß ich passen.

Allgemein wird zuerst der ADC, der DAC und vielleicht noch was anderes Initialisiert - damit die Peripherie weiß, was sie zu hat. Danach kannst Du in einer Endlosschleife den ADC mit einer Wandlung beauftragen, warten bis die Fertig ist und dann das Ergebnis (entsprechend verschoben halt - siehe Vorredner) zum DAC geben. Die Feinheiten stehen im Datenblatt/Datenbuch hier wohl schon eher. Zum Programmieren eignet sich alles (Assembler, C, ...).