第8章-C55x的片上外设A课件.ppt
《第8章-C55x的片上外设A课件.ppt》由会员分享,可在线阅读,更多相关《第8章-C55x的片上外设A课件.ppt(158页珍藏版)》请在三一办公上搜索。
1、本章内容提要,时钟发生器通用定时器通用I/O口(GPIO)外部存储器接口(EMIF)多通道缓冲串口(McBSP)模数转换器(ADC)看门狗定时器(Watchdog)I2C模块,8.1 时钟发生器,时钟发生器概况 时钟工作模式 CLKOUT输出 使用方法,8.1.1 时钟发生器概况,作用:从CLKIN引脚接收输入时钟信号,将其变换为CPU及其外设所需要的工作时钟。,工作时钟经过分频通过引脚CLKOUT输出,可供其他器件使用,时钟发生器内有一个数字锁相环(DPLL)和一个时钟模式寄存器(CLKMD),8.1.2 时钟工作模式,时钟发生器有三种工作模式:旁路模式(BYPASS)锁定模式(LOCK)I
2、dle模式时钟模式寄存器(CLKMD)中的PLL ENABLE位控制旁路模式和锁定模式可以通过关闭CLKGEN Idle模块使时钟发生器工作在Idle模式。,1旁路模式(BYPASS),如果PLL ENABLE=0,PLL工作于旁路模式,PLL对输入时钟信号进行分频。分频值由BYPASS DIV确定:如果BYPASSDIV=00,输出时钟信号的频率与输入信号的频率相同,即1分频如果BYPASSDIV=01,输出时钟信号的频率是输入信号的1/2,即2分频如果BYPASSDIV=1x,输出时钟信号的频率是输入信号的1/4,即4分频,2.锁定模式(LOCK),如果PLL ENABLE=1,PLL工作
3、于锁定模式,输出的时钟频率由下面公式确定:,表8-1 时钟模式寄存器CLKMD(1),表8-1 时钟模式寄存器CLKMD(2),3.Idle模式,为了降低功耗,可以加载Idle配置,使DSP的时钟发生器进入Idle模式当时钟发生器处于Idle模式时,输出时钟停止,引脚被拉为高电平。,8.1.3 CLKOUT输出,CPU时钟可以通过一个时钟分频器对外提供CLKOUT信号CLKOUT的频率由系统寄存器(SYSR)中的CLKDIV确定当CLKDIV=000b时,CLKOUT的频率等于CPU时钟频率当CLKDIV=001b时,CLKOUT的频率等于CPU时钟频率的1/2当CLKDIV=010b时,CL
4、KOUT的频率等于CPU时钟频率的1/3当CLKDIV=011b时,CLKOUT的频率等于CPU时钟频率的1/4当CLKDIV=100b时,CLKOUT的频率等于CPU时钟频率的1/5当CLKDIV=101b时,CLKOUT的频率等于CPU时钟频率的1/6当CLKDIV=110b时,CLKOUT的频率等于CPU时钟频率的1/7当CLKDIV=111b时,CLKOUT的频率等于CPU时钟频率的1/8,8.1.4 使用方法,通过对时钟模式寄存器(CLKMD)的操作,可以根据需要设定时钟发生器的工作模式和输出频率在设置过程中除了工作模式、分频值和倍频值以外,还要注意其他因素对PLL的影响,1.省电(
5、Idle),为了减少功耗,可以使时钟发生器处于省电状态当时钟发生器退出省电状态时,PLL自动切换到旁路模式,进行跟踪锁定,锁定后返回到锁定模式时钟模式寄存器与省电有关的位是IAIIAI=0:PLL将使用与进入Idle状态之前相同的设置进行锁定IAI=1:PLL将重新锁定过程,2.DSP复位,在DSP复位期间和复位之后,PLL工作于旁路模式,输出的时钟频率由CLKMD引脚上的电平确定如果CLKMD引脚为低电平,则输出频率等于输入频率如果CLKMD引脚为高电平,则输出频率等于输入频率的1/2。,注意:5509A无CLKMD引脚!,3.失锁,锁相环对输入时钟跟踪锁定之后,可能会由于其他原因使其输出时
6、钟发生偏移,导致失锁。出现失锁现象后,PLL的动作由时钟模式寄存器中的IOB确定IOB=0:时钟发生器不中断PLL,PLL继续输出时钟IOB=1:时钟发生器切换到旁路模式,重新开始PLL锁相过程,8.2 通用定时器,定时器概况工作原理定时器使用要点定时器应用实例,8.2.1 定时器概况,C55x 芯片提供了两个定时器TMS320VC5503/5507/5509A/5510提供的是两个20位的定时器定时器由两部分组成:预定标计数寄存器(PSC),4位主计数器(TIM),16位寄存器:计数寄存器(PSC,TIM)周期寄存器(TDDR,PRD):在定时器初始化或定时值重新装入过程中,将周期寄存器的内
7、容复制到计数寄存器中,图8-2 定时器结构框图,8.2.2 工作原理,定时器的工作时钟DSP内部的CPU时钟引脚TIN/TOUT利用定时器控制寄存器(TCR)中的字段FUNC可以确定时钟源和TIN/TOUT引脚的功能,预定标计数寄存器(PSC)由输入时钟驱动,PSC在每个输入时钟周期减1;当其减到0时,TIM减1,当TIM减到0,定时器向CPU发送一个中断请求(TINT)或向DMA控制器发送同步事件定时器发送中断信号或同步事件信号的频率可用下式计算:,通过设置定时器控制寄存器(TCR)中的自动重装控制位ARB,可使定时器工作于自动重装模式:当TIM减到0,重新将周期寄存器(TDDR,PRD)的
8、内容复制到计数寄存器(PSC,TIM)中,继续定时定时器包括4个寄存器定时器预定标寄存器PRSC,表8-2主计数寄存器TIM,表8-3主周期寄存器PRD,表8-4定时器控制寄存器TCR,表8-5,表8-2 定时器预定标寄存器 PRSC,表8-3 主计数寄存器 TIM,表8-4 主周期寄存器 PRD,表8-5 定时器控制寄存器 TCR(1),表8-5 定时器控制寄存器 TCR(2),表8-5 定时器控制寄存器 TCR(3),8.2.3 定时器使用要点,1.初始化定时器(1)停止计时(TSS=1),使能定时器自动装载(TLB=1)(2)将预定标计数器周期数写入TDDR(以输入的时钟周期为基本单位)
9、(3)将主计数器周期数装入PRD(4)关闭定时器自动装载(TLB=0),启动计时(TSS=0),2.停止/启动定时器,利用时钟控制寄存器(TCR)中的TSS位可以停止(TSS=1)或启动定时器(TSS=0),3.DSP复位后定时器寄存器的值,停止定时(TSS=1)预定标计数器值为0主计数器值为FFFFh定时器不进行自动重装(ARB=0)IDLE指令不能使定时器进入省电模式仿真时遇到软件断点定时器立即停止工作TIN/TOUT为高阻态,时钟源是内部时钟(FUNC=00b),8.2.4 定时器应用实例,例8-1,在TIN/TOUT引脚上产生一个2MHz的时钟,假定DSP的CPU时钟为200MHz。要
10、点:TIN/TOUT引脚配置为定时器输出,FUNC设置为01b为了使这个引脚工作在时钟模式,CP设置为1bTIN/TOUT的极性为默认的0b,由于每当计数器减为0时,引脚的电平就会翻转一次。要将CPU的时钟频率除以100倍,就要求每个高电平和低电平周期内的计数为50设置自动装入(ARB=1),使每次计数器减为0时,计时器自动装入计数值,并重新开始计数置TCR中的FREE bit 为1,使计时器在遇到仿真断点时能够继续工作将TCR中的IDLEEN bit清0,使计时器即便在外设时钟模块处于idle状态下仍然工作,;*;定时器寄存器地址;*TIM0.set 0 x1000;TIMER0计数寄存器P
11、RD0.set 0 x1001;TIMER0周期寄存器TCR0.set 0 x1002;TIMER0控制寄存器PRSC0.set 0 x1003;TIMER0预定标寄存器;*;定时器配置;*TIMER_PERIOD.set 9;定时器的周期为10TIMER_PRESCALE.set 4;预定标值为5.textINIT:mov#TIMER_PERIOD,port(#PRD0);配置定时器周期寄存器mov#TIMER_PRESCALE,port(#PRSC0);配置定时器预定标寄存器mov#0000110100111000b,port(#TCR0);0IDLEEN 0=不和外设域一起 idle;0
12、INTEST n/a,初始化代码如下:,;0ERR_TIM 1=如果非法功能改变发生;01 FUNC 01=TIN/TOUT引脚是定时器输出;1TLB 1=从周期寄存器装入;0SOFT n/a;1FREE 1=仿真暂停时,计数器不停;00 PWID n/a;1 ARB 1=使能自动重装入;1 TSS 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 定时器应用实例,数字振
13、荡器原理设一个传递函数为正弦序列sinkT,其z变换为,H(z)=,其中,A=2cosT,B=-1,C=sinT。,8.2.4 定时器应用实例,设初始条件为0,求出上式的反Z变换得:yk=Ayk-1+Byk-2+Cxk-1这是一个二阶差分方程,其单位冲击响应即为sinkT。利用单位冲击函数xk-1的性质,即仅当k=1时,xk-1=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和y
14、k-2算出,这是一个递归的差分方程。,8.2.4 定时器应用实例,根据上面的说明,我们可以开始数字振荡器的设计。设该振荡器的频率为2kHz,采样率为40kHz(通过定时器设置,每隔25us中断一次,产生一个yn)则递归的差分方程系数为:,8.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,8.2.4 定时器应用实例,主程序在初始化时先计算出y1和y2,然后开放定时器中断。以后每次进入定时器中断服务程序时,利用前面的y1和y2,
15、计算出新的有y0,8.2.4 定时器应用实例,.title for test INT service program.(25us).mmregs.global _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.1545105,8.2.4 定时器应用实例,PRSC0.set 0 x1003PRD0.set 0 x1001TCR0.set 0 x1002CLKMD.set 0 x1C00TIM0.set 0 x1000.bs
16、s y0,1.bss y1,1.bss y2,1.bss AA,1.bss BB,1.bss CC,1,8.2.4 定时器应用实例,_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,XAR5,8.2.4 定时器应用实例,BSET I
17、NTMBCLR C54CMBCLR CPLBCLR ARMS BSET SATABSET SATDBSET SMUL,8.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=CC,8.2.4 定时器应用实例,MPYM*AR1,*AR3,AC0;y1*AA-A
18、C0 MOV AC0,*AR2 OR#16,mmap(IER0);enable TIMER MOV#0 x0bE0,PORT(#TCR0)BCLR INTMagain:NOP B again,timer: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.
19、global vectorvector:rs:.ivec _c_int00nmi:.ivec againTINT0:.ivec timer,MEMORYEPROG: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:RAM,8.3 通用I/O口(GPIO),C55x提供了专门的通用输入输出引脚GPIO每个引脚的方向可以由I/O方向寄存器IODIR独立配置引脚上的输入/输出状态由I/O数
20、据寄存器IODATA反映或设置TMS320VC5509A(PGE)有7个GPIO引脚引脚配置见本书第2章有关寄存器见表8-6和表8-7,表8-7 GPIO数据寄存器IODATA,表8-6 GPIO方向寄存器IODIR,8.4 外部存储器接口(EMIF),EMIF介绍EMIF请求的优先级对存储器的考虑程序和数据访问 EMIF中的控制寄存器,8.4.1 EMIF介绍,EMIF控制DSP和外部存储器之间的所有数据传输,1.EMIF支持的存储器类型,EMIF为三种类型的存储器提供了无缝接口:异步存储器,包括ROM、FLASH以及异步SRAM同步突发SRAM(SBSRAM),可以工作在1倍或1/2倍CP
21、U时钟频率同步DRAM(SDRAM),可以工作在1倍或1/2倍CPU时钟频率也可通过EMIF外接A/D转换器、并行显示接口等外围设备需要增加一些外部逻辑器件来保证设备的正常使用,程序的访问32位数据的访问16位数据的访问8位数据的访问,2.EMIF支持四种类型的访问,3.EMIF信号,表8-8 外部存储器共享接口,表8-9 用于异步存储器的EMIF信号,表8-10 用于SBSRAM的EMIF信号,表8-11总线保持信号,表8-12 用于SDRAM的EMIF信号,8.4.2 EMIF请求的优先级,8.4.3 对存储器的考虑,对EMIF编程时,必须了解:外部存储器地址如何分配给片使能(CE)空间每
22、个CE空间可以同哪些类型的存储器连接哪些寄存器位来配置CE空间,1.存储器映射和CE空间,C55x的外部存储映射在存储空间的分布,相应于EMIF的片选使能信号 例如,空间里的一片存储器,必须将其片选引脚连接到EMIF的引脚。当EMIF 访问 空间时,就驱动 变低。,2.EMIF支持的存储器类型和访问类型,表8-14 存储器类型及每种存储器允许的访问类型,3.配置CE空间,使用全局控制寄存器(EGCR)和每个CE空间控制寄存器来配置CE空间对于每个CE空间,必须设置控制寄存器1中的以下域:MTYPE确定存储器类型MEMFREQ 决定存储器时钟信号的频率(1倍或1/2倍CPU时钟信号的频率)MEM
23、CEN 决定CLKMEM引脚是输出存储器时钟信号还是被拉成高电平,不管每个CE空间里的存储器类型,一定要对全局控制寄存器写如下控制位(这些位要影响所有的CE空间):WPE:对所有的CE空间,使能或禁止写NOHOLD:对所有的CE空间,使能或禁止HOLD请求,8.4.4 程序和数据访问,1、程序存储器的访问,要从外部存储器取指令代码时,CPU向EMIF发送一个访问请求。EMIF必须从外部存储器读取一个32位代码,然后把这全部32个位放到CPU的程序读总线(P bus)上EMIF可以管理对3种存储器宽度的32位访问:32位、16位、8位,本书主要介绍对16位和8位宽的程序存储器的访问,访问16位宽
24、的外部程序存储器,EMIF把一个字的地址放到地址线A21:1上。32位的访问可以分为两个16位的传输,在连续的两个周期内完成。在第二个周期,EMIF自动将第一个地址加1,产生第二个地址。,访问8位宽的外部程序存储器,EMIF把一个字节地址放到地址线A21:0上。32位的访问可以分为4个8位的传输,在连续的4个周期内完成。在第2、3、4个周期,EMIF自动将第一个地址加1,产生下一个新的地址。,2、数据访问,EMIF支持的数据访问类型对32位宽的数据存储器进行32、16、8位的数据访问对16位宽的数据存储器进行16、8位的数据访问本节介绍对32位和16位宽的存储器作16位的数据访问,对32位宽的
25、存储器作16位的数据访问 写一个字到外部存储器时,EMIF会自动修改为一个单字 EMIF从外部存储器读一个字时,读进来的是一个32位的数据,所希望的字在DSP里分离出来,表8-15 在对32位宽的外部存储器所作的16 位数据访问中,内部地址为1 的作用,EMIF的外部地址A21:2对应于内部数据地址的位212,用内部地址的位A1来决定使用数据总线的哪一半,以及哪个字节使能信号有效,图8-7a 对32位存储器作16位访问(MSW在偶字地址),图8-7b 对32位存储器作16位访问(MSW在奇字地址),对16位宽的存储器作16位的数据访问,图8-8 对16位宽的外部存储器所作的16位的数据访问,8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C55x 外设 课件
链接地址:https://www.31ppt.com/p-4095768.html