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.

[参考译文] LP-AM261:DMA 不工作时的 MCSPI 环回示例

Guru**** 3001220 points

Other Parts Discussed in Thread: LP-AM261

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1643444/lp-am261-mcspi-loopback-example-with-dma-not-working

器件型号: LP-AM261

尊敬的专家:

我正在使用 LP-AM261、CCS 20 和 SDK 11-01-00-19。

在我的评估板上、MCSPI 环回示例示例看起来有些破:我总是觉得数据不匹配。 我尝试了 nortos 和 FreeRTOS。 我还尝试降低 MCSPI 时钟频率、但没有成功。

有任何帮助吗?

 

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

    您好 Elia、

    在确定根本原因之前、一些详细信息可能会有所帮助:

    • 数据不匹配是什么样子的? 您是否看到完全损坏(RX 中的全零或随机数据)、位错误或偏移/移位模式? 这种区别对于诊断是否是 DMA 传输问题、缓存一致性问题或配置错误至关重要。
    • 非 DMA MCSPI 环回示例是否起作用? (即没有 DMA 的基于轮询/中断的版本)。 如果通过该测试、则问题专门局限于 DMA 处理。
    • 您使用的是哪个 LP-AM261 电路板版本? SDK 10.02.00 文档指出 LP-AM261 修订版 E2 是支持的版本 [1]。

    MCSPI 环回 DMA 示例(HLD 和 LLD 型号)设计为使用 内部焊盘级环回 —D0 通过 SYSCFG 配置为 TX 启用和 RX 输入、并且应该打印“所有测试都已通过!!“ 成功[2][3]。 预期输出确认这是一个独立测试、无需外部接线。

    故障排除建议

    1. 首先测试非 DMA 环回示例 — 这可以隔离 MCSPI 外设在环回模式下是否正常工作、或者问题是否特定于 DMA。

    2. 检查高速缓存一致性 — R5F 内核上基于 DMA 的传输要求 TX/RX 缓冲区放置在不可缓存的存储器区域中、或执行适当的高速缓存维护(在 TX 之前写回、在读取 RX 之前失效)。 如果示例的链接器/MPU 配置与您的构建不匹配、过时的缓存数据可能会导致不匹配。

    3. 验证 SYSCFG 引脚配置 — 确保 D0 引脚配置为内部焊盘级环回所需的 TX 启用和 RX 输入[2]。

    4. 检查 DMA 缓冲区对齐 — DMA 传输通常需要与高速缓存行边界对齐的缓冲区(32 或 64 字节,具体取决于配置)。

    为了帮助完善这项建议、了解以下信息会有所帮助:

    • 无论此问题是与特定的 MCSPI 实例(MCSPI0 与其他)还是 DMA 控制器通道相关
    •   用于 LP-AM261 上 DMA 缓冲器的特定 SYSCFG 或 MPU/缓存设置

    鉴于该问题会在 NORTOS 和 FreeRTOS 之间重现并持续存在、无论时钟频率如何、 高速缓存一致性或 DMA 缓冲区放置问题都是最可能的原因 、这些问题将与操作系统无关且与时钟无关。 我建议从非 DMA 环回测试开始以确认外设工作、然后检查 DMA 缓冲区的存储器映射和 MPU 设置。

    如果您可以共享控制台输出或描述不匹配模式(例如,RX 缓冲区全零与乱码数据)、这将显著缩小诊断范围。


    资源:

    1. 电机控制 SDK AM261x 发行说明 10.02.00
    2. MCSPI 环回 DMA 示例文档
    3. MCSPI 环回 DMA LLD 示例文档

    此致、

    Zackary Fleenor

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

    您好 Elia、

    我想跟进 MCSPI 环回问题、我们一直对 LP-AM261 Rev A 板进行故障排除。

    距离我上次回答大约有两周时间了、我正在检查您是否有机会尝试任何建议的故障排除步骤、特别是:

    1. 外部环回测试 — 使用跳线将 MCSPI TX (D0) 物理连接到 RX (D1)、以隔离这是否是修订版 A 特定的内部环回路由问题
    2. 使用 Rev E2 板进行测试 —如果您能够获得一个板、因为 SDK 11-01-00-19 正式支持 Rev E2

    考虑到您描述的间歇行为(下电上电后工作,然后在后续运行时失败)和特定的位模式损坏 (0xAA→0xCC、0x55→0x33)、我仍然怀疑这与修订版 A 硬件和 SDK 预期修订版 E2 目标之间的电路板版本不匹配有关。

    如果您已经采取了任何解决方法或找到了解决方案、我很想了解一下 、这既可以正确关闭此主题、也可以帮助其他可能在 Rev A 板上遇到类似问题的用户。

    如果您仍然困难重重或需要其他指导、请告诉我、我很乐意继续提供帮助。

    此致、

    Zackary Fleenor