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.

[参考译文] AM6442:PRU:如何从 PRU 触发预配置的 BCDMA TX 通道?

Guru**** 2460850 points
Other Parts Discussed in Thread: AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1550712/am6442-pru-how-to-trigger-a-pre-configured-bcdma-tx-channel-from-the-pru

器件型号:AM6442


工具/软件:

尊敬的 TI 专家:

我们目前正在评估持续读取 2 个 ADC(通过 McSPI 连接到 AM6442 芯片)的可能性:

 

初始目的是使用由 DMTIMER0 生成的 PWM 信号触发的 BCDMA + PDMA 组合。 遗憾的是、这种方法提出了两个关键问题:

  • 我们成功配置了 BCDMA (TX)+ PDMA (TX) 组合、从而支持 ADC 读取。 但是、尽管通过 Timesync 路由器正确路由 PWM 信号并正确设置了 DMA 触发器、但我们仍然无法触发来自 DMTIMER0 的传输。
  • 即使我们能够使用 PWM 输出触发 BCDMA、仍无法将计时器精确设置为所需的频率。 之所以出现这种限制、是因为计时器在 带有简单预分频器的 25MHz 时钟上运行。

我们当前希望使用 PRU 主动触发 BCDMA TX 通道、因为它可以实现恒定且可控的频率。 虽然我们知道这种方法会引入一些延迟、但只要延迟是确定性的、它就不会带来问题。

所以这里实际的问题是:
 从 PRU 侧触发已配置 BCDMA 通道的正确方法是什么?  

谢谢。此致、

Angel

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

    您好 Angel、

    检查系统中当前如何使用 PRU 内核

    只是为了确认:您实际上并未将 PRU 内核用于与 DMA 相关的任何内容、对吗? (例如,不通过 PRU 内核使用 ADC 数据、不像以下 MCU+示例那样控制 PRU 的 ADC 接口等:
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/10_01_00_32/exports/docs/api_guide_am64x/DRIVERS_PRU_ADC.html 
    https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/10_01_00_32/exports/docs/api_guide_am64x/EXAMPLES_PRU_ADC.html

    您只需对 PRU 内核进行编程来触发 DMA、对吗?

    谁在使用 ADC 数据?  

    哪个或哪些内核正在接收此数据? 在这些内核上运行的是什么操作系统?

    此致、

    Nick

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

    您好、Nick、

    感谢你的评分 回答您的问题:

    onfirm:您实际上并未将 PRU 内核用于与 DMA 相关的任何内容、对吧? (例如,不通过 PRU 内核使用 ADC 数据、不像以下 MCU+示例那样控制 PRU 的 ADC 接口等:
    [/报价]

    目前根本没有使用减贫单位、但我们计划对其运行小型程序、以执行一些辅助任务。
    我想通过 PRU 触发 DMA 传输的原因是、它可以提供比 SoC 中可用的 DM 计时器更精确的频率配置。 如果您对最初的问题感到好奇,请查看此票证: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1509996/am6442-using-an-event-to-trigger-a-dma-spi-read/5965137?tisearch=e2e-sitesearch&keymatch=%252520user%25253A584118# 。 这是一个非常长的线程。

    [引述 userid=“280115" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1550712/am6442-pru-how-to-trigger-a-pre-configured-bcdma-tx-channel-from-the-pru/5972535

    谁在使用 ADC 数据?  

    [/报价]

    整个固件在 R50-0 上运行。 在多通道控制器模式下、数据通过 McSPI4 通过 BCDMA–PDMA 对进行传输。
    一旦传输完成并且数据到达相应通道的 RX 寄存器、第二个 DMA 对 (PKDMA–PDMA) 将由来自 McSPI 的 DMAR 请求触发。
    然后、该第二对将数据传输到存储器中、并在 32 次读取后触发中断。

    正如您在上述票证中所看到的、除了触发 BCDMA-PDMA 对之外、一切都正常运行。 目前、我们通过软件触发器来执行此操作、在计时器中断时触发、但对于生产版来说、这不是一个选项。

    谢谢。此致、

    Angel