看门狗cop模块
AN3476_基于MCF56F8013的洗衣机的三相交流感应电机直接矢量控制方案(中文)
飞思卡尔应用笔记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)控制的通用型有刷电机。
然而,随着新电子器件的出现,这些驱动系统正在逐渐被淘汰。
基于DSP实现可并机的逆变电源
7)可带电热更换,操作维护方便;
8)输出电压精度高,为220(1±1%)V;
9)输出频率精度高,为50±0.001Hz;
10)全LCD数字显示、测量,菜单控制操作,便于对系统状态进行在线实时监测;
为了提高逆变单元的可靠性和负载适用性,在50HzIGBT逆变桥前增加补偿器及损耗器。
DA2000HP逆变单元采用的算法是模糊控制算法,把电压误差和电流作为输入模糊变量,实现逆变单元模糊控制。
2.3 DSP56F805简介
Motorola公司开发的数字信号处理器DSP56F805具有16位高速定点运算能力,既有单片机(MCU)灵活控制功能和丰富的外设,又有DSP高速运算能力,非常适合电源控制、电机控制、工业控制、仪表制造等领域。这种型号的数字信号处理芯片具有如下优点:
3)控制灵活,维护方便,系统的一致性好,成本低。
正弦波逆变电源的控制策略有PLD控制、无差拍控制、模糊控制等。对于高性能的逆变电源的设计,模糊控制器有着以下优点:
1)模糊控制器的设计过程中不需要被控对象的精确数学模型,模糊控制器有着较强的鲁棒性和自适应性;
2)查找模糊控制表只须占用处理器很少的时间,因而可以采用较高采样率来补偿模糊规则和实际经验的偏差。
逆变电源采用数字控制,具有以下明显优点:
1)每个并联运行的逆变单元模块都采用全数字化控制,易于在模块之间更好地进行均流控制和通信,或者在模块中实现复杂的均流控制算法,从而实现高可靠性、高冗余度的逆变单元并联运行系统;
2)易于采用先进的控制方法和智能控制策略,使得逆变电源的智能化程度更高,性能更完美;
第2章MC9S12DG128的结构与工作原理
2.1 MC9S12DG128的内部结构
2.1.1 CPU12内核(Star Core)
(2)间址/变址寄存器(Index Register) X、Y
❖ CPU12内部有两个16位地址寄存器IX和IY,称为间接寻址寄 存器,简称间址寄存器或变址寄存器。一般情况下作为指针 寄存器,用于多种寻址方式下的地址计算,也可用于临时存 放数据或参与一些运算,只能按照16位方式访问。
❖ 若把一个16位数据存入累加器D中,则高8位在A寄存器中,低8位在B 寄存器中。与此相对应,若把D寄存器中的一个16位数据存入存储器, 则高8位在存储器的低位地址,低8位在存储器的高位地址。
❖ 注意,任何Motorola (Freescale)公司独立设计的16位、32位CPU中, 寄存器与存储器字节的对应关系都是高位数据存放于低位地址,低位数 据占用高位地址,这与Intel公司的CPU数据存放格式正好相反。
2.1 MC9S12DG128的内部结构
2.1.1 CPU12内核(Star Core)
❖ SP主要用于堆栈管理,用于中断和子程序调用时保存系统地址信息,也 可以存储临时信息,一般不做他用。
❖ 在不影响其内容的前提下,也可替补用作所有变址寻址方式下的变址寄 存器,通常不参与运算。
❖ 惟一例外的是,在符号扩展指令中用作目的寄存器。此外,还具有自身 的加、减1指令。
(Program State Word),但不同的是,它还可以参与控制CPU的行为。 ❖ 条件码寄存器中各位的定义:
CCR中的各位包括两部分: ➢5个算术特征位(Arithmetic Flag Bit) ,即H、N、Z、V、C,它们反映上一条指令执 行结果的特征(状态); ➢3个MCU控制位,即中断屏蔽位X、I和STOP指令控制位,这3位通常由软件设定, 以控制CPU的行为。复位后,X、I两位默认状态为1,屏蔽系统中断。CCR是真正的 专用寄存器,除了C、H位以外,其他各位不参与任何运算。
飞思卡尔中英文翻译对照
中文译文第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。
EnergyMicro+EFM32系列微控制器看门狗定时器(WDOG)
厦门办事处
E-mail:sales.xiamen@
沈阳办事处
E-mail:sales.shenyang@
产品应用笔记
©2012 Guangzhou ZLG MCU Technology Co., Ltd. ii
广州周立功单片机科技有限公司
看门狗定时器
EFM32 系列微控制器
2.1
基本操作 ................................................................................................................... 4
2.1.1 看门狗使能...........................................................................................................4
广州专卖店
地址:广州市天河区新赛格电子城 203-204 室 电话:(020)87578634 87569917 传真:(020)87578842
南京周立功
地址:南京市珠江路 280 号珠江大厦 1501 室 电话:(025) 68123901 68123902 传真:(025) 68123900
北京周立功
2.1.2 喂狗.......................................................................................................................4
2.2
配置........................................................................................................................... 4
Ch06-RstBoot(k60中文)
第六章复位和启动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引脚在所有的模式中都支持数字过滤。
MC9S12XS128之看门狗COP
目前接触到的单片机中都有看门狗模块,不过写过的程序也比较简单,程序能够稳定运行,所以就不怎么理会这看门狗,因此也不知道看门狗是怎么回事。
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次方)。
freecale寄存器说明
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)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等。
看门狗电路基本原理及屏蔽方法
看门狗电路基本原理及屏蔽⽅法⼀、定义 看门狗,⼜叫watchdog timer,是⼀个定时器电路,⼀般有⼀个输⼊,叫喂狗(kicking the dog/service the dog),⼀个输出到MCU的RST端,MCU正常⼯作的时候,每隔⼀段时间输出⼀个信号到喂狗端,给 WDT清零,如果超过规定的时间不喂狗(⼀般在程序跑飞时),WDT定时超过,就会给出⼀个复位信号到MCU,使MCU复位。
防⽌MCU死机. 看门狗的作⽤就是防⽌程序发⽣死循环,或者说程序跑飞。
⼆、基本原理: 看门狗是⼀种监控系统的运⾏状况的⼿段,通过软硬件结合的⽅式实现对系统运⾏状况的监控。
稳定运⾏的软件会在执⾏完特定指令后进⾏喂狗,若在⼀定周期内看门狗没有收到来⾃软件的喂狗信号,则认为系统故障,会进⼊中断处理程序或强制系统复位。
系统上电后根据不同的⼯作模式可以选择使能看门狗的时机,若看门狗被使能则计数器开始计数,如果在设定的时间内没有及时喂狗则会发⽣看门狗超时。
看门狗主要由寄存器、计数器和狗叫模块构成:通过寄存器对看门狗进⾏基本设置,计数器计算狗叫时间,狗叫模块决定看门狗超时后发出的中断或复位⽅式。
三、分类:3.1硬件看门狗: 硬件看门狗是利⽤了⼀个定时器,来监控主程序的运⾏,也就是说在主程序的运⾏过程中,我们要在定时时间到之前对定时器进⾏复位。
如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单⽚机复位。
常⽤的WDT芯⽚如MAX813,5045,IMP 813等。
3.2软件看门狗: ⽽在某些情况下,也会采⽤纯软件的⽅法来设置看门狗,如在单⽚机系统中,利⽤闲置的定时器/计数器就可以设计⼀个软件看门狗。
具体实现步骤如下: ⾸先,在初始化程序中设置定时器/计数器的⽅式以控制寄存器(TMOD)和定时时间的初值,并且打开中断。
然后,根据定时器的时间,在主程序中按⼀定的时间间隔插⼈复位定时器的指令(喂狗),两条喂狗指令之间的时间间隔可以根据系统时钟与指令周期计算出来,⽽且该时间周期应该⼩于定时器的定时时间。
PLL详解
PLL详解什么是锁相环呢?MCU的支撑电路一般需要外部时钟来给MCU提供时钟信号,而外部时钟的频率可能偏低,为了使系统更加快速稳定运行,需要提升系统所需要的时钟频率。
这就得用到锁相环了。
例如MCU用的外部晶振是16M的无源晶振,则可以通过锁相环PLL把系统时钟倍频到24M,从而给系统提供更高的时钟信号,提高程序的运行速度。
51单片机,AVR单片机内部没有锁相环电路,其系统时钟直接由外部晶振提供。
而XS128内部集成了锁相环电路,其系统时钟既可由外部晶振直接提供,也可以通过锁相环倍频后提供,当然,还有由XS128内部的时钟电路来提供(当其它来源提供的系统时钟不稳定时,内部时钟电路就起作用了,也就是自时钟模式)。
锁相环作为一个提供系统时钟的模块,是一个基本的模块,几乎每次编程序都得用到。
下面记一下怎样配置锁相环来设定想要的系统时钟。
锁相环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 中的值。
PLL控制及初始化
什么是锁相环呢?MCU的支撑电路一般需要外部时钟来给MCU提供时钟信号,而外部时钟的频率可能偏低,为了使系统更加快速稳定运行,需要提升系统所需要的时钟频率。
这就得用到锁相环了。
例如MCU用的外部晶振是16M的无源晶振,则可以通过锁相环PLL把系统时钟倍频到24M,从而给系统提供更高的时钟信号,提高程序的运行速度。
51单片机,AVR 单片机内部没有锁相环电路,其系统时钟直接由外部晶振提供。
而XS128内部集成了锁相环电路,其系统时钟既可由外部晶振直接提供,也可以通过锁相环倍频后提供,当然,还有由XS128内部的时钟电路来提供(当其它来源提供的系统时钟不稳定时,内部时钟电路就起作用了,也就是自时钟模式)。
锁相环作为一个提供系统时钟的模块,是一个基本的模块,几乎每次编程序都得用到。
下面记一下怎样配置锁相环来设定想要的系统时钟。
锁相环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中的值。
9s12xe-中文manual
mc9s12xe系列单片机参考手册--中文1.3系统时钟介绍时钟和复位发生器模块(CRG)提供的核心和外设模块的所有内部时钟信号。
图1-8显示了从CRG所有模块的时钟连接。
在clock generation中查询CRG时钟产生的细节规范。
系统时钟可以提供多种方式,使系统的工作频率范围要支持:•片上锁相环(PLL)•锁相环自我时钟•振荡器由PLL或振荡器产生的时钟提供主系统时钟频率,核心时钟和总线时钟。
如图1-8所示,这些系统时钟用于驱动整个MCU的core,RAM,和外设。
闪存程序存储器和EEPROM可由总线时钟和振荡器时钟提供时钟信号。
“使用振荡器时钟作为时基,驱动程序,并提供NVM的擦除时间基准。
CAN模块可配置的时钟源来自总线时钟或直接从振荡器时钟。
这允许用户在提供的两种时钟信号的基础上,选择它的时钟性能。
为了确保时钟的存在,MCU包括一个片上时钟监视器,监视器连接到振荡器的输出。
时钟监视器可以被配置为调用PLL自震荡模式或在超过一定时间没有振荡器时钟出现,产生一次系统复位。
除了时钟监视器,MCU还提供了时钟质量检查模块执行时钟准确的检查。
时钟质量检查计数器在一个定义的时间窗口内检查预先设定了的时钟边沿,以确保时钟的正确运行。
检查程序可以被以下具体的事件调用,如唤醒或时钟监视器故障。
MCU可以处在不同的模式,而这与MCU资源的映射和总线接口配置操作相关。
这些内容将在1.4.1芯片配置摘要有提到。
MCU可以有不同的电源操作模式,当并不需要系统满负荷运行时,方便省电的模式是可选的。
这些内容将在1.4.2功率模式有提到。
1.4操作模式有些功能模块是可编程的,可以对某个模块进行冻结,而BGD模块的处于活动对于方便调试是有积极意义的,这在1.4.3冻结模式有提到。
对于系统的完整性,支持独立的系统状态功能,在1.4.4系统状态的说明有提到。
MCU有六个不同的模式而模式与系统资源配置相关。
不同的模式,ROMCTL与 EROMCTL在RESET信号的上升沿的状态,MCU的安全状态都会影响以下设备的特点:•外部总线接口配置•可能会影响Flash中的存储器映射,或不会•调试功能启用或禁用操作模式是由MODC,MODB和MODA在复位时的信号状态决定的。
chap4-基本系统设计
3
4.2 设计规划
需求分析—— ——设计任务的明确与分解 1. 需求分析——设计任务的明确与分解 电源设计——电压稳定性、 ——电压稳定性 2. 电源设计——电压稳定性、电流负载能力 时钟电路设计—— 3. 时钟电路设计—— 调试手段——如何写入、擦除单片机Flash ——如何写入 Flash中的信 4. 调试手段——如何写入、擦除单片机Flash中的信 BDM在线调试方法 息,BDM在线调试方法 通信设计——单片机与PC ——单片机与PC机 5. 通信设计——单片机与PC机、单片机之间的通信 接口设计——电平匹配,负载能力、 ——电平匹配 6. 接口设计——电平匹配,负载能力、抗干扰能力 设计综合—— ——将放在一个系统中各个部分 7. 设计综合——将放在一个系统中各个部分
9
4.4系统综合 系统综合
10
实验电路板原理图
第四章 单片机基本系统设计
4.1 芯片选型 4.2 设计规划 4.3 基本系统的电路设计 4.4 系统综合
什么是单片机基本系统? 什么是单片机基本系统?
单片机能正常运行 基本的人机交互能力
供电 时钟 复位 程序
AN3561_MC9S08JM60的USB Bootloader(中文)
应用笔记AN3561MC9S08JM60的USB Bootloader文件编号:AN3561版本:0,08/2005苏州大学飞思卡尔嵌入式系统研发中心翻译2009年11月I1.简介 (1)2.B OOTLOADER概述 (1)2.1 Bootloader资源 (1)2.2 Flash存储器保护 (2)2.3 向量重定向 (3)2.4软件启动过程 (3)2.4.1用户模式 (3)2.4.2 bootloader初始化 (4)2.4.3 Bootloader模式 (5)2.5 PC驱动及PC GUI工具 (6)3B OOTLOADER实现指南 (7)3.1 软件整合 (7)3.2 PC驱动安装 (9)3.3 运行PC GUI工具 (11)3.3.1 启动PC GUI工具 (11)3.3.2 擦除Flash (14)3.3.3 空白检测 (14)3.3.4 Flash写入 (15)3.3.5 代码校验 (17)4.结论 (18)附录A例程 (19)MC9S08JM60的USB BootloaderII1.简介 (1)2.B OOTLOADER概述 (1)2.1 Bootloader资源 (1)2.2 Flash存储器保护 (2)2.3 向量重定向 (3)2.4软件启动过程 (3)2.4.1用户模式 (3)2.4.2 bootloader初始化 (4)2.4.3 Bootloader模式 (5)2.5 PC驱动及PC GUI工具 (6)3B OOTLOADER实现指南 (7)3.1 软件整合 (7)3.2 PC驱动安装 (9)3.3 运行PC GUI工具 (11)3.3.1 启动PC GUI工具 (11)3.3.2 擦除Flash (14)3.3.3 空白检测 (14)3.3.4 Flash写入 (15)3.3.5 代码校验 (17)4.结论 (18)附录A例程 (19)III1. 简介本应用笔记描述了MC9S08JM60的bootloader(可译作“引导装入”)技术,该bootloader允许通过USB对Flash进行在线编程。
关于飞思卡尔单片机9S12出现看门狗COP不复位且系统出现死机现象,所有功能或管脚无输出并卡死等问题的总结
关于飞思卡尔单片机MC9S12XET256A出现看门狗COP不复位且系统出现死机现象,所有功能或管脚无输出并卡死等问题的总结,希望给遇到同样问题的朋友提供参考。
由于对飞思卡尔的看门狗COP不是很了解,导致工作过程遇到了一些麻烦,后来经过很长时间的搞鼓,并通过NXP官网技术支持的帮助,解决了问题,现总结如下: 与其他单片机不同的是看门狗计数溢出后:9S12是先复位系统(寄存器和所有外设都恢复到默认状态),然后PC指向看门狗中断向量所保存的看门狗中断服务程序地址)。
注意!看门狗中断是不可屏蔽中断,且它并不是一个中断服务函数,只是一个路径。
系统复位以后,执行的第一动作就是将系统指针PC首先跳到该路径上,因此必须在代码里声明该路径的地址向量,声明的地方在一个后缀名为.prm的文件里。
默认只有VECTOR 0 _Startup,但9s12有三种复位的情况,分别指向三个地址,0号是系统上电,非法地址等复位;1号是时钟异常复位;2号就是我们需要的看门狗复位;我们让系统复位后,都把PC指向启动首地址。
注意!如果不定义,系统指针就一直指向对应中断标号的地址上,且不会再跳转移动,整个系统像跑飞或卡死的现象。
这个问题外国朋友Radek说得通俗易懂,如下:Hi XJC,I am glad that it works now.The problem is that the COP do not cause any watchdog interrupt and CopInterrupt() isn’t an interrupt routine (ISR).When COP is not triggered properly, it will reset MCU. If COP is detected as reset source, vector at address 0xFFFA will be fetched. This vector points to your CopInterrupt() routine.Similar is valid also for CM reset (vector at 0xFFFC).POR/External/Illegal Address resets will fetch reset vector at address 0xFFFE.So, the CopInterrupt() routine is executed as first code after MCU reset (while the stack is not initialized yet) and RTI instruction at end of routine doesn’t have sense (there isn’t any context which might be restored). The CopInterrupt() (CMInterrupt()) routine must end by jump into some code. For example:asm jmp _Startup;If you do not want different behavior/code for POR/CM/COP resets, you may define_Startup() routine for all three vectors inside prm file. For example:VECTOR 0 _Startup //Power On, External, Illegal Address resetsVECTOR 1 _Startup //Clock Monitor resetVECTOR 2 _Startup //COP Watchdog resetIn that case you don’t need to define CopInterrupt()/CMInterrupt() routines.I hope it helps you.Have a great day,Radek正常情况下,很多人容易配置成如下图所示的示例,那么就会出现两种情况:当在中断里面放while(1);语句,可以正常产生看门复位;当放一个很长的for循环(超过看门狗溢出的时间),则马上出现卡死现象,不复位情况。
飞思卡尔S08QE系列低功耗微控制器分析
565飞思卡尔半导体技术园地电子产品世界32kH z 振荡器,还包括电池节电功能,如两种超低功耗停止模式、新的低功耗运行和等待模式、将C PU 从停止3模式下唤醒仅需6μs 、用户可通过写禁用时钟寄存器随意设定禁用外围模块的时钟。
此外,QE8还提供了多达8K B 的闪存和一个10通道、12位的模数转换器(A DC )。
S08Q E8还有低至1.8V 的电源电压、20M Hz 的C PU 内核、两个定时器、U AR T 、SPI 、I 2C 和两个模拟比较器—非常适合于高性价比的便携式医疗保健类应用。
S08Q E8特性及优势节能特性:两种超低功耗(U LP)停止模式,其中一种允许有限使用外围设备;新的低功耗运行和等待模式;停止3模式下的典型唤醒时间为6μs 。
这样的优点是:允许应用程序在低功耗状态下继续采样,从而延长电池使用寿命;允许在低功耗状态下使用所有的片上外围设备;可以从停止模式快速启动。
可关闭闲置不用的外围设备时钟的门控时钟,提供单独关闭各模块的极大灵活性,最大限度降低功耗。
8位H CS08CPU : 1.8~3.6V 时高达20M H z 的HC S08C PU ,温度范围从-40℃~+85℃。
这就使得在电池供电的应用中,即使在低电压下仍然有高性能;1.8V ~3.6V 范围内提供10M Hz 的总线速度。
H CS08指令集,增加了BGND 指令,向下兼容68HC08和68H C 05的目标代码,从而可以重复利用现有的软件资源;也可以用汇编或编译器进行图1S08QE8/4的结构框图飞思卡尔S08Q E 系列低功耗微控制器分析■林长星清华大学随着消费电子行业向超移动便携式设计演进,提高性能和降低功耗已成为基本的设计要求。
为了响应这些需求,2008年3月份拉开帷幕的飞思卡尔技术论坛设计应用大奖赛(FTF D es i gn C hal l enge )在日本、欧洲、中国和印度相继举行,该赛事致力于鼓励各界设计高手设计一款有益于环境的产品,使世界变得更干净、更环保。
嵌入式
•MCU:在一片芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM/EPROM/FLASH 等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统•COP:系统正常操作监视模块(Computer Operating Properly,COP)俗称看门狗(Watchdog)。
•中断:指中央处理器CPU正在处理某件事情的时候,外部发生了某一事件,请求CPU 迅速去处理,CPU暂时中断当前的工作,转入处理所发生的事件,处理完后,再回到原来中断的地方,继续原来的工作,这样的过程称为中断。
实现这种功能的部件称为中断系统,产生中断的请求源称为中断源。
由软件指令引起的一个程序的中断则称为软件中断;而由某一特定功能引脚或基于芯片设备产生的中断则称为硬件中断•中断向量:响应特定中断而运行的一段程序所在的首地址•中断服务程序•SCI :是数据在单线上按时间先低位后高位一位一位地传送,传送时每个字节区分由“开始位”和“停止位”,每个字节发送,必须有先发送“开始位”,所以称异步串行通信。
•通用I/O:是基本的输入/输出,有时也称并行I/O。
作为通用输入引脚时,MCU内部程序可以读取该引脚,知道该引脚是“1”(高电平)或“0”(低电平),即开关量输入。
作为通用输出引脚时,MCU内部程序向该引脚输出“1”(高电平)或“0”(低电平),即开关量输出。
•键盘:键盘是若干个按键组成的开关矩阵,接收用户的按键信息,是实现人-机交互的输入设备。
是一个常用的输入设备。
•波特率: 每秒内传送的位数称波特率•行扫描法:行线定义为输出,列线定义为输入并接上拉电阻,每次一根行线输出为0,其它为1,检测列线的输入的电平中是否有低电平,即逻辑值0,从而判断键盘的按键是否被按下。
•LED位选线扫描法:要让各个数据管(共阴极的)均显示需要的数字,则必须逐个使相应位选信号为0,其他位选信号为1,并将该位要显示的一位数字送到数据线上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
看门狗模块(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();
}
}。