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.

[参考译文] ADS1216:从寄存器读取时、MSB 始终为1

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/748702/ads1216-msb-is-always-1-when-reading-from-the-register

器件型号:ADS1216

您好!

我已经在引脚 PDWN、DSYNC 和 RESET 上拉高了。 在整个 SPI 通信过程中、CS 引脚也被拉低。

XIN 引脚上的时钟频率也正确。

在不执行任何操作的情况下、我读取设置寄存器(地址00h)、它返回8Eh。

然后我尝试读取 MUX 寄存器(地址01h)、MISO 返回81h。

您是否知道为什么 MSB 位始终设置为高电平?

然后、我尝试向 MUX 寄存器写入值14h。 从 MUX 寄存器执行回读后、返回94h!!!

我卡住了。 请帮助!

谢谢!!!

此致、

Darren

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


    我认为、使用示波器或逻辑分析仪绘制 SPI 通信图总是有帮助的。 您能否发布显示/CS、DIN、DOUT 和 SCLK 的 A 照片? 我认为这将是调试该问题的良好开端。


    吴约瑟
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当然可以! 我将尝试在明天完成这项工作。
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我 现在尝试获取示波器... 但对于 示波器信号.. 恐怕我无法获得 CS 信号。 但请注意、该 CS 从一开始就保持低电平。

    当时、我使用"Beagle" SPI 监听器捕获了 SPI 信号。

    请参阅随附的。 这足够了吗?

    此外、当我尝试读取2寄存器时、我得到了以下结果。 返回的值顺序相反! 我是否设置错误?

    我先发送11h、然后发送01h

    我返回80h 和01h (MUX 寄存器的默认值为01h、模拟控制寄存器为00h

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

    示波器快照将帮助我们确定时间。 对于某些操作的命令之后的延迟有一些严格的要求。 请参阅 ADS1216数据表第8页上的时序特性。 请特别注意 T6。

    它还显示您正在尝试全双工类型的操作、在该操作中、您将在发送命令的同时收集数据。 由于时序限制、该器件在这方面存在一些问题。 我建议发送0xFF 来启动 SCLK 以读取数据。 例如、发送0x10 0x00 0xFF 以完成读取单个寄存器的通信周期。 发送0x55会启动一个从未实际完成的寄存器写入序列(第一个图形数据)。 您需要确保已开始的任何通信均已完成。

    您的微分发送16位传输吗? ADS1216需要字节传输。 由于上面提到的时序、16位传输可能会成为一个问题。 如果您的微控制器使用16位通信、我建议您对 ADS1216使用8位传输。 同样、示波器截图将帮助我们更好地了解您的沟通和计时。

    此致、
    Bob B