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.

[参考译文] ADS7028:通过 TMS320C2000实验套件(Piccolo F28069)控制 ADS7028

Guru**** 2526700 points
Other Parts Discussed in Thread: ADS7028, ADS7038Q1EVM-PDK

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1060295/ads7028-control-ads7028-via-tms320c2000-experiment-kit-piccolo-f28069

器件型号:ADS7028
主题中讨论的其他器件: ADS7038Q1EVM-PDK

您好!

我尝试通过 TMS320C2000实验套件(Piccolo F28069)控制 ADS7028。

我的最终目的是从2个正弦波信号输入中获得2个 RMS 值和2个 ZCD 信号。 (这是可以实现的吗?)

到目前为止、我已成功发送来自实验套件的24位 SPI 帧。

                                                    

然后、我尝试测试 ADS7028的读取和写入命令、但它看起来根本没有响应。

(写入测试:将所有通道设置为 GPIO 输出并设置逻辑1,读取测试:读取多个寄存器)。

是否有任何 SPI 设置或我的过程错误?

e2e.ti.com/.../SPI_5F00_Init.c

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

    您好!

    ADS7028支持 RMS 和 ZCD、但每个功能每次只支持一个通道。 例如、您希望使用两个模拟输入通道、例如 CH0和 CH1 来测量 RMS、您需要测量通道0、然后写入 RMS 寄存器并从 CH0更改为 CH1、然后测量 RMS。  

    这将同样适用于 ZCD。 ZCD 只能监视一个输入通道。  

    您提供的屏幕截图是读取寄存器所需的第一个帧、如果您正在读取通道0的高阈值、 但是、您丢失了将输出寄存器数据的第二个帧。 寄存器数据不会在同一帧中输出。  

    对于读取测试、我建议不要重新配置所有通道。 您只需读取已知寄存器、例如系统状态寄存器。  

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

    你(们)好

    感谢您回答并澄清这一点。

    在重新修改我的代码后、当前结果如下:

    打开电源后、我发送两个相同的帧来重复读取系统状态寄存器(100us 间隔)。

    但是“MOSI (SDO)”仍然没有信号输出(是否应该得到0x81?)。

    有什么我被误解了吗?

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

    抱歉、出现拼写错误。
    应为*MISO (SDO)*

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

    默认情况下、该器件使用 SPI 模式0、这意味着器件在 SCLK 的上升沿"读取"数据。 数据应在 SCLK 的下降沿改变状态。 这适用于 SDI 和 SDO。  

    当读取系统寄存器时、命令0x81有效。 我还建议对寄存器进行写入、例如 General_CFG 寄存器、然后回读该寄存器以确认其配置符合您的预期。

     一  

    -锡那西亚

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

    你(们)好

    感谢您再次回复。

    我认为我的框架现在没有问题(我重复发送),但仍然没有反应。

    如果您认为我当前的 SPI 帧设置正确(极性、相位、波特率等)、我将更换芯片或获取相关的开发板(ADS7038Q1EVM-PDK)以进行进一步测试。

    谢谢!

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

    您的时钟周期计数不正确、您的开始错误。 一个时钟周期应该被视为下降沿到下降沿。 在第一个时钟周期中、CS 下降帧可被视为第一个 SCLK、第一个帧以下降沿结束、此时您当前有一部分 SCLK 脉冲2。  

    这意味着您可能需要在一个时钟周期内移动命令。   

    请注意下图中的时钟编号

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

    你(们)好

    在读取 F2806x TRM (https://www.ti.com/lit/ug/spruh18h/spruh18h.pdf?ts=1639448638768)一段时间后、我找到了这个图。

    此图显示了 SPI-00 (无延迟上升沿)在 SCLK 上升沿更改状态和在下降沿锁存数据的模式、这使我与您之前的答复有点混淆。

    我尝试了两种模式、屏幕截图如下所示。

    上周购买的 ADS7038Q1EVM-PDK 现已推出

    我使用逻辑分析仪来监控其帧、结果如下图所示。

    它似乎与上述两项测试不同。

    我将尝试将 SPI 设置为“带延迟的上升沿”,这与开发板的封装最相似。

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

    在您执行的两项测试中、这两项都不能在模式0下与器件一起工作。 在第一项测试中、您仍然使用错误的边沿。 您应该在 SCLK 的上升沿"读取"或锁存数据。 数据应在 SCLK 的下降沿改变状态。 您的做法是相反的

    第二项测试使用了错误的时钟极性。 空闲时钟应处于低电平。   

    逻辑分析仪显示了下降沿上 SDO 数据的变化状态。 另请注意、逻辑分析仪将使用用户配置的模式来读取数据、它不知道自动使用哪种模式。 这是用户配置。 从逻辑分析仪中、您可以看到来自 EVM 的时钟极性较低(0)、因此您的测试2将无法在模式0下与器件一起工作。  

    为了与器件正常通信并按预期读取数据、时钟在空闲时应处于低电平、在 SCLK 的上升沿锁存数据、在 SCLK 的下降沿改变状态。 并使用下降沿对时钟周期进行计数。  这将是您共享的代码段中的"具有延迟的上升沿"。  

    此致

    Cynthia