I have two functional hardware prototypes that I am working on developing firmware for the MSP430AFE253. This design happens to use Channel 0 of the SD24 in unipolar mode (single-ended input). I am using a task scheduler to set the start conversion bit to acquire a new sample once every two seconds. I am letting the firmware run for a several seconds before halting the debugger to view the SD24MEM0 register contents that have just been written to a volatile uint16_t variable (I am using the 1024 bit filter). I have checked the voltage at the physical pin 1 of the MSP430 and it changes from about 0.20V to 1.15V. Pin 2 is open, and Vref of 1.25V is supplied externally to pin 7, which has been verified and is stable at 1.25V. The way the hardware is designed, the SD24 should read near full-scale (max) when open circuit. The problem is while the conversion results do change, they only range from about 50 to 99 (decimal). This phenomenon is occurring on both hardware prototypes. I have poured through the forums and can't find anyone else having problems using the SD24 AFE in unipolar mode.
The attached file shows my SD24 initialization routine. If anyone has any suggestions as to what the problem could be, I would greatly appreciate it. Thanks.
#define ADC_CTL_REG SD24CTL #define ADC_CH0_CTL_REG SD24CCTL0 void init_SD24A (void) { ADC_CTL_REG = SD24SSEL0; // SMCLK ADC_CH0_CTL_REG = SD24OSR_1024 | SD24SNGL | SD24IE | SD24UNI; // Single conv, enable interrupt }