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.

[参考译文] AM62P:AM62P:SPI 帧间间隔问题

Guru**** 2896920 points

Other Parts Discussed in Thread: SYSCONFIG, AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1629636/am62p-am62p-spi-inter-frame-interval-problem

部件号: AM62P
主题中讨论的其他器件: SysConfig

你(们)好

我使用的工具版本如 P1 中所示。 P2 中显示了 SPI 配置。 使用此配置进行通信时、我发现 SPI 输出的帧间隔太短 (200ns)、无法满足相关外设器件的通信协议要求。 此问题如 P3 所示、外设应使用 0x00FA 进行响应、但第二个帧应响应 0x000F。  但是如 P4 所示,当我将 while () 函数插入 SDK 传输函数 MCSPI_fifoWrite16() 时,帧间间隔增加到 2.8us。 通过这种调整、外设响应正确、如 P5 所示。 不过、这对于实际应用而言并不是理想的解决方案。 帧间间隔无法通过 SysConfig 进行配置、也无法通过相关寄存器进行设置。 因此、请提供更好或更可靠的官方解决方案。

 

P1.  

image.png

 

P2。   

 image.png

 

P3.  image.png

 

P4.image.png

 

P5.

image.png

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

    您好、

    我将在大约一小时后查看此主题、并在今天结束之前返回给您。

    此致、

    Vaibhav

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

    您好、

    您是否可以尝试在 sysconfig > MCSPI > Chip-select TCS 中播放字段 

    此致、

    Vaibhav

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

    你(们)好

    我尝试了两种 TCS 配置、但外设在这两种情况下都未能正确响应。 如 P1 所示、延迟设置为 3.5 个时钟周期延迟。 如 P2 所示、延迟设置为 0.5 个 时钟周期延迟。 如 P3 所示、这两个配置仅影响 CS 置为有效和第一个时钟边沿之间的时间、或 CS 移除与最后一个时钟边沿之间的时间、不会影响帧之间的 CS 空闲时间。 我认为 CS 空闲时间是根本原因。

    第 1 页  

    第 2 页  

    第 3 页  

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

    如前所述,当我 将 while () 函数插入 SDK 传输函数 MCSPI_fifoWrite16() 时, CS 空闲时间增加到 2.8us。 通过这种调整、外设会正确响应。

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

    您好、

    您能否分享外设的数据表、以及它指出 CS 切换之间应该有时间。

    这将有助于我创建功能请求/附加组件、因为这不是驱动程序中的错误、但可能是一个很好的附加组件。

    期待您的答复。

    此致、

    Vaibhav

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

    你(们)好

    下面提供了外设数据表的官方链接、 SPI 时序特性位于第 15 页。 但是、本数据表中未提供 CS 空闲时间的说明。

    product.tdk.com/.../ds-000481-iam-20680ht-v1.1.pdf

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

    您好:
    感谢您的查询。 有关专家因** TI 印度**假期而离职。
    请预计响应会延迟。 感谢您的耐心和理解。

    此致、
    TI E2E 支持团队
    ——
    *这是一个自动通知。*

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

    您好、

    我正在查看您共享的外设的数据表、并将对您进行更新。

    谢谢、

    Vaibhav

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

    您好、

    您是否可以尝试使用单主/单控制器模式进行测试、而不是使用多主器件?

    在不对 MCSPI_fifoWrite16 API 进行任何更改的情况下、告诉我您看到了什么结果。

    谢谢、

    Vaibhav

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

    你(们)好

    在单主模式下问题仍然存在。

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

    您好、

    我不理解控制器在时钟甚至未激活时如何发送数据。 我用红色标记突出显示了这一点。 这并不理想。

    其思路是数据在任一边沿上采样、但由于时钟不处于有效状态、我们如何看到数据线处于高电平?

    您是否可以重新访问硬件连接?

    此致、

    Vaibhav

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

    你(们)好

    为了提高 高可靠性场景中的通信稳定性、并确保可以快速上拉信号电平、在 MOSI 中添加了上拉电阻器。 因此、默认电平为高电平。

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

    您好、

    如果这是您正在使用的定制电路板、您能否让您的硬件团队通过以下链接查看 AM62P?   【常见问题解答】AM625 / AM623 / AM620-Q1 / AM62Ax / AM62Px / AM62D-Q1 / AM62L / AM64x / AM243x (ALV)/ AM335x 设计建议/定制电路板硬件设计 — 原理图审阅检查清单 

    此致、

    Vaibhav

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

    你(们)好

    我有疑问。 首先、可以 正确发送 MOSI 上的数据、在 MCSPI_fifoWrite16 API 中添加延迟后可以正确接收 MISO 数据。 其次、 当每次只传输一个帧(一个 uint16 数据)时、也可以正确接收 MISO 数据。 这表明电路板没有问题。 我认为 MCSPI_TRANSFER API 不考虑外设对 SCS 最短高电平时间的要求。 如下图所示、特定外设指定此 SCS 最短高电平时间。

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

    尊敬的 Zhou:

    我将阅读  您提到的所有上述 SPI 时序要求。  

    在我全面了解后、我将评估需要将更改引入 SDK 的位置。

    此致、

    Vaibhav

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

    尊敬的 Zhou:

    对于突出显示的 t (HI_nSCS)= 2 微秒要求、csIdleTime 只会增加 SCLK 周期的几分之一—在 10MHz 为 0.05–0.35 微秒、远小于 2 微秒。 驱动程序没有用于控制传输间 CS 空闲间隙的专用 API (CS 在两个 MCSPI_TRANSFER () 调用之间保持高电平的时间)。

    要强制执行 2 微秒、您需要在应用程序代码中的连续转接调用之间插入软件延迟。

    我建议使用周期计数器实现、因为简单的 while 循环在时钟频率变化时很脆弱。

    要了解周期计数器实现、请参阅以下内容:  【常见问题解答】PROCESSOR-SDK-AM62X:使用周期计数器在应用程序中评测 CPU 周期 

    目前、我们没有计划在软件中添加可配置选项、但对于您的用例、您可以继续采用周期计数器。

    此致、

    Vaibhav