I am using MSP430F5359, my raw ADC value get stuck at 2048. For example, if my voltage is such that the raw values are 1900, I can keep increasing the voltage till it is about 1990, then the raw values jump to 2048 and then stay at 2048 till the voltage is high enough for 2050, then the become linear and normal again. Any ideas why?
the ADC12A is configured using the following code:
REFCTL0 &= ~REFMSTR; // Reset REFMSTR to hand over control to // ADC12_A ref control registers ADC12CTL0 = ADC12SHT1_5 + // Sample Hold ADC12SHT0_5 + // Sample Hold ADC12REF2_5V; // Enable 2.5Volt Reference ADC12CTL1 = ADC12SHP + // use sampling timer ADC12CONSEQ_0 + // Use sampling timer, single sequence ADC12CSTARTADD_9; // Start scan with channel 9 ADC12CTL2 = ADC12RES_2 + // 12 bit resolution ADC12SR + // slower, lower power sampling rate ADC12REFBURST; // Reference is only on when converting ADC12MCTL9 = ADC12INCH_4 + ADC12SREF_1; // Press 1,Vr+=Vref+ and Vr-=AVss
To begin sampling the system executes the following code:
ADC12CTL0 |= ADC12ON + // Turn on ADC ADC12REFON + // Turn on the voltage reference ADC12ENC; // Enable Conversion ADC12IE |= ADC12IE9; // Enable interrupt
Then each conversion is started by:
ADC12CTL0 |= ADC12SC; // Enable Conversion