找回密码
 立即注册
查看: 1137|回复: 9

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-27 10:34:46

5

主题

31

回帖

207

积分

中级会员

积分
207
发表于 2024-5-18 17:18:19 | 显示全部楼层 |阅读模式
单片机型号: STC8H4K64TL,  固件版本号: 7.4.3U
硬件电路:触摸按键 + 外部32.768晶振驱动RTC + 低功耗深度休眠  + I/O口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改大只是降低问题出现的概率;



本帖被以下淘专辑推荐:

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-27 10:34:46

5

主题

31

回帖

207

积分

中级会员

积分
207
发表于 2024-5-18 17:26:27 | 显示全部楼层
图片是RTC唤醒失败的场景
截图202405181725587121.jpg

点评

占楼淘理由:楼主这里测试 带有触摸功能的单片机在使用触摸唤醒+其他方式唤醒的场景下,会导致其他方式唤醒有概率失败。原因在5#楼  发表于 2024-7-18 17:19
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-27 10:34:46

5

主题

31

回帖

207

积分

中级会员

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

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-27 10:34:46

5

主题

31

回帖

207

积分

中级会员

积分
207
发表于 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, 下载次数: 91

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

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-27 10:34:46

5

主题

31

回帖

207

积分

中级会员

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


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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

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

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-27 10:34:46

5

主题

31

回帖

207

积分

中级会员

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

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

使用道具 举报 送花

46

主题

108

回帖

604

积分

高级会员

积分
604
发表于 2024-7-14 01:46:21 | 显示全部楼层
miaoy*** 发表于 2024-6-11 09:57
如果只是触摸唤醒那不用管,如果是:触摸唤醒 + 其他唤醒,就一定需要打开低功耗定时唤醒,否则其他唤醒 ...

你说的功耗定时唤醒,是不是掉电唤醒定时器?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:395
  • 最近打卡:2025-05-02 05:31:55

16

主题

702

回帖

2474

积分

金牌会员

积分
2474
发表于 2024-7-18 16:38:18 | 显示全部楼层
sky*** 发表于 2024-7-14 01:46
你说的功耗定时唤醒,是不是掉电唤醒定时器?

楼主的结论就是掉电唤醒定时器
截图202407181638136138.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 06:38 , Processed in 0.131651 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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