大家好、
我提前对这篇帖子的长度表示歉意、但我认为最好是说一些不必要的内容、而不是省略一些有用的内容。
我们尝试在定制板上使用 ADS131E04和 STM32F4微控制器从3轴模拟加速计获取数据、但我们正在经历 DRDY 线的一些奇怪行为。
我们所需的只是100Hz 采样率、因此我们计划将 ADC 配置为1kSPS、RDATAC 模式、软件启动和停止命令(START 引脚连接到低电平)、并且只需忽略10个 DRDY 转换中的9个。
我们能够与 ADS 通信、正确写入配置寄存器并读回它们。

现在、从第一个屏幕截图中可以看到、当我们发出 RDATAC 命令后紧跟 START 命令时、DRDY 行为正确:每1ms 发生一次转换(由于我们不是从 SPI 检索数据、因此我们不会发出 SCLK、因此线路会停止); 但是、如果我们尝试读取数据(15字节 SPI 读取操作)、有时 DRDY 会每4.5ms 减慢一次转换(第2个屏幕截图)。

在第3个屏幕截图中、您可以看到 DRDY (3品红色)、ISR 信标解锁(1黄色)和 SPI 15字节读取操作(2青色)的时序;只需忽略编号4 (蓝色)、我在进行屏幕截图之前忘记禁用行。

检索到的数据似乎是正确的(从传感器的方向看)、所以问题可能仅涉及 DRDY 时序。奇怪的是、它似乎不能准确再现、 它似乎具有某种类型的随机性、因为有时 DRDY 会在不发出 STOP 命令的情况下停止"切换"。
第4个屏幕截图显示、发生这种情况时、在最后一次采集中、DRDY 会以16kHz 而不是1kHz 的频率"切换"(某种复位?! 但数据表指出模块复位为32kHz。)。
如果我们尝试在 DRDY 停止后多次读取配置寄存器、我们会看到随机值数次、然后看到一些值似乎是"默认"配置。
我们的配置随机值"默认"配置 0:0xD00:0x300:0xD0 1:0xD61:0x4D1:0x91 2:0xE22:0x62 2:0xE0 3:0x613:0x1D3:0x41 4:0x004:0x4E4:0x00 5:0x105:0x205:0x10 6:0x10 6 :0x10 6:0x10 6:0x10 6:0x10 6:0x10 6:0x7 0x107:0x6C7:0x10 8:0x908:0x328:0x10 9:0x009:0x009:0x08 10:0x0710:0x0010:0x07 11:0x0F11:0xC011:0x0F
最后一个屏幕截图只是为了显示 DRDY 在第一个 SCLK 下降沿之后变为正确的高电平。
我们尝试了不同的配置(采样率、SPI 速度...) 没有任何结果。
您是否经历过这样的经历? 如果有用、我可以上传有关 ADS 的原理图部分。
提前感谢您的帮助。
此致。
Mattia

