看门狗cop模块
- 格式:doc
- 大小:48.00 KB
- 文档页数:3
飞思卡尔应用笔记AN3476洗衣机的三相交流感应电机直接矢量控制方案——基于MCF56F8013文件编号:AN3476版本:1,08/2007苏州大学飞思卡尔嵌入式教学与应用培训中心译2008年5月目录1 应用特性 (1)1.1 Freescale控制器的优势和特点 (3)2 交流感应电机的矢量控制 (4)3 矢量控制算法概述 (7)3.1 转子磁通的估算 (9)3.2 自适应电路 (10)3.3 定子电压的解耦 (11)3.4 空间矢量调制 (12)3.5 电流控制回路 (14)3.6 三相电流的重构 (15)3.7 弱磁控制模块 (17)3.8 利用转速传感器的速度感应 (17)3.8.1 利用转速传感器和外部硬件比较器的速度感应 (17)3.8.2 利用转速传感器和软件比较器的速度感应 (18)3.9 速度控制回路 (19)4 洗衣机算法 (20)4.1滚动洗涤循环 (21)4.2 失衡检测 (21)4.3 脱水循环 (21)5 软件设计 (22)5.1 应用程序流程图 (22)5.2 应用程序状态图 (23)6 用户控制接口 (24)6.1 FreeMaster控制界面 (24)7 洗衣机驱动参数的调整 (26)8 飞思卡尔半导体公司的技术支持 (27)9 参考文献 (27)10 术语表 (28)洗衣机的三相交流感应电机直接矢量控制方案——基于MCF56F8013Pavel Sustek, Petr SteklFreescale半导体公司洗衣机设计上的最新趋势是用新型的、电子控制的无刷驱动器取代传统的驱动系统。
过去,洗衣机的设计主要借助于两个广泛应用的驱动系统。
较早的设计采用机电控制的双速单相交流感应电机。
这种驱动系统在新的机器中已经不再使用,而仅在最廉价的机型中还有些应用。
之后,绝大多数洗衣机都采用晶闸管(TRIAC)控制的通用型有刷电机。
然而,随着新电子器件的出现,这些驱动系统正在逐渐被淘汰。
中文译文第1章器件概述S12XS-系列1.1简介新S12XS家族16位微控制器是S12XE家族的兼容,简化版本。
这些家庭提供了一种简单的方法来制定共同的平台,从低端到高端应用程序,最大限度地减少软件和硬件的重新设计。
针对通用汽车的应用和CAN节点,这些应用的一些典型的例子分别是:车身控制器,乘员检测,车门模块,RKE接收器,智能执行器,照明模块和智能接线盒以及很多其他。
该S12XS家族保留了许多S12XE家族包括纠错码的功能(ECC)的快闪记忆体,一个独立的数据闪存模块的代码或数据的存储,一个调频锁相环(IPLL),提高了EMC性能和快速的ATD转换器S12XS家族将提供32位的性能与16位MCU的所有优势和效率。
它将保留低成本,目前享有的功耗,EMCand代码大小效率优势由飞思卡尔现有的16位S12和S12X MCU系列的用户。
像其他S12X成员家庭,S12XS家庭将运行16 - bit宽访问无需等待状态的所有外设和回忆。
该S12XS家庭将可在112引脚LQFP ,80引脚QFP ,64引脚LQFP封装选项和保持与S12XE家族针兼容性的高水平。
除了在现有的I / O端口每个模块,多达18个进一步的I / O端口,可与中断功能,允许唤醒从停止或等待模式。
外设集包括MSCAN ,SPI,2个SCI,可,一个8通道24位周期中断定时器,8 - 通道的16位定时器,8通道PWM和多达16 - 通道12位ATD转换器。
软件控制外设到端口的路由可以访问外设模块的灵活组合在较低的引脚数封装选项。
1.1.1特点在S12XS-系列的特性都在这里列出。
请参阅表D-1对于内存选项和表D-2外设功能,可在不同的家庭成员。
•16位CPU12X- 向上与S12指令集除了五个模糊的指令兼容(MEM,W A V,W A VR,REV,REVW),它已被删除-增强的变址寻址-- 访问大数据段独立PPAGE的-•INT(中断模块)-- 七个级别的嵌套中断-- 中断源到每个灵活分配中断级。
锁相环配置时钟锁相环作为一个提供系统时钟的模块,是一个基本的模块,几乎每次编程序都得用到。
下面记一下怎样配置锁相环来设定想要的系统时钟。
锁相环PLL、自时钟模式和前面说的实时中断RTI、看门狗COP都属于系统时钟与复位CRG中的模块,固前面用到的寄存器,这里有些会再用到。
在程序中配置锁相环的步骤如下:第一、禁止总中断;第二、寄存器CLKSEL的第七位置0,即CLKSEL_PLLSEL=0。
选择时钟源为外部晶振OSCCLK,在PLL程序执行前,内部总线频率为OSCCLK/2。
CLKSEL_PLLSEL=0时,系统时钟由外部晶振直接提供,系统内部总线频率=OSCCLK/2(OSCCLK为外部晶振频率)。
CLKSEL_PLLSEL=1时,系统时钟由锁相环提供,此时系统内部总线频率=PLLCLK/2 (PLLCLK为锁相环倍频后的频率)。
第三、禁止锁相环PLL,即PLLCTL_PLLON=0。
当PLLCTL_PLLON=0时,关闭PLL电路。
当PLLCTL_PLLON=1时,打开PLL电路。
第四、根据想要的时钟频率设置SYNR和REFDV两个寄存器。
SYNR和REFDV两个寄存器专用于锁相环时钟PLLCLK的频率计算,计算公式是:PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)其中,PLLCLK为PLL模块输出的时钟频率;OSCCLK为晶振频率;SYNR、REFDV 分别为寄存器SYNR、REFDV中的值。
这两个寄存器只有在PLLSEL=0时才能够写入(这里就是第二步的设置原因所在了)。
第五、打开PLL,即PLLCTL_PLLON=1。
第六、CRGFLG_LOCK位,确定PLL是否稳定。
当锁相环PLL电路输出的频率达到目标频率的足够小的误差范围内时,LOCK位置1,此时说明PLLCLK已经稳定,可以作为系统的时钟了。
该位在正常情况下为只读位。
第七、PLLCLK稳定后,允许锁相环时钟源PLLCLK为系统提供时钟,即CLKSEL_PLLSEL=1。
第六章复位和启动6.1 简介MCU支持的复位源有:表6-1 复位源除了EzPort和MDM-AP复位之外,每个系统复位源在系统复位状态寄存器(SRSH和SRSL)都有相应的位。
详见模式控制器一章。
EZP_引脚决定的功能模式下选择单片(默认)模式或串行flash编程MCU在CS(EzPort)模式而退出复位状态。
详见启动选项。
6.2 复位此部分讨论基本的复位机制和复位源。
一些引发复位的模块可以配置为触发中断。
参见各独立外设章节获取更多信息。
6.2.1 上电复位(POR)当给MCU上电或提供的电压低于上电复位重置电压(V POR)时,POR电路会触发POR 复位。
当电压升高时,LVD电路保持MCU处于复位状态直到电压大于LVD低电压阈值(V LVDL)。
POR复位后SRSL寄存器的POR和LVD位亦重设。
6.2.2 系统复位MCU复位是一种可以使芯片回到初始状态的方法。
系统复位起始于全面监管的片上调节器和来自于内部参考的系统时钟发生器。
当芯片退出复位时,它按如下顺序操作:·从中断向量表0偏移开始读取开始SP(SP_main)·从中断向量表4偏移开始读取PC·LR设置为0xFFFF_FFFF片上外设模块和非模拟IO引脚最初都被置为禁止。
复位之后模拟引脚被默认为相应的模拟功能。
复位时,JTAG相应的输入引脚被配置为:·TDI上拉(PU)·TCK下拉(PD)·TMS上拉相应的输出引脚被配置为:TDO既不上拉也不下拉注意到nTRST初始被配置为禁止的,然而一旦被配置为JTAG功能时,它的相应输入引脚被配置为:·nTRST上拉6.2.2.1 外部引脚复位(PIN)RESET是一个专用引脚。
该引脚开漏和内部上拉。
RESET将芯片从任何模式唤醒。
在该引脚复位时,SRSL[PIN]被置位。
6.2.2.1.1复位引脚过滤RESET引脚在所有的模式中都支持数字过滤。
目前接触到的单片机中都有看门狗模块,不过写过的程序也比较简单,程序能够稳定运行,所以就不怎么理会这看门狗,因此也不知道看门狗是怎么回事。
DABAO最近写了个超声波测距的程序,运行过程中程序老是会无故停止,就是死机了。
因此不得不重新面对看门狗,经过两天的奋斗,终于让看门狗顺利工作了。
下面记一下XS128的看门狗的相关寄存器及用法。
看门狗模块用于检测程序的正常运行,启动看门狗后,必须在看门狗复位之前向ARMCOP中依次写入0X55和0XAA ,这样看门狗就会重新启动计时。
如果在规定时间内没有完成向ARMCOP中依次写入0X55和0XAA的操作,就会引起看门狗复位。
这样可以使程序重新运行,减小程序跑死的危害。
看门狗的设置比较简单,只要配置好寄存器COPCTL即可用。
COPCTL的第七位为:WCOP。
若写入COPCTL_WCOP=1,则看门狗行运在窗口模式下,必须在看门狗周期的后25%时间内向ARMCOP依次写入0X55和0XAA。
若在其他时间写入,或写入其他值,都会让看门狗溢出,使单片机复位。
若写入COPCTL_WCOP=0,则看门狗运行在正常模式下。
当看门狗使能后,只要在看门狗溢出周期内依次向ARMCOP写入0X55和0XAA,使看门狗计数复零,即可。
第六位为:RSBCK,BDM模式下的COP和RTI 停止位。
若COPCTL_RSBCK=1,则只要进入BDM模式,就停止COP和RTI(实时中断)计数。
若COPCTL_RSBCK=0,则在BDM模式下允许COP和RTI运行。
低三位为:CR2、CR1、CR0。
这三位是看门狗时钟分频位。
当CR[2:0]=000时,看门狗COP不可用。
只要CR[2:0]不为000,看门狗就开启了。
当CR[2:0]=001时,分频值为(2的14次方)。
当CR[2:0]=010时,分频值为(2的16次方)。
当CR[2:0]=011时,分频值为(2的18次方)。
当CR[2:0]=100时,分频值为(2的20次方)。
M C9S12D G128B单片机寄存器说明书(主要部分)作者:广工翔宇队2008-01-26目录一、CRG(CLOCK AND RESET GENERATOR时钟模块) (5)SYNR与REFDV (5)CRGFLG(时钟产生模块的标志寄存器) (5)CRGINTL(CRG中断允许控制寄存器) (6)CLKSEL(时钟选择寄存器) (6)PLLCTL(锁相环控制寄存器) (6)RTICTL(设置实时中断超时周期寄存器) (7)COPCTL(看门狗控制器) (8)ARMCOP(看门狗复位寄存器) (8)二、AD转换模块 (9)ATDCTL2(AD控制寄存器2) (9)ATDCTL3(AD控制寄存器3) (9)ATDCTL4(时钟选择预分频) (10)ATDCTL5(AD控制器5) (11)ATDSTAT0(AD状态寄存器) (12)ATDDIEN(AD输入使能寄存器) (12)ATDDRH X/ATDDRL X (AD转换结果寄存器) (12)三、PWM模块 (13)PWM初始化步骤 (13)PWME(PWM E NABLE R EGISTER PWM使能寄存器) (13)PWMPOL(PWM P OLARITY R EGISTER 极性选择寄存器) (13)PWMDTY X (PWM C HANNEL D UTY R EGISTERS PWM通道占空比寄存器) (13)PWMPER X (PWM C HANNEL P ERIOD R EGISTERS PWM通道周期寄存器) (14)PWMCLK(PWM C LOCK S ELECT R EGISTER PWM时钟选择寄存器) (14)PWMPRCLK(P RESCALE C LOCK S ELECT R EGISTER 预分频时钟选择寄存器) (15)PWMCTL(PWM C ONTROL R EGISTER 控制寄存器) (15)四、IO模块 (17)P ORT T I/O R EGISTER (PTT) (17)P ORT T I NPUT R EGISTER (PTIT)(PTIS、PTIP、PTIH、PTIJ) (17)P ORT T D ATA D IRECTION R EGISTER (DDRT)(DDRS、DDRH、DDRJ) (17)P ORT T R EDUCED D RIVE R EGISTER(RDRT)(RDRS、RDRP、RDRH、RDRJ) (17)P ORT T P ULL D EVICE E NABLE R EGISTER (PERT)(PERS、PERH、PERJ) (17)PPST(P ORT T P OLARITY S ELECT R EGISTER) (18)PTS(P ORT S I/O R EGISTER) (18)WOMS(P ORT S W IRED-O R M ODE R EGISTER) (18)PTP(P ORT P I/O R EGISTER) (18)PIEP(P ORT P I NTERRUPT E NABLE R EGISTER)(PIEH、PIEJ) (19)PIFP(P ORT P I NTERRUPT F LAG R EGISTER)(PIFH、PIFJ) (19)PTH(P ORT H I/O R EGISTER) (19)P ORT J I/O R EGISTER (PTJ) (19)五、SPI0模块(SPI1模块与之对应) (21)SPI0CR1(SPI0控制寄存器1) (21)SPI0CR2(SPI0控制寄存器2) (22)SPI0BR(波特率设置寄存器) (22)SPI0SR(SPI状态寄存器) (23)SPI0DR(SPI数据寄存) (23)六、ENHANCED CAPTURE TIMER MODULE增强型捕捉定时器模块 (24)TIOS(定时器输入捕捉/输出比较选择寄存器) (24)OC7M(O UTPUT C OMPARE M ASK A CTION) (24)OC7D(O UTPUT C OMPARE 7D ATA R EGISTER) (24)TSCR1 (24)TCTL1/TCTL2(定时器控制寄存器1/2) (25)TCTL3/TCTL4(输入捕捉沿控制(IC7–IC0)) (25)TIE(定时器中断允许控制器) (26)PACN3、PACN2(PACN1、PACN0类似) (26)PACTL(16位计数器控制寄存器) (26)七、SCI 异步品行通信 (28)SCICR1(SCI控制寄存器1) (28)SCICR2(SCI控制寄存器2) (28)SCIBDH/L(SCI波特率设置寄存器) (28)SCISR1(SCI状态寄存器1) (29)SCIDRH/L(SCI接收发送数据寄存器) (29)八、EEPROM(电可擦除寄存器) (30)ECLKDIV(时钟分频器寄存器) (30)ECNFG(EEPROM C ONFIGURATION R EGISTER) (30)EPROT(EEPROM保护设置寄存器) (30)ESTAT(EEPROM状态寄存器) (31)ECMD(EEPROM指令寄存器) (31)ESTAT(EEPROM状态寄存器) (32)MC9S12DG128B特殊功能寄存器说明一、CRG(Clock and Reset Generator时钟模块)SYNR 与 REFDV说明:SYNR:(时钟合成寄存器)有效位为寄存器的低6位,默认地址:$34。
单元一(1)HC08单片机介绍及Codewarrior使用一、单片机基本概念1.何谓单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。
在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。
而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。
PC中的CPU一块就要卖几百块钱,这么多东西做在一起,是不是很贵?说这块芯片体积是不是很大呢?恰恰相反,单片机的价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片机也有引脚比较多的,如68,84,100引脚,功能少的10多个或20多个引脚,有的甚至只有8个引脚。
为什么会这样呢?因为功能有强弱。
比如,市场上面有的组合音响一套才卖几百块钱,可是有的一台功放机就要卖好几千。
另外这种芯片的生产量很大,技术也很成熟,如51系列的单片机已经做了十几年,所以价格就很低了。
单片机的功能肯定不强,干吗要学它呢?实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用PIII?应用的关键是看是否够用,是否有很好的性能价格比。
所以8051出来十多年,依然没有被淘汰,还在不断的发展中。
2.常用的单片机(1)51系列51系列单片机是Intel公司在20世纪80年代初研制出来的,很快就在我国得到推广和广泛的应用。
20多年来,51系列单片机在教学、工业控制、仪器仪表和信息通信中发挥着重要的作用,并在交通、航运和家用电器等领域取得了大量的应用成果。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核给了许多半导体厂家,如Arotel、Philps、Ananog Devlces和Dallas等。
看门狗模块(COP) (1)
第一节看门狗COP简介 (1)
第二节看门狗模块相关寄存器 (1)
2.1看门狗设置存器COPCTL (1)
第三节看门狗模块应用实例 (2)
看门狗模块(COP)
第一节看门狗COP简介
看门狗模块用于检测程序的正常运行,启动看门狗后,必须在看门狗复位之前向ARMCOP 中依次写入0X55和0XAA ,这样看门狗就会重新启动计时。
当用户程序跑飞时在规定时间内没有向ARMCOP中依次写入0X55和0XAA的操作,就会引起看门狗复位,看门狗产生一个强制系统复位。
这样可以使程序重新运行,减小程序跑死的危害。
第二节看门狗模块相关寄存器
2.1看门狗设置存器COPCTL
WCOP看门狗喂狗模式设定位
WCOP=1,则看门狗行运在窗口模式下,必须在看门狗周期的后25%时间内向ARMCOP依次写入0X55和0XAA。
若在其他时间写入,或写入其他值,都会让看门狗溢出,使单片机复位。
WCOP=0 则看门狗运行在正常模式下。
当看门狗使能后,只要在看门狗溢出周期内依次向ARMCOP写入0X55和0XAA,使看门狗计数复零,即可。
RSBCK,BDM模式下的COP和RTI 停止位。
若COPCTL_RSBCK=1,则只要进入BDM模式,就停止COP和RTI(实时中断)计数。
若COPCTL_RSBCK=0,则在BDM模式下允许COP 和RTI运行。
CR2、CR1、CR0。
这三位是看门狗时钟分频位。
当CR[2:0]=000时,看门狗COP不可用。
只要CR[2:0]不为000,看门狗就开启了。
当CR[2:0]=001时,分频值为(2的14次方)。
当CR[2:0]=010时,分频值为(2的16次方)。
当CR[2:0]=011时,分频值为(2的18次方)。
当CR[2:0]=100时,分频值为(2的20次方)。
当CR[2:0]=101时,分频值为(2的22次方)。
当CR[2:0]=110时,分频值为(2的23次方)。
当CR[2:0]=111时,分频值为(2的24次方)。
看门狗的溢出频率为:COP溢出频率=OSCCLK / CR[2:0]。
OSCCLK为晶振频率
第三节看门狗模块应用实例
/********************************************
龙丘MC9S12XS128多功能开发板
Designed by Chiu Sir
E-mail:chiusir@
软件版本:V1.2
最后更新:2011年4月5日
相关信息参考下列地址:
网站:
淘宝店:
------------------------------------
Code Warrior 5.0
Target : MC9S12XS128
Crystal: 16.000Mhz
busclock:8.000MHz
**********************************************/
#include <hidef.h> //工程通用的宏文件
#include "derivative.h" //单片机硬件型号文件
#define LED PORTB //定义连接发光二级管的PORTB口数据寄存
//为LED,写'0'亮,写'1' 灭
#define LED_dir DDRB //定义连接发光二级管的PORTB诜较蚣拇嫫?
//为LEDCPU_dir,写'0'做输入口,写'1'做输出口
/*************************************************************/
/* 初始化看门狗*/
/*************************************************************/
void INIT_COP(void)
{
COPCTL = 0x07; // 7位WCOP=0 设置为正常COP模式
// 6位RSBCK=0设置在BDM模式下允许COP和RTI运行
// 210位CR[2:0]=111 COP溢出频率=OSCCLK / CR[2:0]
// COP溢出频率=16M/2^24
//设置看门狗复位间隔为1.048576s
}
/*************************************************************/
/* 延时函数*/
/*************************************************************/
void delay(void)
{
unsigned int i;
for(i=0;i<50000;i++);
}
/*************************************************************/
/* 主函数*/
/*************************************************************/
void main(void) {
DisableInterrupts; //禁止所有中断打开
INIT_COP(); //初始化看门狗模块
LED_dir = 1; //设置连接发光二级管的PORTB口为输出口
LED = 0; //初始化发光二极管为亮
delay(); //延时一定时间,使人眼能识别发光二极管闪烁现象LED = 1; //发光二极管为灭
EnableInterrupts; //打开所有中断打开
for(;;)
{
_FEED_COP(); //喂狗函数
//在特定时间内依次向ARMCOP写入0X55,0XAA;
delay();
}
}。