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.
尊敬的所有人
我尝试在 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
您好!
嗯、我已经完成了这个过程、并按照我所做的更改进行了操作。
dmaReqAssign (DMA_CH2、DMA_REQ37);
dmaReqAssign (DMA_CH3、DMA_REQ36);
/*-请参阅器件数据表 mibspi TX/Rx 的 DMA 请求源*/
mibspiDmaConfig (mibspiREG4、0、6、7);
现在它正在工作、 RXDATA 缓冲器在 DMA 传输结束时包含正确的数据。
谢谢
Regars、
Irfan