找回密码
 立即注册
查看: 112|回复: 6

关于TSWUTC值越小,就越干扰其他中断唤醒的问题

[复制链接]
  • TA的每日心情
    开心
    2024-4-27 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    31

    回帖

    115

    积分

    注册会员

    积分
    115
    发表于 2024-5-18 17:18:19 | 显示全部楼层 |阅读模式

      单片机型号: STC8H4K64TL


      固件版本号: 7.4.3U


      硬件电路:触摸按键 + 外部32.768晶振驱动RTC + 低功耗深度休眠  + IO口P51中断;

      休眠进入条件:按键连续30秒空闲;


      休眠唤醒条件:触摸按键唤醒、RTC闹钟唤醒、P51中断唤醒;

      问题现象:当把TSWUTC设置的比较小例如1时,则出现概率性RTC唤醒失败、P51中断唤醒失败,而触摸则每次都能唤醒成功。如果把值改大例如255,出现问题的概率会大大降低,但无法确认是否百分百解决;


      此问题历史回顾:
      1、首帖:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7504,结论:排除IRCDB的影响;
      2、二贴:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7929,结论:排除TSWAIT的影响,把TSWUTC改大只是降低问题出现的概率;


    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-27 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    31

    回帖

    115

    积分

    注册会员

    积分
    115
     楼主| 发表于 2024-5-18 17:26:27 | 显示全部楼层
    图片是RTC唤醒失败的场景
    截图202405181725587121.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-27 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    31

    回帖

    115

    积分

    注册会员

    积分
    115
     楼主| 发表于 2024-5-18 17:27:13 | 显示全部楼层
    miaoyahan 发表于 2024-5-18 17:26
    图片是RTC唤醒失败的场景

    正常应该是要17:24:00唤醒的,但实际没有醒来
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-27 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    31

    回帖

    115

    积分

    注册会员

    积分
    115
     楼主| 发表于 2024-5-19 15:35:13 | 显示全部楼层
    测试代码是在
    https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4628
    基础上修改而来的,

    具体测试思路是:

    1、只保留触摸唤醒、RTC秒针唤醒、uart1接收唤醒,其他唤醒全部关掉主要避免其他干扰;

    2、设置最小值TSWUTC=1来测试,触摸唤醒对RTC唤醒的干扰程度,通过现象寻找TSWUTC取值方法;

    3、程序首次启动,打印“STC8H4K64TLR 触摸按键测试程序”,用来判断设备是否重启;

    4、而后进入休眠状态;

    5、因为设置了RTC的秒中断,所以会每秒钟唤醒一次,同时串口打印当前rtc时间;

    6、期间也可以通过触摸按键的方式进行唤醒;

    通过以上逻辑,实测后发现当TSWUTC=1时,程序首次启动RTC就无法唤醒休眠,如果此时用触摸按键唤醒后可能RTC会正常唤醒一段时间,但最后仍然是有唤醒失败的概率。

    现在有个最大的疑惑就是:如何准确的来确定TSWUTC这个值,从而保证RTC百分百可以唤醒?  而官方手册中只写了频率太快会引起进入休眠失败,但没写具体的取值方法。

    启动后rtc唤醒失败,而触摸可以唤醒

    启动后rtc唤醒失败,而触摸可以唤醒

    手册中没写唤醒频率的值如何准确计算的方式

    手册中没写唤醒频率的值如何准确计算的方式

    修改TSWUTC的代码地方

    修改TSWUTC的代码地方

    STC8H4K64Txx-触摸按键校验检测例程-低功耗-外部唤醒-TSWUTC.rar

    483.57 KB, 下载次数: 5

    在例程基础上修改的测试固件

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-27 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    31

    回帖

    115

    积分

    注册会员

    积分
    115
     楼主| 发表于 2024-5-27 09:34:40 | 显示全部楼层
    问题彻底结案,原因为:
    在低功耗模式下,芯片内部的触摸按键唤醒模块
    周期性的把系统时钟由"停振状态"改为"振荡状态",
    而其他中断唤醒的前提条件"停振状态",如果在改变振荡状态期间,
    正好发生了RTC中断会导致唤醒失败。


    解决方案只能是牺牲功耗使用专门低功耗定时器循环唤醒来规避这个问题。
    回复 支持 1 反对 0 送花

    使用道具 举报

  • TA的每日心情
    无聊
    8 小时前
  • 签到天数: 171 天

    [LV.7]常住居民III

    22

    主题

    1256

    回帖

    3068

    积分

    论坛元老

    积分
    3068
    发表于 2024-5-27 09:41:52 | 显示全部楼层
    miaoyahan 发表于 2024-5-27 09:34
    问题彻底结案,原因为:在低功耗模式下,芯片内部的触摸按键唤醒模块,会周期性的把系统时钟由"停振状态"改 ...

    那也就是说 在使用触摸按键的单片机低功耗时就不能使用定时唤醒  是这个意思么0.0
    参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
    技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-27 10:34
  • 签到天数: 1 天

    [LV.1]初来乍到

    5

    主题

    31

    回帖

    115

    积分

    注册会员

    积分
    115
     楼主| 发表于 7 天前 | 显示全部楼层
    _奶咖君_ 发表于 2024-5-27 09:41
    那也就是说 在使用触摸按键的单片机低功耗时就不能使用定时唤醒  是这个意思么0.0 ...

    如果只是触摸唤醒那不用管,如果是:触摸唤醒 + 其他唤醒,就一定需要打开低功耗定时唤醒,否则其他唤醒源可能出现唤醒失败的情况。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-18 15:04 , Processed in 0.088947 second(s), 55 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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