dsp McBSP模块「建议收藏」

dsp McBSP模块「建议收藏」McBSP,是多通道缓冲串行接口。在DSP嵌入式系统中,常常用来连接音频编码解码芯片,串行AD/DA器件等。具有如下特性:全双工;两个数据缓冲寄存器;独立的发送和接收帧和时钟;多达129通道的发送和接收等等。McBSP结构图如下:首先对引脚进行介绍:CLKR:接收时钟CLKX:发送时钟CLKS:外部时钟源DR“:串行数据接收DX:串行数据发送

大家好,又见面了,我是你们的朋友全栈君。

McBSP,是多通道缓冲串行接口。在DSP嵌入式系统中,常常用来连接音频编码解码芯片,串行AD/DA器件等。具有如下特性:

全双工;

两个数据缓冲寄存器;

独立的发送和接收帧和时钟;

多达129通道的发送和接收等等。

McBSP结构图如下:

dsp 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函数就能绑定中断程序。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143589.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java xml解析框架_JAVA解析xml的五种方式对比

    java xml解析框架_JAVA解析xml的五种方式对比本篇文章主要对比Java即系xml的五种方式,这五种方式各有利弊,大家可以看情况采用哪一种。1.DOM解析DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分,是W3C的官方标准优点①允许应用程序对数据和结构做出更改。②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。缺点①通常需要…

    2022年6月4日
    129
  • Linux查看MySQL版本的四种方法

    Linux查看MySQL版本的四种方法1在终端下执行mysql-V2在help中查找mysql–help|grepDistrib3在mysql里查看selectversion()4在mysql里查看status欢迎补充~转自:https://www.linuxidc.com/Linux/2016-10/136075.htm…

    2025年7月12日
    1
  • 苹果新旧手机数据转移_换机必备知识:如何将数据转移到Oppo手机上

    苹果新旧手机数据转移_换机必备知识:如何将数据转移到Oppo手机上现在的智能手机越来越便宜了,换手机是经常的事情。但唯一的缺点是更换手机时新旧手机的数据备份很麻烦。许多人会选择将数据传输到计算机,然后再传输到新手机。或者,用户将可以备份的内容备份到microSD卡上。但这些方法都比较老土。如今,智能手机制造商拥有专用的应用程序,可以使此过程变得轻松,高效和无缝。本指南将教您如何将所有个人数据(SMS,电话,应用程序,照片等)从旧手机转移到Oppo品牌的手机上。…

    2022年5月25日
    226
  • phpstorm2021最新激活破解方法

    phpstorm2021最新激活破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    221
  • mysql长轮询_ajax的轮询和长轮询

    mysql长轮询_ajax的轮询和长轮询概念:轮询(polling):客户端按规定时间定时像服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。概念总是枯燥的,只有代码方能解心头之快前段代码:index.html:vargetting={url:’server.php’,dataType:’json’,success:function(res){console.log(res);}};//关键在这里,Ajax定时…

    2022年10月9日
    0
  • 键盘失灵重启电脑就没事了_笔记本电脑重启后黑屏

    键盘失灵重启电脑就没事了_笔记本电脑重启后黑屏问题描述:下午,卸载了360软件(安全卫士、软件管家、360安全浏览器)后,重启电脑,然后电脑开始硬盘扫描、检测,结果告知不能成功修复。随后,我选择“继续使用Win10“选项,就发现电脑键盘已经失灵,无法输入开机密码,一度让我抓狂。在随后的的近3个小时的过程中,经历了以下调试过程:1.硬重启电脑(即,按住开机键不动,直到重启),发现没用2.重启后按F8、F10键试图进入安…

    2022年8月12日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号