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.

[参考译文] TMS570LC4357:在事务失败后 SPI 移动额外位

Guru**** 2426630 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1349091/tms570lc4357-spi-shifting-extra-bit-after-failed-transaction

器件型号:TMS570LC4357

尊敬的德州仪器支持:

我们目前正在开发一个使用两个 TMS570LC43x 微控制器的系统、一个配置为 SPI 主设备、另一个配置为 SPI 从设备、通过 QSPI 配置中的 mibSPI 外设进行通信。 我们遇到了一个问题、即在特定条件下接收到的数据中发生单个位移位。

硬件配置:

  • 主从:TMS570LC43x 微控制器
  • 连接:在 QSPI 设置中的兼容模式下使用的 mibSPI 外设

软件配置:

  • 定制 SPI 驱动器
  • MibSPI 设置:VCLK 为75 MHz、16位字长、波特率预分频设置为8、WDELAY 设置为3、并通过 ENA 引脚进行握手

问题描述:只要 SPI 主器件在传输过程中突然停止传输、该问题就会持续出现。 按照勘误表 MIBSPI#137、我们禁用 DMA 和 SPI、首先暂停 DMA 请求、然后清除 SPIGCR1的 SPIEN 字段。 虽然这种方法在正常条件下有效、但所述的边沿情形会使主器件在后续事务中接收移位帧、从而在 RX 数据中插入错误的"0"位。

执行的测试:

  • 我们已经注意到,操纵 WDELAY 的价值似乎可以解决这个问题;然而,我们担心这可能不能解决根本原因,我们怀疑这可能是一种种族条件。
  • 我们已经排除了 DMA 问题、因为通过单个位移位该问题仍然存在。
  • 我们实施了一种复位权变措施(关闭 SPI 电源或通过 SPIGCR0进行复位)、这似乎可以解决问题、并指出 SPI 模块上的问题是问题的根源。
  • 测试了极性和相位配置更改、Phase = 0使问题更加严重。
  • 目前无法直接进行示波器分析、但在从端完全复位 SPI 模块(同时仅在事务之间切换主器件的 SPIEN)未解决该问题。 我们认为这可以排除从从器件传播的任何问题。

Question:

  1. 是否有任何已知的缓冲问题或竞态条件会导致位被错误缓冲和移入后续事务?
  2. 我们是否可以在不直接访问示波器的情况下执行任何其他调试步骤来进一步隔离问题?
  3. 是否有建议的方法来处理中间事务中断和后续 SPI 事务、以解决或避免该问题?

我们正在寻求您的技术专业知识来了解并解决此问题。 异常行为似乎与 SPI 主器件的中间交易中断有内在联系、且找到可靠的解决方案对于我们系统的可靠性至关重要。 我们感谢 TI 能提供的任何见解、建议或进一步的诊断步骤。

感谢您的帮助、我们期待您的及时回复。

此致

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

    您好、Wezley:

    在从端需要一些延迟、您可以参考我最近的以下主题吗?

    (+) TMS570LS3137:MibSPI Slave ->主器件传输第一个值缺失第一位-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    --
    谢谢。此致、
    Jagadish。

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

    你好,Jagadish! 非常感谢您的答复! 我来试一下、让您知道。 我相信它将工作,从我们的观察 WDELAY -. 您为什么需要延迟 CS 激活以传输开始延迟吗? 我们的 SPI 似乎在该边沿情况之外的标称性能。

    我们希望更好地理解 TMS 要求这个延迟不移入0位的原因、以确保我们系统的确定性。

    谢谢!

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

    尊敬的 Wezley Sherman:

    我来尝试一下并告诉你。 [/报价]

    当然可以。

    我们希望更好地了解为什么 TMS 需要这种延迟来不移动到0位以确保我们系统的确定性。

    (+) TMS570LC4357:配置为从设备时的 MibSPI 问题-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    实际上、该延迟要求仅来自 TRM。

    如果未使用 SPIENA 引脚进行通信、则每次传输应至少需要6个 VCLK 周期的延迟。

    --
    谢谢。此致、
    Jagadish。

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

    啊、谢谢您提供的信息! 我们在此将其配置为使用 SPIENA、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Ah,谢谢您提供的信息! 我们配置为在此处使用 SPIENA

    那么、现在它可以正常运行了吗?

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

    不可以、遗憾的是、即使在使用 SPIENA 的情况下、我们仍然会看到此故障。 为什么有什么想法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不对,很遗憾,即使在使用 SPIENA 的情况下,我们仍能看到此故障。 为什么有任何想法?

    给我一些时间在最后进行测试。  或者、如果可能、在最后分享您的完整项目以进行快速调试。

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

    您好、Wezley:

    我对我的答复出现拖延表示诚挚的歉意。 我被其他问题困扰着。

    您能否发送您的主代码和从代码、以便我在结束时对问题进行调试和验证。 这将有助于减少在结束时重新生成问题所需的时间。

    --
    谢谢。此致、
    Jagadish。