一、根据DataSheet里面的介绍可以得到:
- 差分输入 (AINP - AINN) 的范围要符合 ±0.5Vref / 128
- 共模输入 (AINP+AINN)/2 范围要符合 (GND+1.5) ~ (AVDD-1.5)
二、根据DataSheet查看计算方式
三、采样代码
int32_t Read_ADS1231(void)
{
uint8_t din;
uint32_t ii = 0, jj = 0;
int32_t nAdcValue = 0;
float fAdcResult;
// 拉低SCLK,进入工作模式
ADC_SCLK_L;
// 等待数据到来
while(ADC_DOUT_IN == 1);
for(jj = 0; jj < 23; jj++)
{
ADC_SCLK_H;
delay_us(100);
ADC_SCLK_L;
din = ADC_DOUT_IN;
nAdcValue = (nAdcValue<<1) + din;
delay_us(100);
}
// 拉高SCLK,进入待机模式
ADC_SCLK_H;
delay_us(100);
din = ADC_DOUT_IN;
nAdcValue = (nAdcValue<<1) + din;
delay_ms(15);
/*
@brief: 此处参考电压为5V,根据ADC计算差分输入差值的单位为(100uV)
ADC * ( 0.5 * Vref / ((2^23-1)*128) )
nAdcValue*( (0.5*50000)/(8388607*128)) = nAdcValue/42950(100uV)
*/
fAdcResult = (float)nAdcValue/42950.0f;
//printf("fAdcResult = %d\r\n", nAdcValue);
return (int32_t)(fAdcResult + 0.5);
}