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.
用EDMA的pingpong通过MCBSP往外打数据,帧同步和位同步都是用外部时钟,在没有使用FIFO的时候会遇到MCBSP一直在发送DXR里面同个数据,通过查看SPCR寄存器看到出现了XTEMPTY的情况,但是FIFO里面还有50个words.
以为是EDMA control忙不过来,打开了发送FIFO,测试发现还是会现在发送欠载的情况,MCBSP一直在发送同一个数据,但是FIFO里面还有几十个数据呢,SPCR寄存器里面只有发送欠载这个情况,结果就是FIFO不给MCBSP的发送寄存器送数据了;
一开始判断是EDMA忙不过来,后来在TONY的指导下把FIFO开起来了,然后把CC的两个EVENT QUEUE都用起来了,还是一样的情况,个人认为不是EDMA这边出问题,因为FIFO里面还有很多数据,而且也没有产生EDMA的错误中断;
但是MCBSP里面没有XCERR的错误,也没有发送过载的错误,只有一个发送欠载,文档里面说当出现发送欠载的情况时,只要EDMA CONTROL给DXR送数据就好了,但是MCBSP BFIFO里面的几十个数据不往DXR送了;
请问这种情况该往哪个方向查?
bingliang chen 说:用EDMA的pingpong通过MCBSP往外�数据,帧同步和位同步都是用外部时钟,在没有使用FIFO的时候会遇到MCBSP一直在发送DXR里面同个数据,通过查看SPCR寄存器看到出现了XTEMPTY的情况,但是FIFO里面还有50个words.
不是还没有用FIFO吗?为什么FIFO里还有50个Words?
bingliang chen 说:以为是EDMA control忙不过来,打开了发送FIFO,测试发现还是会现在发送欠载的情况,MCBSP一直在发送同一个数据,但是FIFO里面还有几十个数据呢,SPCR寄存器里面只有发送欠载这个情况,结果就是FIFO不给MCBSP的发送寄存器送数据了;
Buffer是放在DDR吗?系统中还有什么大数据任务?
#1. 尝试通过寄存器MSTPRI0/1/2调整EDMA的优先级。
#2. 修改DDR寄存器PBBPR的值。