ADS1231读取采样值

一、根据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);
}

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值