TI中文支持网
TI专业的中文技术问题搜集分享网站

C6748 SPI DMA传输问题

我在英文版论坛里面发布了一个关于C6748 SPI DMA传输的问题,TI工程师回复了两次后有一周多没有新的回复了,想看看中文版这边有没有可以解决这个问题的工程师。

下面是在英文版论坛的问题链接:

https://e2e.ti.com/support/processors/f/791/t/911746

Tony Tang:

你的edma参数配置用的link,在当前EMDA完成时,在触发中断的同时,自动将Link参数放入了传输队列,并开始执行传输,同时中断响应并进入call back 去pause SPI。这时是没办法精确控制在当前edma完成后产即停止edma的。

这里不用link试一下。

Yellen:

回复 Tony Tang:

不用link是可以的,但是传输完成到edma产生中断之间隔的时间太长了,达不到实时性的要求。

是不是无法在spi传输完成后edma立即产生中断?

Tony Tang:

回复 Yellen:

我觉得你可以用McBSP或者McASP, 利用其FIFO,这样只要用AB-sync触发一次就将数据(比如依照你的需要4×16)从内存搬到接口的FIFO, 这个速度很快,不需要等接口往外送一个数后再A-sync触发EDMA将一个数据送到SPI data register, 一次4次触发才产生emda complete interrupt. 而是一个event后就产生edma complete interrupt.

如果不了解McBSP或者McASP, 你简单理解它是I2S或多通道的I2S就好了。

Yellen:

回复 Tony Tang:

McASP我用过,用burst模式应该可以。
主要用来与spi接口的ADC传输数据,需要发送和接受同步。
主要有一点疑问是,当传完4次数据后如何暂停mcasp触发edma传输,然后下次再人工使能触发传输?(主要是为了控制传输频率)

赞(0)
未经允许不得转载:TI中文支持网 » C6748 SPI DMA传输问题
分享到: 更多 (0)