Forum: Mikrocontroller und Digitale Elektronik ADC Probleme SAMD10/11/20/21


von Uwe H. (Gast)


Lesenswert?

Hallo Freunde der Elektronik!

Bisher ging es bei der Treiberprogrammierung ohne ASF/CMSIS des 
AtmelSAMD10D14 recht zügig voran, allerdings bin ich beim ADC kurz vor 
der Kapitulation. Er gibt Werte aus, allerdings mit einem hohen Offset 
von etwa gut 500 (alles dezimal), und bei VREFA=2.5V und Analogeingang 
bei gleicher Spannung erreiche ich einen Wert im 1000er Bereich (bei 
3.3V gut 2000), aber nicht erwartet 4095. Den Offset habe ich mit der 
Offsetkorrektur kompensiert, aber die Gain Control mit 0xFFF als 
Maximalwert reicht nicht aus. Laut Datenblatt sollen ja Werte von 
0.10000000000 bis 1.11111111111 möglich sein. Wo die Zahl vor dem 
Kommaherkommt,ist ein Rätsel. 12 Bit sind eingestellt, Oversampling 
undAveraging sind aus. Ein ganz wunder Punkt ist das CALIBRATION 
Register,in das man die factory correction datas aus dem NVM 
hineinschreiben sollte, um die spezifizierten Werte zu erreichen. Wenn 
ich dies tue, mutiert der ADC zum Zufallszahlengenerator, der BIAS ist 
der wunde Punkt. Hier stellt sich mir die Frage, ob ich an der Stelle 
etwas mißverstehe. Die Korrekturwerte im NVM liegen für den ADC bei 
Adresse 0x806020 von Bit 27-37, sprich ab Adresse 0x806023 Bit 3 bis 
0x806024 Bit5. Folgende Zuordnung müsste sich ergeben:

Adr 0x806023 Bit3 -> Register CALIBRATION Bit 0
Adr 0x806023 Bit4 -> Register CALIBRATION Bit 1
Adr 0x806023 Bit5 -> Register CALIBRATION Bit 2
Adr 0x806023 Bit6 -> Register CALIBRATION Bit 3
Adr 0x806023 Bit7 -> Register CALIBRATION Bit 4
Adr 0x806024 Bit0 -> Register CALIBRATION Bit 5 usw.

Wo liegt mein Fehler, wo übersehe ich etwas?
Frustrierte Grüße,

Uwe

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.