您好!
我们使用 ADS1261将传感器配置为差分输入、从而对设计中的磁力计进行采样。 我们的代码可以读取/写入寄存器并从传感器获取样本。 为了验证芯片是否正常工作、我们将测试代码设置如下并读取差分信号:(AVDD-AVSS)/4 - DVDD/4或 DVDD/4 -(AVDD-AVSS)/4。 遗憾的是、我们无法获得预期值。
在我们的设计中:AVDD = 5.0VDC;AVSS = GND;DVDD = 3.3VDC。 基准电压设置为内部2.5VDC。 所有三个电压引脚均可通过万用表正确读数正常工作。
2. ADC 设置为:
[MODE0]= 0b01001000:1200SPS、SINF1
[mode1]默认值为0b00000001:斩波模式关闭、连续转换、50us 延迟
[mode3]作为默认值、0x00h
[Ref]= 0b00010000:2.5V 内部基准
[OFCAL0]作为默认值、0x00h
[OFCAL1]作为默认值、0x00h
[OFCAL2]作为默认值、0x00h
[FSCAL0]作为默认值、0x00h
[FSCAL1]作为默认值、0x00h
[FSCAL2]作为默认值、0x40h
[IMUx]作为默认值、0xxh
[Imag]作为默认值、0x00h
[PGA]= 0b00000000:增益1
[INPMUX]= 0b11001101: Positive 输入多路复用器=(AVDD-AVSS)/4=5.0VDC/4;Negative 输入多路复用器=DVDD/4=3.3VDC/4。
[INPBIAS]作为默认值、0x00h
应用测试代码 RREG 命令以读回具有3个字节的所有寄存器、以验证设置。 所有读数如下所示:
RREG ID:FF=0xff;B1_20h=0x20;B2_8xh=0x81
RREG 状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RREG MODE0:FF=0xff;B1_22h=0x22;B2_48h=0x48
RREG 默认 MODE1:FF=0xff;B1_23h=0x23;B2_01h=0x01
RREG 默认模式2:FF=0xff;B1_24h=0x24;B2_00h=0x00
RREG 默认 MODE3:FF=0xff;B1_25h=0x25;B2_00h=0x00
RREG REF:FF=0xff;B1_26h=0x26;B2_10h=0x10
RREG 默认 OFCAL0:FF=0xff;B1_27H=0x27;B2_00h=0x00
RREG 默认 OFCAL1:FF=0xff;B1_28h=0x28;B2_00h=0x00
RREG 默认 OFCAL2:FF=0xff;B1_29H=0x29;B2_00h=0x00
RREG 默认 FSCAL0:FF=0xff;B1_2Ah=0x2a;B2_00h=0x00
RREG 默认 FSCAL1:FF=0xff;B1_2bh=0x2b;B2_00h=0x00
RREG 默认 FSCAL2:FF=0xff;B1_2ch=0x2C;B2_40h=0x40
RREG 默认 IMUX:FF=0xff;B1_2dh=0x2D;B2_FFH=0xff
RREG 默认 IMAG:FF=0xff;B1_2Eh=0x2e;B2_00h=0x00
RREG PGA:FF=0xff;B1_30h=0x30;B2_00h=0x00
INPMUX:FF=0xff;B1_31h=0x31;B2_CDH=0xcd
RREG 默认 INPBIAS:FF=0xff;B1_32H=0x32;B2_00h=0x00
然后发出 START 命令。
然后应用 RDATA 命令和 RREG 获取状态命令以1KHz 读取差分信号+状态。 调试打印是
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0x7f;B3_MID=0xff;B4_LSB=0xff; 结果= 8388607
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0x7f;B3_MID=0xff;B4_LSB=0xff; 结果= 8388607
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0x7f;B3_MID=0xff;B4_LSB=0xff; 结果= 8388607
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
结果有2个问题:
1) 1) 0x7ffff = 8388607为2.5V、这不是预期值:5.0V/4 - 3.3V/4 = 0.425V。
2) 2)似乎存在溢出、因为我们始终得到0x7fff。 但未指示0x05的状态。
6.对于上述测试,我们将[INPMUx]= 0b11001101更改为0b11011100,原因是:
Positive 输入多路复用器= DVDD/4=3.3VDC/4;Negative 输入多路复用器=(AVDD-AVSS)/4=5.0VDC/4。
调试打印包括:
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xDE;B3_MID=0xc6;B4_LSB=0xc8; 结果=-2177336
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xDE;B3_MID=0xdb;B4_LSB=0x0B; 结果=-2172149
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xDE;B3_MID=0xc9;B4_LSB=0x95; 结果=-2176619
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xDE;B3_MID=0xD3;B4_LSB=0x16; 结果=-2174186
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xDE;B3_MID=0xD5;B4_LSB=0xdf; 结果=-2173473
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
结果大约为-2177336 (猜中噪声会导致变化)。
预期值为:(3.3V/4 - 5.0V/4) X 0x7fff/2.5V =-1426063。
即使采样值不接近预期值、采样值也似乎是部分合理的。
7.对于步骤1~6的上述测试、我们将[PGA]= 0b00000001更改为增益为2以进行另一项测试。
1) 1)对于步骤5、我们将按进行调试打印
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0x7f;B3_MID=0xff;B4_LSB=0xff; 结果= 8388607
状态:FF=0xff;B1_21h=0x21;B2_05h=0x25
尽管0x7ffff = 8388607的结果没有变化、但状态的 PGAL_ALM 位设置为高电平以指示溢出。
2) 2)对于步骤6、我们将按进行调试打印
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xBD;B3_MID=0x97;B4_LSB=0xc1; 结果=-4352063
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xBD;B3_MID=b5;B4_LSB=0xdc; 结果=-4344356
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xBD;B3_MID=0x92;B4_LSB=0x84; 结果=-4353404
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
RADTA:B0_FF=0xff;B1_12h=0x12;B2_MSB=0xBD;B3_MID=0xb1;B4_LSB=0x03; 结果=-4345597
状态:FF=0xff;B1_21h=0x21;B2_05h=0x05
与步骤6中的结果相比、-4352063的结果大约翻了一倍。 这是预期的、因为增益加倍。
要寻求帮助的问题汇总如下:
1.为什么在[INPMUX]= 0b11001101时无法获得采样值?
2.当[INPMUX]= 0b11011100时、为什么无法获得准确的采样值?
此致、
二进制文件