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.

[参考译文] TMS320C6655:McBSP RRDY 在 DMA 传输到 MSMCSRAM 后卡在 1

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1621940/tms320c6655-mcbsp-rrdy-stuck-at-1-after-dma-transfer-to-msmcsram

部件号: TMS320C6655

我已将 McBSP0 配置为发送 32 位并刷写数据输出、时钟和帧同步到输入信号、以便同一个 McBSP0 可以接收它发送的数据(外部环回)。

我将 EDMA 通道 36 配置为由 McBSP0 RRDY 信号触发、并将 32 位数据从 DRR0 寄存器传输到 MSMCSRAM(通过存储器映射禁用高速缓存)。  

现在数据已正确传输、但我只能检测一次挂起的中断。 (这需要查看 EDMA 传输是否通过完成代码完成)。 原因是 McBSP 的 RRDY 卡在 1。

  • 由 CPU 多次读取没有帮助
  • 每次 EDMA 传输后复位 McBSP 接收器都会有所帮助。

然而,这不是手册所说的。 手册中规定、在 CPU 或 EDMA 从 DRR 中读取数据后、RRDY 复位为 0。

当删除 main.c 第 219 行中的'CBSP_RECEIVER_RESET'时、您可以看到 EDMA_WAIT 未按预期响应

您能否对此进行调查?

e2e.ti.com/.../xmc.he2e.ti.com/.../reg.he2e.ti.com/.../3580.main.ce2e.ti.com/.../dma.he2e.ti.com/.../1832.dma.c

我必须附上上面的示例代码。

此致

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

    您好、

    感谢您的信息。 我会检查并回复您。

    此致、
    Shabary S Sundar

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

    您好、

    您可以尝试将 DRR0_ADDR 定义中的数据接收寄存器地址从 (MCBSP0_BASE + 0x00) 更改为 CSL_McBSP0_FIFO_DATA_REGS、即 (0x22000000)。TI 的驱动程序分配两个单独的地址:用于 CPU 访问的配置寄存器地址 (0x021B4000) 和专用于 EDMA/DMA 数据传输的数据端口地址 (0x22000000)。

    您可以参阅: c66x_sdk/pdk_c665x_2_0_16/packages/ti/drv/McBSP/device/c6657/device_McBSP_loopback.c src 进行配置。





    此致、
    Shabary S Sundar

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

    感谢您的想法。 不幸的是、这没有任何变化。 我通过 DMA 获得一个 32 位字、然后 SPCR0 为:00430003 和 EDMA_WAIT 块、而无需接收器复位。

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

    您好、

    您能否请参考、尝试在裸机代码中启用 McBSP RX FIFO (BFIFO)  mcbspConfigureFifo() 传递函数  pdk_c665x_2_0_16/packages/ti/drv/McBSP/McBSP_Drv.c src



    此致、
    Shabary S Sundar