1、本章内容提要本章内容提要n时钟发生器时钟发生器n通用定时器通用定时器n通用通用I/O口(口(GPIO)n外部存储器接口(外部存储器接口(EMIF)n多通道缓冲串口多通道缓冲串口(McBSP)n模数转换器(模数转换器(ADC)n看门狗定时器(看门狗定时器(Watchdog)nI2C模块模块8.1 时钟发生器时钟发生器n 时钟发生器概况时钟发生器概况n 时钟工作模式时钟工作模式n CLKOUTCLKOUT输出输出n 使用方法使用方法8.1.1 时钟发生器概况时钟发生器概况l 作用:从作用:从CLKIN引脚接收输入时钟信号,将其变换为引脚接收输入时钟信号,将其变换为CPU及其外设所需要的工作时钟。及
2、其外设所需要的工作时钟。工作时钟经过分频通过工作时钟经过分频通过引脚引脚CLKOUT输出,可输出,可供其他器件使用供其他器件使用时钟发生器内有一个数字锁相时钟发生器内有一个数字锁相环(环(DPLL)和一个时钟模式)和一个时钟模式寄存器(寄存器(CLKMD)8.1.2 时钟工作模式时钟工作模式l时钟发生器有三种工作模式时钟发生器有三种工作模式:u旁路模式(旁路模式(BYPASS)u锁定模式(锁定模式(LOCK)uIdle模式模式l时钟模式寄存器(时钟模式寄存器(CLKMD)中的)中的PLL ENABLE位控制位控制旁路模式和锁定模式旁路模式和锁定模式l可以通过关闭可以通过关闭CLKGEN Idl
3、e模块使时钟发生器工作在模块使时钟发生器工作在Idle模式。模式。1旁路模式(旁路模式(BYPASS)l如果如果PLL ENABLE=0,PLL工作于旁路模式,工作于旁路模式,PLL对输对输入时钟信号进行分频。分频值由入时钟信号进行分频。分频值由BYPASS DIV确定:确定:u如果如果BYPASSDIV=00,输出时钟信号的频率与输入,输出时钟信号的频率与输入信号的频率相同,即信号的频率相同,即1分频分频u如果如果BYPASSDIV=01,输出时钟信号的频率是输入,输出时钟信号的频率是输入信号的信号的1/2,即,即2分频分频u如果如果BYPASSDIV=1x,输出时钟信号的频率是输入,输出时
4、钟信号的频率是输入信号的信号的1/4,即,即4分频分频2.锁定模式(锁定模式(LOCK)l如果如果PLL ENABLE=1,PLL工作于锁定模式,工作于锁定模式,输出的时钟频率由下面公式确定:输出的时钟频率由下面公式确定:输入频率1DIV PLLMULT PLL输出频率表表8-1 时钟模式寄存器时钟模式寄存器CLKMD(1)位字 段说 明15Rsvd保留14IAI退出Idle状态后,决定PLL是否重新锁定0 PLL将使用与进入Idle状态之前相同的设置进行锁定1 PLL将重新锁定过程13IOB处理失锁0 时钟发生器不中断PLL,PLL继续输出时钟1 时钟发生器切换到旁路模式,重新开始PLL锁相
5、过程12TEST必须保持为0117PLL MULT锁定模式下的PLL倍频值,031表表8-1 时钟模式寄存器时钟模式寄存器CLKMD(2)位字 段说 明65PLL DIV锁定模式下的PLL分频值,034PLL ENABLE使能或关闭PLL0 关闭PLL,进入旁路模式1 使能PLL,进入锁定模式32BYPASS DIV旁路下的分频值00 一分频01 二分频10或11 四分频1BREAKLNPLL失锁标志0 PLL已经失锁1 锁定状态或有对CLKMD寄存器的写操作0LOCK锁定模式标志0 时钟发生器处于旁路模式1 时钟发生器处于锁定模式3.Idle模式模式l为了降低功耗,可以加载为了降低功耗,可以
6、加载Idle配置,使配置,使DSP的时钟发的时钟发生器进入生器进入Idle模式模式l当时钟发生器处于当时钟发生器处于Idle模式时,输出时钟停止,引脚模式时,输出时钟停止,引脚被拉为高电平。被拉为高电平。8.1.3 CLKOUT输出输出lCPU时钟可以通过一个时钟分频器对外提供时钟可以通过一个时钟分频器对外提供CLKOUT信号信号lCLKOUT的频率由系统寄存器(的频率由系统寄存器(SYSR)中的)中的CLKDIV确定确定u当当CLKDIV=000b时,时,CLKOUT的频率等于的频率等于CPU时钟频率时钟频率u当当CLKDIV=001b时,时,CLKOUT的频率等于的频率等于CPU时钟频率的
7、时钟频率的1/2u当当CLKDIV=010b时,时,CLKOUT的频率等于的频率等于CPU时钟频率的时钟频率的1/3u当当CLKDIV=011b时,时,CLKOUT的频率等于的频率等于CPU时钟频率的时钟频率的1/4u当当CLKDIV=100b时,时,CLKOUT的频率等于的频率等于CPU时钟频率的时钟频率的1/5u当当CLKDIV=101b时,时,CLKOUT的频率等于的频率等于CPU时钟频率的时钟频率的1/6u当当CLKDIV=110b时,时,CLKOUT的频率等于的频率等于CPU时钟频率的时钟频率的1/7u当当CLKDIV=111b时,时,CLKOUT的频率等于的频率等于CPU时钟频率的
8、时钟频率的1/88.1.4 使用方法使用方法l通过对时钟模式寄存器(通过对时钟模式寄存器(CLKMD)的操作,可以根据)的操作,可以根据需要设定时钟发生器的工作模式和输出频率需要设定时钟发生器的工作模式和输出频率l在设置过程中除了工作模式、分频值和倍频值以外,在设置过程中除了工作模式、分频值和倍频值以外,还要注意其他因素对还要注意其他因素对PLL的影响的影响 1.省电(省电(Idle)l为了减少功耗,可以使时钟发生器处于省电状态为了减少功耗,可以使时钟发生器处于省电状态l当时钟发生器退出省电状态时,当时钟发生器退出省电状态时,PLL自动切换到旁路自动切换到旁路模式,进行跟踪锁定,锁定后返回到锁
9、定模式模式,进行跟踪锁定,锁定后返回到锁定模式l时钟模式寄存器与省电有关的位是时钟模式寄存器与省电有关的位是IAIuIAI=0:PLL将使用与进入将使用与进入Idle状态之前相同的设置进行状态之前相同的设置进行锁定锁定uIAI=1:PLL将重新锁定过程将重新锁定过程2.DSP复位复位l在在DSP复位期间和复位之后,复位期间和复位之后,PLL工作于旁路模式,工作于旁路模式,输出的时钟频率由输出的时钟频率由CLKMD引脚上的电平确定引脚上的电平确定u如果如果CLKMD引脚为低电平,则输出频率等于输入引脚为低电平,则输出频率等于输入频率频率u如果如果CLKMD引脚为高电平,则输出频率等于输入引脚为高
10、电平,则输出频率等于输入频率的频率的1/2。注意:注意:5509A无无CLKMD引脚!引脚!3.失锁失锁l锁相环对输入时钟跟踪锁定之后,可能会由于其他原锁相环对输入时钟跟踪锁定之后,可能会由于其他原因使其输出时钟发生偏移,导致失锁。因使其输出时钟发生偏移,导致失锁。l出现失锁现象后,出现失锁现象后,PLL的动作由时钟模式寄存器中的的动作由时钟模式寄存器中的IOB确定确定uIOB=0:时钟发生器不中断时钟发生器不中断PLL,PLL继续输出时继续输出时钟钟uIOB=1:时钟发生器切换到旁路模式,重新开始时钟发生器切换到旁路模式,重新开始PLL锁相过程锁相过程8.2 通用定时器通用定时器n定时器概况
11、定时器概况n工作原理工作原理n定时器使用要点定时器使用要点n定时器应用实例定时器应用实例8.2.1 定时器概况定时器概况lC55x 芯片提供了两个定时器芯片提供了两个定时器uTMS320VC5503/5507/5509A/5510提供的是两个提供的是两个20位的位的定时器定时器l定时器由两部分组成:定时器由两部分组成:u预定标计数寄存器(预定标计数寄存器(PSC),4位位u主计数器(主计数器(TIM),16位位l寄存器寄存器:u计数寄存器(计数寄存器(PSC,TIM)u周期寄存器(周期寄存器(TDDR,PRD):在定时器初始化或定时值重新装在定时器初始化或定时值重新装入过程中,将周期寄存器的内
12、容复制到计数寄存器中入过程中,将周期寄存器的内容复制到计数寄存器中图图8-2 定时器结构框图定时器结构框图8.2.2 工作原理工作原理l定时器的工作时钟定时器的工作时钟uDSP内部的内部的CPU时钟时钟u引脚引脚TIN/TOUTl利用定时器控制寄存器(利用定时器控制寄存器(TCR)中的字段)中的字段FUNC可以确定时钟源和可以确定时钟源和TIN/TOUT引脚的功引脚的功能能l预定标计数寄存器(预定标计数寄存器(PSC)由输入时钟驱动,)由输入时钟驱动,PSC在每在每个输入时钟周期减个输入时钟周期减1;当其减到当其减到0时,时,TIM减减1,当,当TIM减到减到0,定时器向,定时器向CPU发送一
13、个中断请求(发送一个中断请求(TINT)或向)或向DMA控制器发送同步事件控制器发送同步事件l定时器发送中断信号或同步事件信号的频率可用下式计定时器发送中断信号或同步事件信号的频率可用下式计算:算:1PRD1TDDRTINT输入时钟频率频率l通过设置定时器控制寄存器(通过设置定时器控制寄存器(TCR)中的自动重装控制)中的自动重装控制位位ARB,可使定时器工作于自动重装模式,可使定时器工作于自动重装模式:u当当TIM减到减到0,重新将周期寄存器(,重新将周期寄存器(TDDR,PRD)的内容复制到计数寄存器(的内容复制到计数寄存器(PSC,TIM)中,继续)中,继续定时定时l定时器包括定时器包括
14、4个寄存器个寄存器u定时器预定标寄存器定时器预定标寄存器PRSC,表表8-2u主计数寄存器主计数寄存器TIM,表表8-3u主周期寄存器主周期寄存器PRD,表表8-4u定时器控制寄存器定时器控制寄存器TCR,表表8-5表表8-2 定时器预定标寄存器定时器预定标寄存器 PRSC位字 段数 值说 明1510Rsvd保留96PSC0hFh预定标计数寄存器54Rsvd保留30TDDR0hFh当PSC重新装入时,将TDDR的内容复制到PSC中表表8-3 主计数寄存器主计数寄存器 TIM位字 段数 值说 明150 TIM0000hFFFFh主计数寄存器表表8-4 主周期寄存器主周期寄存器 PRD位字 段数
15、值说 明150PRD0000hFFFFh主周期寄存器。当TIM必须重新装入时,将PRD的内容复制到TIM中表表8-5 定时器控制寄存器定时器控制寄存器 TCR(1)位字 段数 值说 明15IDLEEN01定时器的Idle使能位。定时器不能进入idle状态如果idle状态寄存器中的PERIS=1,定时器进入idle状态14INTEXT01时钟源从内部切换到外部标志位定时器没有准备好使用外部时钟源定时器准备使用外部时钟源13ERRTIM01定时器错误标志没有监测到错误,或ERRTIM已被读取出错1211FUNCFUNC=00bFUNC=01bFUNC=10bFUNC=11b定时器工作模式选择位TI
16、N/TOUT为高阻态,时钟源是内部CPU时钟TIN/TOUT为定时器输出,时钟源是内部CPU时钟TIN/TOUT为通用输出,引脚电平反映的是DATOUT位的值TIN/TOUT为定时器输入,时钟源是外部时钟表表8-5 定时器控制寄存器定时器控制寄存器 TCR(2)位字 段数 值说 明10TLB01定时器装载位TIM、PSC不重新装载将PRD、TDDR分别复制到TIM、PSC中9SOFT在调试中遇到断点时定时器的处理方法8FREE76PWID00011011定时器输出脉冲的宽度1个CPU时钟周期2个CPU时钟周期4个CPU时钟周期8个CPU时钟周期5ARB01自动重装控制位ARB清0每次TIM减为
17、0,PRD装入TIM中,TDDR装入PSC中表表8-5 定时器控制寄存器定时器控制寄存器 TCR(3)位字 段数 值说 明4TSS01定时器停止状态位启动定时器停止定时器3C/P01定时器输出时钟/脉冲模式选择输出脉冲。脉冲宽度由PWID定义,极性由POLAR定义输出时钟。引脚上信号的占空比为50%。2POLAR01时钟输出极性位正极性负极性1DATOUT01当TIN/TOUT作为通用输出引脚,该位控制引脚上的电平低电平高电平0Rsvd0保留8.2.3 定时器使用要点定时器使用要点1.初始化定时器初始化定时器 (1)停止计时()停止计时(TSS=1),使能定时器自动装载使能定时器自动装载(TL
18、B=1)(2)将预定标计数器周期数写入)将预定标计数器周期数写入TDDR(以输入的时钟(以输入的时钟周期为基本单位)周期为基本单位)(3)将主计数器周期数装入)将主计数器周期数装入PRD (4)关闭定时器自动装载()关闭定时器自动装载(TLB=0),启动计时),启动计时(TSS=0)2.停止停止/启动定时器启动定时器l利用时钟控制寄存器(利用时钟控制寄存器(TCR)中的)中的TSS位可以位可以停止(停止(TSS=1)或启动定时器()或启动定时器(TSS=0)3.DSP复位后定时器寄存器的值复位后定时器寄存器的值l停止定时(停止定时(TSS=1)l预定标计数器值为预定标计数器值为0l主计数器值为
19、主计数器值为FFFFhl定时器不进行自动重装(定时器不进行自动重装(ARB=0)lIDLE指令不能使定时器进入省电模式指令不能使定时器进入省电模式l仿真时遇到软件断点定时器立即停止工作仿真时遇到软件断点定时器立即停止工作lTIN/TOUT为高阻态,时钟源是内部时钟为高阻态,时钟源是内部时钟(FUNC=00b)8.2.4 定时器应用实例定时器应用实例 例例8-1,在,在TIN/TOUT引脚上产生一个引脚上产生一个2MHz的的时钟,假定时钟,假定DSP的的CPU时钟为时钟为200MHz。l要点:要点:uTIN/TOUT引脚配置为定时器输出,引脚配置为定时器输出,FUNC设置为设置为01bu为了使这
20、个引脚工作在时钟模式,为了使这个引脚工作在时钟模式,CP设置为设置为1buTIN/TOUT的极性为默认的的极性为默认的0bu由于每当计数器减为由于每当计数器减为0时,引脚的电平就会翻转一时,引脚的电平就会翻转一次。要将次。要将CPU的时钟频率除以的时钟频率除以100倍,就要求每个倍,就要求每个高电平和低电平周期内的计数为高电平和低电平周期内的计数为50u设置自动装入(设置自动装入(ARB=1),使每次计数器减为),使每次计数器减为0时,时,计时器自动装入计数值,并重新开始计数计时器自动装入计数值,并重新开始计数u置置TCR中的中的FREE bit 为为1,使计时器在遇到仿真断,使计时器在遇到仿
21、真断点时能够继续工作点时能够继续工作u将将TCR中的中的IDLEEN bit清清0,使计时器即便在外设,使计时器即便在外设时钟模块处于时钟模块处于idle状态下仍然工作状态下仍然工作;*;定时器寄存器地址;*TIM0.set 0 x1000 ;TIMER0计数寄存器PRD0 .set 0 x1001 ;TIMER0周期寄存器TCR0 .set 0 x1002 ;TIMER0控制寄存器PRSC0 .set 0 x1003 ;TIMER0预定标寄存器;*;定时器配置;*TIMER_PERIOD .set 9;定时器的周期为10TIMER_PRESCALE.set 4;预定标值为5.textINIT
22、:mov#TIMER_PERIOD,port(#PRD0);配置定时器周期寄存器mov#TIMER_PRESCALE,port(#PRSC0);配置定时器预定标寄存器mov#0000110100111000b,port(#TCR0);0IDLEEN 0=不和外设域一起 idle;0INTEST n/al 初始化代码如下:初始化代码如下:;0ERR_TIM 1=如果非法功能改变发生;01 FUNC 01=TIN/TOUT引脚是定时器输出;1TLB 1=从周期寄存器装入;0SOFT n/a;1FREE 1=仿真暂停时,计数器不停;00 PWID n/a;1 ARB 1=使能自动重装入;1 TSS
23、1=停止定时器;1 CP 0=脉冲模式,1=时钟(触发)模式;0 POLAR 0=正则极性;0 DATOUT n/a;0 Rsvdand#1111101111101111b,port(#TCR0);0 TLB 0=停止从周期寄存器装入;0 TSS 0=启动计时器8.2.4 定时器应用实例定时器应用实例数字振荡器原理数字振荡器原理设一个传递函数为正弦序列sinkT,其z变换为1121CzAzBzH(z)=其中,A=2cosT,B=1,C=sinT。8.2.4 定时器应用实例定时器应用实例设初始条件为0,求出上式的反Z变换得:yk=Ayk1+Byk2+Cxk1这是一个二阶差分方程,其单位冲击响应即
24、为sinkT。利用单位冲击函数xk1的性质,即仅当k=1时,xk1=1,代入上式得:8.2.4 定时器应用实例定时器应用实例 k=0 y0=Ay-1+By-2+0=0 k=1 y1=Ay0+By-2+c=c k=2 y2=Ay1+By0+0=Ay1 k=3 y3=Ay2+By1 .k=n yn=Ayn-1+Byn-2在k2以后,yk能用yk-1和yk-2算出,这是一个递归的差分方程。8.2.4 定时器应用实例定时器应用实例根据上面的说明,我们可以开始数字振荡器的设计。设该振荡器的频率为2kHz,采样率为40kHz(通过定时器设置,每隔25us中断一次,产生一个yn)则递归的差分方程系数为:8.
25、2.4 定时器应用实例定时器应用实例 A=2cosT=2cos(2 x PI x 2000/40000)=2 x 0.95105652 B=1 C=sinT=sin(2 x PI x 2000/40000)=0.30901699 15213 72CC1520002BC152792ABC8.2.4 定时器应用实例定时器应用实例主程序在初始化时先计算出y1和y2,然后开放定时器中断。以后每次进入定时器中断服务程序时,利用前面的y1和y2,计算出新的有y0 8.2.4 定时器应用实例定时器应用实例.title for test INT service program.(25us).mmregs.gl
26、obal _c_int00.def again.def timer.dataINIT_A.set 079bch;A/2=0.9510498INIT_B.set 0c000h;B/2=0.5INIT_C.set 013c7h;C/2=0.15451058.2.4 定时器应用实例定时器应用实例PRSC0.set 0 x1003PRD0 .set 0 x1001TCR0 .set 0 x1002CLKMD.set 0 x1C00TIM0 .set 0 x1000.bss y0,1.bss y1,1.bss y2,1.bss AA,1.bss BB,1.bss CC,18.2.4 定时器应用实例定时器
27、应用实例_c_int00:MOV#0 x6413,PORT(#CLKMD)MOV#0 x000F,PORT(#PRSC0)MOV#0 x0001,PORT(#PRD0)MOV#0 x0001,PORT(#TIM0)MOV#0 x07E0,PORT(#TCR0)8.2.4 定时器应用实例定时器应用实例AMOV#y0,XAR0AMOV#y1,XAR1AMOV#y2,XAR2AMOV#AA,XAR3AMOV#BB,XAR4AMOV#CC,XAR58.2.4 定时器应用实例定时器应用实例BSET INTMBCLR C54CMBCLR CPLBCLR ARMS BSET SATABSET SATDBSE
28、T SMUL8.2.4 定时器应用实例定时器应用实例BCLR M40BSET SXMDBSET FRCTMOV#0 xFFFF,mmap(IVPD)MOV#0 xFFFF,mmap(IVPH)AMOV#0 x4000,XSPMOV#0 x4400,mmap(SSP)8.2.4 定时器应用实例定时器应用实例MOV#INIT_A,*(#AA)MOV#INIT_B,*(#BB)MOV#INIT_C,*(#y1);init y1,y1=CC8.2.4 定时器应用实例定时器应用实例 MPYM *AR1,*AR3,AC0 ;y1*AA AC0 MOV AC0,*AR2 OR#16,mmap(IER0);e
29、nable TIMER MOV#0 x0bE0,PORT(#TCR0)BCLR INTMagain:NOP B againtimer:BSET INTM MPY *AR4,*AR1,AC0 ;a=y1*BB MAC *AR3,*AR2,AC0 ;a=a+y2*AA MOV *AR2,*AR1 ;y2=y1 MOV AC0 y2 MOV AC0 y0 OR#16,mmap(IER0)BCLR INTM RETI .end*vectors.asm*.sect.vectors .ref _c_int00.ref timer.ref again.global vectorvector:rs:.ivec
30、 _c_int00nmi:.ivec againTINT0:.ivec timerMEMORYEPROG:origin=0 x1400,len=0 x7c00VECT:origin=0 xFFFF00,len=0 xffRAM:origin=0 x200,len=0 x0fffSECTIONS.text:EPROG.vectors:VECT.bss:RAM.data:RAM8.3 通用通用I/O口(口(GPIO)lC55x提供了专门的通用输入输出引脚提供了专门的通用输入输出引脚GPIOu每个引脚的方向可以由每个引脚的方向可以由I/O方向寄存器方向寄存器IODIR独立配置独立配置u引脚上的输入引
31、脚上的输入/输出状态由输出状态由I/O数据寄存器数据寄存器IODATA反映或设置反映或设置lTMS320VC5509A(PGE)有有7个个GPIO引脚引脚u引脚配置见本书第引脚配置见本书第2章章u有关寄存器见表有关寄存器见表8-6和表和表8-7表表8-7 GPIO数据寄存器数据寄存器IODATA位字 段数 值说 明158Rsvd保留70IOxDIR01IOx方向控制位IOx配置为输入IOx配置为输出表表8-6 GPIO方向寄存器方向寄存器IODIR位字 段数 值说 明158Rsvd保留70IOxD01IOx逻辑状态位IOx引脚上的信号为低电平IOx引脚上的信号为高电平8.4 外部存储器接口(外
32、部存储器接口(EMIF)nEMIF介绍介绍nEMIF请求的优先级请求的优先级n对存储器的考虑对存储器的考虑n程序和数据访问程序和数据访问 nEMIF中的控制寄存器中的控制寄存器 8.4.1 EMIF介绍介绍lEMIF控制控制DSP和外部存储器之间的所有数据传输和外部存储器之间的所有数据传输1.EMIF支持的存储器类型支持的存储器类型lEMIF为三种类型的存储器提供了无缝接口:为三种类型的存储器提供了无缝接口:u异步存储器,包括异步存储器,包括ROM、FLASH以及异步以及异步SRAMu同步突发同步突发SRAM(SBSRAM),可以工作在可以工作在1倍或倍或1/2倍倍CPU时钟频率时钟频率u同步
33、同步DRAM(SDRAM),可以工作在可以工作在1倍或倍或1/2倍倍CPU时钟时钟频率频率l也可通过也可通过EMIF外接外接A/D转换器、并行显示接口等外围设备转换器、并行显示接口等外围设备u需要增加一些外部逻辑器件来保证设备的正常使用需要增加一些外部逻辑器件来保证设备的正常使用l程序的访问程序的访问l3232位数据的访问位数据的访问l1616位数据的访问位数据的访问l8 8位数据的访问位数据的访问2.EMIF支持四种类型的访问支持四种类型的访问3.EMIF信号信号表表8-8 外部存储器共享接口外部存储器共享接口表表8-9 用于异步存储器的用于异步存储器的EMIF信号信号表表8-10 用于用于
34、SBSRAM的的EMIF信号信号表表8-11总线保持信号总线保持信号表表8-12 用于用于SDRAM的的EMIF信号信号8.4.2 EMIF请求的优先级请求的优先级EMIF请求类型优先级说明HOLD1(最高)引脚拉低紧急刷新2同步DRAM需要立刻刷新时,产生请求E总线3通过E总线向外部存储器写数据时产生这个请求F总线4通过F总线向外部存储器写数据时产生这个请求D总线5通过D总线向外部存储器写数据时产生这个请求C总线6通过C总线向外部存储器读数据时产生这个请求P总线7通过P总线向外部存储器读数据时产生这个请求Cache8从指令cache来的线填充(line fill)请求DMA控制器9DMA控制
35、器读或写外部存储器时,产生这个请求刷新10同步DRAM需要下一个周期刷新时,产生这个请求8.4.3 对存储器的考虑对存储器的考虑l对对EMIF编程时,必须了解:编程时,必须了解:u外部存储器地址如何分配给片使能(外部存储器地址如何分配给片使能(CE)空间)空间u每个每个CE空间可以同哪些类型的存储器连接空间可以同哪些类型的存储器连接u哪些寄存器位来配置哪些寄存器位来配置CE空间空间1.存储器映射和存储器映射和CE空间空间l C55x的外部存储映射在存储空间的分布,相的外部存储映射在存储空间的分布,相应于应于EMIF的片选使能信号的片选使能信号 例如,例如,空间里的一片存储器,必须将其空间里的一
36、片存储器,必须将其片选引脚连接到片选引脚连接到EMIF的引脚。当的引脚。当EMIF 访问访问 空间时,就驱动空间时,就驱动 变低。变低。CE1CE1CE12.EMIF支持的存储器类型和访问类支持的存储器类型和访问类型型存储器类型支持的访问类型异步8位存储器(MTYPE=000b)程序异步16位存储器(MTYPE=001b)程序,32位数据,16位数据,8位数据异步32位存储器(MTYPE=010b)程序,32位数据,16位数据,8位数据32位的SDRAM(MTYPE=011b)程序,32位数据,16位数据,8位数据32位的SBSRAM(MTYPE=100b)程序,32位数据,16位数据,8位数
37、据表表8-14 8-14 存储器类型及每种存储器允许的访问类型存储器类型及每种存储器允许的访问类型3.配置配置CE空间空间l使用全局控制寄存器(使用全局控制寄存器(EGCR)和每个)和每个CE空间控制寄空间控制寄存器来配置存器来配置CE空间空间l对于每个对于每个CE空间,必须设置控制寄存器空间,必须设置控制寄存器1中的以下域:中的以下域:uMTYPE确定存储器类型确定存储器类型uMEMFREQ 决定存储器时钟信号的频率(决定存储器时钟信号的频率(1倍或倍或1/2倍倍CPU时钟信号的频率)时钟信号的频率)uMEMCEN 决定决定CLKMEM引脚是输出存储器时钟信引脚是输出存储器时钟信号还是被拉成
38、高电平号还是被拉成高电平l不管每个不管每个CE空间里的存储器类型,一定要对全局控制空间里的存储器类型,一定要对全局控制寄存器写如下控制位(这些位要影响所有的寄存器写如下控制位(这些位要影响所有的CE空间):空间):uWPE:对所有的:对所有的CE空间,使能或禁止写空间,使能或禁止写uNOHOLD:对所有的对所有的CE空间,使能或禁止空间,使能或禁止HOLD请求请求8.4.4 程序和数据访问程序和数据访问1、程序存储器的访问、程序存储器的访问l要从外部存储器取指令代码时,要从外部存储器取指令代码时,CPU向向EMIF发送一个发送一个访问请求。访问请求。EMIF必须从外部存储器读取一个必须从外部存
39、储器读取一个32位代码,位代码,然后把这全部然后把这全部32个位放到个位放到CPU的程序读总线(的程序读总线(P bus)上上lEMIF可以管理对可以管理对3种存储器宽度的种存储器宽度的32位访问:位访问:32位、位、16位、位、8位,本书主要介绍对位,本书主要介绍对16位和位和8位宽的程序存储位宽的程序存储器的访问器的访问l访问访问16位宽的外部程序存储器位宽的外部程序存储器EMIF把一个字的地址放到地址线把一个字的地址放到地址线A21:1上。上。32位的位的访问可以分为两个访问可以分为两个16位的传输,在连续的两个周期内位的传输,在连续的两个周期内完成。在第二个周期,完成。在第二个周期,E
40、MIF自动将第一个地址加自动将第一个地址加1,产生第二个地址。产生第二个地址。l访问访问8位宽的外部程序存储器位宽的外部程序存储器EMIF把一个字节地址放到地址线把一个字节地址放到地址线A21:0上。上。32位位的访问可以分为的访问可以分为4个个8位的传输,在连续的位的传输,在连续的4个周期内个周期内完成。在第完成。在第2、3、4个周期,个周期,EMIF自动将第一个地址自动将第一个地址加加1,产生下一个新的地址。,产生下一个新的地址。2、数据访问、数据访问lEMIF支持的数据访问类型支持的数据访问类型u对对32位宽的数据存储器进行位宽的数据存储器进行32、16、8位的数据位的数据访问访问u对对
41、16位宽的数据存储器进行位宽的数据存储器进行16、8位的数据访问位的数据访问l本节介绍对本节介绍对32位和位和16位宽的存储器作位宽的存储器作16位的数据访位的数据访问问l 对对3232位宽的存储器作位宽的存储器作1616位的数据访问位的数据访问u 写一个字到外部存储器时,写一个字到外部存储器时,EMIF会自动修改为会自动修改为一个单字一个单字u EMIF从外部存储器读一个字时,读进来的是一从外部存储器读一个字时,读进来的是一个个32位的数据,所希望的字在位的数据,所希望的字在DSP里分离出来里分离出来表表8-15 在对在对32位宽的外部存储器所作的位宽的外部存储器所作的16 位数据访问中,内
42、部地址为位数据访问中,内部地址为1 的作用的作用u EMIF的外部地址的外部地址A21:2对应于内部数据地址的位对应于内部数据地址的位212,用内部地址的位,用内部地址的位A1来决定使用数据总线的哪一来决定使用数据总线的哪一半,以及哪个字节使能信号有效半,以及哪个字节使能信号有效 图图8-7a 对对32位存储器作位存储器作16位访问位访问(MSW在偶字地址在偶字地址)图图8-7b 对对32位存储器作位存储器作16位访问位访问(MSW在奇字地址在奇字地址)l对对16位宽的存储器作位宽的存储器作16位的数据访问位的数据访问图图8-8 对对16位宽的外部存储器所作的位宽的外部存储器所作的16位的数据
43、访问位的数据访问8.4.5 EMIF中的控制寄存器中的控制寄存器表表8-16 EMIF 寄存器寄存器I/O口地址寄存器描 述I/O口地址寄存器描 述0800hEGCREMIF全局控制寄存器080AhCE22CE2空间控制寄存器20801hEMI_RSTEMIF全局复位寄存器080BhCE23CE2空间控制寄存器30802hEMI_BEEMIF总线错误状态寄存器080ChCE31CE3空间控制寄存器10803hCE01CE0空间控制寄存器1080DhCE32CE3空间控制寄存器20804hCE02CE0空间控制寄存器2080EhCE33CE3空间控制寄存器30805hCE03CE0空间控制寄存器
44、3080FhSDC1SDRAM控制寄存器10806hCE11CE1空间控制寄存器10810hSDPERSDRAM周期寄存器0807hCE12CE1空间控制寄存器20811hSDCNTSDRAM计数寄存器0808hCE13CE1空间控制寄存器30812hINITSDRAM初值寄存器0809hCE21CE2空间控制寄存器10813hSDC2SDRAM控制寄存器28.5 多通道缓冲串口多通道缓冲串口McBSPnMcBSP概述概述nMcBSP组成框图组成框图n采样率发生器采样率发生器n多通道模式选择多通道模式选择n异常处理异常处理nMcBSP寄存器寄存器8.5.1 McBSP概述概述lC55x提供高速
45、的多通道缓冲串口(提供高速的多通道缓冲串口(McBSP,Multi-channel Buffered Serial Ports),通过),通过McBSP可可以与其它以与其它DSP、编解码器等器件相连。、编解码器等器件相连。l McBSP具有如下特点:具有如下特点:u全速双工通信。全速双工通信。u双缓存发送,三缓存接收,支持传送连续的数据流。双缓存发送,三缓存接收,支持传送连续的数据流。u独立的收发时钟信号和帧信号。独立的收发时钟信号和帧信号。u128个通道收发。个通道收发。u可与工业标准的编解码器、模拟接口芯片(可与工业标准的编解码器、模拟接口芯片(AICs)及其他串行及其他串行A/D、D/A
46、芯片直接连接。芯片直接连接。u能够向能够向CPU发送中断,向发送中断,向DMA控制器发送控制器发送DMA事件。事件。u具有可编程的采样率发生器,可控制时钟和帧同步具有可编程的采样率发生器,可控制时钟和帧同步信号。信号。u可选择帧同步脉冲和时钟信号的极性。可选择帧同步脉冲和时钟信号的极性。u传输的字长可选,可以是传输的字长可选,可以是8位、位、12位、位、16位、位、20位、位、24位或位或32位。位。u具有具有u律和律和A律压缩扩展功能。律压缩扩展功能。u可将可将McBSP引脚配置为通用输入输出引脚。引脚配置为通用输入输出引脚。8.5.2 McBSP组成框图组成框图lMcBSP包括一个数据通道
47、和一个控制通道,通过包括一个数据通道和一个控制通道,通过7个个引脚与外部设备连接,其结构如图引脚与外部设备连接,其结构如图8-9所示。所示。l数据发送引脚数据发送引脚DX负责数据的发送,数据接收引脚负责数据的发送,数据接收引脚DR负责数据的接收,发送时钟引脚负责数据的接收,发送时钟引脚CLKX、接收时钟引、接收时钟引脚脚CLKR、发送帧同步引脚、发送帧同步引脚FSX和接收帧同步引脚和接收帧同步引脚FSR提供串行时钟和控制信号。提供串行时钟和控制信号。lCPU和和DMA控制器通过外设总线与控制器通过外设总线与McBSP进行通进行通信。当发送数据时,信。当发送数据时,CPU和和DMA将数据写入数据
48、发将数据写入数据发送寄存器(送寄存器(DXR1,DXR2),接着复制到发送移位),接着复制到发送移位寄存器(寄存器(XSR1,XSR2),通过发送移位寄存器输),通过发送移位寄存器输出至出至DX引脚。引脚。l同样,当接收数据时,同样,当接收数据时,DR引脚上接收到的数据先移引脚上接收到的数据先移位到接收移位寄存器(位到接收移位寄存器(RSR1,RSR2),接着复制),接着复制到接收缓冲寄存器(到接收缓冲寄存器(RBR1,RBR2)中,)中,RBR再再将数据复制到数据接收寄存器(将数据复制到数据接收寄存器(DRR1,DRR2)中,由中,由CPU或或DMA读取数据。这样,可以同时进行读取数据。这样
49、,可以同时进行内部和外部的数据通信。内部和外部的数据通信。图图8-9 McBSP的结构框图的结构框图8.5.3 采样率发生器采样率发生器每个每个McBSPMcBSP包括一个采样率包括一个采样率发生器发生器SRG,SRG,用于产生内部数用于产生内部数据时钟据时钟CLKGCLKG和内部帧同步信和内部帧同步信号号FSGFSG。CLKGCLKG可以作为可以作为DRDR引脚接收引脚接收数据或数据或DXDX引脚发送数据的时引脚发送数据的时钟,钟,FSGFSG控制控制DRDR和和DXDX上的帧上的帧同步。同步。1输入时钟的选择输入时钟的选择 采样率发生器的时钟源可以由采样率发生器的时钟源可以由CPU时钟或外
50、部引脚时钟或外部引脚(CLKS,CLKX或或CLKR)提供,时钟源的选择可以)提供,时钟源的选择可以通过引脚控制寄存器通过引脚控制寄存器PCR中的中的SCLKME字段和采样率字段和采样率发生寄存器发生寄存器SRGR2中的中的CLKSM字段来确定。字段来确定。SCLKMECLKSM采样发生器的输入时钟00CLKS引脚上的信号01CPU时钟10CLKR引脚上的信号11CLKX引脚上的信号2输入时钟信号极性的选择输入时钟信号极性的选择 如果选择了一个外部引脚作为时钟源,其极性可通如果选择了一个外部引脚作为时钟源,其极性可通过过SRGR2中的中的CLKSP字段、字段、PCR中的中的CLKXP字段或字段