关于睡眠唤醒实现开机功能

最近被一个睡眠唤醒的问题烦躁了很久,特此记录下来供参考生气

此芯片为51内核的,因为有RTC功能,所以不能使用断电来实现关机,只能通过进入睡眠状态来实现关机,开机使用睡眠唤醒。

遇到2个问题:

1,睡眠唤醒执行的程序位置

2,睡眠唤醒需要有按键唤醒,闹钟唤醒,插USB唤醒

 

问题1

          开始咨询的时候,代理商告诉唤醒的位置为进入睡眠后的下一行代码,测试总是出现一些奇怪的现象,要按很久才能进入开机。

最终发现睡眠唤醒的位置为重头执行,即main函数重新开始执行

 

问题2

          有4个IO可用来设置为睡眠的唤醒IO,拉高唤醒脚就可以实现睡眠唤醒。将唤醒脚和开关按键连到一起,就可以实现按键唤醒的功能。

          RTC唤醒为系统内置的,这里不做说明,需要特殊处理的就是开机后要判断闹钟的标志,确认是否是闹钟开机。

          USB唤醒:

                           1) 刚开始的时候与唤醒IO连接,可以唤醒。但是开机后,唤醒IO还要实现关机按键功能,如果与USB连接就会不停发关机消息

                           2) 检测USB检测脚,如果有USB连接就屏蔽关机消息。但是按键长按实现关机功能,短按却有其他功能

                           3) 有4个IO可以用来做唤醒脚,用一个IO做按键唤醒,另外一个IO做USB唤醒。但是经过测量发现,USB连到另外唤醒脚上,也会导致按键使用的唤醒IO拉高,芯片内部将4个IO是连通的

                           4)芯片除了用IO控制唤醒外,还有另外一个WAKEUP脚不用软件设置直接拉高也能唤醒。使用这个脚做USB唤醒,测试发现可行。

                           5) 测试的时候发现连适配器的USB(即充电用的火牛)可以唤醒,但是连PC的USB却无法唤醒,量的时候发现2种情况下电流不一样大,适配器的电压一般是5V,而电脑一般是4点几,所以要把电阻调的适合2种USB才可以。

 

 

(关于无RTC的关机,芯片上电就会从main开始执行,开关按键和USB都是执行上电的动作。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值