Good day!
I have some project based on MSP430F2418. It measures signal with A0 input of ADC12. The signal gas near sinusoidal form and I'm measuring amplitude by starting ADC at maximum and minimum points of input signal, which swings about 500mV around the common mode rail, which is 1.25V. The problem is: the ADC measures corrrectly when the signal is above the 1.25V, but alwais reads 0x800 (2048) when signal is below 1.25V. Even if I am shorting the input to the signal ground, the reading is 0x800. I'm using external voltage reference (2.5V), connected to VeREF+ terminal, and VeREF-, AVss, DVss is directly connected to signal ground. DVdd and AVdd is connected to 3.3V rail. Clock is 16MHz. When I configure the inputs for internal voltage reference, nothing changes.
My scope shows correct signal form directly on the A0 input.
Here is the register configurations:
ADC12CTL0:
SHT0 = 5 (96 ADC12CLK cycles)
MSC = 1
REF2_5V = 1
REFON = 1
ADC12ON = 1
ENC = 1
ADC12CTL1:
CSTARTADD = 0
SHS = 0
SHP = 1
ADC12DIV = 0
ADC12SEL = 3 (SMCLK)
AD12MCTL0:
SREF = 7 (VeREF+/VeREF-)
INCH = 0