PMS15A/PMS150C 有三个由硬件定义的操作模式,分别为:正常工作模式,电源省电模式和掉电模式。
正常工作模式是所有功能都正常运行的状态,省电模式(stopexe)是在降低工作电流而且 CPU 保持在随时可以继
续工作的状态,掉电模式(stopsys)是用来深度的节省电力。因此,省电模式适合在偶尔需要唤醒的系统工作,
掉电模式是在非常低消耗功率且很少需要唤醒的系统中使用。表 3 显示省电模式(stopexe)和掉电模式(stopsys)
之间在振荡器模块的差异,没改变就是维持原状态。
STOPSYS 和 STOPEXE 模式下在振荡器的差异
IHRC ILRC
STOPSYS 停止 停止
STOPEXE 没改变 没改变
表 3:省电模式和掉电模式在振荡器模块的差异
5.10.1. 省电模式 (stopexe)
使用 stopexe 指令进入省电模式,只有系统时钟被停用,其余所有的振荡器模块都仍继续工作。所以只有
CPU 是停止执行指令,然而,对 Timer16 计数器而言,如果它的时钟源不是系统时钟,那 Timer16 仍然会保持
计数。stopexe 的省电模式下,唤醒源可以是 IO 的切换,或者 Timer16 计数到设定值时(假如 Timer16 的时钟
源是 IHRC/ILRC),或比较器唤醒(需同时设定 GPCC.7 为 1 与 GPCS.6 为 1 来启用比较器唤醒功能)。系
统唤醒后,单片机将继续正常的运行,省电模式的详细信息如下所示:
? IHRC 振荡器模块:没有变化。如果它被启用,它仍然继续保持工作。
? ILRC 振荡器模块:必须保持启用,唤醒时需要靠 ILRC 启动。
? 系统时钟停用。因此,CPU 停止执行。
? OTP 内存被关闭。
? Timer16, Timer2,:如果时钟源选择系统时钟或相应的振荡器模块被停止,则停止计数,否则,仍然保
持计数。
? 唤醒来源:设定为数字模式(PxDIER 对应位为 1)的 IO 切换或 Timer16 或 Timer2,或比较器唤醒。
请注意在下“stopexe”命令前,必须先关闭看门狗时钟以避免发生复位,例子如下:
CLKMD.En_WatchDog = 0; // 关闭看门狗时钟
stopexe;
…. // 省电中
Wdreset;
CLKMD.En_WatchDog = 1; // 开启看门狗时钟
16 位定时器 (Timer16)
PMS15A/PMS150C 内置一个 16 位硬件定时器,定时器时钟可来自于系统时钟(CLK)、内部高频振荡时钟
(IHRC)、内部低频振荡时钟(ILRC)或 PA0/PA4,在送到时钟的 16 位计数器(counter16)之前,1 个可软件编程的预
分频器提供÷1、÷4、÷16、÷64 选择,让计数范围较大。16 位计数器只能向上计数,计数器初始值可以使用 stt16
指令来设定,而计数器的数值也可以利用 ldt16 指令存储到 SRAM 数据存储器。可软件编程的选择器用于选择
Timer16 的中断条件,当计数器溢出时,Timer16 可以触发中断。中断源是来自 16 位定时器的位 8 到位 15,中断
类型可以上升沿触发或下降沿触发,是经由寄存器 integs.4 选择。Timer16 模块框图如图 8。
图 8:Timer16 模块框图
使用 Timer16 时,Timer16 的语法定义在.inc 文件中。共有三个参数来定义 Timer16 的使用,个参数是用
来定义 Timer16 的时钟源,*二个参数是用来定义预分频器,*三个参数是确定中断源。
T16M IO_RW 0x06
$ 7~5: STOP, SYSCLK, X, PA4_F, IHRC, X, ILRC, PA0_F // 个参数
$ 4~3: /1, /4, /16, /64 // *二个参数
$ 2~0: BIT8, BIT9, BIT10, BIT11, BIT12, BIT13, BIT14, BIT15 // *三个参数
中断
PMS15A/PMS150C 有四个中断源:
1. 外部中断源 PA0 2. GPC 中断源
3. Timer16 中断源
4. Timer2 中断源
每个中断请求源都有自己的中断控制位启用或停用它。硬件框图请参考图 12,所有的中断请求标志位是由硬件
置位并且并通过软件写寄存器 intrq 清零。中断请求标志设置点可以是上升沿或下降沿或两者兼而有之,这取决于对
寄存器 integs 的设置。所有的中断请求源后都需由 engint 指令控制(启用全局中断)使中断运行,以及使用 disgint
指令(停用全局中断)停用它。中断堆栈是共享数据存储器,其地址由堆栈寄存器 sp *。由于程序计数器是 16
位宽度,堆栈寄存器 sp 位 0 应保持 0。此外,用户可以使用 pushaf 指令存储 ACC 和标志寄存器的值到堆栈,以
及使用 popaf 指令将值从堆栈恢复到 ACC 和标志寄存器中。
由于堆栈与数据存储器共享,在 Mini-C 模式,堆栈位置与深度由编译程序安排。在汇编模式或自行定义堆栈深
度时,用户应仔细安排位置,以防地址冲突。
图 12:中断硬件框图
一旦发生中断,工作流程是:
? 程序计数器将自动存储到 sp 寄存器*的堆栈内存。
? 新的 sp 将被较新为 sp+2。
? 全局中断将自动被停用。
? 将从地址 0x010 获取下一条指令。
艾拓微大量批发PMS15A,PMS15A是应广继PMS150C之后推出的一款单价较低的8脚纯IO IC,
深圳市艾拓微电子科技有限公司是一家以单片机应用为**的整体方案合作商,同时也是闽台应广科技的正式授权代理商。经营的型号:PMC153,PMC156,PMC251,PMS150,PMS153,PMS156,PMS271,PMS130,PMS131,PMS232,PMS234,PMC156,PMC251,pdk82c12,PMC150,PMC271,PMS132,PMS134,PMS154B等型号,同时代理国内外各大品牌产品。产品覆盖:DC-DC升压IC/降压IC、锂电充电/保护IC、快充/识别IC、type-c-IC、MOS场效应管、LDO稳压IC、MCU、LED驱动IC、触摸IC、AC-DC、电感、FLASH、蓝牙IC等。欢迎来电!唐先生:1562*6510*025 Q:290*804*8741