您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 第8章TMS320C54xDSP片内外设及应用实例.
第8章TMS320C54x片内外设及应用实例8.1定时器8.2时钟发生器8.3定时器/计数器编程举例8.4多通道缓冲串口(McBSP)8.5多通道缓冲串口应用实例8.6主机接口(HPI)8.7外部总线操作8.1定时器定时器的组成框图如图8-1所示。它有3个存储器映象寄存器:TIM、PRD和TCR。这3个寄存器在数据存储器中的地址及其说明如表8-1所示。定时器控制寄存器(TCR)位结构如图8-2所示,各控制位和状态位的功能如表8-2所示。返回首页图8-1定时器组成框图表8-1定时器的三个寄存器Timer0地址Timer1地址寄存器说明0024H0030HTIM定时器寄存器,每计数一次自动减10025H0031HPRD定时器周期寄存器,当TIM减为0后,CPU自动将PRD的值装入TIM0026H0032HTCR定时器控制寄存器,包含定时器的控制和状态位15~1211109~6543~0保留softfreePSCTRBTSSTDDR图8-2TCR位结构图表8-2定时器控制寄存器(TCR)的功能返回本节8.2时钟发生器8.2.1硬件配置PLL8.2.2软件可编程PLL返回首页8.2.1硬件配置PLL用于C541、C542、C543、C545和C546芯片。所谓硬件配置PLL,就是通过C54x的3个引脚CLKMD1、CLKMD2和CLKMD3的状态,选定时钟方式,如表8-3所示。由表8-3可见,不用PLL时,CPU的时钟频率等于晶体振荡器频率或外部时钟频率的一半;若用PLL,CPU的时钟频率等于晶体振荡器频率或外部时钟频率乘以系数N(PLLN),使用PLL可以使用比CPU时钟低的外部时钟信号,以减少高速开关时钟所造成的高频噪声。表8-3时钟方式的配置返回本节8.2.2软件可编程PLL软件可编程PLL具有高度的灵活性,其时钟定标器提供各种时钟乘法器系数,并能直接接通和关断PLL。PLL的锁定定时器可以用于延迟转换PLL的时钟方式,直到锁定为止。通过软件编程,可以选用以下两种时钟方式(如表8-4~8-6、图8-3所示)。PLL方式,其比例系数共31种。靠锁相环电路完成。分频(DIV)方式,其比例系数为1/2和1/4,在此方式下,片内PLL电路不工作以降低功耗。表8-4复位时的时钟方式(C5402)CLKMD1CLKMD2CLKMD3CLKMD寄存器时钟方式000E007H乘15,内部振荡器工作,PLL工作0019007H乘10,内部振荡器工作,PLL工作0104007H乘5,内部振荡器工作,PLL工作1001007H乘2,内部振荡器工作,PLL工作110F007H乘1,内部振荡器工作,PLL工作1110000H乘1/2,内部振荡器工作,PLL不工作101F000H乘1/4,内部振荡器工作,PLL不工作011…保留表8-5时钟方式寄存器CLKMD各位域功能表8-6比例系数与CLKMD的关系PLLNDIVPLLDⅣPLLMUL比例系数0X0~140.50X150.25100~14PLLMUL+110151110或偶数(PLLMUL+1)÷211奇数PLLMUL÷4图8-3PLL锁定时间和CLKOUT频率的关系返回本节8.3定时器/计数器编程举例【例8-1】设时钟频率为16.384MHz,在TMS320C5402的XF端输出一个周期为2s的方波,方波的周期由片上定时器确定,采用中断方法实现。1.定时器0的初始化(1)设置定时控制寄存器TCR(地址0026H)。(2)设置定时寄存器TIM(地址0024H)。(3)设置定时周期寄存器PRD(地址0025H)。返回首页2.定时器对C5402的主时钟CLKOUT进行分频CLKOUT与外部晶体振荡器频率(在本系统中外部晶体振荡器的频率为16.384MHz)之间的关系由C5402的三个引脚CLKMD1、CLKMD2和CLKMD3的电平值决定,为使主时钟频率为16.384MHz,应使CLKMD1=1、CLKMD2=1、CLKMD3=0,即PLL1。3.中断初始化(1)中断屏蔽寄存器IMR中的定时屏蔽位TINT0置1,开放定时器0中断。(2)状态控制寄存器ST1中的中断标志位INTM位清零,开放全部中断。4.汇编源程序如下:.mmregs.def_c_int00STACK.usectSTACK,100ht0_cout.usectvars,1;计数器t0_flag.usect“vars”,1;当前XF输出电平标志。t0_flag=1,则XF=1;;t0_flag=0,则XF=0TVAL.set1639;16401061=1ms因中断程序中计数器初值;t0_cout=1000,所以定时时间:1ms1000=1sTIM0.set0024H;定时器0寄存器地址PRD0.set0025HTCR0.set0026H.dataTIMES.intTVAL;定时器时间常数.text**********************************;中断矢量表程序段_c_int00bstartnopnopNMIrete;非屏蔽中断nopnopnopSINT17.space4*16;各软件中断SINT18.space4*16SINT19.space4*16SINT20.space4*16SINT21.space4*16SINT22.space4*16SINT23.space4*16SINT24.space4*16SINT25.space4*16SINT26.space4*16SINT27.space4*16SINT28.space4*16SINT29.space4*16SINT30.space4*16INT0rsbxintm;外中断0中断retenopnopINT1rsbxintm;外中断1中断retenopnopINT2rsbxintm;外中断2中断retenopnopTINT:bdtimer;定时器中断向量nopnopnopRINT0:rete;串口0接收中断nopnopnopXINT0:rete;串口0发送中断nopnopnopSINT6.space4*16;软件中断SINT7.space4*16;软件中断INT3:rete;外中断3中断nopnopnopHPINT:rete;主机中断nopnopnopRINT1:rete;串口1接收中断nopnopnopXINT1:rete;串口1发送中断nopnopnop******************************************start:LD#0,DPSTM#STACK+100h,SPSTM#07FFFh,SWWSRSTM#1020h,PMSTST#1000,*(t0_cout);计数器设置为1000(1s)SSBXINTM;关全部中断LD#TIMES,AREADATIM0;初始化TIM,PRDREADAPRD0STM#669h,TCR0;初始化TCR0STM#8,IMR;初始化IMR,使能timer0中断RSBXINTM;开放全部中断WAIT:BWAIT**************************************;定时器0中断服务子程序timer:ADDM#-1,*(t0_cout);计数器减1CMPM*(t0_cout),#0;判断是否为0BCnext,NTC;不是0,退出循环ST#1000,*(t0_cout);为0,设置计数器,并将XF取反BITFt0_flag,#1BCxf_out,NTCSSBXXFST#0,t0_flagBnextxf_out:RSBXXFST#1,t0_flagnext:RSBXINTMRETE.end5.链接命令文件times.cmd如下:times.obj-otimes.out-mtimes.mapMEMORY{PAGE0:RAM1:origin=1000h,length=500hPAGE1:SPRAM1:origin=0060h,length=20hSPRAM2:origin=0100h,length=200h}SECTIONS{.text:RAM1PAGE0.data:RAM1PAGE0vars:SPRAM1PAGE1STACK:SPRAM2PAGE1}返回本节8.4多通道缓冲串口(McBSP)8.4.1McBSP原理框图及信号接口8.4.2McBSP控制寄存器8.4.3时钟和帧同步8.4.4McBSP数据的接收和发送8.4.5有关的几个概念返回首页8.4.1McBSP原理框图及信号接口TMS320C54xx多通道缓冲串口(McBSP)由引脚、接收发送部分、时钟及帧同步信号产生、多通道选择以及CPU中断信号和DMA同步信号组成,如图8-4所示。表8-7给出了有关引脚的定义,McBSP通过这7个引脚为外部设备提供了数据通道和控制通道。McBSP通过DX和DR实现DSP与外部设备的通信和数据交换。图8-4McBSP原理框图RSRRBRXSR扩展压缩DRRDXRRCRXCRSRGRPCRRCERXCERMCRMcBSP时钟与帧同步发生与控制多通道选择16位外设总线DRDXSPCRCLKXCLKRFSXFSRCLKSRINTXINTREVTXEVTREVTAXEVTA向CPU发出的中断请求信号DMA同步操作表8-7McBSP引脚说明引脚I/O/Z说明DRI串行数据接收DXO/Z串行数据发送CLKRI/O/Z接收数据位时钟CLKXI/O/Z发送数据位时钟FSRI/O/Z接收帧同步FSXI/O/Z发送帧同步CLKSI外部时钟输入表8-8McBSP内部信号说明信号说明RINT接收中断,送往CPUXINT发送中断,送往CPUREVTDMA接收到同步事件XEVT向DMA发出事件同步REVTADMA接收到同步事件AXEVTA向DMA发出事件同步A返回本节8.4.2McBSP控制寄存器1.控制寄存器及其映射地址表8-9列出了McBSP控制寄存器及其映射地址。子块数据寄存器SPSDx用于指定对应子地址寄存器中数据的读写,其内部连接方式如图8-5所示。这种方法的好处是可以将多个寄存器映射到一个较小的存储空间。表8-9McBSP控制寄存器及其映射地址SPSDx复接器SPCR1xSPCR2xRCR1xPCRxSPSAx子地址0x00000x00010x00020x000E图8-5子地址映射示意图2.串行口的配置串口控制寄存器(SPCR1、SPCR2)和引脚控制寄存器(PCR)用于对串口进行配置,接收控制寄存器(RCR1、RCR2)和发送控制寄存器(XCR1、XCR2)分别对接收和发送操作进行控制。(1)串口控制寄存器(SPCR1、SPCR2)串口控制寄存器1(SPCR1)结构如图8-6所示,表8-10为SPCR1控制位功能说明。串口控制寄存器2(SPCR2)结构如图8-7所示,表8-11为SPCR2控制位功能说明。(2)引脚控制寄存器(PCR)。引脚控制寄存器(PCR)结构如图8-8所示,表8-12为PCR控制位功能说明。图8-6串口控制寄存器1(SPCR1)表8-10SPCR1控制位功能说明图8-7串口控制寄存器2(SPCR2)表8-11SPCR2控制位功能说明图8-8引脚控制寄存器(PCR)表8-12PCR控制位功能说明(3)接收控制寄存器(RCR[1,2])。结构如图8-9所示,表8-13所示为RCR1控制位功能说明,表8-14所示为RCR2控制位功能说明。(4)发送控制寄存器(XCR[1,2])。发送控制寄存器(XCR[1,2])结构如图8-10所示,表8-15所示为XCR1控制位功能说明,表8-16所示为XCR2控制位功能说明。(a)RCR1(b)RCR2图8-9接收控制寄存器(RCR[1,2])表8-13RCR1控制位功能说明表8-14RCR2控制位功能说明(a)XCR1(b)XCR2图8-10发送控制寄存器(XCR[1,2])表8-15XCR1控制位功能说明表8-16XCR2控制位功能说明返回本节8.4.3时钟和帧同步采样率发生器由
本文标题:第8章TMS320C54xDSP片内外设及应用实例.
链接地址:https://www.777doc.com/doc-2112535 .html