我使用PMS150C构建了一个简单的闪烁自行车灯
这是一个简单的项目,使用触觉按钮开关来打开或关闭闪烁的LED,可能用作自行车灯。
自行车灯
虽然许多人可能会使用滑动开关和555定时器来实施此项目,但此实施的BOM行数要少得多,而且BOM成本也要低得多。
在上面的GIF中,我闪烁了一个LED,但是,MCU将使端口A上的所有引脚都闪烁相同—在SOT23-6器件上,
您最多可以使用3个LED,而SO-8封装将闪烁最多3个LED。5个LED。
该项目主要是为了对应广部件的睡眠功率模式进行实际测试而设计的。在睡眠模式下,当采用3.3V电源供电时,PMS150C仅消耗350nA的电流。
考虑到这包括来自用于按钮的GPIO输入引脚上的内部上拉的漏电流,这是相当令人印象深刻的。
CR2032电池可以在睡眠模式下为这个东西供电10-15年——限制因素是电池本身的自放电。
PMS150C电气功能介绍
通用OTP系列
不建议使用于AC阻容降压供电或有高EFT要求之应用
工作温度范围:-40°C~85°C
系统特性
1.1KWOTP程序储存器
2.64Bytes数据储存器
3.一个16位定时器
4.一个8位定时器(可做为PWM产生器)
5.一个通用比较器
6.快速唤醒功能
7.每个IO引脚都可设定唤醒功能
8.六个带上拉电阻IO引脚,且输出时具有可选的电流驱动能力
9.时钟源:内部高频震荡器,内部低频震荡器
10.八段LVR可选
11.一个外部中断引脚
CPU特性
1.单一处理单元工作模式
2.提供79个有效指令
3.1T(单周期)指令
4.可程序设定的堆栈指针和堆栈深度
5.数据存取支持直接和间接寻址模式,用数据存储器即可当作间接寻址模式的数据指针(indexpointer)
6.独立的IO地址以及储存地址空间
使用者在使用PMS15A/PMS150C时避免一些常犯的错误
IO使用与设定
(1)IO作为数字输入时
IO作为数字输入时,Vih与Vil的准位,会随着电压与温度变化,请遵守Vih的最小值,Vil的最大值规范。
内部上拉电阻值将随着电压、温度与引脚电压而变动,并非为固定值。
(2)IO作为数字输入和打开唤醒功能
将IO设为输入。
用PADIER寄存器,将对应的位设为1。
为了防止PA中那些没有用到的IO口漏电,PADIER[1:2]需要常设为0。
(3)PA5作为输出
PA5只能做OpenDrain输出,输出高需要外加上拉电阻。
(4)PA5作为PRSTB输入
设定PA5为输入。
设定CLKMD.0=1,使PA5为外部PRSTB输入脚位。
(5)PA5作为输入并通过长导线连接至按键或者开关
必需在PA5与长导线中间串接>33欧电阻。
应尽量避免使用PA5作为输入。
中断
(1)使用中断功能的一般步骤如下:
步骤1:设定INTEN寄存器,开启需要的中断的控制位。
步骤2:清除INTRQ寄存器。
步骤3:主程序中,使用ENGINT指令允许CPU的中断功能。
步骤4:等待中断。中断发生后,跳入中断子程序。
步骤5:当中断子程序执行完毕,返回主程序。
*在主程序中,可使用DISGINT指令关闭所有中断。
*跳入中断子程序处理时,可使用PUSHAF指令来保存ALU和FLAG寄存器数据,并在RETI
之前,使用POPAF指令复原。一般步骤如下:
voidInterrupt(void)//中断发生后,跳入中断子程序,
{//自动进入DISGINT的状态,CPU不会再接受中断
PUSHAF;
POPAF;
}//
系统自动填入RETI,直到执行RETI完毕才自动恢复到ENGINT的状态
(2)INTEN,INTRQ没有初始值,所以要使用中断前,一定要根据需要设定数值。
切换系统时钟
利用CLKMD寄存器可切换系统时钟源。但必须注意,不可在切换系统时钟源的同时把原时钟源关闭。例如:
从A时钟源切换到B时钟源时,应该先用CLKMD寄存器切换系统时钟源,然后再透过CLKMD寄存器关闭A
时钟源振荡器。
例:系统时钟从ILRC切换到IHRC/2
.CLKMD=0x36;//切到IHRC,但ILRC不要停用。
CLKMD.2=0;//此时才可关闭ILRC。
错误的写法:ILRC切换到IHRC,同时关闭ILRC
.CLKMD=0x50;//MCU会当机。
掉电模式、唤醒以及看门狗
当ILRC关闭时,看门狗也会失效。
TIMER16溢出时间
当设定$INTEGSBIT_R时(这是IC默认值),且设定T16M计数器BIT8产生中断,若T16计数从0开
始,则第一次中断是在计数到0x100时发生(BIT8从0到1),第二次中断在计数到0x300时发生(BIT8从0
到1)。所以设定BIT8是计数512次才中断。请注意,如果在中断中重新给T16M计数器设值,则下一次中断也
将在BIT8从0变1时发生。如果设定$INTEGSBIT_F(BIT从1到0触发)而且设定T16M计数器BIT8产生中断,则T16计数改
为每次数到0x200/0x400/0x600/…时发生中断。两种设定INTEGS的方法各有好处,也请注意其中差异。
IHRC
(1)当IC在烧录器烧录时,会校准IHRC频率。
(2)由于EMC的特性或者在IC封装或COB时,会不同程度影响IHRC频率。如果频率校准在IC封塑之前已
经完成,那么实际的IHRC频率会在IC封塑之后有可能出现偏差或者超出规格指标。通常情况下该频率会
稍稍变慢。
(3)通常在COB封胶或QTP时会发生如上描述的情况,应广科技不负任何责任。
(4)用户可以根据使用经验来做频率补偿,例如,用户可以在使用时调高IHRC频率约0.5%~1%,以便得到比
IC封塑之后更好的IHRC频率。