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.

[参考译文] ADS8695:ADS8695的 SPI 示例代码

Guru**** 2394295 points
Other Parts Discussed in Thread: ADS8695, ADS8681

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/790766/ads8695-spi-example-code-for-ads8695

器件型号:ADS8695
主题中讨论的其他器件: ADS8681

尊敬的

客户询问我们 是否有 ADS8695的 SPI 示例代码可作为他们的参考? 谢谢。

它们遇到的问题是、无论设置了 ADS8695寄存器值、读取采样值始终以默认寄存器设置为基础。

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

    您好、Terry、

    很遗憾、我们没有此器件的示例代码、您能否提供更多信息?

    1.带有编程和读取寄存器的数据的命令、客户尝试编程和读取哪个寄存器?

    SCLK/SDI/SDO 和 CONVST/CS 的时序图将非常有助于解决这个问题、一个帧和两个连续帧的时序将非常好。

    此致

    戴尔

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

    你(们)好

    下面是波形示例、我们尝试发送"程序寄存器"命令、然后发送"读取寄存器"命令。  

    "程序寄存器"命令为11010000-00000010-000000000000 - 0000FFFF

    "读取寄存器"命令为11001000 - 00000010 - 00000000 - 00000000

    无论发送多少次"读取寄存 器"命令、反馈都不是寄存器数据、而是始终基于默认寄存器设置的 ADC 采样结果数据。

    请帮助检查我们是否有任何操作错误?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Terry、
    如果客户尝试在 DEVICE_ID_REG 寄存器中对 DEVICE_ADDR[3:0]进行编程并将其读回、则这些命令是正确的。 请注意、寄存器数据将显示在下一个帧中、与发送 READ_HWORD 命令不同。 SDO 的蓝色时序是否来自 ADC? SDO 上的数据在不同的帧中是否都相同?
    看起来客户使用的是 SPI-00协议、这是正确的、因为 ADC 支持该协议在加电后进行数据读取和写入操作。 但是、时间安排中的一些事情让我感到困惑:
    在第一个时序图中、SCLK 和 MOSI 上有一个从高电平变为低电平的变化、这是在客户的 CPU 上配置 SPI 后的第一个帧吗?
    2. MOSI 上的第2个和第3个时序图之间的初始信号电平不同,是否有任何变化?
    如果不对任何内部寄存器进行编程、那么模拟输入信号的转换数据是否正确? 这可以演示 SPI 时序是否正确。
    如果您需要、我们可以进行呼叫。

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

    你(们)好

    是的、我们将测试 在 DEVICE_ID_REG 寄存器中对 DEVICE_ADDR[3:0]进行编程并将其读回的命令。 如果我们的命令正确、那么为了在 下一帧中获得正确的寄存器数据反馈、我们应该发送什么继续命令或数据?  

    蓝色时序是来自 ADC 的 SDO、到目前为止、无论我们发送 READ_HWORD 多少次、只要继续、SDO 都会返回根据模拟输入信号正确的转换数据、并且我们还可以成功接收 SPI Rx buf 中的转换数据。

    考虑您的问题:

    1、是的、第一个时序图是配置 SPI 后的第一个帧、因此您可以在 SCLK 和 MOSI 上看到从高到低的值

    2、我们不改变第2个和第3个时序图之间的任何值、第2个图中最后一个 MOSI 字节可能的原因不同、是"0F"、第3个图中是"00"   

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

    您好、Terry、

    感谢您的澄清。

    如果 READ_HWORD 命令在帧 F 中发送到 ADC、则可以在帧(F+1)中向 ADC 发送相同的命令或 NOP 命令、并且帧(F+1)中的输出数据字包含16位寄存器数据、后跟0。 请确保使用 CONVST/CS 信号、因为该命令将在 CONVST/CS 信号的上升沿执行。 请参阅 ADS8695数据表第41页和第42页的说明。

    此致、

    戴尔

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

    你(们)好

    是的、我们已经阅读了第41/42页、并尝试按照我们的理解发送命令、如下所示:

    CS 下降至低电平-> 写入 HWORD -> CS 上升至高电平-> CS 下降至低电平->读取 HWORD -> CS 上升至高电平-> CS 下降至低电平-> 读取 HWORD -> CS 上升至高电平

    我们假设在第二个读取 HWORD 帧时看到寄存器值、但它始终是所有上述三帧中的转换数据。  

    我们是否了解命令和 CS 信号操作错误?  或者、您认为我们在这里缺少其他设置吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Terry、
    我没有发现 CS 信号有问题、我正在尝试进行仔细检查、可能会设置一个带有软件的工作台进行检查、需要几天时间、感谢您的耐心。

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

    您好、Terry、

    首先让我们重点了解读取寄存器、然后我们可以在稍后检查寄存器编程。 您能否要求客户按如下方式发送命令并捕获两个帧(32个时钟+ 32个时钟)的时序图(/CS、CLK、SDI 和 SDO)?

    1.将命令(0xC8240000)发送 到 ADC o 读取 ALARM_H_TH_REG 寄存器。

    2.用32个时钟发送 NOP 命令(0x00000000)到 ADC。

    备注: 我们读取 ALARM_H_TH_REG 寄存器的原因是该寄存器中的默认内容为位15-0处的0xFFFF。 因此、应在第2帧的前16位的 SDO 上观察到0xFFFF。

    请参阅另一个查询、该查询包含客户从 ADS8681读取寄存器时获得的最新时序图。

    https://e2e.ti.com/support/data-converters/f/73/t/790523

    谢谢。

    此致、

    戴尔