你(们)好
http://www.ti.com/lit/ds/symlink/ads131a02.pdf
我对该 ADC 有一些问题:
输入短路时具有高噪声(差分~1200 ADC 点、VREF = 4V、因此24位分辨率下的噪声约为500uV)
SPI 帧错误: 在我完成所有初始化并执行获取数据的操作后、会设置 STAT_S 寄存器中的 F_FRAME。
我的设置:
AVCC 5V
DVCC 3.3V
VREF 4V -内部使用
M0 - DVCC
M1 - DVCC
M2 - GND
因此、 它的异步中断模式、 32位 SPI 字大小、 汉明码字验证关闭。
我的初始化步骤:
1.将 RESET 引脚置为高电平
2.读取0x00寄存器以获取0xFF02答案:
3.解锁 ADC (0x0655)
在这个阶段、我已经可以配置 ADC、但我读取了所有寄存器。
例如、读取 STAT_1:
如您所见、所有故障位均已清除。
接下来、其他寄存器读数将显示:
STAT_P - 0x00
STAT_N - 0x00
STAT_S - 0x00 (无 SPI 错误!)
ERROR_CNT - 0x00
STAT_M2 - 0x05 (0000 0101b -如上所述设置)
A_SYS_CFG - 0x60
D_SYS_CFG - 0x3C
CLK1 - 0x08
CLK2-0x86
ADC_ENA - 0x00
ADC1 - 0x00
ADC2 - 0x00
与默认情况下应该完全相同。
5、现在我将 CLK2设置为 E0 (1110 0000b)
所以
- Fmod = fICLK/14
- Fdata = Fmod / 4096
进行延迟260MS 并回读该寄存器以确认设置。
6. 将 A_SYS_CFG 设置为0x78 (0111 1000b)
所以
- REFP 设置为4.0V
- 启用和选择内部基准电压
进行延迟260MS 并回读该寄存器以确认设置。
7.将 ADC_ENA 设置为0x0F
响应不同于数据表-它应该是0x0F、但我接收到0x03。
我认为这是因为我使用的是双通道器件(因此0x03 = 0000 0011b)、但如果我错了、请纠正我的错误。
将延迟260MS 重新读取该寄存器以确认设置(再次为0x03)。
8.发送唤醒:
延迟260MS。
9.发送锁定命令:
之后产生300ms 的延迟。
轮询 RDRY 引脚:当它变为低电平时、我将开始发送 NULL 命令:
现在出现错误0x30 (显示为 SPI 错误)、我已经读取了其他 STAT_S 寄存器、它给出了0x01:
每帧发送的 SCLK 不足
此外、我的通道会短路、结果为:
对于 CH1、0x000739 = 1849
对于 CH2、0x0004F0 = 1264
为什么会有这样的不同?
下面是一些其他示例:
对于 CH1、0x000736 = 1846
对于 CH2、0x0004EE = 1258
对于 CH1、0x000731 = 1841
对于 CH2、0x0004EB = 1259
希望得到帮助、谢谢!
此致