ADS1246转换结果问题
我的ADS1246的图是下面连的,VCC=5.0,DVDD=3.3,VREF=2.048然后短接AINN与AINP输出是是0.111X的一个电压值,其中X为跳变位,求大侠解释一个,不胜感激
你好,请告知ADS1246采样率,PGA gain等, 另外0.111x单位是V 还是 mV? 谢谢
您好,我的采样率为1000SPS ,PGA=1,0.111x的单位为V,谢谢……
你好!
请查ADS1246 datasheet page13, Table 3. 会发现在1000SPS, PGA=1的情况下,input noise = 284.59uVpp = 0.00028459V,所以就只能保证0.111不变化了。
您好,我的问题是说在如图所示的硬件连接下,以及如上说述的参数设置下,当输入端VIINN与VINP相连之后(其中VINN已经接GND),的输出是一个0.111X v的值,不应该是输入为0的情况下,输出应该是0么?
你可以把VINN和GND断开,只把VINP和VINN短接,测试一下结果如何。 如果输出为0,应该是输入共模范围的问题。
上图是断开VINN与GND之后,直接短接AINP与AINN之后的输出,可以看到输出过段时间会突然跳变出0XFFFFXX,最后两位为跳变位,约为2.0449V。求解这是什么原因呢?
下面是程序;
---------------------------------------------------------------------*/
int32_t ADS1246_Read()
{
uint8_t Cmd[5];
int32_t ReadData;
Cmd[0]=ADS1246_CMD_RDATA;
Cmd[1]=ADS1246_CMD_NOP;
Cmd[2]=ADS1246_CMD_NOP;
Cmd[3]=ADS1246_CMD_NOP;
Cmd[4]=ADS1246_CMD_NOP;
//ADS1246_SPI_CS_CLR;
ADS1246_ReadBytes(Cmd,5);
// ADS1246_SPI_CS_SET;
/***************************************
---------------------------------------------------------------------*/
void ADS1246_WriteReg(uint8_t RegAddr,uint8_t *Buffer,uint8_t Length)
{
uint8_t Cmd[2];
//ADS1246_SPI_CS_CLR;
Cmd[0]=ADS1246_CMD_WREG|RegAddr; //0x40|RegAddr
Cmd[1]=Length-1;
ADS1246_WriteBytes(Cmd,2);
ADS1246_WriteBytes(Buffer,Length); //写入数据]
//ADS1246_SPI_CS_SET;
你好,请看ADS1246 datasheet Table 12。如果输入为0的话,那么读出来的值就会围绕 000000h,FFFFFFh 跳动,因为总会一定自身的噪声。
谢谢您的回答。事实上我想采用单端输入,所以把VINN接GND了,但是VINP输入为0的时候,输出却是0.111V的电压,这个电压是怎么回事,理论上不是应该接近0么?这个电压应该不是噪声吧?
而且,另外一个问题我的AD电压转换的输出值,除了输入在0时候,输出为0.111V以外,测试输入0.4V~1.0V的时候,输出大约只有输入值的一半值,请教一下这两个问题是什么原因呢?下图是输入为0.400V的稳定输入得时候的AD输出:(其中AVINN接GND,AVINP=0.400V ,REFP=2.048V,REFN=0V,采样率为1000SPS,PGA=1)
这个误差common-mode input voltage 有关,请查手册定义。 另外,可以把ADS1246配置为单端输入模式看下结果如何?