打印
[MCU]

关闭DMA与关闭McBSP的区别

[复制链接]
466|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaoxqi|  楼主 | 2019-9-22 11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dengdc| | 2019-9-22 11:43 | 只看该作者
在通信领域,为了充分利用DSP的片上外设资源,常常利用DMA把从串口来的数据或要发的数据放入缓冲区,再处理。对DMA而言,只要其在数据缓冲区的指针指向了中断应发生的位置,就产生中断。但此时最后一个数据只是进入了McBSP而并未真正发出去,所以在传送结束的中断程序中只能关闭DMA不能关闭McBSP。

使用特权

评论回复
板凳
heweibig| | 2019-9-22 11:45 | 只看该作者

嗯,因为此时McBSP的发寄存器DXR中还有一个字没有发出。

使用特权

评论回复
地板
wuhany| | 2019-9-22 11:51 | 只看该作者


McBSP串口配置的关键时序

使用特权

评论回复
5
jiahy| | 2019-9-22 11:56 | 只看该作者
主要是寄存器SPCR2的配置:在保持RRST、XRST、FRST各位为0的前提下,配置好其它串口控制寄存器。等待至少2个CLKR/T时钟以确保DSP内部的同步。

使用特权

评论回复
6
jiahy| | 2019-9-22 12:01 | 只看该作者
可以向DXR装载数据或使能DMA。

使用特权

评论回复
7
jiajs| | 2019-9-22 12:07 | 只看该作者
使能GRST(GRST=1)(如果需要DSP内部产生采样时钟)。

使用特权

评论回复
8
wuhany| | 2019-9-22 12:17 | 只看该作者
使能FRST(FRST=1)(如果需要DSP内部产生帧同步)。

使用特权

评论回复
9
wuhany| | 2019-9-22 12:20 | 只看该作者

等待2个R/T CLK时钟周期后,收或发端便会有效。

使用特权

评论回复
10
zhanghqi| | 2019-9-22 12:23 | 只看该作者
在中断程序中先关闭McBSP的发送,使READY=0,随后在程序中发送使能DMA,再打开McBSP的发送即可。如先打开McBSP的发送后打开DMA,也是不会工作的...................................

使用特权

评论回复
11
zhaoxqi|  楼主 | 2019-9-22 12:26 | 只看该作者

嗯,预料中的结果,先结贴吧,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

粉丝