28335多缓冲串口中文资料.docx

上传人:rrsccc 文档编号:10387471 上传时间:2021-05-13 格式:DOCX 页数:38 大小:35.88KB
返回 下载 相关 举报
28335多缓冲串口中文资料.docx_第1页
第1页 / 共38页
28335多缓冲串口中文资料.docx_第2页
第2页 / 共38页
28335多缓冲串口中文资料.docx_第3页
第3页 / 共38页
28335多缓冲串口中文资料.docx_第4页
第4页 / 共38页
28335多缓冲串口中文资料.docx_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《28335多缓冲串口中文资料.docx》由会员分享,可在线阅读,更多相关《28335多缓冲串口中文资料.docx(38页珍藏版)》请在三一文库上搜索。

1、28335多缓冲串口中文资料1 弁言正在天下上寡多的DSP厂商中,德州仪器公司的DSP初末占有较年夜的市场份额。今朝患上到宽泛使用的TI3年夜DSP处置器系列是TMS320C2000、TMS320C5000以及TMS320C6000。每一个系列皆有单一的种类,新的产物层见叠出,更新的速率也十分快,可是基础上每一个系列的DSP皆有多缓冲串心那一片表里设,使用该中设DSP能够取其余DSP、编码器等其余串心器件举行下速的数据通讯。多缓冲串心的典范使用是它取串心的A/D、D/A芯片毗连正在一同,真现下速的数字音频收罗以及传输。今朝,市情上有不少先容DSP手艺的书,可是书中无关多缓冲串心那全体内容的先容

2、较少,并且多半是曲接翻译TI公司多缓冲串心用户利用脚册,那样现在教者刚打仗多缓冲串心时,进门较易。针对于那个成绩,本文综开多个系列的TI公司DSP的多缓冲串心利用脚册,再依据本人的了解,从全体到全部,从复杂到庞大,先具体天先容了多缓冲串心举行通讯的本理,和怎样设置以及把持通讯历程等,再对比了各类系列DSP多缓冲串心的区分以及分割,最初经由过程两个小例子,让读者对于多缓冲串心详细的利用有了个曲不雅的了解,真验了局的剖析对于减深多缓冲串心运转机造的了解应当颇有关心。2 C28x系列DSP的多缓冲串心先容2.1 通讯历程简介多缓冲串心(M ulti c hannel B uffered S eria

3、l P ort),简写为McBSP。它的通讯是靠6个引足实现的,收收引足MDX、吸收引足MDR、收收时钟疑号引足MCLKX、吸收时钟疑号引足MCLKR、收收帧同步引足MFSX以及吸收帧同步引足MFSR。前面为了复杂起睹,收收引足MDX简写为“DX引足”免却了“M”,其余3个引足同理。如图1所示,McBSP取其余器件举行通讯时,假如字少为16位或者者更小(字少为8,12,16),每一个数据传输阶段只要一个16位的存放器便充足了,DRR2、RBR2、RSR2、DXR2以及XSR2没有利用。正在那种情形下收收数据时,CPU或者者DMA把持器往DXR1存放器写数据,假如XSR1存放器出有要收收的数据,

4、那末DXR1中的数据传给XSR1,若XSR1中借有要收收的数据(前次DXR1传给它的值借出有完整从DX引足移出),那末DXR1守候前次的值的最初一名从DX引足移出时才将数据传给XSR1,假如取舍了收缩扩大形式(利用实线框中的Compand Logic,收缩扩大次要是针对于率或者者A率去道的),那末Compand Logic会将16位的数据收缩成开适的8位的数据体例,而后才将数据传给XSR1。图1 McBSP模块图吸收数据时,数据从DR引足一名一名的移进到RSR1,当吸收完一个完全的字时,RSR1中的值传给RBR1(条件是前次RSR1传给RBR1的值已经经被RBR1传给DRR1),接着RBR1的

5、值传给DRR1(条件是前次RBR1传给DRR1的值已经经被CPU或者者DMA把持器读与了),再接着CPU或者者DMA把持器读与DRR1的值,假如取舍了收缩扩大形式(利用实线框中的Expand Logic),那末Expand Logic会将吸收到的8位字少的数据(必需是8位)扩大成16位的数据以后才传给DRR1;正在RBR1中的数据传给DRR1以前能够取舍是不是举行收缩扩大处置,或者者取舍是不是举行标记扩大以及对于齐的操纵,标记扩大以及对于齐的操纵由RJUST位(bit13-14正在SPCR1中)把持,如表1所示,当利用收缩扩大处置时该位被疏忽。假如字少年夜于16(字少为20,24,32)的话,

6、那末DRR2、RBR2、RSR2、DXR2以及XSR2便必需用去寄存年夜于16位那全体的值了,数据的收收以及吸收以及字少小于16位的情形相似,只是正在收收数据时CPU或者DMA把持器必需先写DXR2而后再写DXR1,吸收数据时CPU或者DMA把持器必需先读DDR2而后再度DDR1。表1 RJUST位把持12位的值ABCh调剂表无关收缩扩大形式的先容:a.收缩扩大模块能够将数据按率体例或者A率体例举行收缩扩大,率以及A 率皆将数据编码成8位举行传输,果此多缓冲串心存放器中RWDLEN1位、RWDLEN2位、XWDLEN1位以及XWDLEN2位必需为0,唆使字少是8位;b.正在吸收时,8位收缩过的

7、数据被扩大成16位左对于齐的情势寄存正在DRR1中,RJUST位被疏忽;正在收收时,接纳率体例收缩,14位的数据必需左对于齐后位于DXR1中,残余两位用0挖充,接纳A率体例收缩,13位的数据必需左对于齐后位于DXR1中,残余3位用0挖充,如图2所示。图2 收缩后的数据体例c.收缩以及扩大由RCOMPAND位(bit3-4正在RCR2中)以及XCOMPAND位(bit3-4正在XCR2中)把持,如表2以及3所示;表2 数据吸收压扩形式表d.收缩扩大模块借能够用于压扩外部数据,如线性情式的数据取率或者A率体例的数据互相转化。2.2 时钟以及帧数据McBSP总正在外部CLKX的回升沿一名一名的从DX

8、引足收收数据,总正在外部CLKR的下落沿一名一名的从DR引足采样吸收数据;外部CLKX能够由CLKX 引足供应,也能够去自McBSP的外部;外部CLKR能够由CLKR引足供应,也能够去自McBSP外部;默许的数据传输是下位先传输。如图3所示。图3 复杂的时钟疑号把持波形图正在移位存放器(RSR或者XSR)以及数据引足(DR或者DX)之间以一个组的情势举行传送的多少位便形成了一个串止字(Serial Word),简称为字,RSR拆谦一个完全的字后才把数据传给RBR,XSR移出完一个完全的字后才会承受DXR传送过去的数据。一个字正在多通讲取舍形式中也能够了解为一个通讲。如图3中B7-B0便是一个字

9、,是一个8位的字。字少能够是8,12,16,20,24或者者32,对于于吸收端字少由RWDLEN1位(bit5-bit7正在RCR1存放器中)以及RWDLEN2位(bit5-bit7正在RCR2存放器中)决意,对于于收收端由XWDLEN1位(bit5-bit7正在XCR1存放器中)以及XWDLEN2位(bit5-bit7正在XCR2存放器中)决意。一个或者者多个字一组便形成了一个帧(F rame)。一个帧里的一切字是一连传输的,但帧取帧之间正在传输时能够有久停(久停能够了解为收收端收收的齐是0,吸收端吸收的也齐是0,相称因而没有事情了)。如图3是一个字少为8的字形成一个图4 庞大的时钟疑号把持

10、波形图帧少为一的帧,如图4是4个字少为8的字形成一个帧少为4的帧。每一一个帧相位中能够包孕1-128个字,对于于吸收端由RFRLEN1位(bit8-bit14正在RCR1存放器)以及RFRLEN2位(bit8-bit14正在RCR2存放器)决意,对于于收收端由XFRLEN1位(bit8-bit14正在XCR1存放器)以及XFRLEN2位(bit8-bit14正在XCR2存放器)决意。Bit14-bit8的值为0-5时对于应的字少分手为8-32。帧相位(Frame Phase)能够分为单相位以及单相位,如图3,图4皆是一个单相位的帧,图5是一个单相位的帧,第一个相位由两个字少为12的字构成,松接

11、着的第2个相位由3个字少为8的字构成,帧少是5,详细帧是单相位借是单相位由把持收收真个XPHASE位(bit15正在XCR2存放器中)以及把持吸收真个RPHASE 位(bit15正在RCR2存放器中)决意。图5 单相位帧图帧同步(F rame S ynchronization)用于决意下一个帧是不是要收收或者吸收。外部帧同步疑号(外部FSX或者外部FSR)由低电仄背下电仄跳变预示着下一个帧的入手下手,可是其实不必定跳变一收死下一个帧便坐刻传输,能够有必定的提早,该提早由把持吸收真个RDATDLY位(bit0以及bit1正在RCR2存放器中)以及把持收收真个XDATDLY位(bit0以及bit1

12、正在XCR2存放器中)决意,如图3隐示的是提早一个外部CLK(R/X)周期。外部FSX把持收收时的帧同步,能够由FSX引足供应,也能够去自McBSP的外部,外部FSR把持吸收时的帧同步,能够由FSR引足提供,也能够去自McBSP的外部。2.3 采样率收死器(S ample R ate G enerator)每一一个McBSP皆有一个采样率收死器(SRG)可编程发生并输入外部数据时钟疑号(CLKG)以及外部帧同步疑号(FSG),下面提到的“外部CLKX、外部CLKR 能够去自McBSP的外部”指的便是外部数据时钟疑号(CLKG),下面提到的“外部FSX、外部FSR能够去自McBSP的外部”指的便

13、是外部帧同步疑号(FSG)。由此能够回纳正在一样平常形式下外部把持疑号的去源情形,如表4以及表5所示。采样率收死器的输出时钟CLKSRG能够由3种圆式供应,如表6所示,表中两个把持位皆为0的情形是保存的。表4 外部吸收以及收收时钟去源表注: FSRM位以及FSXM位正在PCR存放器(bit10以及bit11)中,GSYNC位正在SRGR2存放器(bit15)中,FSGM位正在SRGR2存放器(bit12)中。表5 外部吸收以及收收帧同步疑号去源表注: SCLKME位正在PCR(bit7)中,CLKSM位正在SRGR2(bit13)中。表6 采样率收死器输出时钟去源表正在表4、表5以及表6中MF

14、SX引足、MFSR引足、MCLKX引足以及MCLKR 引足皆能够做为时钟的输出引足或者者做为时钟的输入引足以反应外部疑号的变动,不管是输出借是输入,正在输出的疑号供应给外部疑号以前以及外部疑号从引足输入以前,它们的极性是能够反变化化的,比方本去是回升沿的能够变动为下落沿,极性的变动由对于应的FSXP位、FSRP位、CLKXP位以及CLKRP位(它们挨次位于PCR存放器的bit3-bit0)把持,那些极性把持位为1时极性反变化化。DX 引足以及DR引足有对于应的形态位DXSTAT以及DRSTAT,分手位于PCR的bit5以及bit4。图6 采样率收死器的模块图正在图6中也能浑楚的瞧出CLKSRG

15、的去源情形,CLKSRG除了以(CLKGDV+1)后便患上到了CLKG,CLKGDV是CLKGDV位(bit7-bit0正在SRGR1中)的值;CLKSRG除了以(CLKGDV+1)后患上到的疑号一起为CLKG,另外一路经由FPER以及FWID分频后患上到FSG,由FSG供应的两个帧同步脉冲之间的距离(两个帧的入手下手之间的距离)是(FPER+1)个CLKG周期,FPER是FPER位(bit11-bit0正在SRGR2中)的值,由FSG供应的帧同步脉冲的宽度是(FWID+1)个CLKG周期,FWID是FWID位(bit15-bit8正在SRGR1中)的值。图7 CLKG取中部疑号同步以及FSG

16、的发生图中选择一个中部时钟(由CLKX引足或者CLKR引足输出)做为采样率收死器的输出时钟时,GSYNC位以及FSR引足能够用去把持采样率收死器的输入时钟CLKG同步于中部时钟以及FSG脉冲的发生,GSYNC位=1时FSR引足输出疑号(CLKRP位=0)的低电仄背下电仄的跳变将触收CLKG同步于中部时钟以及FSG脉冲的发生,实正的同步收死正在CLKX引足输出疑号的回升沿(CLKXP位=0)或者CLKR引足输出疑号的下落沿(CLKRP位=0);同步后的CLKG疑号老是从下电仄入手下手;很分明FPER位被疏忽了,果为FSG的发生由FSR引足输出疑号决意;正在GSYNC位=1时,为使收收端同步取吸收

17、端,团体倡议取舍4个外部把持疑号均去自采样率收死器的输入疑号;如图7所示,第一止以及第2止是CLKX或者CLKR 引足的输出时钟,第一止为CLKX引足的输出时钟且CLKXP=1或者者CLKR引足的输出时钟且CLKRP=0的情形,第2止为CLKX引足的输出时钟且CLKXP=0或者者CLKR引足的输出时钟且CLKRP=1的情形,正在图中因为中部的FSR引足输出的疑号收死了无效的跳变,松接着同步收死(带有高低箭头的那条实横线),必要同步的CLKG被同步,同时发生FSG疑号。2.4 McBSP的各类形式简介下面内容均是针对于McBSP一样平常形式下的使用而道述的。别的多缓冲串心借可用于数字回收形式、时

18、钟中断形式以及多通讲取舍形式等。正在数字回收形式下(Digital loopback mode),外部吸收疑号由外部收收疑号曲接供应。该形式次要用于单个DSP多缓冲串心的测试,由DLB位(bit15正在SPCR1存放器中)为1去取舍该形式,此时DR正在芯片外部曲连续接到DX,外部CLKR 曲连续接到外部CLKX,外部FSR连曲接接到外部FSX。McBSP可用于时钟中断形式(Clock Stop Mode),该形式兼容SPI协定,SPI 协定是一个主从式的设置包孕一个主控器件以及一个或者多个从控器件。正在时钟中断形式中,每一个数据传输停止时钟便会中断,正在每一个数据传输的入手下手,时钟能够取舍坐

19、即入手下手(CLKSTP=10b)或者者半个周期提早后再入手下手(CLKSTP=11b),CLKSTP 为00b或者01b该形式将会被禁用,CLKSTP为SPCR1的bit12-11位。McBSP借能够用于多通讲取舍形式(multichannel selection mode),该形式下McBSP利用时候复用(TDM)数据流以及其余McBSP或者串心器件通讯。每一个McBSP 端心收持128个吸收通讲以及128个收收通讲,每一个通讲可同等于一个字。2.5 McBSP数据通讯大概发生的同伴统共有5种同伴范例:吸收器超载,收收数据的掩盖,收收器的空载,不测的吸收帧同步脉冲以及不测的收收帧同步脉冲。

20、吸收器超载:DRR中的数据出有被读与,RBR也有要传送的数据,而且RSR 也拆谦了一个完全的字,此时将收死吸收器超载同伴,RFULL位(bit2正在SPCR1中)为1以隐示该同伴收死了;只有DRR1中的数据出有被读与而且DR引足借正在吸收数据,那末RSR中的值便会没有断的被掩盖;CPU或者DMA把持器读与DRR1或者者收收器复位(RRST=0)或者者全部DSP芯片复位将使RFULL位浑整,若要从头启动收收器必要下一个帧同步脉冲的到去。如图8所示因为一向出有读与DRR1,正在吸收完字C时收死同伴,RSR中的字C将会被字D掩盖,若借没有读与DRR1,字D大概借会被新的字掩盖。图8 吸收器超载表示图

21、收收数据的掩盖:DXR中的数据借出有传送给XSR,可是CPU或者者DMA 把持器又背DXR中写进数据,先前DXR中的值将被掩盖,此时同伴收死,该同伴出有标记位。收收器的空载:取收收数据的掩盖同伴相同,DXR已经经把数据递给XSR,XSR也已经经把传送过去的数据皆从DX引足移进来了,CPU或者者DMA把持器借出有背DXR中写进数据,同伴收死,XEMPT位(bit2正在SPCR2中)为0以隐示该同伴收死了,别的收死器正在复位形态(由XRST=0或者DSP复位发生)时XEMPT 位也为0;背DXR1中写进新的字,该新的字被DXR1传给XSR1时,XEMPT 位被置为1。如图9所示,当字B被收收后,正

22、在下一个帧同步脉冲到去前,DXR1出有拆进新的字,果此字B又收收了一次。图9 收收器的空载表示图不测的吸收帧同步脉冲:RFIG位(bit2正在RCR2中)为0,以后帧中的位借出有齐部吸收完,可是却呈现了一个新的吸收帧同步脉冲,那个脉冲称为不测的吸收帧同步脉冲,RSYNCERR位(bit3正在SPCR1中)为1以隐示该同伴收死了,同伴收死时借能够取舍是不是收出中止以关照CPU;若要将RSYNCERR位浑整,只能将吸收器复位或者者将该位写0;RFIG=1时吸收器疏忽帧同步,以免该同伴。图10 不测的吸收帧同步脉冲表示图如图10所示,正在字B借出有完整吸收时,呈现了不测的帧同步脉冲,字B 被扔弃吸收

23、器入手下手吸收字C,同时RSYNCERR被置为1。不测的收收帧同步脉冲:XFIG位(bit2正在XCR2中)为0,以后帧中的位借出有齐部收收完,可是却呈现了一个新的收收帧同步脉冲,那个脉冲称为不测的收收帧同步脉冲,XSYNCERR位(bit3正在SPCR2中)为1以隐示该同伴收死了,同伴收死时借能够取舍是不是收出中止以关照CPU;若要将XSYNCERR位浑整,只能将收收器复位或者者将该位写0;XFIG=1时收收器疏忽帧同步,以免该同伴。如图11所示,正在字B借出有完整收收时,呈现了不测的帧同步脉冲,因为出有新的值传给XSR1,字B被从头从B7入手下手传输,同时XSYNCERR被置为了1。图11

24、 不测的收收帧同步脉冲表示图2.6 数据传输的把持以及中止当RBR1背DRR1传递数据时,RRDY位(bit1正在SPCR1中)被置为1唆使DRR中的数据能够被CPU或者DMA把持器读与了,读与后该位主动浑整;正在RINTENA位(bit2正在MFFINT中)为1的情形下,假如RINTM位(bit5-4正在SPCR1中)的值为00,那末RRDY从0变到1会背CPU收出中止哀求,RINTM=01时帧的停止或者块的停止会发生中止(用于多通讲取舍形式),RINTM=10时一个新的吸收帧同步脉冲发生中止,RINTM=11时不测的吸收帧同步(RSYNCERR=1)发生中止。当DXR1背XSR1传递数据时

25、,XRDY位(bit1正在SPCR2中)被置为1唆使CPU 或者DMA把持器能够背DXR写进数据了,写进后该位主动浑整;正在XINTENA位(bit0正在MFFINT中)为1的情形下,假如XINTM位(bit4-5正在SPCR2中)的值为00,那末XRDY从0变到1会背CPU收出中止哀求,XINTM=01时帧的停止或者块的停止会发生中止(用于多通讲取舍形式),XINTM=10时一个新的收收帧同步脉冲发生中止,XINTM=11时不测的收收帧同步(XSYNCERR=1)发生中止。帧同步逻辑、采样率收死器、收收器以及吸收器皆有本人对于应的复位位,分手是FSRT(bit7正在SPCR2)、GRST(b

26、it6正在SPCR2)、RRST(bit0正在SPCR1)以及XRST(bit0正在SPCR2),为浑整时复位。2.7 McBSP初初化历程串心的初初化历程次要是:a.使帧同步逻辑、采样率收死器、吸收器以及收收器处于复位形态(FSRT=GRST=RRST=XRST=0);b.当串心处于复位形态时,设置把持存放器(没有是数据存放器)使处于冀望的吸收或者收收形态;c.最少守候2个时钟周期,以保障外部的同步;d.配置GRST=1使采样率收死器事情;e. 最少守候2个时钟周期,以保障外部的同步;f.配置RRST=XRST=1使串心入手下手事情,正在配置那些位的时分要保障没有要建改SPCR1以及SPCR

27、2中其余位的值;g.假如用到外部的帧同步逻辑,那末将FSRT配置成1;正在年夜全体情形下,只要当收收器事情后(XRST=1),CPU或者者DMA把持存放器才背数据收收存放器DXR写进值。初初化历程参考示例步伐。表7 McBSP的存放器一览表初初化实现后,最复杂的操纵是:要收收数据时先判别XRDY位是不是为1,如果1那末往DXR写进要收收的数据;要吸收数据时先判别RRDY位是不是为1,如果1那末CPU读与DRR的值便止了,那种操纵能够没有用剖析中止的处置,该圆式称为查问圆式。固然也能够接纳中止驱动的圆式去举行收收以及吸收。那两种圆式的使用参考示例步伐全体。下列是设置吸收器或者收收器时的一些详细义

28、务,每一个义务必要建改对于应的一个或者多个McBSP的存放器的位,表7列出了各个存放器的天址。齐局止为设置:将吸收或者收收引足配置成McBSP中设功效;使能或者禁用数字回收形式;使能或者禁历时钟中断形式;使能或者禁用多通讲取舍形式;数据止为设置:为每一个吸收或者收收帧设置单个或者单相位;配置吸收或者收收数据的字少;配置吸收或者收收帧的少度;使能或者禁用帧同步疏忽功效;配置吸收或者收收压扩形式;配置数据吸收或者收收延时;配置数据吸收的标记扩大以及对于齐形式及收收的DXENA形式;配置吸收或者收收的中止形式;帧同步辇儿为设置:配置吸收或者收收帧同步形式;配置吸收或者收收帧同步极性;配置SRG的帧同

29、步周期以及脉冲宽度;时钟止为设置:配置吸收或者收收时钟形式;时钟吸收或者收收时钟极性;配置SRG时钟分频值;配置SRG时钟同步形式;配置SRG时钟形式(取舍一个输出时钟);配置SRG输出时钟的极性;2.8 McBSP的次要个性齐单工通讯圆式;经由过程单缓冲收收以及3缓冲吸收真现一连数据流的通讯;收收以及吸收具备自力的时钟以及帧布局;具备背CPU或者DMA把持器收收中止的功效;128个收收以及吸收通讲;多通讲取舍形式能够同意或者制止每一个通讲的传输;收持取产业尺度的编解码器、摹拟接心芯片(AICs)及其余串止接心的A/D以及D/A装备的曲连续接;收持中部时钟疑号以及帧同步疑号的发生;一个可编程的

30、采样率收死器,可用于外部发生以及把持时钟疑号以及帧同步疑号;时钟疑号以及帧同步脉冲的极性可编程;可曲连续接的接心:T1/E1帧调治器、IOM-2兼容装备、AC97兼容装备、I2S兼容装备以及SPI装备;可取舍的字少:8、12、16、20、24以及32位;A率以及u率的收缩扩大;可取舍收收或者吸收8位数据时低字节先入手下手;各类形态位以标示数据传输;ABIS形式没有收持;(有些C28X系列DSP收持该形式如F2812);3 C54X系列DSP的多缓冲串心如图12所示为C54X系列片表里设McBSP的布局框图,从图中能够瞧出C54X系列的多缓冲串心以及C28X系列的好别没有年夜,次要的好别是:1.

31、C54X系列多了一个CLKS引足,该引足是采样率收死器的中部输出时钟,它也有对于应的极性把持位CLKSP(bit14正在SRGR2中)以及引足形态位CLKS_ STAT(bit6正在PCR存放器中),C28X系列中对于应的位皆是保存,如图13所示,C28X系列的多缓冲串心采样率收死器的中部输出时钟由CLKR引足或者CLKX引足供应,而C54X系列的采样率收死器的中部输出时钟只能是CLKS引足,果此PCR存放器中bit7位SCLKME是保存的,仅用SRGR2存放器中的bit13位CLKSM 便能决意输出时钟了。上段所讲的闭于C54X系列以及C28X系列的好别是依据TI脚册中无关McBSP 全体的

32、先容而去的,真际上,多少乎一切的C54X系列DSP芯片的引足中皆寻没有到CLKS引足,如5402、5409以及5416等等,TI网站对于于那个成绩给出的注释是“为了加少引足数或者偶然为了保持之前器件的启拆CLKS引足常常给往失落了”。换句话道便是该好别实在是没有存正在的。图12 C54X系列McBSP的布局框图图13 C54X系列McBSP的采样率收死器模块图2.如表8所示,C54X系列多缓冲串心存放器的天址也以及C28X系列的没有太同样,它们很多多少露有子天址(Sub-Address)而且106进造天址(Hex Address)同样,有一个子天址存放器寄存该子天址,果此正在配置某个存放器的值

33、时,先建改子天址存放器的值为该存放器的子天址值,比方配置McBSP1的存放器SPCR2为0x0000时,那末便应当:*(0x0048)=0x0001;*(0x0049)=0x0000。表8 C54X系列多缓冲串心全体存放器表3.能曲连续接McBSP的兼容器件也没有同样,C54X系列的多了MVIP转换兼容器件以及ST-BUS兼容器件,而正在C28X系列中却出有提到;C54X系列中的5410收持ABIS形式。4. C54X系列的McBSP的引足能够用做通用I/O心,把持位分手XIOEN以及RIOEN分手位于PCR存放器的bit13以及bit12,而C28X系列把持McBSP的引足为通用I/O心,有

34、特地的通用I/O心把持存放器,那些存放器没有仅把持McBSP 的引足借把持其余片表里设的引足为通用I/O心,果此对于应的PCR存放器中的位保存没有用。4 C55X系列DSP的多缓冲串心C55X系列DSP的多缓冲串心多少乎以及C28X系列完整同样,年夜全体C55X 系列也是多了一个CLKS引足,该引足是采样率收死器的中部输出时钟(那种输出时钟圆式的取舍对于占用了C28X系列中保存的那种输出时钟的取舍圆式),它也有对于应的极性把持位CLKSP,引足形态位CLKS_ STAT,那些位也皆位于PCR 存放器响应的地位。CLKR引足或者CLKX引足也可做为采样率收死器的中部输出时钟(C54X没有能够)。

35、如图14所示。注:1.图示中CLKXP位以及CLKRP位正在VC5501以及VC5502中没有影响CLKSRG的极性。2. 正在VC5503、VC5507、VC5509以及VC5510中McBSP internal input clock是CPU时钟,可是正在正在VC5501以及VC5502中它是低速的中设时钟。3.CLKS引足以及对于应极性把持CLKSP位其实不是一切的C55中皆有。4. 正在VC5501以及VC5502中clock synchronization没有收持。图14 C55X多缓冲串心的采样率收死器模块图别的正在引足把持存放器PCR中C55X系列多了多少个用于把持的位,如VC5

36、503、VC5507、VC5509以及VC5510中的IDLEEN位(bit14),XIOEN以及RIOEN。那些位用于把持C55X系列的McBSP的引足为通用I/O心以及使McBSP中断并进进低功耗形态(IDLEEN位),C28X系列的PCR中对于应的为保存位,果为它有公用的把持片表里设为通用I/O心以及使片表里设时钟中断的存放器。5 C64X系列DSP的多缓冲串心C64X系列DSP的多缓冲串心的采样率收死器以及C55X的同样,输出时钟可以有4种:CLKS引足、CLKR引足、CLKX引足及去自CPU的时钟。如图15所示,C64X系列取后面多少种DSP借有一个最年夜的区分便是它的存放器皆是32

37、位的,而且它们的天址是偏偏移天址,它们的基天址是0x01D0 0000,后面多少种是16位的(没有过基础上皆是成对于呈现的,如DRR2以及DRR1),可是对于应存放器中的位多少乎借是同样的,能够那样了解:两个16位的存放器开正在一块形成了一个32位的,比方C28X系列有两个XCR存放器,XCR2形成C64X系列32位的存放器XCR的下16位,XCR1形成低16位,对于应像C28X系列的PCR 那样只要单个的存放器,形成C64X系列32位的存放器时下16是保存无界说的。(1)RBR、RSR以及XSR没有能经由过程CPU或者DMA把持器曲接会见(2) CPU或者DMA把持器只能读没有能写该存放器(

38、3)DRR以及DXR能够经由过程CPU或者DMA把持器会见图15 C642X系列多缓冲串心存放器表综开下面4年夜全体的剖析可知,C28X系列、C54X系列、C55X系列以及C64X 系列的McBSP的基础布局以及功效是完整同样的,好别只是正在某些很小的圆里,那些圆里是因为没有同系列的DSP自己个性的好别而引发的,正在利用时应注重那些渺小的好别。6 示例步伐本文经由过程对于TMS320VC5416举行编程,分手经由过程查问圆式以及中止驱动圆式,真现了单个多缓冲串心(McBSP0)的通讯测试。1、查问圆式步伐代码以下:(1).下令文件-l rts.lib-stack 3000HMEMORYPAGE

39、 0: PROG:origin=0x1000,length=0x6000VECT:origin=0x80,length=0x80PAGE 1:DA TA:origin=8000H,length=2000HUSERDA TA:origin=0A000H,length=04000HSECTIONS.vectors VECT PAGE 0.text PROG PAGE 0.cinit PROG PAGE 0.switch PROG PAGE 0.bss DA TA PAGE 1.const DA TA PAGE 1.system DA TA PAGE 1.stack USERDA TA PAGE 1

40、(2).源文件#define IMR *(volatile unsigned int *)(0x0000)#define IFR *(volatile unsigned int *)(0x0001)#define SWWSR *(volatile unsigned int *)(0x0028)#define BSCR *(volatile unsigned int *)(0x0029)#define SWCR *(volatile unsigned int *)(0x002b)#define CLKMD *(volatile unsigned int *)(0x0058)#define PMS

41、T *(volatile unsigned int *)(0x001D)#define DRR20 *(volatile unsigned int *)(0x0020)#define DRR10 *(volatile unsigned int *)(0x0021)#define DXR20 *(volatile unsigned int *)(0x0022)#define DXR10 *(volatile unsigned int *)(0x0023)#define SPSA0 *(volatile unsigned int *)(0x0038)#define SPSD0 *(volatile

42、 unsigned int *)(0x0039)/SPSD0包含SPCR1、SPCR2、RCR1、RCR2、XCR1、XCR2、SRGR1/SRGR2、MCR1、MCR2、RCERA、RCERB、XCERA、XCERB以及PCR,它们的16位天址/皆是0x0039,它们的子天址挨次是0x0000-0x000Eunsigned int send_data;unsigned int first_receive9=11,22,33,44,55,66,77,88,99;unsigned int receive_data;unsigned int i=0;/延时函数/void waitloop( uns

43、igned long loopval )while( loopval )loopval-;/McBSP初初化函数/void McBSP0_init_DLB()asm( SSBX INTM);/闭闭一切可屏障中止/使帧同步逻辑、采样率收死器、吸收器以及收收器处于复位形态SPSA0=0x0000;SPSD0=0x0000;/SPCR1=0x0000SPSA0=0x0001;SPSD0=0x0000;/SPCR2=0x0000/当串心处于复位形态时,设置把持存放器使处于冀望的吸收或者收收形态SPSA0=0x0000;SPSD0|=0x8000;/SPCR1=0x8000,使能DLB/SPCR2坚持为

44、0x0000SPSA0=0x0002;/RCR1SPSD0|=0x0000;/每一个吸收帧少度为1,字少为8SPSA0=0x0003;/RCR2SPSD0|=0x0002;/单相位,吸收数据延时2bitSPSA0=0x0004;/XCR1SPSD0|=0x0000;/每一个收收帧少度为1,字少为8SPSA0=0x0005;/XCR2SPSD0|=0x0002;/单相位,收收数据延时2bitSPSA0=0x0006;/SRGR1SPSD0|=0x001F;/FSG脉冲宽1CLKG周期,CLKG=CLKSRG/32SPSA0=0x0007;/SRGR2SPSD0|=0x301F;/CLKSRG=C

45、PU clock,帧周期是32个CLKG/多通讲取舍形式的存放器没有用/SPSA0=0x000E;/PCR,收收帧同步以及收收时钟由外部SRG供应SPSD0|=0x0A00;/吸收帧同步以及吸收时钟由收收器供应/最少守候2个时钟周期,以保障外部的同步waitloop(0x0100);/配置GRST=1使采样率收死器事情SPSA0=0x0001;SPSD0|=0x0040;/GRST=1/最少守候2个时钟周期,以保障外部的同步waitloop(0x0100);/配置RRST=XRST=1使串心入手下手事情SPSA0=0x0001;SPSD0|=0x0001;/XRST=1SPSA0=0x0000

46、;SPSD0|=0x0001;/RRST=1/若要用外部的帧同步逻辑,那末将FSRT配置成1SPSA0=0x0001;SPSD0|=0x0080;/FRST=1asm( RSBX INTM);/凋谢一切可屏障中止/void main()asm( SSBX INTM);SWWSR=0x4838;SWCR=0x01;BSCR=0x8006;CLKMD=0xF7F8;/硬件毗连中,一个11.2896MHz的时钟疑号曲连续接到X2/CLKIN引足,X1引足悬空;/由下面列位的值可知DSP外部时钟疑号CLKOUT=11.2896MHz*0.25=2822400Hz。waitloop(0x0400);/那

47、个天圆延时的目标次要是守候时钟不乱后再实行实用的代码PMST=0x00E8;/PMST:IPTR=0x01,当有中止时指背步伐空间0x80入手下手的天址地区;/MP/MC=0,OVLY=0,DROM=1,设置DARAM的0000-7FFF步伐空间,8000-FFFF数据空间。IMR=0x0000;IFR=0xFFFF;McBSP0_init_DLB();/McBSP初初化asm( RSBX INTM);send_data=1;while(1)/ SPSA0=0x0001;/ while(SPSD0&0x0002)=0) ;DXR10=(send_data&0x00FF);send_data+;send_data&=0x00FF;SPSA0=0x0000;while(SPSD0&0x0002)=0) ;receive_data=DR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1