我们在异步从模式下通过 SPI 通信和32位器件字长度(无汉明码)来控制 ADS131A02。 初始化步骤根据数据表执行、看起来工作正常。 但是、一旦我们启用 ADC 通道、NULL 命令的响应就会从2200h 变为2220h、表示 SPI 故障。 STAT_S 寄存器中的 F_FRAME 位也会置位、因此每帧的时钟周期数似乎太低。 我们使用示波器观察了周期和数据流、但无法检测到任何问题。 禁用通道后、错误消失。 是否对此行为进行了解释? 尽管出现错误消息、但数据转换似乎正常工作。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我们在异步从模式下通过 SPI 通信和32位器件字长度(无汉明码)来控制 ADS131A02。 初始化步骤根据数据表执行、看起来工作正常。 但是、一旦我们启用 ADC 通道、NULL 命令的响应就会从2200h 变为2220h、表示 SPI 故障。 STAT_S 寄存器中的 F_FRAME 位也会置位、因此每帧的时钟周期数似乎太低。 我们使用示波器观察了周期和数据流、但无法检测到任何问题。 禁用通道后、错误消失。 是否对此行为进行了解释? 尽管出现错误消息、但数据转换似乎正常工作。
Katja、
正如您提到的、F_FRAME 错误来自器件、没有达到预期的 SCLK 数量。 我的第一个猜测是、启用 ADC 后、器件将为器件所有通道的 ADC 数据计时。 因此、该器件需要额外的48个 SCLK 用于数据、16个 SCLK 用于 CRC。
请注意、只要错误不继续发生、F_FRAME 错误就应通过读取 STAT_S 寄存器来清除。 使用 ADS131A02、您可以通过在启用 ADC 后为每个事务添加额外的 SCLK 来测试这一点、该 ADC 最初没有与其关联的读取数据。 器件不应将额外的 SCLK 标记为 SPI 错误。
如果您仍然遇到此错误的问题,请发布提供该错误的事务,并显示该错误的以下状态响应。 我们应该能够制定一个解决方案。
吴约瑟