Other Parts Discussed in Thread: ADS1248,
您好!
现在利用CC2530驱动ADS1248时出现了精度不正确的情况
想要寻求一些技术支持 目前我们是用来检测电压 通过将ADS1248的寄存器进行了一些配置
void ADS1248_Init(void)
{
P0_1=0;
P0_7=0;
MicroWait(100);
P0_1=1;
P0_7=1; //连续
MicroWait(200);
P0_4=0;
ADS1248_SetInputChannel(P_AIN0, N_AIN1);
ADS1248_SetReference(REF_Inter_AlwaysOn, SELT_Inter); // 设置外部REF0为参考源
// ADS1248_SetReference(REF_Inter_AlwaysOn, SELT_REF1); // 设置外部REF0为参考源
MicroWait(500);
P0_4 = 0;
SPI_Send_Byte(ADS_WREG | ADS_IDAC0);
SPI_Send_Byte(0x00);
SPI_Send_Byte(0x00);
// SPI_Send_Byte(0x01);
// SPI_Send_Byte(idacImage);
// SPI_Send_Byte(idac1 | idac2);
P0_4 = 1;
P0_4 = 0;
SPI_Send_Byte(ADS_WREG | ADS_IDAC1);
SPI_Send_Byte(0x00);
SPI_Send_Byte(0x00);
// SPI_Send_Byte(0x01);
// SPI_Send_Byte(idacImage);
// SPI_Send_Byte(idac1 | idac2);
P0_4 = 1;
// ADS1248_SetIDAC(IDAC1_IEXT1, IDAC2_OFF, IMAG_1000); // 设置电流源
ADS1248_SetPGAGainAndDataRate(PGAGain_4, DataRate_20); // 设置PGA倍数和传输速率
}
这是配置的代码细节
然后就是计算
T_NUM=ADS1248_ReadADC();
TT_NUM=T_NUM*2.048/4/8388608
最终计算出来的结果是真实输入电压的4倍
想请问一下这中间是哪里配置的不合理能希望得到专业技术人员的技术支持
P0_1=0;//RESET
P0_7=0;//START
MicroWait(100);
P0_1=1;//RESET
P0_7=1; //连续
MicroWait(200);
P0_4=0;//CS
补充前面引脚注释 SPI的引脚是时钟P0_5 ADS1248的DOUT连接P0_2,DIN连接P0_3
上述问题在通过正规渠道购买芯片已经解决 现在的误差仅为100uV左右不知道是否已经达到理论精度呢