《TMS320C55x的片内集成外设开发及测试.ppt》由会员分享,可在线阅读,更多相关《TMS320C55x的片内集成外设开发及测试.ppt(34页珍藏版)》请在三一办公上搜索。
1、2023年2月21日,TMS320C55x DSP原理及应用,1,第5章 TMS320C55x的片内集成外设开发及测试,内容提要 C55x外设完成的功能:采集原始数据、输出处理结果、控制外部其他设备的工作状态。C55x的片内外设分为:1时钟与定时器()2外部设备连接接口(介绍EMIF)3信号采集(介绍GPIO和A/D转换器)4通信接口 5其他外设,2023年2月21日,TMS320C55x DSP原理及应用,2,5.1 C55x片内外设与芯片支持库简介5.2 时钟发生器5.3 通用定时器与DSP中断 实验2.1 指示灯实验 实验2.2 拨码开关实验 实验2.3 DSP定时器,第5章 TMS32
2、0C55x的片内集成外设开发及测试(1),2023年2月21日,TMS320C55x DSP原理及应用,3,第5章 TMS320C55x的片内集成外设开发及测试,5.1 C55x片内外设与芯片支持库简介,一、C55x片内外设,1时钟与定时器(1)时钟产生器-产生CPU的工作时钟,并提供CLKOUT时钟输出以供其他器件使用。(2)通用定时器-通过计数器为系统提供定时时钟,并能发出相应中断。(3)实时时钟以及看门狗定时器等。,2023年2月21日,TMS320C55x DSP原理及应用,4,2外部设备连接接口(1)外部存储器连接接口(EMIF):与并行存储器(SDRAM、SBSRAM、Flash、
3、SRAM)或外部并行设备(并行A/D、D/A、具有异步并行接口的专用芯片)连接。(2)主机接口(EHPI):为主控CPU和C55x处理器之间提供一条快捷的并行连接接口,对DSP进行控制、程序加载、数据传输。,第5章 TMS320C55x的片内集成外设开发及测试,2023年2月21日,TMS320C55x DSP原理及应用,5,3信号采集(1)模/数转换器-实现多通道模/数转换。(2)通用输入/输出接口(GPIO)-提供数字信号输入/输出功能;当被设置为输出模式时,可通过这些接口控制其他设备。,4通信接口(1)多通道缓冲串口(McBSP)-连接串行存储器、A/D、D/A转换器,并可以通过该接口实
4、现与其他处理器的高速串行连接。(2)I2C接口、异步串口、USB接口以及多媒体卡/SD卡接口等。5.其他外设包括:DMA控制器和指令流水线等,用来辅助CPU工作,提高DSP的工作效率。,2023年2月21日,TMS320C55x DSP原理及应用,6,二、片上外设支持库(CSL)为方便地实现C55x外设的控制,提供了片上外设支持库(csl),可通过程序或DSP/BIOS调用csl函数和宏。csl库的位置:C:CCStudio_v3.3c5500biosinclude特点:(1)采用标准协议对外设进行编程包括数据类型、定义外设配置的宏定义和对各种外设操作的函数等。(2)基本资源管理(3)设备符号
5、描述定义外设寄存器和寄存器域符号,使程序易于移植。,第5章 TMS320C55x的片内集成外设开发及测试,2023年2月21日,TMS320C55x DSP原理及应用,7,5.2 时钟发生器,第5章 TMS320C55x的片内集成外设开发及测试,功能:从CLKIN引脚接收输入的时钟,将其变换为CPU及其外设所需要的工作时钟,工作时钟也可经过分频通过CLKOUT输出,供其他器件使用。时钟发生器内有一数字锁相环(DPLL)和一个时钟模式寄存器(CLKMD)。,2023年2月21日,TMS320C55x DSP原理及应用,8,第5章 TMS320C55x的片内集成外设开发及测试,CLKIN,DSP时
6、钟发生器,CPU时钟,CPU、外设、其他器件,CLKDIV,CLKOUT,图5-1 时钟输出,第5章 TMS320C55x的片内集成外设开发及测试,表5-1 时钟模式寄存器CLKMD,一、时钟模式寄存器(CLKMD),功能:控制时钟发生器的工作状态。,2023年2月21日,TMS320C55x DSP原理及应用,10,表5-1 时钟模式寄存器CLKMD(续),第5章 TMS320C55x的片内集成外设开发及测试,2023年2月21日,TMS320C55x DSP原理及应用,11,第5章 TMS320C55x的片内集成外设开发及测试,二、工作模式,1旁路模式(BYPASS),如果PLL ENAB
7、LE=0,PLL工作于旁路模式,PLL对输入时钟信号进行分频,分频值由BYPASS DIV确定:,2023年2月21日,TMS320C55x DSP原理及应用,12,第5章 TMS320C55x的片内集成外设开发及测试,2锁定模式(LOCK),如果PLL ENABLE=1,PLL工作于锁定模式,输出的时钟频率由下面公式确定:,时钟输出频率,输入频率,第5章 TMS320C55x的片内集成外设开发及测试,三、CLKOUT输出,CPU时钟也可通过一个时钟分频器提供CLKOUT信号,CLKOUT的频率由系统寄存器(SYSR)中的CLKDIV确定:,2023年2月21日,TMS320C55x DSP原
8、理及应用,14,第5章 TMS320C55x的片内集成外设开发及测试,四、注意事项,1省电(IDLE),为了节省功耗,可以使时钟发生器处于省电状态,当时钟发生器退出省电状态时,PLL自动切换到旁路模式,进行跟踪锁定,锁定后返回到锁定模式,时钟模式寄存器中与省电有关的位是IAI。,2023年2月21日,TMS320C55x DSP原理及应用,15,第5章 TMS320C55x的片内集成外设开发及测试,2DSP复位,在DSP复位期间和复位之后,PLL工作于旁路模式,输出的时钟频率由CLKMD引脚上的电平确定。如果CLKMD引脚为低电平,输出频率等于输入频率;如果CLKMD引脚为高电平,输出频率等于
9、输入频率的一半。,3失锁,锁相环对输入时钟跟踪锁定之后,由于其他原因使其输出时钟发生偏移,即失锁。出现失锁现象后,PLL的动作由时钟模式寄存器中的IOB确定。,2023年2月21日,TMS320C55x DSP原理及应用,16,第5章 TMS320C55x的片内集成外设开发及测试,五、使用方法及实例,调用时钟发生器库函数首先要在头文件中包含csl_pll.h文件。首先要声明PLL配置结构,具体声明如下:PLL_Config Config_PLL=1,/*iai 休眠后重新锁相*/1,/*iob 失锁后进入旁路模式并重新锁相*/6,/*倍频系数PLLMULT=6*/0/*1分频,CLKOUT=D
10、SP主时钟/(div+1)*/;之后运行配置函数:PLL_config(通过PLL_setFreq函数可以复位PLL锁相环,并改变倍频和分频数从而得到所需的频率。,2023年2月21日,TMS320C55x DSP原理及应用,17,第5章 TMS320C55x的片内集成外设开发及测试,5.3 通用定时器与DSP中断,功能:片内有两个20位软件可编程定时器,利用定时器可向CPU产生周期性中断或向DSP片外的器件提供周期信号。,一、结构框图,定时器组成:1个4 bit的预定标计数器和1个16 bit的主计数器。有两个计数寄存器(PSC,TIM)和两个周期寄存器(TDDR,PRD),初始化过程中将周
11、期寄存器的内容拷贝到计数寄存器中。TDDR和PRD-存放计时器的计时值;PSC和TIM-完成计时任务。,2023年2月21日,TMS320C55x DSP原理及应用,18,第5章 TMS320C55x的片内集成外设开发及测试,CPU时钟,TIN/TOUT,TDDR,4位预定标器,PSC,PRD,16位主计数器,TIM,中断请求,DMA同步事件,2023年2月21日,TMS320C55x DSP原理及应用,19,第5章 TMS320C55x的片内集成外设开发及测试,二、工作原理,1.工作时钟源:工作时钟可来自DSP内部的CPU时钟,也可以来自引脚TIN/TOUT,由定时器控制寄存器(TCR)中的
12、FUNC确定。定时器的工作模式 有:当FUNC=00b时,TIN/TOUT为高阻态,时钟源是内部时钟(CPU时钟)。当FUNC=01b时,TIN/TOUT为定时器输出,时钟源是内部时钟(CPU时钟)。当FUNC=10b时,TIN/TOUT为通用输出,时钟源是内部时钟(CPU时钟)。当FUNC=11b时,TIN/TOUT为定时器输入,时钟源是外部时钟。,2023年2月21日,TMS320C55x DSP原理及应用,20,第5章 TMS320C55x的片内集成外设开发及测试,2.定时器频率计算 预定标器由输入时钟驱动,PSC在每个输入时钟周期减1,当其减到0时,TIM减1,当TIM减到0,定时器向
13、CPU发送一个中断请求(TINT)。定时器发送中断信号的频率为:,2023年2月21日,TMS320C55x DSP原理及应用,21,第5章 TMS320C55x的片内集成外设开发及测试,3.定时器的寄存器设置,定时器预定标寄存器PRSC,2023年2月21日,TMS320C55x DSP原理及应用,22,第5章 TMS320C55x的片内集成外设开发及测试,主计数寄存器TIM,主周期寄存器PRD,2023年2月21日,TMS320C55x DSP原理及应用,23,第5章 TMS320C55x的片内集成外设开发及测试,定时器控制寄存器TCR,2023年2月21日,TMS320C55x DSP原
14、理及应用,24,第5章 TMS320C55x的片内集成外设开发及测试,定时器控制寄存器TCR(续),2023年2月21日,TMS320C55x DSP原理及应用,25,第5章 TMS320C55x的片内集成外设开发及测试,定时器控制寄存器TCR(续),2023年2月21日,TMS320C55x DSP原理及应用,26,第5章 TMS320C55x的片内集成外设开发及测试,三、定时器的使用步骤,1.初始化定时器,初始化过程如下:(1)停止计时(TSS=1),定时器装载使能(TLB=1),并将周期寄存器(TIM,PSC)的内容拷贝到计数寄存器(PRD,TDDR);(2)将预定标计数周期数写入TDD
15、R;(3)将主计数器周期数装入PRD;(4)关闭定时器装载(TLB=0),启动计时(TSS=0)。,2023年2月21日,TMS320C55x DSP原理及应用,27,第5章 TMS320C55x的片内集成外设开发及测试,2停止/启动定时器,利用时钟控制寄存器中的TSS位可停止或启动定时器。(1)TSS=1,停止计时;(2)TSS=0,启动计时,3DSP复位,DSP复位后定时器的寄存器将按照如下规则复位:停止定时(TSS=1);预定标计数器值为0;主计数器值为FFFFh;定时器不进行自动重装(ARB=0);idle指令不能使定时器进入省电模式;仿真时遇到软件断点定时器立即停止工作;TIN/TO
16、UT为高阻态,时钟源是内部时钟(FUNC=00b)。,注:定时器程序写在一个中断函数中。,2023年2月21日,TMS320C55x DSP原理及应用,28,定时器初始化的实例:(实验指导书p71)void TIMER_init(void)/初始化计时器 ioport unsigned int*tim0;ioport unsigned int*prd0;ioport unsigned int*tcr0;ioport unsigned int*prsc0;tim0=(unsigned int*)0 x1000;/定时器0计数寄存器地址 prd0=(unsigned int*)0 x1001;/定
17、时器0周期寄存器地址,2023年2月21日,TMS320C55x DSP原理及应用,29,tcr0=(unsigned int*)0 x1002;/定时器0控制寄存器地址prsc0=(unsigned int*)0 x1003;/定时器0预定标寄存器地址*tcr0=0 x04f0;/TLB=1;ARB=1;TSS=1*tim0=0;/清主计数器*prd0=0 x0ffff;/设置周期寄存器PRD=FFFFH*prsc0=2;/设置周期寄存器TDDR=2,清预定标寄存器PSC=0*tcr0=0 x00e0;/TLB=0;ARB=1;TSS=0,2023年2月21日,TMS320C55x DSP原
18、理及应用,30,*TMS320C55X中断系统1.中断-CPU正在执行程序时,外部发生了某一事件并向CPU发信号请求去处理,CPU暂时中断当前工作,转去处理这一事件(进入中断服务程序),处理完再回来继续原来的工作。产生中断的请求源称为中断源,中断系统使DSP能够处理多个任务。,C55X支持32个中断服务子程序ISR。分成可屏蔽中断、不可屏蔽中断。所有软件中断都是不可屏蔽中断。,2023年2月21日,TMS320C55x DSP原理及应用,31,表5-1 C55X的中断管理寄存器,中断标志寄存器,中断使能寄存器,2023年2月21日,TMS320C55x DSP原理及应用,32,2.中断响应过程
19、(1)接收中断请求。(2)响应中断请求。如果是可屏蔽中断,则响应必须满足某些条件;如果是不可屏蔽中断,则CPU立即响应。(3)准备进入中断服务子程序。CPU要执行的主要任务:完成当前指令的执行,并冲掉流水线上还未解码的指令。自动将某些寄存器的值保存到数据堆栈和系统堆栈。从用户事先设置好的向量地址获取中断向量,该中断向量指向中断服务子程序。(4)执行中断服务子程序。CPU执行用户编写的ISR。ISR以一条中断返回指令结束,自动恢复步骤(3)中自动保存的寄存器值。,2023年2月21日,TMS320C55x DSP原理及应用,33,3.定时器中断(TINT)定时器0中断对应IER0和IFR0的第4位。,2023年2月21日,TMS320C55x DSP原理及应用,34,设置定时器中断的实例:(实验指导书p71)void INTR_init(void)IVPD=0 xd0;/设置中断向量表的起始地址为0 xd000IVPH=0 xd0;IER0=0 x10;/中断使能寄存器IER0的TINT0位置1,即开定时器0中断DBIER0=0 x10;/调试中断使能寄存器的相关位置位IFR0=0 xffff;/清除中断标志位asm(“BCLR INTM”);/嵌入汇编语句,清可屏蔽中断屏蔽位,
链接地址:https://www.31ppt.com/p-2666431.html