Guten Tag,
Ich habe leider einige Probleme mit dem MSP430 und dem ADC12.
Ich lese immer einzelne Kanäle aus.
Ich habe Vref+ mit 3.3V verbunden und Vref- mit Masse.
Zwischen Vref+ und Vref- befindet sich ein 10uF 10nF Kondensatorpaar.
Ebenso zwischen AVcc und AVss.
Folgende Initialisierung und Lese routine werden gentutzt:
ADC_Init:
1 | void initADC(void)
|
2 | {
|
3 | P6SEL |= 0xFF; // select the hole port as ADC
|
4 | ADC12CTL0 |=ADC12ON+SHT00+SHT01+SHT02+SHT03; // Select Sample and Hold time, activate adc
|
5 | ADC12CTL1 |= ADC12SSEL1+SHP;// Select MCLK
|
6 | }
|
ADC_Read:
1 | unsigned int readADC(unsigned int channel)
|
2 | {
|
3 | ADC12CTL0 &= ~ENC;
|
4 | ADC12MCTL0 = channel;
|
5 | ADC12CTL0 |= ADC12SC + ENC; // Start sampling
|
6 | ADC12CTL0 &= ~ADC12SC; // End sampling start conversion
|
7 | while ((ADC12CTL1 & ADC12BUSY) == 1);// while ADC busy
|
8 | return ADC12MEM0;
|
9 | }
|
Leider bekomme ich am ADC ein Rauschen von bis zu 200mV bei einer
Messung nach GND