ARM STR71x ADC-Messwert falsch!

Gast #894090
Hallo Leute,

ich habe ein kleines Problem mit dem internen AD-Wandler auf meinem 
STR711-EvalBoard (PDFs zum Controller: 
http://www.st.com/mcu/devicedocs-STR711FR2.html).

Ein Satz zur Hardware: AVDD habe ich mit 3,3V verbunden, AVSS mit GND 
und ich nutze die Kanäle 0-2 des internen 12-Bit AD-Wandlers.

Den PCLK2 habe ich folgendermaßen initialisiert:
1
RCCU_Div2Config(DISABLE);
2
RCCU_PLL1Config( RCCU_PLL1_Mul_16, RCCU_Div_1);
3
RCCU_RCLKSourceConfig( RCCU_PLL1_Output );
4
RCCU_MCLKConfig( RCCU_DEFAULT);
5
RCCU_FCLKConfig( RCCU_RCLK_4);
6
RCCU_PCLKConfig( RCCU_RCLK_4);
Da ich ein 4Mhz Quarz angeschlossen habe, sollte der PCLK2-Takt bei 
16Mhz liegen.

So habe ich meinen AD-Wandler initialisiert:
1
ADC12_Init()
2
ADC12_PrescalerConfig(100);
3
ADC12_ModeConfig(ADC12_ROUND);
4
ADC12_ConversionStart();

Und so lese ich die aktuellen Messwerte aus und schicke ihn per UART an 
den PC:
1
ADC_Value = ADC12_ConversionValue(ADC12_CHANNEL0);
2
sprintf(Buffer, "Ch 0: %i", ADC_Value);
3
UART_StringSend(UART0, Buffer);
4

5
ADC_Value = ADC12_ConversionValue(ADC12_CHANNEL1);
6
sprintf(Buffer, "Ch 1: %i", ADC_Value);
7
UART_StringSend(UART0, Buffer);
8
  
9
ADC_Value = ADC12_ConversionValue(ADC12_CHANNEL2);
10
sprintf(Buffer, "Ch 2: %i", ADC_Value);
11
UART_StringSend(UART0, Buffer);

Folgendes Problem stellt sich nun ein: Obwohl man am Eingangspin 1,65V 
messen kann, kommt auf dem PC immer ein Wert von etwa 410 an, was nach 
meiner Rechnung falsch ist:

12-Bit: 0 - 4095
Range: 0 - 2,5V

Also: 2,5V / 4096 * 410 = 0,25V

Woran kann das liegen? In der Firmware-Library von ST habe ich auch 
nichts zur Kalibrierung des ADC gefunden!
Gast
Es gibt im Gegensatz zum AVR keinen externen ARef Pin! So weit ich das 
verstanden habe, liegt der Messbereich zwischen 0 und 2,5V. In der 
ST-Library gibt es auch keine Funktion zum Setzen einer Referenzspannung 
bzw. zum Kalibrieren es ADCs.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.