版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教材:《32位数字信号控制器原理及应用》《DSP原理及应用》Lecture2PIE&CLOCK黄灿水2015.3Lecture2PIE&CLOCKLecture2.1PIELecture2PIE&CLOCK一、中断的概念中断:是通过某些特定的事件向CPU请求服务,CPU收到请求后,暂时中止正在执行的程序,转去处理对应的服务子程序,处理完后返回继续执行原来程序的过程。中断源:产生中断请求的特定事件,例如定时器周期到达、AD转换完成、捕捉引脚信号跳变等等。一、中断的概念中断优先级:多个中断源同时向CPU申请中断,为了能够有序地处理多个中断申请所以要有中断优先级的规定。对于CPU来说中断源的优先级是默认规定好的。中断向量:中断服务程序的入口地址(首地址)。中断向量表:系统中RAM或ROM的一个区域,用于存储各种中断向量的首地址,其大小取决于CPU支持的中断类型和数量。Lecture2PIECPU级外设级PIE级二、三级中断管理外设级PIE级CPU级二、三级中断管理外设级:产生中断请求,未屏蔽则传到PIE级。PIE级:分组与仲裁,向CPU提出申请。可屏蔽中断:检查IER和INTM决定是否响应;非屏蔽中断:立即响应。CPU级:响应完成当前指令,清流水线,自动保存现场;取中断向量送PC;执行ISR。二、三级中断管理可屏蔽中断:
INT1~INT12、INT13、INT14、
XINT1、XINT2、XINT3不可屏蔽中断:
XRS、NMI、INTR指令TRAP指令三、中断简化流程三、中断简化流程中断请求中断响应PIEIFRx=1PIEIERx=1?PIE仲裁PIEACKx=0?中断源PIEACKx=1IFRy=1IERy=1?INTM=1?响应中断IFRy=0、IERy=0INTM=1、跳转执行ISR子程序返回YYYYNNNN三、中断简化流程PIE外设中断分组表
INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.1INT1WAKEINTTINT0ADCINT9XINT2XINT1
ADCINT2ADCINT1INT2
EPWM4_TZINTEPWM3_TZINTEPWM2_TZINTEPWM1_TZINTINT3
EPWM4_INTEPWM3_INTEPWM2_INTEPWM1_INTINT4
ECAP1_INTINT5
INT6
SPITXINTASPIRXINTAINT7
INT8
I2CINT2AI2CINT1AINT9
SCITXINTASCIRXINTAINT10ADCINT8ADCINT7ADCINT6ADCINT5ADCINT4ADCINT3ADCINT2ADCINT1INT11
INT12
XINT3三、中断简化流程四、中断寄存器1、中断标志寄存器-IFRBITx=1:有相应中断请求BITx=0:无相应中断请求当CPU响应中断后中断标志位自动清0四、中断寄存器2、中断使能寄存器-IERBITx=1:中断使能BITx=0:中断禁止当CPU响应中断后中断允许位自动清0四、中断寄存器3、调试中断使能寄存器-DEBIER设置同IER,用于实时仿真时可屏蔽中断设置。在ST1中还有DEBM屏蔽位。四、中断寄存器4、PIE中断控制寄存器-PIECTRLBIT0:ENPIE=1时使能BIT15-1:中断向量地址5、PIE中断应答寄存器-PIEACKBIT11-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下降沿和上升沿四、中断寄存器四、中断寄存器四、中断寄存器五、中断编程实现#include“xxxxxx.h"......interruptvoidISR
(void);......main(){
...... //中断初始化}interruptvoidISR(void){...... //ISR子程序
...... //清各种标志位
return;}关闭PIE组开关,12组关闭总开关清除组中断标志启动PIE_VectorRAM区配置PIE中断注册PIE中断向量开启支路开关开启组开关,有使用的组开启总开关Lecture2.2CLOCK一、时钟源INTOSC1:片内,可为WatchDog、CPU、Timer2提供时钟INTOSC2:片内,可为WatchDog、CPU、Timer2提供时钟晶体振荡器:X1、X2引脚外部接晶振提供时基外部时钟源:通过XCLKIN引脚输入外部时钟源INTOSC1INTOSC2CLKINXTALOSC关闭没使用外设的时钟可降低功耗。名称地址描述XCLK0x0000-7010XCLKOUT/XCLKIN控制PLLSTS0x0000-7011PLL状态寄存器CLKCTL0x0000-7012时钟控制寄存器PLLLOCKPRD0x0000-7013PLL锁定周期寄存器INTOSC1TRIM0x0000-7014内部振荡器1调整寄存器INTOSC2TRIM0x0000-7016内部振荡器2调整寄存器LOSPCP0x0000-701B低速外设时钟预分频器寄存器PCLKCR00x0000-701C外设时钟控制寄存器0PCLKCR10x0000-701D外设时钟控制寄存器1二、CLOCK寄存器名称地址描述LPMCR00x0000-701E低功率模式控制寄存器0PCLKCR30x0000-7020外设时钟控制寄存器3PLLCR0x0000-7021PLL控制寄存器SCSR0x0000-7022系统控制&状态寄存器WDCNTR0x0000-7023看门狗计数器寄存器WDKEY0x0000-7025看门狗复位密钥寄存器WDCR0x0000-7029看门狗控制寄存器二、CLK寄存器二、CLOCK寄存器1、外设时钟控制寄存器0–PCLKCR015111098保留SCIAENCLK保留SPIAENCLKR-0R/W-0R-0R/W-07543210保留I2CAENCLKADCENCLKTBCLKSYNC保留HRPWMENCLKR-0R/W-0R/W-0R/W-0R-0R/W-0BITx=1:外设时钟使能BITx=0:外设时钟禁止BIT2:ePWM模块时基时钟(TBCLK)同步设置位二、CLOCK寄存器1598743210保留ECAP1ENCLK保留EPWM4ENCLKEPWM3ENCLKEPWM2ENCLKEPWM1ENCLKR-0R/W-0R-0R/W-0R/W-0R/W-0R/W-02、外设时钟控制寄存器1–PCLKCR1BITx=1:外设时钟使能BITx=0:外设时钟禁止二、CLOCK寄存器3、外设时钟控制寄存器3–PCLKCR3151413121110987210保留GPIOINENCLK保留CPUTIMER2ENCLKCPUTIMER1ENCLKCPUTIMER0ENCLK保留COMP2ENCLKCOMP1ENCLKR-0R/W-1R-0R/W-1R/W-1R/W-1R-0R/W-0R/W-0BITx=1:外设时钟使能BITx=0:外设时钟禁止二、CLOCK寄存器4、低速外设时钟预分频器寄存器-LOSPCP15320保留LSPCLKR-0R/W-010BIT2-0: 000 低速时钟=SYSCLKOUT/1
001 低速时钟=SYSCLKOUT/2
010 低速时钟=SYSCLKOUT/4(复位默认值)
011 低速时钟=SYSCLKOUT/6
100 低速时钟=SYSCLKOUT/8
101 低速时钟=SYSCLKOUT/10
110 低速时钟=SYSCLKOUT/12
111 低速时钟=SYSCLKOUT/14二、CLOCK寄存器5、内部振荡器n的调节寄存器–INTOSCnTRIM(n=1或2)15149870保留FINETRIM保留COARSETRIMR-0R/W-0R-0R/W-0BIT14-9:8位粗调值,带符号的值(-127~+127)。BIT7-0:6位细调值,带符号的值(-31~+31)。注:内部振荡器用保存在OTP中的参数进行软件调节。在引导过程中,BootROM将这个值复制到上面的寄存器。二、CLOCK寄存器6、时钟寄存器-XCLK15765210保留XCLKINSEL保留XCLKOUTDIVR-0R/W-1R-0R/W-0BIT6:0 GPIO38是XCLKIN输入源(JTAG-TCK复用) 1 GPIO19是XCLKIN输入源。BIT1-0:00 XCLKOUT=SYSCLKOUT/4 01 XCLKOUT=SYSCLKOUT/2 10 XCLKOUT=SYSCLKOUT 11 XCLKOUT=Off使用XCLKIN时:X1拉低X2悬空7、时钟控制寄存器-CLKCTL二、CLOCK寄存器15141312111098NMIRESETSELXTALOSCOFFXCLKINOFFWDHALTIINTOSC2HALTIINTOSC2OFFINTOSC1HALTIINTOSC1OFFR/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-07543210TMR2CLKPRESCALETMR2CLKSRCSELWDCLKSRCSELOSCCLKSRC2SELOSCCLKSRCSELR/W-0R/W-0R/W-0R/W-0R/W-0CLKCTL寄存器用来选择时钟源也用来配置时钟故障期间器件的行为
7、时钟控制寄存器-CLKCTL二、CLOCK寄存器位域值描述15NMIRESETSEL01NMI复位选择位,不管作何选择,都会产生信号。没有任何延迟地直接驱动MCLKRS(复位默认)。NMI看门狗复位(NMIRS)启动MCLKRS。14XTALOSCOFF01晶体振荡器开启(复位默认)。晶体振荡器关闭。13XCLKINOFF01XCLKIN振荡器输入启用(复位默认)。XCLKIN振荡器输入关闭。12WDHALTI01看门狗自动通过停机模式开启/关闭(复位默认)。看门狗忽略停机模式。11INTOSC2HALTI01内部振荡器2自动通过停机模式开启/关闭。使能器件更快地从停机模式中唤醒(复位默认)。内部振荡器2忽略停机模式。10INTOSC2OFF01内部振荡器2开启(复位默认)。内部振荡器2关闭。二、CLOCK寄存器7、时钟控制寄存器-CLKCTL位域值描述9INTOSC1HALTI01内部振荡器1自动通过停机模式开启/关闭。使能器件更快从停机模式中唤醒(复位默认)。内部振荡器1忽略停机模式。8INTOSC1OFF01内部振荡器1开启(复位默认)。内部振荡器1关闭。7-5TMR2CLKPRESCALE000001010011100101110111CPUTimer2时钟预分频值:/1(复位默认)/2/4/8/16保留保留保留(续)二、CLOCK寄存器7、时钟控制寄存器-CLKCTL位域值描述4-3TMR2CLKSRCSEL00011011CPUTimer2时钟源选择位:选择SYSCLKOUT(复位默认,绕过预分频器)。选择外部振荡器(XOR输出)。选择内部振荡器1。选择内部振荡器2。2WDCLKSRCSEL01看门狗时钟源选择位:选择内部振荡器1(复位默认)。选择外部振荡器或内部振荡器2。1OSCCLKSRC2SEL01选择内部振荡器1或外部振荡器(复位默认)。选择内部振荡器2。0OSCCLKSRCSEL01选择内部振荡器1(复位默认)。选择外部振荡器或内部振荡器2。(续)二、CLOCK寄存器7、时钟控制寄存器-CLKCTL从INTOSC1切换到INTOSC2(无外部时钟),需要两次写操作:第一次:CLKCTL.XTALOSCOFF=1和CLKCTL.XCLKINOFF=1第二次:CLKCTL.OSCCLKLSRCSEL=1和CLKCTL.OSCCLKSRC2SEL=1使用TI提供的DSP28头文件(SPRC823),程序如下:
SysCtrlRegs.CLKCTL.all=0x6000; SysCtrlRegs.CLKCTL.all=0x6003;系统初始化文件(DSP2802x_SysCtrl.c)还包含切换到不同时钟源的函数。直接从INTOSC1切换到INTOSC2,由于没有外部时钟源,将会检测到缺少时钟。PLL将被清零,器件将自动清除MCLKSTS位并切换回INTOSC1。二、CLOCK寄存器8、PLL控制寄存器-PLLCR15430保留DIVR-0R/W-0PLLCR[DIV]值PLLSTS[DIVSEL]=0或1SYSCLKOUT(CLKIN)PLLSTS[DIVSEL]=2PLLSTS[DIVSEL]=30000(PLL旁路)OSCCLK/4(默认)OSCCLK/2OSCCLK0001(OSCCLK*1)/4(OSCCLK*1)/2-0010(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控制寄存器-PLLCR15430保留DIVR-0R/W-0PLLCR[DIV]值PLLSTS[DIVSEL]=0或1SYSCLKOUT(CLKIN)PLLSTS[DIVSEL]=2PLLSTS[DIVSEL]=30111(OSCCLK*7)/4(OSCCLK*7)/2-1000(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-0R-1151498NORMRDYE保留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缺少时钟状态位。表示正常工作。未检测到缺少时钟。表示检测到缺少OSCCLK,CPU由工作在跛行模式(limpmode)频率的PLL来计时。(续)二、CLOCK寄存器9、PLL状态寄存器-PLLSTS位域值描述
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年塑料管材项目可行性研究报告
- 金车实木地板行业市场发展及发展趋势与投资战略研究报告
- 2025年中国自动门控制器行业发展前景预测与投资战略规划分析报告
- 2024-2025年中国航运金融行业市场调研分析及投资前景预测报告
- 2025年中国现代快餐市场供需格局及未来发展趋势报告
- 2025年条块外墙砖项目可行性研究报告
- 2025年贵金属压延加工材项目投资分析及可行性报告
- 2024-2029年中国长三角经济区行业市场发展现状及投资潜力预测报告
- 2025蛋糕店合作合同范文
- 2025驾驶员劳务合同范本
- 《中国大熊猫》课件大纲
- 大学生医疗创新创业
- 危险化学品无仓储经营单位生产安全事故应急救援预案(新导则版)
- MOOC 企业内部控制-山西省财政税务专科学校 中国大学慕课答案
- 质量管理体系知识培训课件
- 人机交互技术智慧树知到期末考试答案2024年
- GB/T 144-2024原木检验
- YS-T 650-2020 医用气体和真空用无缝铜管
- 心灵养生的疗愈之道
- 建筑设计公司的商业计划书
- 建筑景观设计劳务合同
评论
0/150
提交评论