找回密码
 立即注册
查看: 937|回复: 23

触摸按键唤醒,1uA/1个键/1秒唤醒,STC触摸MCU, 唤醒【主时钟停振/省电模式】

[复制链接]

该用户从未签到

46

主题

2923

回帖

6575

积分

超级版主

积分
6575
发表于 2023-11-23 09:52:53 | 显示全部楼层 |阅读模式
触摸按键唤醒,1uA/1个键/1秒唤醒
===STC8H4K64TLCD触摸MCU, 唤醒【主时钟停振/省电模式
===STC8H4K64TL触摸MCU, 唤醒【主时钟停振/省电模式
===STC8H1K08T触摸MCU, 唤醒【主时钟停振/省电模式
触摸按键1秒唤醒一次, 1uA/一个键 + 2.4uA/32K振荡器需要电流,16个键<20uA
====增加1个键就是增加约1个uA
           1个键参与唤醒就是:      3.4uA = 2.4uA
/32K振荡器需要电流 + 1uA/一个键
           2个按键参与唤醒就是:【2.4uA+1uA * 2】= 4.4uA
           3个按键参与唤醒就是:
【2.4uA+1uA * 3】= 5.4uA
           4个按键参与唤醒就是:
【2.4uA+1uA * 4】= 6.4uA
           5个按键参与唤醒就是:
【2.4uA+1uA * 5】= 7.4uA
           ......
           16个按键参与唤醒就是:【2.4uA+1uA*16】= 18.4uA <=20uA

====如果2秒唤醒一次,电流再减半

STC的触摸按键是比较省电的,MCU进入睡眠后,主时钟关闭,自动启动内部的32KHz时钟,按设定的时间间隔扫描按键,
扫描结果自动比较阈值,超过阈值的键就会唤醒MCU。

MCU睡眠后,32KHz时钟启动,睡眠电流典型值2.4uA。例子为一秒检测一次按键。
如果允许检测16个按键,则每隔一秒自动检测一次所有16个触摸按键,任意一个触摸按键超过阈值均能唤醒MCU,
触摸的时间最长为1秒即可唤醒。

本例程序运行于24MHz,16键唤醒,睡眠时间967ms,睡眠电流为2.4uA左右@4V(一节锂电池),
检测触摸耗时16ms(每个按键1ms),电流1.1mA,则平均电流 = 2.4+1100*16/1000=20uA。
如果只允许一个按键,则检测一个按键时间为1ms,平均电流 = 2.4+1100*1/1000=3.5uA。

所以N个键唤醒,睡眠平均电流 = 2.4 + 1.1*N,单位uA。

STC8H系列-触摸按键相关程序.rar (295.49 KB, 下载次数: 83)





回复 送花

使用道具 举报

该用户从未签到

550

主题

9235

回帖

1万

积分

管理员

积分
13946
发表于 2023-11-23 10:22:00 | 显示全部楼层
STC8H系列 1T 8051中文数据手册更新
截图202311231023456912.jpg
www.stcai.com

辅助开发软件下载
截图202311231024391374.jpg
www.stcai.com/gjrj

回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    20 小时前
  • 签到天数: 65 天

    [LV.6]常住居民II

    5

    主题

    39

    回帖

    456

    积分

    中级会员

    积分
    456
    发表于 2023-12-9 15:14:37 | 显示全部楼层
    请问楼主,你的程序中:u16 code T_KeyPress[16]={ 1300,2000,900, 800, 900,1000,1100,1400,1000,1200,900,1200,750,900,1300,1800};        //触摸后的变化值

    是实际测量值吗?这个数据是每一个单片机都一样吗?

    截图202312091514161218.jpg

    点评

    这个表格是我的样板的实际测量值。 这个值会根据你的产品很大的不同,但是相同的产品的差异性就相对较小。 实际做产品时,装好一些样机(比如10~100个),测量各个样机的值,分析其一致性和偏差,获得一个平均值,代  详情 回复 发表于 2023-12-9 15:56
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2923

    回帖

    6575

    积分

    超级版主

    积分
    6575
     楼主| 发表于 2023-12-9 15:56:26 | 显示全部楼层
    hhh402 发表于 2023-12-9 15:14
    请问楼主,你的程序中:u16 code T_KeyPress[16]={ 1300,2000,900, 800, 900,1000,1100,1400,1000,1200,900 ...

    这个表格是我的样板的实际测量值。
    这个值会根据你的产品很大的不同,但是相同的产品的差异性就相对较小。
    实际做产品时,装好一些样机(比如10~100个),测量各个样机的值,分析其一致性和偏差,获得一个平均值,代表整批产品的值。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    20 小时前
  • 签到天数: 65 天

    [LV.6]常住居民II

    5

    主题

    39

    回帖

    456

    积分

    中级会员

    积分
    456
    发表于 2023-12-9 16:27:54 | 显示全部楼层
    谢谢梁工,根据偏差值占5%左右计算,按键未按下时数值大概20000左右吧,加上电容放电5000周期,24M主频,时间=(20000+5000)/24M=1042us,也就是说扫描一个按键大概需要1ms,对吗?

    点评

    扫键时间是初始化时设置的,跟读数没有直接关系。  详情 回复 发表于 2023-12-9 17:45
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2923

    回帖

    6575

    积分

    超级版主

    积分
    6575
     楼主| 发表于 2023-12-9 17:45:17 | 显示全部楼层
    hhh402 发表于 2023-12-9 16:27
    谢谢梁工,根据偏差值占5%左右计算,按键未按下时数值大概20000左右吧,加上电容放电5000周期,24M主频,时 ...

    扫键时间是初始化时设置的,跟读数没有直接关系。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    20 小时前
  • 签到天数: 65 天

    [LV.6]常住居民II

    5

    主题

    39

    回帖

    456

    积分

    中级会员

    积分
    456
    发表于 2023-12-9 18:05:28 | 显示全部楼层
    请问梁工按照你的程序的设置,扫描一个触摸按键需要多少时间,怎么设置可以快一点?

    点评

    我设置的是1ms,不要设置太快,1m是很合适的时间。  详情 回复 发表于 2023-12-10 00:16
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2923

    回帖

    6575

    积分

    超级版主

    积分
    6575
     楼主| 发表于 2023-12-10 00:16:29 | 显示全部楼层
    hhh402 发表于 2023-12-9 18:05
    请问梁工按照你的程序的设置,扫描一个触摸按键需要多少时间,怎么设置可以快一点? ...

    我设置的是1ms,不要设置太快,1m是很合适的时间。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-30 00:51
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    0

    主题

    44

    回帖

    138

    积分

    注册会员

    积分
    138
    发表于 2023-12-12 10:19:42 来自手机 | 显示全部楼层
    👍
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    13 小时前
  • 签到天数: 134 天

    [LV.7]常住居民III

    17

    主题

    62

    回帖

    323

    积分

    中级会员

    积分
    323
    发表于 2023-12-16 08:27:07 | 显示全部楼层
    梁工,您好,这里1秒的扫描时间在实际产品开发中可能太久了点,就我个人开发的经验,产品进入省电后,一般长按1S或1.5S或3S等时间开机唤醒,如果刚好在扫描的时候按下,计时准确,如果刚好在扫描完后按下,则计时误差较大(要等待下个扫描时间1S),如果是短按唤醒,则误差更大,客户会不接收。
    如果把扫描时间改短,比如100MS,那么误差会变小,如果是短按唤醒的话扫描时间要更短。这样的话耗电会变大。
    所以这里还是要看看怎么优化的,把扫描时间1MS降低(通过设置充放电时间,参考电压?)

    点评

    看不懂你的描述:“1秒的扫描时间在实际产品开发中可能太久了点,就我个人开发的经验,产品进入省电后,一般长按1S或1.5S或3S等时间开机唤醒”。 这个说法不矛盾吗? 我1秒唤醒你都觉得久了点,但又说你是1,5秒或3秒  详情 回复 发表于 2023-12-16 17:34
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-4-29 21:42 , Processed in 0.072902 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表