Forum: Mikrocontroller und Digitale Elektronik CODEC initialisieren / DC-Offset von ADC ist falsch


von Solocan Z. (solocan)



Lesenswert?

Ich versuche seit Wochen ein Audio Codec (Cirrus logic CS4272 
https://statics.cirrus.com/pubs/proDatasheet/CS4272_F1.pdf) in Betrieb 
zu nehmen und drehe langsam durch. Bitte gebt mir paar Gedankenstöße.

Das Problem ist: DC-Offset nach der Initialisierung ist immer zu 
niedrig.

Was sein muss:

0VA   => 0x00000000
2,5VA => 0x80000000
5VA   => 0xFFFFFFFF

D.h. ich muss mit einer analogen Vorschaltung jeweils 2,5V (VCOM) auf 
ADC-Inputs addieren. Alle analogen Schaltungen sind nach Datenblatt 
gebaut und funktionieren korrekt. An ADC Inputs vom CODEC liegen 
tatsächlich 2,5V an. Also das blöde Ding muss mir da ungefähr 0x80000000 
(2,5V) liefern nach der Init. Doch es liefert mir Digitalwerte 
equivalent zu ~ 0,5V.

Dieses Codec hat ein Bit, womit man den Hochpassfilter irgendwann 
deaktivieren kann und den aktuellen Offset-Wert speichern kann. Lt. 
Datenblatt sollte man das nach 2s nach der Initialisierung tun.

Es ist mir nicht klar, welcher Wert gespeichert wird, wenn ich das 
dieses Bit setze. Und zweitens warum es bei aktiviertem Hochpassfilter 
nicht automatisch auf den mittleren Wert einpendelt und warum ich das 
Hochpassfilter deaktivieren soll.

Die Wandlung funktioniert. Zur Probe ein Sinus mit 0,5V Amplitude 
angelegt und es wird konvertiert. Das einzige Problem scheint also 
falsches DC-Offset zu sein.

Habt ihr mir irgendwelche Inputs, wo ich noch suchen kann? :(

: Bearbeitet durch User
von Achim S. (Gast)


Lesenswert?

Solocan Z. schrieb:
> Was sein muss:
>
> 0VA   => 0x00000000
> 2,5VA => 0x80000000
> 5VA   => 0xFFFFFFFF

Kannst du mal zeigen, aus welcher Beschreibung des Datenblatts du diese 
Zuordnung ableitest?

Ich lese dort folgendes:
Der full scale input voltage range deines ADC beträgt 1,13*VA, also bei 
dir wohl 1,13*5V=5,65V. Das ist aber der Peak-Peak Wert für den 
differentiellen Eingang. Der Messbereich geht also von -2,8V bis +2,8V. 
Und das Digitalsignal ist nicht unipolar sondern ein vorzeichenbehaftet 
(im Zweierkomplement).

Solocan Z. schrieb:
> An ADC Inputs vom CODEC liegen
> tatsächlich 2,5V an.

bitte mal spezifischer: was liegt an Ain+, was an Ain- und welche 
Spannung hat Vcom?

von Achim S. (Gast)


Lesenswert?

Achim S. schrieb:
> bitte mal spezifischer: was liegt an Ain+, was an Ain- und welche
> Spannung hat Vcom?

Ach ja, und noch die Zusatzfrage: was ist dann der Digitalwert (den du 
als 0,5V interpretierst)?

von Solocan Z. (solocan)


Angehängte Dateien:

Lesenswert?

Achim S. schrieb:
> Und das Digitalsignal ist nicht unipolar sondern ein vorzeichenbehaftet
> (im Zweierkomplement).

Du hast mir echt was geholfen! Vielen vielen Dank! Ich stand ewig aufm 
Schlauch und war zu blind das zu lesen, obwohl ich dachte, da stimmt was 
mit dem Datenformat nicht.

Also es war alles richtig. Nur ich blöder hab die Digitalwerte unipolar 
interpretiert. Einfach als signed interpretieren und alles stimmt.

@Achim S., schick mir deine Adresse, ich schicke dir ein kleines 
Geschenk :)

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.