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.

[参考译文] ADS131A02:如何读取 ADC 值

Guru**** 2387080 points
Other Parts Discussed in Thread: ADS131A02, ADS1298
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/705133/ads131a02-how-to-read-adc-values

器件型号:ADS131A02
主题中讨论的其他器件: ADS1298

您好!

我已成功解锁 ADS131A02 IC 并完成了一些寄存器初始化。

如何读取 ADC 值?

我将 ADC 用作异步中断、已将 SPI 字设置为32位、汉明码未被激活。

触发 DRY 后、我向 TX SPI 发送0x00000000、然后从 ADC 读回0x30220000、无论 ADC 输入是什么:

如何读取两个 ADC 通道?  

我在数据表中找到的唯一内容是该图:

那么、我是否必须为状态发送0x00000000、然后为通道1数据发送0x00000000、为通道2发送0x00000000?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michael、

    我对您的器件没有任何经验、但它看起来与 ADS1298类似。
    因此、一般而言、如果您希望通过 SPI 接收到32b (stat、ch1、ch2等)的消息、您还应发送32b。

    现在您发送8b、以便接收8b。 尝试发送32b 并检查您得到的结果。
    Hint1:检查 SPI 的工作原理
    Hint2:将虚拟数据一起发送、而不是单独发送。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michael、

    感谢您发帖。

    您仅从我在您的图像中可以看出的内容发送32位数据。 您需要为要读取的每个字发送32位。 目前、您正在读取的是命令状态响应0x30 0x22 (0x00 0x00用于32位模式、LSB 0填充格式)。 我认为这意味着您读取保留寄存器地址10h、该地址等于0x22 (保留供将来使用)。 您能否仔细检查 SPI 极性和相位设置、以确保读取的值正确?

    为了时钟输出状态字+通道1数据+通道2数据、您需要发送3 x 32 = 96位。 第四个字(CRC)始终在 DOUT 上启用。 但是、如果您愿意、您不必阅读它。 只需在读取通道2后禁用/CS、并且不发送最后32个 SCLK。

    此致、