电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

EM78P451S WDT wakeup 的设定与使用

来源:-- 作者:-- 浏览:331

标签:

摘要: 一、 WDT相关寄存器的设置 1.1 WDT唤醒IC in sleep2 1、 设定CONT寄存器中的bit3(PAB)位

 

一、 WDT相关寄存器的设置
            1.1 WDT唤醒IC in sleep2
            1、 设定CONT寄存器中的bit3(PAB)位,确定是否使用预分频器;

 

            7 6 5 4 3 2 1 0
            /PHEN /INT - - PAB PSR2 PSR1 PSR0
            Bit3: 预分频分配位。
               0: TCC;1: WDT。
            2、 设定预分频系数,即设定CONT寄存器的PSR2、PSR1、PSR0位;
            3、如果使能WDT唤醒,建议客户P6,P74-P75,P90-P91口输入唤醒禁止。
              
            原因:WDT唤醒和P6,P74-P75,P90-P91口输入唤醒同时使能,当同时唤醒时,IC会优先reset,而不去执行P6,P74-P75,P90-P91口输入唤醒后的程式,故如果使能WDT唤醒,建议客户P6,P74-P75,P90-P91口输入唤醒禁止
            4、 WDTC,使能看门狗定时器(WDT);将IOCE寄存器bit5与bit1置1;
            7 6 5 4 3 2 1 0
            - ODE WDTE SLPC ROC - - /WUE
            Bit0: 用于定义P60-P67、P74-P75、P90-P91的唤醒功能控制位。
               0: 唤醒功能有效; 1: 唤醒功能无效
            Bit4:
            此位有硬件在唤醒信号的下降沿置1,由软件进行清0。SLPC用于控制振荡器振荡。当由高到低变化时,振荡器停振(控制器进入SLEEP2模式)。当由低到高变化时,振荡器起振(控制器从SLEEP2模式唤醒)。
            Bit5: WDT控制位。
               0: WDT无效; 1: WDT有效。
            WDTE位仅在代码选项位ENWDT为“1”时才有效。
            5、 使IOCE寄存器SLPC位由1到0,进入SLEEP2

            1.2 WDT唤醒IC in sleep1
            1、 设定CONT寄存器中的bit3(PAB)位,确定是否使用预分频器;
            2、 设定预分频系数,即设定CONT寄存器的PSR2、PSR1、PSR0位,;
            3、  WDTC,使能看门狗定时器(WDT);将IOCE寄存器bit5置1
            4、  下指令SLEP

            二、WDT唤醒时间计算
            1. SETUP TIME:18.0ms±30%(vdd==3v)
                注:当vdd电压变化时SET TIME会相应变化
            2. WDT的唤醒时间
            Crystal MODE RC MODE
            WDT的唤醒时间                Setup time*prescaler+ setup time
            3. 上表中setuptime*prescaler的时间
            对CONT寄存器的后4位
            当PAB==0,setuptime*prescaler== setuptime
            当PAB==1,setuptime*prescaler== NUM*setuptime
            NUM PS2 PS1 PS0
            1 0 0 0
            2 0 0 1
            4 0 1 0
            8 0 1 1
            16 1 0 0
            32 1 0 1
            64 1 1 0
            128 1 1 1

            三、 应用 举例
            以下代码是实现用WDT唤醒EM78P451S的Demo
            Code,Port5.1端口输出脉冲,可用来测量睡眠时间,也可接LED灯来进行观测。
            3.A WDT唤醒IC in sleep2
            Port5    ==      0x05           ; Port5端口
            IOCE     ==      0x0E           ; WDT控制寄存器
            Wdt_buf  ==      0x20           ; 延时缓冲器
                     Num     ==      1
            ;----------------------------MAIN
            PROGRAM------------------------------;
                    ORG     0XFFF
                    JMP     Wdt_Start
                    ORG     0x10
            ;----------------------------------------------------------------------;
            Wdt_Delay:
                    MOV     Wdt_buf, A
            Wdt_Delay_Loop:
                    DJZ     Wdt_buf
                    JMP     Wdt_Delay_Loop
                    RET
            ;----------------------------------------------------------------------;
            Wdt_Start:
                    MOV     A, @0b00000000
                    IOW     Port5              ; 设置Port5口输出
                    BS      Port5, num         ; Port5.1输出脉冲
                    MOV     A, @255            ; 等待(P5.1可接LED灯)
                    CALL    Wdt_Delay
                    BC      Port5, num
            ;----------------------------------------------------------------------;
                    CONTR
                    AND     A, @0b11110000  ; 保留不需要设置的状态位
                    OR      A, @0b00001011  ; 将分频器分配给WDT,预除数设为16
                    CONTW
                    WDTC
                    MOV     A, @0b00110001  ; 打开看门狗,避免进入SLEEP2,禁止
                    IOW     IOCE            ; 禁止引脚唤醒功能

                    IOR     IOCE
                    AND     A, @0b11101111  ; 进入SLEEP2
                    IOW     IOCE
                    NOP
            LOOP:
                    NOP
                    JMP     LOOP
                    END

            3.B WDT唤醒IC in sleep1
            Port5    ==      0x05           ; Port5端口
            IOCE     ==      0x0E           ; WDT控制寄存器
            Wdt_buf  ==      0x20           ; 延时缓冲器
                     Num     ==      1
            ;----------------------------MAIN
            PROGRAM------------------------------;
                    ORG     0XFFF
                    JMP     Wdt_Start
                    ORG     0x10
            ;----------------------------------------------------------------------;
            Wdt_Delay:
                    MOV     Wdt_buf, A
            Wdt_Delay_Loop:
                    DJZ     Wdt_buf
                    JMP     Wdt_Delay_Loop
                    RET
            ;----------------------------------------------------------------------;
            Wdt_Start:
                    MOV     A, @0b00000000
                    IOW     Port5              ; 设置Port5口输出
                    BS      Port5, num         ; Port5.1输出脉冲
                    MOV     A, @255            ; 等待(P5.1可接LED灯)
                    CALL    Wdt_Delay
                    BC      Port5, num
            ;----------------------------------------------------------------------;
                    CONTR
                    AND     A, @0b11110000  ; 保留不需要设置的状态位
                    OR      A, @0b00001011  ; 将分频器分配给WDT,预除数设为16
                    CONTW
                    WDTC
                    MOV     A, @0b00110001  ; 打开看门狗,避免进入SLEEP2,禁止
                    IOW     IOCE           

                    SLEP
                    NOP
            LOOP:
                    NOP
                    JMP     LOOP
                    END

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67