您好!
我尝试使用 ADS1262的输入之一读取单端信号。
最初的用途是测量称重传感器信号、但现在我需要一次单端测量。
为了进行调试、我只需使用一个连接在 AVDD (5V)、GND 和我的引脚 AIN2之间的电位器:
首先 、我执行初始化:
// NO OFFSET and FSCAL= 0x400000 //Reset OFCAL coefficients config[0] = 0x00; ADS126xWriteRegister(OFCAL2, 1, config, ads); //OFCAL2 = 0x00 config[0] = 0x00; ADS126xWriteRegister(OFCAL1, 1, config, ads); //OFCAL1 = 0x00 config[0] = 0x00; ADS126xWriteRegister(OFCAL0, 1, config, ads); //OFCAL0 = 0x00 //Reset FSCAL coefficients config[0] = 0x40; ADS126xWriteRegister(FSCAL2, 1, config, ads); //FSCAL2 = 0x40 config[0] = 0x00; ADS126xWriteRegister(FSCAL1, 1, config, ads); //FSCAL1 = 0x00 config[0] = 0x00; ADS126xWriteRegister(FSCAL0, 1, config, ads); //FSCAL0 = 0x00
我想读取单端信号、因此我使用 具有信号的 MUXP_AIN2、并使用 MUXN_AVSS 作为 GND
对于基准、我使用 AVDD 和 AVSS、这意味着5V 基准。
然后、我绕过 PGA (用于单端测量)并希望 ODR 为7200SPS:
config[0] = MUXP_AIN2 | MUXN_AVSS; ADS126xWriteRegister(INPMUX, 1, config, ads); //config[0] = RMUXP_AIN0 | RMUXN_AIN3; config[0] = RMUXP_AVDD | RMUXN_AVSS;//RMUXP_AIN0 | RMUXN_AIN3; ADS126xWriteRegister(REFMUX, 1, config, ads); config[0] = 0x8C;// PGA BYPASS DR 7200SPS ADS126xWriteRegister(MODE2, 1, config, ads);
现在、在我的 while 循环中、我读取数据:
set_adc_START(1, ADS2); while(GPIO_readPin(ADS2_DRDY)); //wait fopr DRDY to go low resultLC[3] = ADS126xReadData(5, 1, ADS2);
现在结果是怪异的:
- 信号具有取决于 ODR 的大尖峰
- 如果我将电位计从一端旋转到另一端(0V 至5V、然后5V 至0V)、则信号会饱和、当我从 AVSS 转至 AVDD 时、我不会期望它饱和:
有什么想法吗?
有一点我不确定、FS 是5V 还是2.5V? 我在 AVDD 和 AVSS 之间有5V 电压、因此如果我使用单端测量、我应该能够读取0至5V 信号?数据怎么样、因为它始终为正、 数据是否仍为二进制补码格式?
谢谢你