TMS320F28027课件_第二讲_中断和时钟
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理对应的服务子程序,处理完后
返回继续执行原来程序的过程。 中断源:产生中断请求的特定事件,例如定时器周期到达、 AD转换完成、捕捉引脚信号跳变等等。
一、中断的概念 中断优先级:多个中断源同时向CPU申请中断,为了能够有 序地处理多个中断申请所以要有中断优先级的规定。对 于CPU来说中断源的优先级是默认规定好的。 中断向量:中断服务程序的入口地址(首地址)。
EPWM4_TZINT EPWM3_TZINT
INTx.3
INTx.2 ADCINT2
EPWM2_TZINT
INTx.1 ADCINT1
EPWM1_TZINT
EPWM4_INT
EPWM3_INT
EPWM2_INT
EPWM1_INT
ECAP1_INT
INT1 0
INT1 1
ADCINT 8
ADCINT7 ADCINT6
5. 配置PIE中断
6. 注册PIE中断向量 7. 开启支路开关
8. 开启组开关,有使用的组
9. 开启总开关
Lecture2.2 CLOCK
一、时钟源
INTOSC1:片内,可为WatchDog、CPU、Timer2提供时钟
INTOSC2:片内,可为WatchDog、CPU、Timer2提供时钟
XCLKOUT = SYSCLKOUT/4 XCLKOUT = SYSCLKOUT/2 XCLKOUT = SYSCLKOUT XCLKOUT = Off
使用XCLKIN时: X1拉低 X2悬空
二、CLOCK寄存器 7、时钟控制寄存器 - CLKCTL
15 14 13 12 11 10 9 8
NMI XTALOSC XCLKIN WD INTOSC2 INTOSC2 INTOSC1 INTOSC1 RESETSEL OFF OFF HALTI HALTI OFF HALTI OFF
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
7
5
4
3
2
WDCLK SRCSEL
R/W-0
1
OSCCLK SRC2SEL
R/W-0
0
OSCCLK SRCSEL
R/W-0
TMR2CLK PRESCALE
R/W-0
TMR2CLK SRCSEL
R/W-0
CLKCTL寄存器用来选择时钟源 也用来配置时钟故障期间器件的行为
二、CLOCK寄存器 7、时钟控制寄存器 - CLKCTL
位 域 值 0 1 0 1 0 1 描述 NMI复位选择位,不管作何选择,都会产生信号。 没有任何延迟地直接驱动MCLKRS (复位默认)。 NMI看门狗复位(NMIRS)启动MCLKRS。 晶体振荡器开启(复位默认)。 晶体振荡器关闭。 XCLKIN振荡器输入启用(复位默认)。 XCLKIN振荡器输入关闭。
R/W-0
BITx = 1:外设时钟使能 BITx = 0:外设时钟禁止 BIT2: ePWM模块时基时钟(TBCLK)同步设置位
二、CLOCK寄存器 2、外设时钟控制寄存器1 – PCLKCR1
15 9 保留
R-0
8 ECAP1 ENCLK
R/W-0
7 4 保留
R-0
3 EPWM4 ENCLK
R/W-0
二、CLOCK寄存器 5、内部振荡器n的调节寄存器 – INTOSCnTRIM (n=1或2)
15 14
R/W-0
9
8
7
R/W-0
0
保留
R-0
FINETRIM
保留
R-0
COARSETRIM
BIT14-9:8位粗调值,带符号的值(-127~+127)。 BIT 7-0 :6位细调值,带符号的值(-31~+31)。 注:内部振荡器用保存在OTP中的参数进行软件调节。在引导 过程中,Boot ROM将这个值复制到上面的寄存器。
15 NMIRESETSEL 14 13 XTALOSCOFF XCLKINOFF
12
WDHALTI
0 1
0
看门狗自动通过停机模式开启/关闭(复位默认)。 看门狗忽略停机模式。
内部振荡器2自动通过停机模式开启/关闭。使能器件更 快地从停机模式中唤醒(复位默认)。 内部振荡器2忽略停机模式。 内部振荡器2开启(复位默认)。 内部振荡器2关闭。
ADCINT 5
ADCINT4
ADCINT3
ADCINT2
四、中断寄存器 1、中断标志寄存器 - IFR
BITx = 1:有相应中断请求 BITx = 0:无相应中断请求 当CPU响应中断后中断标志位自动清0
四、中断寄存器 2、中断使能寄存器 - IER
BITx = 1:中断使能 BITx = 0:中断禁止 当CPU响应中断后中断允许位自动清0
晶体振荡器:X1、X2引脚外部接晶振提供时基
外部时钟源:通过XCLKIN引脚输入外部时钟源
INTOSC1
INTOSC2
CLKIN
XTALOSC
关闭没使 用外设的 时钟可降 低功耗。
二、CLOCK寄存器 名称 XCLK PLLSTS CLKCTL 地址 描述
0x0000-7010 XCLKOUT/XCLKIN控制 0x0000-7011 PLL状态寄存器 0x0000-7012 时钟控制寄存器 PLLLOCKPRD 0x0000-7013 PLL锁定周期寄存器 INTOSC1TRIM 0x0000-7014 内部振荡器1调整寄存器 INTOSC2TRIM 0x0000-7016 内部振荡器2调整寄存器 LOSPCP PCLKCR0 PCLKCR1 0x0000-701B 低速外设时钟预分频器寄存器 0x0000-701C 外设时钟控制寄存器0 0x0000-701D 外设时钟控制寄存器1
二、CLK寄存器
名称
LPMCR0 PCLKCR3 PLLCR SCSR WDCNTR WDKEY WDCR
地址
0x0000-701E 0x0000-7020 0x0000-7021 0x0000-7022 0x0000-7023 0x0000-7025 0x0000-7029
描述
低功率模式控制寄存器0 外设时钟控制寄存器3 PLL控制寄存器 系统控制&状态寄存器 看门狗计数器寄存器 看门狗复位密钥寄存器 看门狗控制寄存器
四、中断寄存器 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下降沿和上升沿
2 EPWM3 ENCLK
R/W-0
1 EPWM2 ENCLK
R/W-0
0 EPWM1 ENCLK
R/W-0
BITx = 1:外设时钟使能 BITx = 0:外设时钟禁止
二、CLOCK寄存器 3、外设时钟控制寄存器3 – PCLKCR3
15 14 保留
R-0
13 GPIOIN ENCLK
R/W-1
二、CLOCK寄存器 6、时钟寄存器 - XCLK
15 保留
R-0
7
6 XCLKINSEL
R/W-1
5 保留
R-0Biblioteka Baidu
2
1 0 XCLKOUTDIV
R/W-0
BIT6 : 0 1
GPIO38是XCLKIN输入源(JTAG-TCK复用) GPIO19是XCLKIN输入源。
BIT1-0:00 01 10 11
11 INTOSC2HALTI
1
10 INTOSC2OFF 0 1
二、CLOCK寄存器 7、时钟控制寄存器 - CLKCTL
位 9 8 域 INTOSC1HALTI 1 INTOSC1OFF 0 1 值 描述 (续)
0
内部振荡器1自动通过停机模式开启/关闭。使 能器件更快从停机模式中唤醒(复位默认)。 内部振荡器1忽略停机模式。
四、中断寄存器 3、调试中断使能寄存器 - DEBIER
设置同IER,用于实时仿真时可屏蔽中断设置。 在ST1中还有DEBM屏蔽位。
四、中断寄存器 4、PIE中断控制寄存器 - PIECTRL
BIT0:ENPIE=1时使能 BIT15-1:中断向量地址
5、PIE中断应答寄存器 - PIEACK
BIT11-0:INT12-INT1中断应答位,CPU响应中断时置1, 需要在ISR程序中写1清0
内部振荡器1开启(复位默认)。 内部振荡器1关闭。 CPU Timer2时钟预分频值: /1(复位默认) /2 /4 /8 /16 保留 保留 保留
教材:《32位数字信号控制器原理及应用》
《DSP原理及应用》
Lecture2 PIE & CLOCK
黄灿水 2015.3
Lecture2 PIE & CLOCK
Lecture2.1 PIE
Lecture2 PIE & CLOCK 一、中断的概念 中断:是通过某些特定的事件向CPU 请求服务,CPU收到请求后,暂 时中止正在执行的程序,转去处
非屏蔽中断:立即响应。
CPU级:响应 完成当前指令,清流水线,自动保存现场; 取中断向量送PC; 执行ISR。
二、三级中断管理 可屏蔽中断: INT1~INT12、INT13、INT14、 XINT1、XINT2、XINT3 不可屏蔽中断:
XRS、NMI、INTR指令TRAP指令
三、中断简化流程
三、中断简化流程
N
N
N Y
PIEACKx=1 IFRy=1 IERy=1?
中断源
PIEIFRx=1 Y PIEIERx=1?
PIE仲裁 PIEACKx=0?
中断请求 中断响应
N
Y
返回
执行 ISR子程序
响应中断 IFRy=0、IERy=0 INTM=1、跳转
Y
INTM=1?
三、中断简化流程
三、中断简化流程
二、CLOCK寄存器 1、外设时钟控制寄存器0 – PCLKCR0
15
R-0
11
10 SCIAENCLK
R/W-0
9 保留
R-0
8 SPIAENCLK
R/W-0
保留 7 5 保留
R-0
4 I2CAENCLK
R/W-0
3 ADCENCLK
R/W-0
2 TBCLKSYNC
R/W-0
1 保留
R-0
0 HRPWMENCLK
四、中断寄存器
四、中断寄存器
四、中断寄存器
五、中断编程实现
#include “xxxxxx.h" ...... interrupt void ISR (void); ...... main() { ...... //中断初始化 } interrupt void ISR(void) { ...... //ISR子程序 ...... //清各种标志位 return; } 1. 关闭PIE组开关,12组 2. 关闭总开关 3. 清除组中断标志 4. 启动PIE_Vector RAM区
PIE外设中断分组表
INTx.8 INT1 INT2 INT3 INT4 INT5 INT6 INT7 INT8 INT9 I2CINT2A SCITXINTA I2CINT1A SCIRXINTA ADCINT1 SPITXINTA SPIRXINTA WAKEIN T INTx.7 TINT0 INTx.6 ADCINT9 INTx.5 XINT2 INTx.4 XINT1
12 11 保留
R-0
10
9
8
72
1
0
CPUTIMER2 CPUTIMER1 CPUTIMER0 COMP2 COMP1 保留 ENCLK ENCLK ENCLK ENCLK ENCLK
R/W-1 R/W-1 R/W-1 R-0 R/W-0 R/W-0
BITx = 1:外设时钟使能 BITx = 0:外设时钟禁止
中断向量表:系统中RAM或ROM的一个区域,用于存储各
种中断向量的首地址,其大小取决于CPU支持的中断类 型和数量。
Lecture2 PIE 二、三级中断管理
外设级 外设级 PIE级 PIE级
CPU级
CPU级
二、三级中断管理 外设级:产生中断请求,未屏蔽则传到PIE级 。 PIE级:分组与仲裁,向CPU提出申请 。 可屏蔽中断:检查IER和INTM决定是否响应;
二、CLOCK寄存器 4、低速外设时钟预分频器寄存器 - LOSPCP
15 保留
R-0
3
2 0 LSPCLK
R/W-010
BIT2-0:
值)
000
低速时钟 = SYSCLKOUT/1 001 低速时钟 = SYSCLKOUT/2 010 低速时钟 = SYSCLKOUT/4(复位默认 011 100 101 110 111 低速时钟 = SYSCLKOUT/6 低速时钟 = SYSCLKOUT/8 低速时钟 = SYSCLKOUT/10 低速时钟 = SYSCLKOUT/12 低速时钟 = SYSCLKOUT/14