TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS1248 怎么判断读到的24位数据是不是对的,同时怎么转换成温度?

我是按下面的原理图连接的,只是把RTD换成了一个120欧姆的定值电阻。寄存器配置写进去后,电阻两端能量到0.12V的电压。程序如下:

ADS1248WREG(ADS1248_REG_MUX0,0x01); //00100101,Bit7-6:传感器电流源检测不使用,Bit5-3:正输入为AIN0,Bit2-0:负输入为AIN1
//初始化MUX1多路复用控制寄存器
ADS1248WREG(ADS1248_REG_MUX1,0x38); //00111000,Bit7:启用内部晶振,Bit6-5:内部基准一直打开,Bit4-3:输入基准以板上和内部连接REFP0为准,Bit2-0:普通模式
// ADS1248WREG(ADS1248_REG_MUX0,0x01);
Delay(6*DELAY_10ms);
//初始化VBIAS偏压寄存器
ADS1248WREG(ADS1248_REG_VBIAS,0x00); //00000000,Bit7-0:偏置电压选择AN0,AN1开启
Delay(100);
//初始化IDAC1控制寄存器
ADS1248WREG(ADS1248_REG_IDAC1,0x01);//00000001,Bit7-4:内部第一恒流源的连接ANO,Bit3-0:内部第二恒流源连接ANO1 Delay(100);
//初始化IDAC0控制寄存器
ADS1248WREG(ADS1248_REG_IDAC0,0x07); //00000111,Bit7-4:只读,Bit3:DOUT功能 ,Bit2-0:1.5mA内部恒流源 Delay(100);
//初始化SYS0系统控制寄存器
ADS1248WREG(ADS1248_REG_SYS0,0x7F); //00000000,Bit7:必须设置为0,Bit6-41:选择128倍增益,Bit3-0:选择2000SPS测量速度

主函数为

void main()
{

start_set(1);
Delay(1000);
InitADS1248();

Ads1248();//读取24位转换结果,值赋给了resultss
Delay(10000);
AD_data=results;
AD_v=(unsigned long)AD_data*5/128/16777216.0;

RPt100 =  AD_v/ (1.5e-6 * 128);

}

我运行得出的结果是

results=0x7FFFFF

AD_data=

AD_v=0.0195312

RPt100=101.725

请看看程序哪里有问题? 谢谢   

还有一个问题 ENOB=ln(Full-Scale Range/Noise)/ln(2)    ,这个值怎么确定?

yue lei:

新来的

赞(0)
未经允许不得转载:TI中文支持网 » ADS1248 怎么判断读到的24位数据是不是对的,同时怎么转换成温度?
分享到: 更多 (0)