我在一个需要与两个 ADS124s08通信的项目中工作、我现在尝试读取其中一个的模拟值、我已连接 AIN0 (正通道)和 AIN1 (负通道)之间的方波信号、AIN1连接到 GND。 方波信号的低电平为+100mV、高电平为+200mV、频率为1Hz。 请找到随附的示波器输入测量值图片。
这是我们的实际硬件连接:

以下是测量 AIN0和 AIN1之间模拟值的步骤:
-读取 AD 状态
-写入 AD 寄存器
-读取 AD 寄存器并检查写入/读取数据是否相同
-发送数字信号开始
-我有一个具有下降沿检测功能的外部中断连接到 DRDY 信号
-直接读取数据、在触发外部中断时通过 SPI 发送0。 SPI 的工作频率为4MHz。
结果:
我在第一个字节中接收到我预期的状态、因为我配置了它、但其余三个字节始终为0。
我已经使用不同的配置进行了测试、但仍然无法正常工作。
这是我的实际寄存器配置:
- Inpmux=0x01;(AIN0作为正通道、AIN1作为负通道)
- PGA=0x08;PGA 启用、PGA 增益= 1
- dataarate= 0x1D;(全局斩波禁用、选择内部时钟、连续转换模式、低延迟滤波器、 4000SPS。
- REF = 0x3A;(基准监控器被禁用)、正负基准缓冲器被禁用、内部基准被选中、内部基准一直打开
- Idacmag=0x00;(PGA 轨标志被禁用、低侧电源开关打开、IDAC 幅度关闭)
- Idacmux=0xDD;(Idac1和 Idac2断开连接)
- Vbias = 0x00;Vbias 断开连接
- Sys=0x11;(系统监视器断开连接、8个采样、SPI 超时禁用、CRC 禁用、 状态使能)
-Ofcal0、Ofcal1、Ofcal2、Fscal0、Fscal1、Fscal2=0;
- Gpiodat=0x00;(GPIO 被配置为输出、GPIO 低电平)
- GpioCon=0x00;(GPIO 被配置为模拟输入。
我选择启用 PGA 和增益1是因为我在数据表中看到、对于单端输入和双极电源、应该启用 PGA、但我也在禁用 PGA 的情况下进行了测试。
我禁用基准缓冲器、因为我在数据表中看到、当选择内部基准进行测量时、必须禁用这些缓冲器。
我还使用 Sinc3滤波器而不是低延迟滤波器进行了测试。
我还测试了启用基准监控器和 PGA 输出轨标志、以检查是否存在任何故障、但我接收到的状态不变、始终为0x80、没有任何故障。
以下是 DRDY、SCLK 和 DOUT 信号的一些图片:
- DRDY 信号和 SCLK
- SCLK 和 DOUT
我还在测量期间检查了以下信号的状态:
- RESET 始终为高电平
- START 始终处于高电平
CS 始终为低电平
请告诉我配置是否正确以及我是否做了一些错误? 因为我一直读取0。
非常感谢您的参与。
此致
Jennif器 Blanco


