dsp McBSP模块
来源:互联网 发布:搭建apache服务器性能 编辑:程序博客网 时间:2024/05/28 09:32
McBSP,是多通道缓冲串行接口。在DSP嵌入式系统中,常常用来连接音频编码解码芯片,串行AD/DA器件等。具有如下特性:
全双工;
两个数据缓冲寄存器;
独立的发送和接收帧和时钟;
多达129通道的发送和接收等等。
McBSP结构图如下:
首先对引脚进行介绍:
CLKR:接收时钟
CLKX:发送时钟
CLKS:外部时钟源
DR“:串行数据接收
DX:串行数据发送
FSR:接收同步帧
FSX:发送同步帧
注意到接收部分是三重缓冲,发送部分是两重缓冲。
接下来介绍它的相关寄存器:
DRR:数据接收寄存器,存放接收到的数据。
DXR:数据发送寄存器,存放将要发送的数据。
SPCR:串行接口控制寄存器,配置串行接口,包括状态控制字位,可得知工作状态,分为SPCR1和SPCR2,分别是收和发。
RCR:接收控制寄存器,设置接收操作的参数。
XCR:发送控制寄存器,设置发送操作的参数。
SRGR:设置波特率相关。
MCR:多通道控制寄存器,设置多通道选择模式。也是分收、发两个。
RCER:接收通道使能寄存器,分A/B区,使能奇偶组的16个通道可选。
XCER:发送通道使能寄存器,同上。
PCR:引脚控制寄存器,配置串口作用,和SPCR配合。
这里有必要弄懂什么是多通道?当初是纠结了很久。
这个多通道不是AD采样器那个多通道,而是类似于时分复用的数据流,强调时隙的概念。128个发送通道和128个接收通道,一帧数据最多128个通道,也即128个数据单元,一个通道可以移近或移出一个串行字。那么这一帧里面还分八个子帧,每个子帧16个通道,这样总共就是128个通道。这八个子帧还分两区,偶数为A区,奇数为B区。通过使能寄存器确定每个区16个通道哪些要使用。
关于编程架构:
1、首先创建结构体,配置:
MCBSP_Config myMCBSP = {
MCBSP_SPCR1_RMK(
...
),
MCBSP_SPCR2_RMK(
...
),
...
...
}
2、创建句柄并配置:
hMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);
MCBSP_config(hMcbsp,&myMCBSP);
delay(); //注意寄存器配置完成后需要延时,以便内同步
注意它和EDMA一样,配置需要句柄。
3、各种使能:
MCBSP_enableSrgr(hMcbsp);
delay(); //内同步
MCBSP_enableRcv(hMcbsp);
MCBSP_enableXmt(hMcbsp);
..
有些资料是用另外一个函数搞定:
MCBSP_start(hMcbsp,MCBSP_RCV_START | MCBSP_XMIT_START,0);
4、收发的实现
MCBSP_read16(hMcbsp);
MCBSP_write16(hMcbsp,buff);
里面具体的代码就是对DRR或者DXR进行赋值和返回。
实际的收发有两种实现方法,一种是查询SPCR状态位,一种是中断,中断实时性高,建议使用。有对应的中断ID。
rcvEventID = MCBSP_getRcvEventId(hMcbsp);
再来个plug函数就能绑定中断程序。
- dsp McBSP模块
- DSP 之多通道缓冲存储器(MCbsp)
- DSP学习总结——McBSP
- mcbsp
- McBSP
- 基于TI的C55XX系列DSP芯片上McBSP的UART通信(无DMA)
- DSP/BIOS LOG模块
- DSP模块之:EDMA
- dsp EPWM模块总结
- DSP F28335 DA模块程序
- 纯新手DSP编程--5.29--基础类DSP模块 API
- DSP RF5构架SCOM模块例子详解
- C6000系列DSP的GPIO模块
- C6000系列DSP的GPIO模块
- DSP PWM 模块原理及使用
- 模块[camera]_ISP与DSP的区别
- C6000系列DSP的GPIO模块
- MCBSP 回环配置实例
- Thift安装
- 转:Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archives/lock – open (11 资源临时不可用)
- Pku3080 Blue Jeans
- python基础修行(1)
- Java进阶之Jsp设计模式知识点总结
- dsp McBSP模块
- 使用mondrian3.5 + jpvoit1.8 搭建web应用 记录
- 因子和阶乘
- 求逆序数
- 利用CSS3实现图片旋转放大特效
- unity学习之面向对象技术核心之继承
- 【操作系统】【信号量】理发师问题
- 无间隙循环滚动
- Tcp、Udp 校验和与ip校验和的概念