ARM STR71x ADC-Messwert falsch!

Gast #894090
Lesenswert?
• ▲
▼
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 #894167
Lesenswert?
• ▲
▼
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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.