大家好,
在我们基于TMS570LC4357处理器的应用中,我们将以下DMA通道用于以下目的。 给定表还定义了应用程序当前用于建立所需通信的数据速率:
|
外围设备 |
DMA通道 否 |
数据速率 |
已配置的优先级 |
应用程序中的功能 |
|
SPI1处方 |
9. |
从属模式,波特率为10MHz (每125毫秒32位) |
高 |
标志灯 |
|
SCI3处方 |
5. |
5.76万 (每100毫秒330-340字节) |
低 |
TE2工具 |
|
SCI3治疗 |
4. |
5.76万 (每100毫秒301字节) |
低 |
TE2工具 |
|
SCI4处方 |
7. |
11.52万 (考虑到波特率的最大吞吐量的数据大小) |
低 |
GNSS |
|
SCI4治疗 |
6. |
11.52万 (考虑到波特率的最大吞吐量的数据大小) |
低 |
GNSS |
在这里,SPI1 Rx被配置为最高优先级,因为它在本质上具有关键性,我们在该外围设备上连续接收数据。
下图概述了采用Hercules处理器的外设接口。

在我们的应用程序中,我们在通过SCI3接收数据时遇到了问题,如以下TT链接中提供的早期TT中所述:
根据参考手册,我们尝试为低优先级信道配置循环方案,为高优先级信道配置固定方案。 但是 ,SCI3接收(即DMA通道5)偶尔会缺少1/2字节。 我们曾尝试更改这些DMA通道的优先级,但这对解决问题没有帮助。
此外,作为解决方法,我们注意到,当SCI3 TX切换到轮询模式而不是DMA时,我们没有看到 SCI3接收的任何类型的问题, 这表示处理器的DMA引擎无法处理系统中的所有DMA通道。
我们想了解DMA不允许处理所有这些通道的原因,并想了解如何更好地使用DMA ,以便所有这些DMA通道都能正常使用。
我还附加了我们用于为SCI3.e2e.ti.com/.../UartDma.xlsx配置DMA包的方法
请求团队帮助我们提供使用 DMA使用所有这些所需外设的正确方法。
此致,
Shivam