DSP课件-看门狗
DSP第三章.ppt
二、程序地址的产生
程序地址产生的情况
▲ 顺序操作:程序的地址来源于PC程序计数器(程序地址+1) ▲ 空(哑)周期:程序的地址来源于PAR (程序地址+1) ▲ 从子程序返回:程序的地址来源于栈顶(TOS) ▲ 从表传送或块传送返回:程序的地址来源于转移或调用指
PSC
TDDR
R-0
D15
PSCH
D8 D7
R/W-0
D0
TDDRH
R-0
R/W-0
一、时钟及系统控制
看门狗及其应用
F2812的看门狗与240x的基本相同,当8位的看门狗计数 器计数到最大值时,看门狗模块产生一个输出脉冲(512个振荡 器时钟宽度)。如果不希望产生脉冲信号,用户需要屏蔽计数 器,或用软件周期向看门狗复位控制寄存器写“0x55+0xAA", 该寄存器能够使看门狗计数器清零。
SUBC(条件减)
希望同学们坚信:
数据存储区中建立一个堆栈。
二、程序地址的产生
堆 栈 例 子
二、程序地址的产生
堆栈例子
二、程序地址的产生
微
堆 ▲ 一级深、16位宽,操作不可见,即无指令,只有程序
栈
地址产生逻辑才能够使用微堆栈。
▲ 程序地址产生逻辑在执行BLDD、BLPD、MAC、MACD、 TBLR 和TBLW 这些串(块)操作指令时利用微堆栈保 存返回地址。
WDCHK
R/W-0
R/W-0
D0
WDCNTR
R/W-0
D0
WDKEY
R/W-0
D8
D3 D2
D0
R/W-0WDPS
二、程序地址的产生
dsp看门狗定时器
看门狗定时器看门狗在外围监控DSP中软件的运行以及硬件的操作,当CPU出现故障时,看门狗将执行系统复位。
如果软件进入了一个不正确的循环或者CPU出现暂时的混乱,看门狗定时器将出现溢出来使系统复位。
在大多数情况下,DSP短暂的混乱以及CPU不正确的操作都可以被看门狗所清除并重新进行设置。
由于看门狗稳定的性能,其增加了CPU的可靠性,以确保系统的完整。
在看门狗中这个外围设备中,所有的寄存器都是8位的,连接到16位CPU的低8位外围数据总线上。
240XA看门狗定时器和C240看门狗定时器唯一的区别就是其缺乏实时的中断能力。
(这句话我也不明白哦)。
看门狗定时器将通过对从CPU出来的CLKOUT进行分频而得到自己所需的时钟。
1.1看门狗定时器的特征看门狗模块包含如下特征:n8位的看门狗计数器通过计数溢出从而使系统复位n6位的独立运行计数器通过对看门狗计数器预定标来feed看门狗计数器(上句为字面意思,我的理解是:该6位的独立运行的计数器通过对WD CLK(看门狗工作时钟)进行分频从而使看门狗计数器得到不同频率的时钟。
独立运行的意思是该计数器不受其他器件的影响,只要启动系统,就开始工作)n看门狗复位键寄存器,当向该寄存器写下合适的组合值(在该DSP中,通过向该寄存器相继写55h和AAh值)时,该寄存器将使看门狗计数器清零,当向该寄存器写下不合适的组合值(除55h和AAh以外的值)时,该寄存器将使系统复位n看门狗核对位,当看门狗定时器出现错误情况时,通过看门狗核对位来复位系统n当系统复位时,将自动启动看门狗定时器n可对独立运行计数器输出的6路分频信号进行选择以下为看门狗定时器的功能框图+含义:向WDCR.5-3位(看门狗核对位)写除101以外的任何数将导致系统复位。
含义:分频后的值与WDCLK有关。
1.1看门狗定时器的操作1.1.1概述看门狗的操作由三个寄存器进行控制n看门狗计数寄存器(WDCNTR)——这个寄存器包含了看门狗计数器的值n看门狗键位寄存器(WDKEY)——当向该寄存器先写55h,然后写AAh时,该寄存器将WDCNTR清零n看门狗控制寄存器(WDCR)——该寄存器包含了用于看门狗配置的如下控制位²看门狗禁止位²看门狗标志位²看门狗核对位(3位)²看门狗分频选择位(3位)1.1.2看门狗定时器时钟看门狗定时器时钟(WDCLK)是一种低频率的时钟。
第6章 TMS320F2812的时钟及看门狗汇总
2018年10月21日
2018年10月21日
2018年10月21日
3.3 锁相环控制寄存器(PLLCR)
2018年10月21日
6.2 看门狗
看门狗的基本结构 看门狗基本操作 看门狗寄存器 看门狗应用
2018年10月21日
4.1 看门狗的基本结构
看门狗定时器是一个独立于CPU的计数单元, 若不采用特定的指令周期地使看门狗定时器 复位,看门狗单元将会使系统复位; 为避免不必要的复位,要求用户软件周期地 对看门狗定时器进行复位操作; 看门狗可以检测软件和硬件地运行状态,提 高了系统的可靠性;
2018年10月21日
volatile
使寄存器的值被外部代码任意改变; 如:外设的寄存器的值可以被外部硬件或中断 任意改变,若不用volatile,则寄存器的值只 能被程序代码所改变。
返回
2018年10月21日
EALLOW & EDIS
TI的DSP为了提高安全性能,将很多关键寄存器作了保
2018年10月21日
3 时钟单元寄存器
外设时钟控制寄存器(PCLKCR) 高/低速外设时钟寄存器 (HISPCP/LOSPCP) 锁相环控制寄存器(PLLCR)
2018年10月21日
时钟、锁相环、看门狗以及低功耗模式寄存器
2018年10月21日
3.1 外设时钟控制寄存器(PCLKCR)
第六章 TMS320F2812 的时钟及看门狗
2018年10月21日
主要内容
时钟单元
时钟单元基本结构 锁相环电路 时钟单元寄存器
看门狗 看门狗的基本结构 看门狗基本操作 看门狗应用
2018年10月21日
时钟与看门狗介绍PPT课件
通过下图中可以看到,C28X内核时钟输出,通过LOSPCP低速时钟寄存器设置预分 频,成低速时钟信号LSPCLK,SPI,I2C,MCBSP这些串口通信都是使用的低速时钟信号。 通过HISPCP高速时钟寄存器设置预分频,成高速时钟信号HSPCLK,AD模块采用的是高 速时钟信号,方便灵活设置AD采样率。通过1/2分频给了eCAN模块。直接输出给了系统 控制寄存器模块、DMA模块、EPWM模块、ECAP模块、EQEP模块这些高速外设模块。 当然这些外设基本都有自己的预定标时钟设置寄存器,如果预定标寄存器值为0的话,那 么LSPCLK等时钟信号就成为了外设实际使用时钟信号。当然要使用这些信号需要在外设 时钟寄存器PCLKCR中设置该对应外设使能。
锁相环模块除了为C28X内核提供时钟外,还通过系统时钟输出提供快速和慢速2种 外设时钟。如果使能内部PLL电路,那么可以通过控制寄存器PLLCR软件设置系统的工作 频率。但是要注意,在通过软件改变工作频率时,必须等待系统时钟稳定后才可以继续完 成其他操作。除此之外,每种外设的时钟源都可以通过软件进行使能或者禁止。在具体应 用中,为了降低系统功耗,不使用的外设最好将其外设时钟禁止。外设时钟包括快速外设 和慢速外设两种。分别通过HISPCP和LOSPCP寄存器进行设置。
第8页/共11页
dsp看门狗定时器的作用解析
dsp 看门狗定时器的作用解析
一、DSP 看门狗定时器介绍
看门狗在外围监控DSP 中软件的运行以及硬件的操作,当CPU 出现故障时,看门狗将执行系统复位。
如果软件进入了一个不正确的循环或者CPU 出现暂时的混乱,看门狗定时器将出现溢出来使系统复位。
在大多数情况下,DSP 短暂的混乱以及CPU 不正确的操作都可以被看门狗所清除并重新进行设置。
由于看门狗稳定的性能,其增加了CPU 的可靠性,以确保系统的完整。
在看门狗中这个外围设备中,所有的寄存器都是8 位的,连接到16 位CPU 的低8 位外围数据总线上。
240XA 看门狗定时器和C240 看门狗定时器唯一的区别就是其缺乏实时的中断能力。
看门狗定时器将通过对从CPU 出来的CLKOUT 进行分频而得到自己所需的时钟
二、看门狗定时器工作原理
使用时,WDT 将递增,直到溢出,或称超时。
除非处于休眠或空闲模式,WDT 超时会强制器件复位。
为避免WDT 超时复位,用户必须定期用。
第7章 看门狗的应用
KickDog(); EALLOW; SysCtrlRegs.WDCR=0x0028; //使能看门狗,WDCLK=OSCCLK/512/1 EDIS; For(;;) { //用户代码 … } } void KickDog(void) //喂狗程序,清零看门狗计数器 { EALLOW; SysCtrlRegs.WDKEY = 0x0055; SysCtrlRegs.WDKEY = 0x00AA; EDIS; }
看门狗用于强制复位器件
//包含头文件-----------------------------------------------------#include “DSP281x_Device.h" #include “DSP281x_Examples.h” //声明全局变量-----------------------------------------------------Uint32 WakeCount; Uint32 LoopCount; //主程序-----------------------------------------------------void main(void) { InitSysCtrl(); //初始化系统控制寄存器、PLL、看门狗和时钟 DINT; //关闭全局中断响应 InitPieCtrl(); //初始化外设控制寄存器 IER = 0x0000; //关闭中断开关 IFR = 0x0000; //清除中断标志位 InitPieVectTable(); //初始化外设向量表 WakeCount = 0; // 看门狗中断次数清零 LoopCount = 0; // 空循环计数 EALLOW; // 打开保护 SysCtrlRegs.SCSR.all = 0x00; //选择看门狗的复位功能 EDIS; // 操作保护
DSP课件第九章TMS320LF240x片内外设
8位WD计数寄存器存放WD计数器的当前值D7~D0。WDCNTR 是一个只读寄存器,复位后为0,写寄存器无效。由预定标器的输出 提供计数时钟。
(2)WD复位关键字寄存器(WDKEY)——地址7025h
当55h及紧接其后的AAh(复位关键字)写入WDKEY时,将清除 WDCNTR。 其 他 任 何 值 的 结 合 写 入 或 写 入 任 何 值 都 不 能 清 除 WDCNTR。
WDCLK=(CLKOUT)/512 当CLKOUT=40MHz时,WDCLK=78125Hz是一个典型值。 除 HALT 低 功 耗 模 式 外 , 无 论 片 内 任 一 寄 存 器 的 状 态 如 何 。 WDCLK都将使能WD定时器功能。
WD模块的结构框图
WD模块有3个控制寄存器对其进行控制和管理:
LF240x有41个数字I/O口,其中绝大多数具有另一功能,“另一功能” 都是SCI、SPI等片内外设模块的功能引脚。数字I/O口是第二功能。
LF240x有41个数字I/O口,所有这些共享引脚的功能可பைடு நூலகம்过数 字I/O模块中的9个16位控制寄存器来控制。
控制寄存器可以分为两类。
(1) I/O复用控制寄存器(MCRx,x=A,B,C)
第9章 TMS320LF240x片内外设
9.1 看门狗(WD)定时器模块
看门狗(WD)定时器模块用来监视软件和硬件操作,在软件进入 一个不正确的循环或者CPU出现暂时性异常时,WD定时器溢出以产 生一个系统复位。大多数芯片的异常操作和CPU非正常工作的情况 都能通过看门狗的功能清除和复位。因此看门狗的监视功能可增强 CPU的可靠性,以确保系统运行的安全和稳定。
DSP课件第2章硬件结构
5、电源
采用高性能静态CMOS技术,供电电压为3.3V。 可用IDLE指令进入低功耗模式。
6、在片仿真接口
具有符合IEEEll49.1标准的在片仿真接口(JTAG)。
7、速度
单周期定点指令的执行时间为50ns、35ns或25ns(20MIPS,28.5MIPS, 或40MIPS)。
2.2 TMS320LF240x的总线结构
INTM:中断模式位
用来允许(INTM=0)或禁止(INTM=1)所有的可屏蔽中断。用 SETC OVM或CLRC OVM可将该位置1或清0。LST指令不影响OVM位。
DP:数据页面指针
当使用直接寻址方式时,DP存放存储器的数据页,DP与指令代 码的最低7位构成16位存储器地址。
数据存储器地址
SARAM的地址可以用于数据存储器和程序存储器。可通过软件配置 为外部存储器或内部SARAM。
SARAM在一个机器周期内只能访问一次。当CPU要求多次访问时, SARAM会向CPU提供一个未准备好的信号,然后在每个周期内执行一次 访问。
闪速存储器(Flash) 是电可擦除的、可编程的、可长期保存数据的存储器。
CPU的基本组成包括: 32位中央算术逻辑运算单元(CALU); 32位累加器(ACC);输入与输出数据比例移位器; 16位×16位的乘 法器(MUL)以及乘积比例移位器。
CPU功能结构图
2、输入比例部分
功能:将来自存储器的16位数据左移0~16位送往中央算术逻辑单元 (CALU)。
移位方法:左移后有使用的低位LSB填0,高位MSB填0或用符号 扩展,取决于状态寄存器ST1的符号扩展模式位SXM(D10)。 SXM=0 填0 SXM=1 符号扩展
中央算术逻辑单元
DSP原理与应用时钟中断看门狗PPT课件
外部引脚中断(XINT13) CPU定时器1(TI RTOS)
中断优先级和中断向量: INT14
CPU定时器2(TI RTOS)
第29页/共48页
第4.2节TMS320F2833X 中断
中断向量表由3个标志位决定其映射关系: VMAP-1(ST1.3),M0M1MAP-1(ST1.11),ENPIE-
•第4.2节TMS320F2833X 中断
• 第4.3节TMS320F2833X 看门狗 • 习题
第12页/共48页
第4.2节TMS320F2833X 中断
中断: • 中断产生及处理流程 • 中断优先级和中断向量(Interrupt Priority
and Vectors) • 外部中断扩展控制器(Peripheral Interrupt
第4.3节TMS320F2833X 看门狗
看门狗的作用: 用于监视系统的运行,当程序运行混乱时(如进 入死循环或程序跑飞)完成系统复位。
看门狗的机理: 主要核心是一个定时器,当定时器时间到时复 位 正常运行程序过程中每次在看门狗的定时器时 间到之前重启看门狗定时器
第38页/共48页
第4.3节TMS320F2833X 看门狗
• TMS320F2833X BOOT ROM
第46页/共48页
DSP原理与应用
第四章:TMS320F2833X 系统功能和其他 功能
北京交通大学电气工程学院 夏明超
第47页/共48页
感谢您的欣赏!
第48页/共48页
WDFLAG: 0-未发生复位,1-发生复位
WDDIS: 0-禁止看门狗,1-使能看门狗
WDCHK2~0: 101
系统正常运行
DSP第06章时钟及看门狗页码_图文(精)
// Step 5、用户特定函数,重新分配向量(可选择),使能中断: // 重新为WAKEINT 分配 PIE 向量,并指向相应的中断服务程序 EALLOW; PieVectTable.WAKEINT = &wakeint_isr; EDIS; // 使能WAKEINT 的中断INT1 IER |= M_INT1; // 使能 PieCtrlRegs.PIEIER1.bit.INTx8 = 1; // 对程序状态寄存器进行操作,避免清除WDOVERRIDE 标识位 EALLOW; SysCtrlRegs.SCSR.all = BIT1; EDIS; // 计数器清零 WakeCount = 0; // 中断计数 LoopCount = 0; // 循环计数 BP106 36// 使能全局中断,并配置为real-time debug 模式 EINT; // 使能全局中断INTM ERTM; // 使能全局 realtime 中断DBGM // Step 6、主循环 for(;; { LoopCount++; //用KickDog 操作看门狗Key 寄存器,避免产生WAKEINT 中断 // 通常情况下,需要在主循环或定时中断中对Key 进行操作 KickDog(; } } WAKEINT:位于PIE 的组1 的第8 中断 BP106 37// Step 7、中断服务程序 interrupt void wakeint_isr(void { WakeCount++; // 响应中断 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; } //--------------------------------------------------------------------------// KickDog: 此函数复位看门狗定时器 voidKickDog(void { EALLOW; SysCtrlRegs.WDKEY = 0x0055; SysCtrlRegs.WDKEY = 0x00AA; EDIS; } BP107 38void InitSysCtrl(void // 系统初始化 { Uint16 i; EALLOW; // 禁止看门狗模块 // SysCtrlRegs.WDCR= 0x0068; // 本例中不使用 //初始化锁相环 SysCtrlRegs.PLLCR = 0xA; // 等待锁相环稳定 for(i= 0; i< 5000; i++{} // HISPCP/LOSPCP 预定标寄存器设置 SysCtrlRegs.HISPCP.all = 0x0001; SysCtrlRegs.LOSPCP.all = 0x0002; // 使能选择的外设时钟 // 对于不用的时钟,一般情况下需要禁止相应的中断SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; SysCtrlRegs.PCLKCR.bit.EVBENCLK=1; SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1; //SysCtrlRegs.PCLKCR.bit.SCIENCLKB=1; EDIS; BP107 } 39。
2407DSP第6章 看门狗定时器模块
第6章 看门狗定时器模块
《DSP原理及应用》
1
北京理工大学珠海学院信息学院
第6章 看门狗定时器模块
在计算机控制系统的实际应用中,可靠性是一个非常重要 的问题,尤其是在工业应用场合,系统抗干扰能力显得尤为突 出。为解决干扰问题,除了对干扰源的适当处理外,在计算机 控制系统中也应增加一些防范措施,从而避免程序“跑飞”或 “死机”现象,导致系统工作异常。
为解决这个问题,在TMS320LF240x芯片中增加了看门狗 (WD)定时电路。WD监视系统软件和硬件的运行,它可以按照用 户设定的时间间隔产生中断。如果软件进入非正常循环或CPU 运行出现异常时,则WD定时器计数上溢,并产生系统复位信号, 使系统进入用户预定义的状态。 在系统中的绝大多数异常情况都可以通过WD的操作清除, 故此WD设可大大提高系统的稳定性和可靠性。
《DSP原理及应用》
6
北京理工大学珠海学院信息学院
《DSP原理及应用》
4
北京理工大学珠海学院信息学院
第6章 看门狗定时器模块
6.2 WD寄存器的配臵
WD的所有寄存器都是8位字宽,并且与16位CPU外设数据 总线的低8位相连。对WD操作的设臵比较简单,可通过3个相 关寄存器来配臵。 1.WD计数寄存器(WDCNTR) :地址为7023h WD计数寄存器包含看门狗计数器的计数值,复位值为0。 2.WD复位关键字寄存器(WDKEY) :地址为7025h 当55h及紧接其后的AAh顺序写入WDKEY时,则该寄存器将清 除WDCNTR寄存器中的内容。写入到WDKEY中任何其他内容,都将 产生一个系统复位操作。
位6:是WD的使能位。该位只有在系统配臵寄存器SCSR2的WD OVERRIDE位为1时,才可以进行写操作。该位写0时,使能看门狗; 写1时禁止看门狗。 位5-3:是看门狗校验位。当用户对WDCR进行访问时,必须将 这3位写入101,否则将引发一个系统复位事件。
第7章 看门狗的应用
2.系统控制和状态寄存器(SCSI)
WDINTS:看门狗中断状态位,反映WDINT的状态。 WDENINT: 1--看门狗复位信号(WDRST)被屏蔽, 看门狗中断信号使能(WDINT); 0--看门狗复位信号(WDRST)被使能, 看门狗中断信号屏蔽(WDINT); WDOVERRIDE: 1--允许改变WDCR中的看门狗屏蔽位WDDIS; 0--不能改变WDDIS; 清零后只有系统复位才允许改变该位的状态,用户可读取该位状态
看门狗相关寄存器
1.看门狗控制寄存器(WDCR)
WD预定标设置位,其值为看门狗计 数时钟相对于OSCCLK/512的倍率。 逻辑校验位,必须写101,否则复位器件内核。 看门狗禁止位 (仅当SCSR的WD OVERRIDE位为1时有效) WD标志位,当看门狗使CPU复位时,该位置1,写1清除标志位。
为了提高系统的抗干扰能力,DSP芯片中使用了“看 门狗”技术来监视系统的软件和硬件。它可以在程序 跑飞时强制对系统复位或中断,使系统进入初始状态, 从而保证系统按要求运行。
看门狗模块框图
看门狗使用一个独立于CPU的定时器计数单元, 这个8位的看门狗计数器(WDCNTR),当计 数到最大值时看门狗模块产生一个输出脉冲 (512个OSCCLK时钟宽度),并可以中断或 复位DSP。因此,为了避免不必要的复位,用 户可以屏蔽计数器或周期地对看门狗复位控制 寄存器写“0x55+0xAA”序列(可以复位看门 狗计数器)。
KickDog(); EALLOW; SysCtrlRegs.WDCR=0x0028; //使能看门狗,WDCLK=OSCCLK/512/1 EDIS; For(;;) { //用户代码 … } } void KickDog(void) //喂狗程序,清零看门狗计数器 { EALLOW; SysCtrlRegs.WDKEY = 0x0055; SysCtrlRegs.WDKEY = 0x00AA; EDIS; }
DSP原理与应用DSP系统设计PPT课件
3.3V 3A
EN PG
可调 5A
EN PG
3.3V 5A
EN PG
第14页/共56页
电源
电源器件选型:常用器件(2)
开关电源控制器:
➢ 双路输出
TPS56300: 5V 1.3V~3.3V(可设置) 取决于MOS 管
TPS5602: 管
5V 可调节
取决于MOS
➢ 单路输出
TPS56100: 5V 1.3~2.6V(可设置) 管
优点:
➢ 电路简单 ➢ 占地小 ➢ 频率范围宽:1Hz~400MHz ➢ 驱动能力强:可提供多个器件使用
缺点:
➢ 成本较高 ➢ 频率生产时已确定,多个独立的时钟需
要多个晶振
注意:
➢ 使用时要注意时钟信号电平,一般为5V 或3.3V,要求1.8V电平的时钟不能选用, 如VC5401、VC5402、VC5409和F281x
TI DSP更提供多种灵活的时钟选项:
➢ 片内/片外振荡器 ➢ 片内PLL ➢ PLL分频/倍频系数可由硬件/软件配置
不同的DSP时钟可配置的能力可能不同,使用前应参考各自的数据 手册
第24页/共56页
时钟
时钟电路:晶体
优点:
➢ 电路简单:只需晶体+2个电容 ➢ 价格便宜,占地小 ➢ 时钟信号电平自然满足要求
UART(RS232、RS422/RS485) CAN总线 USB ……
DSP系统需要的电源种类 数字电源和模拟电源 电源滤波 电源对PCB布局的影响 供电方案及器件选型 上电次序 电源监视与系统监视 电源电路实例
电源
第4页/共56页
电源
给TI DSP供电
核
I/O
电源 电源
DSP2812课件 第3讲
Timer->InterruptCount = 0;
//初始化定时器中断计数器
ConfigCpuTimer(&CpuTimer0, 150, 1000000)
Timer0 计时1s?Why?
假设DSP的时钟SYSCLKOUT为X MHZ,想要实现的周期是Y s,则调用配置函数为ConfigCpuTimer(&CpuTimer0, X, Y*106)。根据函数的定义, 可得: temp=Freq*Period=X*Y*106 CpuTimer0->RegsAddr->PRD.all = temp= X*Y*106 也就是说CPU定时器周期寄存器的值为X*Y*106 ,而在函数 的定义内又有: CpuTimer0->RegsAddr->TPR.all = 0 说明CPU定时0的分频器TDDRH:TDDR的值为0。则根据前面 的CPU定时器的周期计算公式:
/**************************************************************************** *名 称:ConfigCpuTimer() *功 能:此函数将使用Freq和Period两个参数来对CPU定时器进行配置。Freq以MHz * 为单位,Period以us作为单位。 *入口参数:*Timer(指定的定时器),Freq,Period *出口参数:无 ****************************************************************************/ void ConfigCpuTimer(struct CPUTIMER_VARS *Timer, float Freq, float Period) { Uint32 temp; Timer->CPUFreqInMHz = Freq; Timer->PeriodInUSec = Period; temp = (long) (Freq * Period); Timer->RegsAddr->PRD.all = temp; //给定时器周期寄存器赋值 Timer->RegsAddr->TPR.all = 0; //给定时器预定标寄存器赋值 Timer->RegsAddr->TPRH.all = 0; // 初始化定时器控制寄存器: Timer->RegsAddr->TCR.bit.TIF=1; //清除中断标志位 Timer->RegsAddr->TCR.bit.TSS = 1; //停止定时器 Timer->RegsAddr->TCR.bit.TRB = 1; //定时器重装,将定时器周期寄存器的值装入定时器计数 器寄存器 Timer->RegsAddr->TCR.bit.SOFT = 1; Timer->RegsAddr->TCR.bit.FREE = 1; Timer->RegsAddr->TCR.bit.TIE = 1; //使能定时器中断 }
DSP第6章TMS320F2812的时钟及看门狗
13
盐城工学院
电气与新能源综合实验教学示范中心
DSP应用技术 DSP应用技术
位10 SCIAENCLK 外设模块的低速时钟(LSPCLK),要让器件 ),要让器件 如置1,使能 ,使能SCI-A外设模块的低速时钟 外设模块的低速时钟 ), 进入低功耗工作模式,用户可以将该位清零或复位。 进入低功耗工作模式,用户可以将该位清零或复位。 位9 Reserved 保留位 位8 SPIAENCLK 如置1,使能串行外设接口的低速时钟( ),要让器件 如置 ,使能串行外设接口的低速时钟(LSPCLK),要让器件 ), 进入低功耗工作模式,用户可以将该位清零或复位。 进入低功耗工作模式,用户可以将该位清零或复位。 位7~4Reserved 保留位 ~ R
2
盐城工学院
电气与新能源综合实验教学示范中心
DSP应用技术 DSP应用技术
CLKIN=SYSCLKOUT
3
盐城工学院
电气与新能源综合实验教学示范中心
DSP应用技术 DSP应用技术6.1.2 锁相环电路
器件所有必须的时钟信号以及 模块提供了器件所有必须的时钟信号以及低 模块提供了器件所有必须的时钟信号以及低 功耗工作模式的控制 的控制。 功耗工作模式的控制。 PLL有4位比率控制,用来选择不同的 有 位比率控制,用来选择不同的CPU 位比率控制 时钟频率。 时钟频率。
19
盐城工学院
电气与新能源综合实验教学示范中心
DSP应用技术 DSP应用技术
3.锁相环控制寄存器( PLLCR ) 锁相环控制寄存器( 锁相环控制寄存器
15 Reserved R-0 4 3 DIV R/W-0 0
位15~4 ~
Reserved 保留位
20
dsp第五讲--第6章TMS320F2812的时钟及看门狗幻灯片
DisableDog( );
for(iVol=0; iVol<((131072/2)/12);iVol++)
{
}
}
}
11 盐城工学院 电气工程学院
DSP应用技1术1
//为降低系统功耗,不使用的外设时钟需要屏蔽。但如果使用 外设必须首先使能相应的外设时钟
void InitPeripheralClocks(void) { EALLOW; // HISPCP/LOSPCP预定标寄存器设置
0011
CLKIN=(OSCCLK*3.0)/2
0100
CLKIN=(OSCCLK*4.0)/2
0101
CLKIN=(OSCCLK*5.0)/2
0110
CLKIN=(OSCCLK*6.0)/2
0111
CLKIN=(OSCCLK*7.0)/2
1000
CLKIN=(OSCCLK*8.0)/2
1001
CLKIN=(OSCCLK*9.0)/2
010
低速时钟=SYSCLKOUT/4(复位值)
011
低速时钟=SYSCLKOUT/6
100
低速时钟=SYSCLKOUT/8
101
低速时钟=SYSCLKOUT/10
110
低速时钟=SYSCLKOUT/12
111
低速时钟=SYSCLKOUT/14
23 盐城工学院 电气工程学院
DSP应用技2术3
3.锁相环控制寄存器( PLLCR )
19 盐城工学院 电气工程学院
DSP应用技1术9
2. 高速外设时钟寄存器(HISPCP)
位15~3
Reserved 保留位
20 盐城工学院 电气工程学院
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.看门狗模块程序设计 5.看门狗模块程序设计
下面的程序为看门狗中断程序,程序中定时对看门狗计数器清零即 “喂狗”,如果程序进入死循环,不能及时“喂狗”,那么程序将进入看门 狗中断服务子程序中。
//------------------------------------------------------------------------------// ########### 看门狗中断程序 ########### //------------------------------------------------------------------------------#include”DSP281x_Devic.h” //头文件 #include”DSP281x_Examples.h” //头文件 Interrupt void wakeint_isr(void); //子程序声明 Void KickDog(void); //子程序声明 #efine BIT1 0x0002 //宏定义 //全局变量----------------------------------------------------------------------Uint32 WakeCount; //全局变量定义 Uint32 LoopCount; //全局变量定义 void main(viod) { InitSysCount(); DINT; InitPieVectTable();
组员:余洋勇、张佳杰、张萌
1.看门狗模块介绍 1.看门狗模块介绍
看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个 输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端 时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂 狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU, 是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环, 或者说程序跑飞 在实际的DSP应用系统当中,运行时极有可能发生干扰和被干扰的 现象。特别是产品化的DSP系统,可靠性是一个不容忽视的问题,严重 时系统会出现程序“跑飞”现象。为了克服这种情况,在可能的情况 下软硬件都应作相应的处理。目前,看门狗技术就是这种处理的有效 措施之一。 F2812中的看门狗模块与240x器件上的看门狗模块基本相同。当8 位看门狗递增计数器计数达到最大值时,看门狗模块输出一个脉冲信 号(512个振荡器时钟宽度)。为了阻止这种情况发生,用户可以屏 蔽计数器或者利用软件定时向看门狗复位控制寄存器写“0x55+0xAA” 序列(可以复位看门狗计数器)。
看门狗模块介绍及程序设计
基于TMS320F2812系统控制及中断: 基于TMS320F2812系统控制及中断: 1.看门狗模块介绍 1.看门狗模块介绍 2.看门狗计数寄存器(WDCNTR) 2.看门狗计数寄存器(WDCNTR) 3.看门狗复位寄存器(WDKEY) 3.看门狗复位寄存器(WDKEY) 4.看门狗控制寄存器(WDCR) 4.看门狗控制寄存器(WDCR) 5.看门狗模块程序设计 5.看门狗模块程序设计
//关闭中断开关 //清除中断标志位 //子文件 //保护中断向量 //看门狗中断向量指向中断服务子程序 //操作完成
//保护中断向量 //选择看门狗中断,紧张看门狗复位 //操作完成 //允许PIE1组中断 //打开第一组的watchdog中断 //允许CPU相应1组中断 //允许全局中断 //定时清零(喂狗)
2.看门狗计数寄存器(WDCNTR) 2.看门狗计数寄存器(WDCNTR)
看门狗计数寄存器位信息和功能介绍如表1和表2所示:
表1 15 Reserved R—0 表2
位 15~8 7~0 名 Reserved WDCNTR 称 保留 该区域内的信息为看门狗计数器当前的值。8位计数器将根 据看门狗时钟(WDCLK)连续增加。如果计数器溢出,看 门狗将发生一个复位信号,如果向WDKEY寄存器写有效的 数据组合(0x55+0xAA),将使计数器清零,看门狗模块 的时钟基准将在WDCR寄存器中配置
//初始化系统控制寄存器、PLL、看门狗和时钟 //关闭全局中断响应 //子文件
IER=0x0000; IER=0x0000; InitPieVetTable(); EALLOW; SysCtrlRegs.WAKEINT=&wakint_isr; EDIS; WakeCount=0; LoopCount=0; EALLOW; SysCtrlRegs.SCSR=BIT1; EDIS; PieCtelRegs.PIECRTL.bit.ENPIE=1; PieCtelRegs.PIECRTL.bit.INTx8=1; IER|=M_INT1; EINT; KickDog(); EALLOW;
结
束
表4 看门狗复位寄存器位功能介绍
位 15~8 名 Reserved 称 保留 首先写0x55,然后再写0xAA到WDKEY会使WDCNTR (看门狗计数器)清零。写其他的任何值都会使看门狗 产生复位信号;读操作将返回WDCR寄存器的值 功能介绍
7~0பைடு நூலகம்
WDKEY
4.看门狗控制寄存器(WDCR) 4.看门狗控制寄存器(WDCR)
SysCtrlRegs.WDCR=0x0028; EDIS; For(;;) { LoopCount++ } }
//使能看门狗,WDCLK=OSCCLK/512/1
//等地中断
//-------------------------------------------------------------------// ####### 看门狗中断服务子程序####### //-------------------------------------------------------------------Interrupt void wakeint_isr(viod) { WakeCount++; PieCtrlRegs.PIEACK.all=PIEACK_GROUP1 /;/写1继续响应中断 } Viod KickDog(void) //看门狗计数器清零 { EALLOW; SysCtrlRegs.WDKEY=0x0055; //看门狗计数器清零 SysCtrlRegs.WDKEY=0x00AA; //看门狗计数器清零 EDIS; }
看门狗计数寄存器位信息 8 7 WDCNTR R—0 看门狗计数寄存器位功能介绍
功能描述
0
3.看门狗复位寄存器(WDKEY) 3.看门狗复位寄存器(WDKEY)
看门狗复位寄存器位信息和功能介绍如表3和表4所示:
表3 看门狗复位寄存器位信息 15 Reserved R—0 8 7 WDKEY R—0 0
• 看门狗控制寄存器位信息和位功能介绍如表5和表6所示:
表5 看门狗控制寄存器位信息 15 Reserved R—0 7 6 5 WDFLAG WDDIS RW1C—0 R/W—0 3 WDCHK R/W—0 2 WDPS R/W—0 0 8
表6 看门狗控制寄存器位功能介绍
位 15~8 7 名 称 功能介绍 Reserved 保 留 看门狗复位状态标志位: 1 表示看门狗复位(WDRET)满足了复位条件; WDFLAG 0 表示是外部设备或上电复位条件。 该位值将一直锁存直到写1到WDFLAG位将该位清零,写0没有影响
表6续表 看门狗控制寄存器位功能介绍
位 6 名称 WDDIS 功能介绍 1屏蔽看门狗模块; 0 使能看门狗模块。 只有当SCSR2寄存器的WDOVERIDE位等于1时,WDDIS的值才能 改变,器件复位时,看门狗模块默认状态为使能
5~3 2 ~0
WDCHK(2:0) 看门狗检测位,需要向WDCHK(2~0)写1、0、1,写其他任何值都会 引起器件内核的复位(看门狗已经使能),读操作将返回0、0、0 WDPS(2:0) 该区域用于配置看门狗计数时钟(WDCLK)比例(相对于 OSCCLK/512的倍率) 000 WDCLK=OSCCLK/512/1; 001 WDCLK=OSCCLK/512/1; 010 WDCLK=OSCCLK/512/2; 011 WDCLK=OSCCLK/512/4; 100 WDCLK=OSCCLK/512/8; 101 WDCLK=OSCCLK/512/16; 110 WDCLK=OSCCLK/512/32; 111 WDCLK=OSCCLK/512/64;