找回密码
 立即注册

微信扫码登录

查看: 1034|回复: 2

[PM] 系统进入deep sleep(no retention) 如何清除 32k rc counter?

[复制链接]

4

主题

2

回帖

42

积分

英勇黄铜

积分
42
发表于 2025-4-8 11:35:45 | 显示全部楼层 |阅读模式 来自 四川
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8258
驱动SDK版本: tc_ble_sdk-V4.0.2.0
tlsr 8258 的 system timer  所能计数的时长只有200多秒。

现在只能另辟蹊径让系统可以 睡眠更长时间,并做一些时间 补偿。

遇到一个麻烦的事情是:
已配置32k clock source为 32k rc.    系统提供了 pm_get_32k_tick(void) 来获取32k rc 的 counter计数值.
但没有提供 如何 clean /reset 该 32k counter 的API.   

我 直接 通过如下方式做32k rc power off->on , 未能达到目的
(参考 8258 datasheet中有 0x5 analog register描述, 其bit 0,1分别控制32k xtal, 32k rc power down/up)

analog_write(0x05, power_32k|0x3);//32k xtal,32k rc power down
sleep_ms(10);
analog_write(0x05, power_32k|0x2);//32k rc power up


所以请教  8258 datasheet 中有无哪个寄存器 计数此 32k rc counter (我自己没有找到),   或有什么方式可以  重置该 counter?
(除了cold boot冷开机的方式哈)

26

主题

31

回帖

160

积分

版主

积分
160
发表于 2025-7-11 16:50:54 | 显示全部楼层 来自 上海
本帖最后由 TL_LBY 于 2025-7-11 16:54 编辑

您好! 首先我们有长睡眠函数,可以让睡眠时间更长一些。32k rc一般是不清0的(跟我们芯片设计同事确认也清不了的),可以通过两个时刻的count值做减法来计算睡眠时间。

26

主题

31

回帖

160

积分

版主

积分
160
发表于 2025-7-11 17:04:46 | 显示全部楼层 来自 上海
TL_LBY 发表于 2025-7-11 16:50
您好! 首先我们有长睡眠函数,可以让睡眠时间更长一些。32k rc一般是不清0的(跟我们芯片设计同事确认也清 ...

reboot可以清32k counter的tick
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telink forum ( 沪ICP备17008231号-1 )

GMT+8, 2025-7-19 19:55 , Processed in 0.090688 second(s), 20 queries .

Powered by Telink 隐私政策

泰凌微电子版权所有 © 。保留所有权利。 2024

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