深圳市艾拓微电子科技有限公司PMS15A PMS150C 低价,**型,方案开发、8 位单片机,质量稳定

PMS15A-S08 艾拓微全系列批发销售,现货批发 长期 供应PADAUK(应广) 程序开发
PMS15A使用比较器和 band-gap 参考电压生成器
内部 Band-gap 参考电压生成器可以提供 1.20V,它可以测量外部电源电压水平。该 Band-gap 参考电压
可以选做负输入去和正输入 Vinternal R 比较。Vinternal R 的电源是 VDD,利用调整 Vinternal R 电压水平和 Band-gap 参
考电压比较,就可以知道 VDD 的电压。如果 N(gpcs[3:0]十进制)是让 Vinternal R 接近 1.20V,那么 VDD 的电
压就可以透过下列公式计算:
对于 Case 1 而言:VDD = [ 32 / (N+9) ] * 1.20 volt;
对于 Case 2 而言:VDD = [ 24 / (N+1) ] * 1.20 volt;
对于 Case 3 而言:VDD = [ 40 / (N+9) ] * 1.20 volt;
对于 Case 4 而言:VDD = [ 32 / (N+1) ] * 1.20 volt;
例一:
$ GPCS VDD*12/40; // 4.0V * 12/40 = 1.2V
$ GPCC Enable, BANDGAP, P_R; // BANDGAP 是负输入,P_R 代表正输入是内部参考电压
…
if (GPC_Out) // 或写成 GPCC.6
{ // 当 VDD大于 4V 时
}
else
{ // 当 VDD小于 4V 时
掉电模式 (stopsys)
掉电模式是深度省电的状态,所有的振荡器模块都会被关闭。使用 stopsys 指令就可以使
PMS15A/PMS150C 芯片直接进入掉电模式。在下达 stopsys 指令之前建议将 GPCC.7 设为 0 来关闭比较器。
下面显示发出 stopsys 命令后,PMS15A/PMS150C 内部详细的状态:
所有的振荡器模块被关闭。
OTP 内存被关闭。
SRAM 和寄存器内容保持不变。
唤醒源:设定为数字模式(PxDIER 对应位为 1)的 IO 切换。
输入引脚的唤醒可以被视为正常运行的延续,为了降低功耗,进入掉电模式之前,所有的 I/O 引脚应仔细
检查,避免悬空而漏电。断电参考示例程序如下所示:
CMKMD = 0xF4; // 系统时钟从 IHRC 变为 ILRC,关闭看门狗时钟
CLKMD.4 = 0; // IHRC 停用
…
while (1)
{
STOPSYS; // 进入断电模式
if (…) break; // 假如发生唤醒而且检查 OK, 就返回正常工作
// 否则,停留在断电模式。
}
CLKMD = 0x34; // 系统时钟从 ILRC 变为 IHRC/2
应广单片机 PMS15A PMS150C 一级代理 现货批发 长期供应 全系列供应PMS150

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 // *三个参数
-/gbachae/-
http://atw2014.cn.b2b168.com