输入0mv差分信号,输出值 3个字节为(00~FF跳动、00~FF跳动、00不变),输入4mv信号输出依旧不变,量过波形都正常也是下降沿采集数据,DRDY输出为1秒2000次,已经配置进去,基准2.048V,使用内部振荡器,求解问题所在,以下是配置程序
void InitADS1248(void)
{
cs_CS1242_1();//片选拉低
delay_us(10000);
nowp_ad1_eeprom();//START引脚至高
delay_us(10000);
reset_CS1242_1(); //复位
delay_us(10000);
noreset_CS1242_1();
delay_us(10000);
SPI_ADS1248_SendByte(ADS1248_CMD_RESET);//复位指令
delay_us(10000);
ADS1248WREG(0x00,0x01);//
delay_us(10000);
ADS1248WREG(0x01,0x00);//
delay_us(10000);
ADS1248WREG(0x02,0x00);//
delay_us(10000);
ADS1248WREG(0x03,0x7f);//
delay_us(10000);
}
void Ads1248(void)//读采集值
{
D=0;
//发送单次读数据命令
SPI_ADS1248_SendByte(ADS1248_CMD_RDATAC);
//读取ADC转换完成的数据
results1=SPI_ADS1248_SendByte(0xFF);
results2=SPI_ADS1248_SendByte(0xFF);
results3=SPI_ADS1248_SendByte(0xFF);
D|=results1<<16|results2<<8|results3;
//发送空操作指令,强迫D_OUT变高
SPI_ADS1248_SendByte(ADS1248_CMD_NOP);
}
void ADS1248WREG(unsigned char regaddr,unsigned char databyte)
{
//向寄存器写入数据地址
SPI_ADS1248_SendByte(ADS1248_CMD_WREG+(regaddr & 0xF));
//写入数据的个数n-1
SPI_ADS1248_SendByte(0);
//向regaddr地址指向的寄存器写入数据databyte
SPI_ADS1248_SendByte(databyte);
}
