1. tidc215参考设计的电路,所有输出是否是理想的?比如,电流源1mA的输出,参考电阻RREF上的压降是否是1.64? 按照参考打样,所有电阻使用0.1% 25ppm,参考电阻上的压降,用高精度万用表测不到1.64V,在1.62V左右。
2. 参考手册里的电阻校正指的是什么?是PT100? 还是参考电阻?
3. 三种命令校正是否真的起作用?
4. 参考设计上的数据是否是ADS1247/ADS1248硬件上绝对达到的?还是需要了一定的软件处理?
附上我的 芯片配置,读写寄存器,读数据,数据转换代码
//判断内部参考电压是否打开
ADS1248_writeReg(ADS1248_TEST_REG, 0x20);
if(ADS1248_readReg(ADS1248_TEST_REG) == 0x20) //打开参考电压和选择参考电压通道 MUX1 = 0x20 0 01 00 000 VREFCON = 01 REFSELT = 00 MUXCAL = 000
{
printf("读取的值与写入的值一致\r\n");
}
delay_ms(1);
ADS1248_writeReg(ADS1248_MUX0, 0x0A); //设置电压采样通道 MUX0 = 00 001 010 POS = 001 NEG = 010
delay_ms(1);
ADS1248_writeReg(ADS1248_SYS0, 0x32); //设置增益、采样速率 SYS0 = 0 011 0010 FGA = 8 DR = 20
delay_ms(1);
ADS1248_writeReg(ADS1248_VBIAS, 0x00); //设置偏置电压
delay_ms(1);
ADS1248_writeReg(ADS1248_IDAC0, 0x06); //设置恒流源电流大小 IDAC0 = 1001 0 110 1mA
delay_ms(1);
ADS1248_writeReg(ADS1248_IDAC1, 0x03); //设置电流流经通道 IDAC1 = 0000 0011 通道0 通道3
delay_ms(1);
void ADS1248_writeReg(uint8_t addr, uint8_t data)
{
SPI_CS_L(); // CS拉低进行操作
SPI_Write_ReadByte((addr & 0x0F) | ADS1248_CMD_WREG);
SPI_Write_ReadByte(0x00);
SPI_Write_ReadByte(data);
SPI_CS_H(); // CS拉高
}
uint8_t ADS1248_readReg(uint8_t addr)
{
uint8_t ret = 0 ;
SPI_CS_L(); // CS拉低进行操作
SPI_Write_ReadByte((addr & 0x0F) | ADS1248_CMD_RREG);
SPI_Write_ReadByte(0x00);
ret = SPI_Write_ReadByte(ADS1248_CMD_NOP);
SPI_CS_H(); // CS拉高
return ret;
}
uint32_t ADS1248_readData(void)
{
uint32_t ret;
uint8_t byte;
SPI_CS_L();
SPI_Write_ReadByte(ADS1248_CMD_RDATA); //读数据: 0x12 NOP NOP NOP
// cmd .. .. ..
// while(DRDY == 1) ;
delay_us(2);
byte = SPI_Write_ReadByte(ADS1248_CMD_NOP);
ret = (((uint32_t)byte) << 16) | ((byte & 0x80) ? 0xFF000000:0x00000000);
ret |= (((uint32_t)SPI_Write_ReadByte(ADS1248_CMD_NOP)) << 8);
ret |= (uint32_t)SPI_Write_ReadByte(ADS1248_CMD_NOP);
SPI_Write_ReadByte(ADS1248_CMD_NOP);
delay_us(2);
SPI_CS_H();
return ret;
}
value = ADS1248_readData();
RTD = (820.00*value)/(8.0*0x3fffff); //测量的电阻值
麻烦TI技术回复