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.

[参考译文] TMS570LS0714:多缓冲模式中的 MibSPI

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/569198/tms570ls0714-mibspi-in-multibuffered-mode

器件型号:TMS570LS0714
主题中讨论的其他器件: HALCOGEN

大家好、

我的客户使用 MibSPI 与另一 个 TMS570LS0714连接、并以20MHz 的频率与3p MCU 连接。

TMS570LS0714- TMS570LS0714连接:振荡器显示16位封装之间的暂停。 一切都好。

当客户尝试将 TMS570LS0714与3p MCU 连接时、16位封装之间会出现暂停、客户看不到任何如何设置暂停的解决方案。  如果连接速度超过3MHz 、连接将完全崩溃。 如果连接速度低于3MHz、那么在 MibSPI 的 RX 寄存器中、所有字都由溢出位 RXOVR 标记、但数据是正确的。  

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

    您好 Dimitrius、

     您可以使用 WDELAY 延长传输之间的延迟(空闲时间)。 请检查 SPIFMTx 寄存器中的 WDELAY 域。 该域用于配置延迟量。 配置 WDELAY 后、您可以通过设置多缓冲 RAM 发送数据寄存器中的 WDEL 位域来单独启用延迟。

     在 HalCoGen 中、您可以配置 WDELAY、如下面的屏幕截图所示。 我以5为例来配置 WDELAY。 这将提供总计5 * VCLK + 2 * VCLK 的延迟。

    在下面的屏幕截图中、我启用 WDELAY。

    尝试使用 WDELAY 来查看它是否起作用。

     如果您获得 RXOVR、则意味着在 RXBUF 再次被新数据覆盖之前、接收到的数据不会及时读取。  

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

    谢谢、Charles。

    也许您有明确的指导、指导您如何在下面设置连接:

    -128字节封装,双工。 TMS570的 SPI 发送64帧*16位

    -连接速度:20至25MHz

     主: Freescale T1040。  从器件:TMS570LS

    此致、

    Dmitry

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    迪米特里
    您是否使用过 WDELAY? 应用 WDLAY 后的结果是什么? 您是否仍然遇到 RXOVR 错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles!
    只有当 Hercules 被配置为主器件时、设置 WDELAY 才起作用。 Exchange 控制 SPI 主器件、并且未配置 WDELAY。 主器件(T1040)不提供此设置。
    问题是 TMS570是否在速度为20-25MHz 时连续处理32位序列、没有错误?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jan、
    首先、Hercules SPI 每帧最多只能支持16位数据字长度。 您刚才提到了以20-25MHz 的速度在32位下运行。 您能否详细说明您的设置? 16位传输结束时、数据被移动到 MibSPI RXRAM。 如果您的外部 SPI 主器件在16位的后半部分继续移位、则它将覆盖刚刚存储在 RXRAM 中的主器件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,查尔斯!
    那么、会发生这种情况。 数据损坏、位设置 RXOVR。 问题是:这是正常的、或者具有可以纠正这种情况的设置。 谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jan、
    很抱歉,我没收到你的答复。

    我不知道 T1040的 SPI 功能。 您能否将 T1040配置为在16位数据长度下运行? 在您之前的帖子中、您提到了有效载荷、如下所示。

    "封装128字节、双工。 TMS570的 SPI 发送64帧*16位"

    在这种情况下、您需要将 MibSPI 传输组配置为具有64个缓冲区、以便在接收到16位数据的64帧时、它将生成一个到 CPU 的中断来处理这些数据。 您需要将外部主设备(即 T1040)配置为传输64帧的16位数据。 如果您的外部 SPI 每帧只能传输32位数据、则需要将其配置为传输32帧的32位数据。 如果您的外部 SPI 将传输超过128字节的数据、请执行