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.

[参考译文] RM57L843:将 MIBSPI4配置为在 RM57上使用 DMA

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/773279/rm57l843-configuring-mibspi4-to-use-dma-on-the-rm57

器件型号:RM57L843

尊敬的所有人

我尝试在 RM57上使用 MIBSPI4作为 DMA。

我首先使用  "HALCoGen 示例"中的"Example_mibspidmADA.c"、网址为 C:\ti\Hercules \HALCoGen\v04.05.01\examples\RM57Lx

我配置了这个示例并验证了 MIBSPI1 是否按预期工作(RXDATA 缓冲区在 DMA 传输结束时包含正确的数据)。  此外、在我完成这个线程后、它还在 MIBSPI2上工作。 e2e.ti.com/.../456199。

然后、我使用 HALCoGen 按照与 MIBSPI1 和 MIBSPI2相同的步骤配置 MIBSPI4。  然后、我 将 示例源代码中出现的"mibspiREG1"替换为"mibspiREG4"。 我还将出现的"mibspiRAM1"更改为"mibspiRAM4"。

我尝试了、但没有任何东西被传输到 RXDATA 阵列、它被 dmaGetInterruptStatus 击中 。

根据线程、我保持不变的 DMA_CH2和 DMA_CH3、因为我要使用通道2和通道3、我还需要更改哪些其他内容才能在 MIBSPI4上配置 DMA?

dmaSetCtrlPacket (dma_ch2、g_dmaCTRLPKT2);
dmaSetCtrlPacket (dma_ch3、g_dmaCTRLPKT1);

/*-将 DMA 通道设置为在硬件请求时触发*/
dmaSetChEnable (DMA_CH2、DMA_HW);
dmaSetChEnable (DMA_CH3、DMA_HW);

/*-配置 mibspi DMA、通道0、TX 线路-0、rxline -1 */
/*-请参阅器件数据表 mibspi TX/Rx 的 DMA 请求源*/


mibspiDmaConfig (mibspiREG4、0、0、1);

dmaEnable();

/*-启动 mibspi 传输 TG 0 */
mibspiTransfer (mibspiREG4,0);


while (!(mibspiIsTransferComplete (mibspiREG4、0)))

};

mibspiGetData (mibspiREG4、0、RXDATA);

while (dmaGetInterruptStatus (DMA_CH2、FTC)!= true);
while (dmaGetInterruptStatus (DMA_CH3、FTC)!= true);

提前感谢

等待您的早期响应、

此致、

Irfan

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

    您需要更改 MibSPI4的 DMA 请求行。 请参考表6-41:DMA 请求线连接、和 MibSPI TX 线、MibSPI RX 线。

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

    您好!

    嗯、我已经完成了这个过程、并按照我所做的更改进行了操作。

    dmaReqAssign (DMA_CH2、DMA_REQ37);
    dmaReqAssign (DMA_CH3、DMA_REQ36);

    /*-请参阅器件数据表 mibspi TX/Rx 的 DMA 请求源*/
    mibspiDmaConfig (mibspiREG4、0、6、7);

    现在它正在工作、 RXDATA 缓冲器在 DMA 传输结束时包含正确的数据。

    谢谢  

    Regars、

    Irfan