TMS320F28027课件第二讲中断和时钟_第1页
TMS320F28027课件第二讲中断和时钟_第2页
TMS320F28027课件第二讲中断和时钟_第3页
TMS320F28027课件第二讲中断和时钟_第4页
TMS320F28027课件第二讲中断和时钟_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、教材:32位数字信号控制器原理及应用DSP原理及应用原理及应用Lecture2 PIE & CLOCK黄灿水黄灿水2015.32015.3Lecture2 PIE & CLOCKLecture2.1 PIELecture2 PIE & CLOCK一、中断的概念一、中断的概念中断中断:是通过某些特定的事件向:是通过某些特定的事件向CPU 请求服务,请求服务,CPU收到请求后,暂收到请求后,暂时中止正在执行的程序,转去处时中止正在执行的程序,转去处理对应的服务子程序,处理完后理对应的服务子程序,处理完后返回继续执行原来程序的过程。返回继续执行原来程序的过程。中断源中断源:产生中断请求的特定事件,例

2、如定时器周期到达、:产生中断请求的特定事件,例如定时器周期到达、AD转换完成、捕捉引脚信号跳变等等。转换完成、捕捉引脚信号跳变等等。一、中断的概念一、中断的概念中断优先级中断优先级:多个中断源同时向:多个中断源同时向CPU申请中断,为了能够有申请中断,为了能够有序地处理多个中断申请所以要有中断优先级的规定。对序地处理多个中断申请所以要有中断优先级的规定。对于于CPU来说中断源的优先级是默认规定好的。来说中断源的优先级是默认规定好的。中断向量中断向量:中断服务程序的入口地址(首地址)。:中断服务程序的入口地址(首地址)。中断向量表中断向量表:系统中:系统中RAM或或ROM的一个区域,用于存储各的

3、一个区域,用于存储各种中断向量的种中断向量的首首地址,其大小取决于地址,其大小取决于CPU支持的中断类支持的中断类型和数量。型和数量。Lecture2 PIECPU级级外设级外设级PIE级级二、三级中断管理二、三级中断管理外设级外设级PIE级级CPU级级二、三级中断管理二、三级中断管理外设级外设级:产生中断请求,未屏蔽则传到:产生中断请求,未屏蔽则传到PIE级级 。PIE级级:分组与仲裁,向:分组与仲裁,向CPU提出申请提出申请 。 可屏蔽中断:检查可屏蔽中断:检查IER和和INTM决定是否响应;决定是否响应; 非屏蔽中断:立即响应。非屏蔽中断:立即响应。 CPU级级:响应:响应 完成当前指令

4、,清流水线,自动保存现场;完成当前指令,清流水线,自动保存现场; 取中断向量送取中断向量送PC; 执行执行ISR。 二、三级中断管理二、三级中断管理可屏蔽中断可屏蔽中断:INT1INT12、INT13、INT14、XINT1、XINT2、XINT3不可屏蔽中断不可屏蔽中断:XRS、NMI、INTR指令指令TRAP指令指令三、中断简化流程三、中断简化流程三、中断简化流程三、中断简化流程中断请求中断请求中断响应中断响应PIEIFRx=1PIEIERx=1?PIE仲裁仲裁PIEACKx=0?中断源中断源PIEACKx=1IFRy=1IERy=1?INTM=1?响应中断响应中断IFRy=0、IERy=

5、0INTM=1、跳转、跳转执行执行ISR子程序子程序返回返回YYYYNNNN三、中断简化流程三、中断简化流程PIEPIE外设中断分组表外设中断分组表INTx.8INTx.8INTx.7INTx.7INTx.6INTx.6INTx.5INTx.5INTx.4INTx.4INTx.3INTx.3INTx.2INTx.2INTx.1INTx.1INT1INT1WAKEINWAKEINT TTINT0TINT0ADCINT9ADCINT9XINT2XINT2XINT1XINT1ADCINT2ADCINT2ADCINT1ADCINT1INT2INT2EPWM4_TZINEPWM4_TZINT TEPWM

6、3_TZINEPWM3_TZINT TEPWM2_TZINEPWM2_TZINT TEPWM1_TZINTEPWM1_TZINTINT3INT3EPWM4_INTEPWM4_INTEPWM3_INTEPWM3_INTEPWM2_INTEPWM2_INTEPWM1_INTEPWM1_INTINT4INT4ECAP1_INTECAP1_INTINT5INT5INT6INT6SPITXINTASPITXINTASPIRXINTASPIRXINTAINT7INT7INT8INT8I2CINT2AI2CINT2AI2CINT1AI2CINT1AINT9INT9SCITXINTASCITXINTASCIR

7、XINTASCIRXINTAINT1INT10 0ADCINTADCINT8 8ADCINT7ADCINT7ADCINT6ADCINT6ADCINTADCINT5 5ADCINT4ADCINT4ADCINT3ADCINT3ADCINT2ADCINT2ADCINT1ADCINT1INT1INT11 1三、中断简化流程三、中断简化流程四、中断寄存器四、中断寄存器1、中断标志寄存器、中断标志寄存器 - IFR BITx = 1:有有相应中断请求相应中断请求BITx = 0:无无相应中断请求相应中断请求当当CPU响应中断后中断标志位响应中断后中断标志位自动清自动清0四、中断寄存器四、中断寄存器2、中断

8、使能寄存器、中断使能寄存器 - IER BITx = 1:中断:中断使能使能BITx = 0:中断:中断禁止禁止当当CPU响应中断后中断允许位响应中断后中断允许位自动清自动清0四、中断寄存器四、中断寄存器3、调试中断使能寄存器、调试中断使能寄存器 - DEBIER 设置同设置同IER,用于实时仿真时可屏蔽中断设置。,用于实时仿真时可屏蔽中断设置。在在ST1中还有中还有DEBM屏蔽位。屏蔽位。四、中断寄存器四、中断寄存器4、PIE中断控制寄存器中断控制寄存器 - PIECTRL BIT0:ENPIE=1时使能时使能BIT15-1:中断向量地址:中断向量地址5、PIE中断应答寄存器中断应答寄存器

9、- PIEACK BIT11-0:INT12-INT1中断应答位,中断应答位,CPU响应中断时置响应中断时置1,需要需要在在ISR程序中写程序中写1清清0四、中断寄存器四、中断寄存器6、PIE中断标志寄存器中断标志寄存器 PIEIFRx (x=1-12) 7、PIE中断使能寄存器中断使能寄存器 PIEIERx (x=1-12) 四、中断寄存器四、中断寄存器8、外部中断控制寄存器、外部中断控制寄存器 XINTxCR (x=1-3) BIT0 :1中断中断使能使能,0中断禁止中断禁止BIT3-2:00下降沿,下降沿,01上升沿上升沿 10下降沿,下降沿, 11下降沿和上升沿下降沿和上升沿四、中断寄

10、存器四、中断寄存器四、中断寄存器四、中断寄存器四、中断寄存器四、中断寄存器五、中断编程实现五、中断编程实现#include “errupt void ISR (void);.main() . /中断初始化interrupt void ISR(void) ./ISR子程序 ./清各种标志位 return;关闭关闭PIEPIE组开关,组开关,1212组组 关闭总开关关闭总开关清除组中断标志清除组中断标志启动启动PIE_PIE_Vector RAMVector RAM区区配置配置PIEPIE中断中断注册注册PIEPIE中断向量中断向量开启支路开关开启支路开关开启组开关,有使用

11、的组开启组开关,有使用的组开启总开关开启总开关Lecture2.2 CLOCK一、时钟源一、时钟源INTOSC1INTOSC1:片内,可为:片内,可为WatchDogWatchDog、CPUCPU、Timer2Timer2提供时钟提供时钟INTOSC2INTOSC2:片内,可为:片内,可为WatchDogWatchDog、CPUCPU、Timer2Timer2提供时钟提供时钟晶体振荡器晶体振荡器:X1X1、X2X2引脚外部接晶振提供时基引脚外部接晶振提供时基外部时钟源外部时钟源:通过:通过XCLKINXCLKIN引脚输入外部时钟源引脚输入外部时钟源INTOSC1INTOSC2CLKINXTAL

12、OSC关闭没使关闭没使用外设的用外设的时钟可降时钟可降低功耗。低功耗。名称名称地址地址描述描述XCLK0 x0000-7010 XCLKOUT/XCLKIN控制控制PLLSTS0 x0000-7011 PLL状态寄存器状态寄存器CLKCTL0 x0000-7012 时钟控制寄存器时钟控制寄存器PLLLOCKPRD 0 x0000-7013 PLL锁定周期寄存器锁定周期寄存器INTOSC1TRIM 0 x0000-7014 内部振荡器内部振荡器1调整寄存器调整寄存器INTOSC2TRIM 0 x0000-7016 内部振荡器内部振荡器2调整寄存器调整寄存器LOSPCP0 x0000-701B 低

13、速外设时钟预分频器寄存器低速外设时钟预分频器寄存器PCLKCR00 x0000-701C 外设时钟控制寄存器外设时钟控制寄存器0PCLKCR10 x0000-701D 外设时钟控制寄存器外设时钟控制寄存器1二、二、CLOCK寄存器寄存器名称名称地址地址描述描述LPMCR00 x0000-701E低功率模式控制寄存器低功率模式控制寄存器0PCLKCR30 x0000-7020外设时钟控制寄存器外设时钟控制寄存器3PLLCR0 x0000-7021PLL控制寄存器控制寄存器SCSR0 x0000-7022系统控制系统控制&状态寄存器状态寄存器WDCNTR0 x0000-7023看门狗计数器寄存器看

14、门狗计数器寄存器WDKEY0 x0000-7025看门狗复位密钥寄存器看门狗复位密钥寄存器WDCR0 x0000-7029看门狗控制寄存器看门狗控制寄存器二、二、CLK寄存器寄存器二、二、CLOCK寄存器寄存器1、外设时钟控制寄存器、外设时钟控制寄存器0 PCLKCR015 111098保留保留SCIAENCLK保留保留SPIAENCLKR-0R/W-0R-0R/W-07 543210保留保留I2CAENCLKADCENCLKTBCLKSYNC保留保留HRPWMENCLKR-0R/W-0R/W-0R/W-0R-0R/W-0BITx = 1:外设时钟:外设时钟使能使能BITx = 0:外设时钟:

15、外设时钟禁止禁止BIT2: ePWM模块时基时钟(模块时基时钟(TBCLK)同步设置位)同步设置位二、二、CLOCK寄存器寄存器15 987 43210保留保留ECAP1ENCLK保留保留EPWM4ENCLKEPWM3ENCLKEPWM2ENCLKEPWM1ENCLKR-0R/W-0R-0R/W-0R/W-0R/W-0R/W-02、外设时钟控制寄存器、外设时钟控制寄存器1 PCLKCR1BITx = 1:外设时钟:外设时钟使能使能BITx = 0:外设时钟:外设时钟禁止禁止二、二、CLOCK寄存器寄存器3、外设时钟控制寄存器、外设时钟控制寄存器3 PCLKCR315 141312 111098

16、7 210保留保留GPIOINENCLK保留保留CPUTIMER2ENCLKCPUTIMER1ENCLKCPUTIMER0ENCLK保留保留COMP2ENCLKCOMP1ENCLKR-0R/W-1R-0R/W-1R/W-1R/W-1R-0R/W-0R/W-0BITx = 1:外设时钟:外设时钟使能使能BITx = 0:外设时钟:外设时钟禁止禁止二、二、CLOCK寄存器寄存器4、低速外设时钟预分频器寄存器、低速外设时钟预分频器寄存器 - LOSPCP15 32 0保留保留LSPCLKR-0R/W-010BIT2-0:000低速时钟低速时钟 = SYSCLKOUT/1001低速时钟低速时钟 = S

17、YSCLKOUT/2010低速时钟低速时钟 = SYSCLKOUT/4(复位默认(复位默认值)值)011低速时钟低速时钟 = SYSCLKOUT/6100低速时钟低速时钟 = SYSCLKOUT/8101低速时钟低速时钟 = SYSCLKOUT/10110低速时钟低速时钟 = SYSCLKOUT/12111低速时钟低速时钟 = SYSCLKOUT/14 二、二、CLOCK寄存器寄存器5、内部振荡器、内部振荡器n的调节寄存器的调节寄存器 INTOSCnTRIM (n=1或或2)1514 987 0保留保留FINETRIM保留保留COARSETRIMR-0R/W-0R-0R/W-0BIT14-9:

18、8位位粗调粗调值,带符号的值(值,带符号的值(-127+127)。)。 BIT 7-0 :6位位细调细调值,带符号的值(值,带符号的值(-31+31)。)。 注:注:内部振荡器用保存在内部振荡器用保存在OTP中的参数进行软件调节。在引导中的参数进行软件调节。在引导过程中,过程中,Boot ROM将这个值复制到上面的寄存器。将这个值复制到上面的寄存器。 二、二、CLOCK寄存器寄存器6、时钟寄存器、时钟寄存器 - XCLK15 765 21 0保留保留XCLKINSEL保留保留XCLKOUTDIVR-0R/W-1R-0R/W-0BIT6 : 0 GPIO38是是XCLKIN输入源(输入源(JTA

19、G-TCK复用)复用) 1GPIO19是是XCLKIN输入源。输入源。 BIT1-0:00XCLKOUT = SYSCLKOUT/4 01XCLKOUT = SYSCLKOUT/2 10XCLKOUT = SYSCLKOUT 11XCLKOUT = Off使用使用XCLKIN时:时:X1拉低拉低X2悬空悬空 7、时钟控制寄存器、时钟控制寄存器 - CLKCTL 二、二、CLOCK寄存器寄存器15141312111098NMIRESETSELXTALOSCOFFXCLKINOFFWDHALTIINTOSC2HALTIINTOSC2OFFINTOSC1HALTIINTOSC1OFFR/W-0R/W

20、-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-07 54 3210TMR2CLKPRESCALETMR2CLKSRCSELWDCLKSRCSELOSCCLKSRC2SELOSCCLKSRCSELR/W-0R/W-0R/W-0R/W-0R/W-0CLKCTL寄存器用来寄存器用来选择时钟源选择时钟源也用来配置也用来配置时钟故障期间器件的行为时钟故障期间器件的行为 7、时钟控制寄存器、时钟控制寄存器 - CLKCTL 二、二、CLOCK寄存器寄存器位域值描述15NMIRESETSEL01NMI复位选择位,不管作何选择,都会产生信号。没有任何延迟地直接驱动MCLKRS (复位默认)。N

21、MI看门狗复位(NMIRS)启动MCLKRS。 14XTALOSCOFF01晶体振荡器开启(复位默认)。晶体振荡器关闭。13XCLKINOFF01XCLKIN振荡器输入启用(复位默认)。XCLKIN振荡器输入关闭。12WDHALTI01看门狗自动通过停机模式开启/关闭(复位默认)。看门狗忽略停机模式。11INTOSC2HALTI01内部振荡器2自动通过停机模式开启/关闭。使能器件更快地从停机模式中唤醒(复位默认)。内部振荡器2忽略停机模式。10INTOSC2OFF01内部振荡器2开启(复位默认)。内部振荡器2关闭。二、二、CLOCK寄存器寄存器7、时钟控制寄存器、时钟控制寄存器 - CLKCT

22、L 位域值描述9INTOSC1HALTI01内部振荡器1自动通过停机模式开启/关闭。使能器件更快从停机模式中唤醒(复位默认)。内部振荡器1忽略停机模式。8INTOSC1OFF01内部振荡器1开启(复位默认)。内部振荡器1关闭。7-5TMR2CLKPRESCALE000001010011100101110111CPU Timer2时钟预分频值:/1(复位默认)/2/4/8/16保留保留保留(续)(续)二、二、CLOCK寄存器寄存器7、时钟控制寄存器、时钟控制寄存器 - CLKCTL 位域值描述4-3TMR2CLKSRCSEL00011011CPU Timer2时钟源选择位:选择SYSCLKOUT

23、(复位默认,绕过预分频器)。选择外部振荡器(XOR输出)。选择内部振荡器1。选择内部振荡器2。2WDCLKSRCSEL01看门狗时钟源选择位:选择内部振荡器1(复位默认)。选择外部振荡器或内部振荡器2。1OSCCLKSRC2SEL01选择内部振荡器1或外部振荡器(复位默认)。选择内部振荡器2。0OSCCLKSRCSEL01选择内部振荡器1(复位默认)。选择外部振荡器或内部振荡器2。(续)(续)二、二、CLOCK寄存器寄存器7、时钟控制寄存器、时钟控制寄存器 - CLKCTL 从从INTOSC1切换到切换到INTOSC2(无外部时钟无外部时钟),需要两次写操作:,需要两次写操作:第一次:第一次:

24、CLKCTL.XTALOSCOFF = 1和和CLKCTL.XCLKINOFF = 1第二次:第二次:CLKCTL.OSCCLKLSRCSEL = 1和和CLKCTL.OSCCLKSRC2SEL = 1使用使用TI提供的提供的DSP28头文件(头文件(SPRC823),程序如下:),程序如下:SysCtrlRegs.CLKCTL.all = 0 x6000; SysCtrlRegs.CLKCTL.all = 0 x6003; 系统初始化文件系统初始化文件(DSP2802x_SysCtrl.c)还包含切换到不同时钟源的函数。直还包含切换到不同时钟源的函数。直接从接从INTOSC1切换到切换到IN

25、TOSC2,由于没有外部时钟源,将会检测到缺少时钟,由于没有外部时钟源,将会检测到缺少时钟。PLL将被清零,器件将自动清除将被清零,器件将自动清除MCLKSTS位并切换回位并切换回INTOSC1。 二、二、CLOCK寄存器寄存器8、PLL控制寄存器控制寄存器 - PLLCR 15 43 0保留保留DIVR-0R/W-0PLLCRDIV值PLLSTSDIVSEL=0或1SYSCLKOUT(CLKIN)PLLSTSDIVSEL=2PLLSTSDIVSEL=30000(PLL旁路)OSCCLK/4(默认)OSCCLK/2OSCCLK0001(OSCCLK*1)/4(OSCCLK*1)/2-0010(

26、OSCCLK*2)/4(OSCCLK*2)/2-0011(OSCCLK*3)/4(OSCCLK*3)/2-0100(OSCCLK*4)/4(OSCCLK*4)/2-0101(OSCCLK*5)/4(OSCCLK*5)/2-0110(OSCCLK*6)/4(OSCCLK*6)/2-二、二、CLOCK寄存器寄存器8、PLL控制寄存器控制寄存器 - PLLCR 15 43 0保留保留DIVR-0R/W-0PLLCRDIV值PLLSTSDIVSEL=0或1SYSCLKOUT(CLKIN)PLLSTSDIVSEL=2PLLSTSDIVSEL=30111(OSCCLK*7)/4(OSCCLK*7)/2-1

27、000(OSCCLK*8)/4(OSCCLK*8)/2-1001(OSCCLK*9)/4(OSCCLK*9)/2-1010(OSCCLK*10)/4(OSCCLK*10)/2-1011(OSCCLK*11)/4(OSCCLK*11)/2-1100(OSCCLK*12)/4(OSCCLK*12)/2-1101 1111保留保留保留(续)(续)9、PLL状态寄存器状态寄存器 - PLLSTS 二、二、CLOCK寄存器寄存器76543210DIVSELMCLKOFFOSCOFFMCLKCLRMCLKSTSPLLOFF保留保留PLLLOCKSR/W-0R/W-0R/W-0R/W-0R-0R/W-0R-

28、0R-11514 98NORMRDYE保留保留DIVSELR/W-0R-0R/W-0二、二、CLOCK寄存器寄存器9、PLL状态寄存器状态寄存器 - PLLSTS 位域值描述15NORMRDYE01PLL忽略NORMRDY的控制。VREG超出调节范围时NORMRDY信号为低,否则为高。当进入和退出停机模式时可能要求PLL保持关闭状态,NORMRDY信号就可以达到这个目的。14-9保留保留8-7DIVSEL00,011011CPUCLK分频选择:选择4分频CLKIN/4选择2分频CLKIN/2选择不分频CLKIN/1。(只在PLL关闭或旁路时)6MCLKOFF01缺少时钟检测关闭位。主振荡器故障检测逻辑被使能。(默认)主振荡器故障检测被禁能。二、二、CLOCK寄存器寄存器9、PLL状态寄存器状态寄存器 - PLLSTS 位域值描述5OSCOFF01X1、X2或XCLKIN的CLK信号输入PLL(默认)。X1、X2或XCLKIN的CLK信号不输入到PLL。这不会切断内部振荡器。OSCOFF位用来测试缺少时钟检测逻辑。4MCLKCLR01缺少时钟清除位。写0无影响。该位读出时总为0。强制缺少时钟检测电路被清除和复位。3MCLKSTS01缺少时钟状态位。表示正常工作。未检测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论