ADS1256,借用SPI实现的数据传输,VREF=2.5V。差分输入,AINp不接,AINn接地,此时输出值1.2V,异常。AINp接地或接其他电压时,能正常输出0V或其他值。是初始化问题吗?
附带初始化代码:(STM32的)
int ADS1256_Init(void)
{ ADS_CS_LOW();
RESET_HIGH();
delay_us(100);
SPI_SendByte(SPI2,ADS1256_CMD_REST);
delay_ms(10);
while(ADS_DRDY);
SPI_SendByte(SPI2,ADS1256_CMD_SYNC);
delay_ms(20);
SPI_SendByte(SPI2,ADS1256_CMD_WAKEUP);
delay_us(5); while(ADS_DRDY);
SPI_SendByte(SPI2,ADS1256_CMD_WREG | ADS1256_STATUS);
SPI_SendByte(SPI2,3);
SPI_SendByte(SPI2,0x04);
SPI_SendByte(SPI2,ADS1256_MUXP_AIN2 | ADS1256_MUXN_AIN3);
delay_us(5); SPI_SendByte(SPI2,ADS1256_GAIN_1);
delay_us(5); SPI_SendByte(SPI2,ADS1256_DRATE_2_5SPS);
delay_us(100);
ADS1256WREG(ADS1256_MUX,ADS1256_MUXP_AIN2 | ADS1256_MUXN_AIN3);
while(ADS_DRDY);
SPI_SendByte(SPI2,ADS1256_CMD_SELFCAL);
delay_us(5); ADS_CS_HIGH();
delay_ms(100);
return 0;
}
user151383853:
AINp不接,AINn接地 作为模拟输入, 你怎么可以不接悬空呢?
不出错才怪了呢