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.

[参考译文] RTOS/AM5726:SPI4 DMA 配置

Guru**** 2547320 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/803685/rtos-am5726-spi4-dma-configuration

器件型号:AM5726
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

你好!

我们使用两个连接到 SPI 通道2和4的 CANFD 控制器。

使用 DMA 传输时、SPI 通道2工作正常、但对于 SPI 通道4、我们需要配置 XBAR。

我们一直停留在这里、无法确定如何配置 XBAR。 我们能否获得一些有关如何使用该通道的 DMA 的帮助?

由于穿孔问题、使其正常运行非常重要。

我们使用的是 CCS-Studio (8.3)

SYSBIOS:版本(BIOS_6_70_00_21) 和 xdctools (3_50_08_24_core)

PDK:pdk_am57xx_1_0_13

BR:PER - Anders

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

    您确切地需要在 dma_crossbar 中配置哪个 McSPI4 DMA 信号? 没有 McSPI4通道4。 我们有 McSPI4通道0至3。

    有关可用 McSPI DMA 通道的更多信息、请参阅以下 TRM 部分。

    24.4.3 McSPI 集成:

    MCSPI4_DREQ_TX0 - McSPI 模块4 -发送请求通道0
    MCSPI4_DREQ_RX0 - McSPI 模块4 -接收请求通道0

    MCSPI4_DREQ_TX1 - McSPI 模块4 -发送请求通道1
    MCSPI4_DREQ_RX1 - McSPI 模块4 -接收请求通道1

    MCSPI4_DREQ_TX2 - McSPI 模块4 -发送请求通道2
    MCSPI4_DREQ_RX2 - McSPI 模块4 -接收请求通道2

    MCSPI4_DREQ_TX3 - McSPI 模块4 -发送请求通道3
    MCSPI4_DREQ_RX3 - McSPI 模块4 -接收请求通道3


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

    大家好、抱歉、我是误解了我的想法。  

    它是 MCSPI3通道0。 我们的理解是、SOC 设置中没有默认映射。

    在 cslr_soc.h 中、它说:

    /*
    *交叉条映射请在使用前检查
    *
    /* MCSPI3 CHA0接收事件*/
    #define CSL_EDMA3_CHA0_MCSPI3_RX 23
    /* MCSPI3 CHA0发送事件*/
    #define CSL_EDMA3_CHA0_MCSPI3_TX 22.

    那么、这就是如何以推进器的方式映射它们的问题。  

    /PAS

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

    根据我在 AM572x TRM 中看到的情况、默认映射 MCSPI3通道0。 请参阅"16.1.3.1 DMA 对 DMA_SYSTEM 控制器的请求"一节。 默认情况下、从0到126的所有 DMA 请求都映射、而需要在交叉开关中配置127到256。

    MCSPI3_DREQ_TX0和 MCSPI3_DREQ_RX0为14 (DMA_SYSTEM_DREQ_14)和15 (DMA_SYSTEM_DREQ_15)、默认映射到以下寄存器中:

    CTRL_CORE_DMA_SYSTEM_DREQ_14_15[7:0] DMA_SYSTEM_DREQ_14 = 0xF (15)

    CTRL_CORE_DMA_SYSTEM_DREQ_14_15[23:16] DMA_SYSTEM_DREQ_15 = 0x10 (16)

    您可以检查此 CTRL_CORE_DMA_SYSTEM_DREQ_14_15寄存器。 如果您具有默认/复位值、则 McSPI3通道0事件映射到 DMA 14和15事件。


    例如、如果您需要使用 McSPI4通道3、则没有默认映射、您需要自行映射。

    这对 SDMA 有效、但 EDMA 也是如此。

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

    您好、是的、您回答正确、但我认为对于 MCSPI 器件的编号存在一些误解。 :-)

    一些位置是 MCSPI (1至4)和其他位置(0至3)

    在 cslr_soc.h 中、编号是、我使用了该编号、如下所示:

    /* MCSPIx 信道 elx *

    /* MCSPI0 CHA0接收事件*/

    #define CSL_EDMA3_CHA0_MCSPI0_RX 35

    ----------

    /* MCSPI1 CHA0接收事件*/

    #define CSL_EDMA3_CHA0_MCSPI1_RX 43

    ------------

    /* MCSPI2 CHA0接收事件*/

    #define CSL_EDMA3_CHA0_MCSPI2_RX 15

     

    *

    *交叉条映射请在使用前检查

    *

    /* MCSPI3 CHA0接收事件*/

    #define CSL_EDMA3_CHA0_MCSPI3_RX 23

    /* MCSPI3 CHA0发送事件*/

    #define CSL_EDMA3_CHA0_MCSPI3_TX 22.

     

     

    正如您提到的、McSPI3 CH0默认映射到14/15、并且该通道工作正常、但如果我们使用编号 McSPI[1-4]、则表示该通道工作正常

    我们无法确定如何重新映射的 McSPI4通道0。 很抱歉让事情变得混乱。

    您能否提供一些提示和代码、说明如何执行此重映射?

    BR

    每安培

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

    McSPI4 (基址0x480BA000)(编号1-4)、默认情况下也映射通道0。 默认情况下映射0至126范围内的所有 DMA 请求、对于 SDMA、McSPI4通道0为69和70。

    MCSPI4_DREQ_TX0和 MCSPI4_DREQ_RX0为69 (DMA_SYSTEM_DREQ_69)和70 (DMA_SYSTEM_DREQ_70)、默认映射到以下寄存器中:

    CTRL_CORE_DMA_SYSTEM_DREQ_68_69[23:16] DMA_SYSTEM_DREQ_69 = 0x46 (70)

    CTRL_CORE_DMA_SYSTEM_DREQ_70_71[7:0] DMA_SYSTEM_DREQ_70 = 0x47 (71)

    您可以检查这些 CTRL_CORE_DMA_SYSTEM_DREQ_68_69和 CTRL_CORE_DMA_SYSTEM_DREQ_70_71寄存器。 如果您具有默认/复位值、则 McSPI4通道0事件映射到 SDMA 69和70事件。

    默认映射仅适用于 SDMA、不适用于 EDMA、请查看 TRM 表24-294。 McSPI 硬件请求。

    此致、
    帕维尔