找回密码
 立即注册
查看: 44|回复: 10

关于32G12K128的低功耗设计

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-07-07 14:45:36
已绑定手机

4

主题

7

回帖

66

积分

注册会员

积分
66
发表于 昨天 14:45 | 显示全部楼层 |阅读模式
我用AiCube生成的工程,内部IRC为24MHz,Timer0设了100ms的中断,根据9.2.2加上了IRCDB=0x10,顺便请教一下,在IRC=24MHz时,这个IRCDB需不需要配置?
然后我仿照9.5.6例程写了一个PD=1,烧程序测试发现掉电模式确实进了,但是timer0中断在MCU进入掉电模式后就直接被关闭了,不起作用。

于是我又仿照9.5.9例程配置了掉电唤醒定时器,时间也是100ms,观察电流确实每100ms有一次明显的波动,然而timer0中断在唤醒的时候依然没有开起来,我用IDL=1,定时器应该没被关掉所以就工作正常,但是5mA电流太大了,不符合项目的低功耗需求。

我这个项目的需求是定时主动唤醒MCU去检测相应外部负载,功耗只要在uA级都可以接收,之前用的另一款芯片唤醒定时器带有中断,STC32G这款芯片我翻了下手册好像没有找到唤醒定时器相关的中断,想请教一下各位老师有没有什么好的办法?

45e81568b4a46e7f1e876950ca7721d.png

while循环里面有PD=1所以初始化里面注释掉了


631ea2dd8fec226d514e12f0a83d3bf.png

AiCube自动生成的定时器0初始化函数

c5a673510127dab455a9e993d5e7ed2.png

AiCube的定时器0配置,基本上都是默认


2805654d29dbee9fd112cc005a5e236.png

定时器0中断里的代码

回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-07-07 14:45:36
已绑定手机

4

主题

7

回帖

66

积分

注册会员

积分
66
发表于 昨天 15:01 | 显示全部楼层
国芯人*** 发表于 2025-7-7 14:48
关于您在使用STC32G12K128芯片时遇到的低功耗设计问题,以下为专业分析与建议:

首先,针对“IRCDB=0x10” ...

977fed20f4c22343fd17676bd5ec430.png

根据AI的回复,在主循环里重新开启定时器0,烧程序发现还是没有起作用

977fed20f4c22343fd17676bd5ec430.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:490
  • 最近打卡:2025-07-08 07:54:58
已绑定手机

81

主题

5315

回帖

9551

积分

超级版主

DebugLab

积分
9551
发表于 昨天 15:03 | 显示全部楼层
初始化:
void main(void)
{
EAXFR=1
IAP_TPS=**
IRCDB=16
……
设置IRCDB放在这里,中途不要有其他操作
PD状态定时器中断仍然有效,但PD状态定时器无时钟,停止计数,所以无法唤醒
掉电唤醒用掉电唤醒专用定时器,使用内部32K时钟,低功耗
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-07-07 14:45:36
已绑定手机

4

主题

7

回帖

66

积分

注册会员

积分
66
发表于 昨天 15:10 | 显示全部楼层
Debu*** 发表于 2025-7-7 15:03
初始化:
void main(void)
{

1、IRCDB我确实放在了while前面初始化流程里。
2、那么意思就是手册里的9.5.6例程依然依赖于外部的中断输入?无法做到内部唤醒?
3、是的,确实进入低功耗,也从电流波形上观察到了唤醒,根据第二点,PD状态定时器不计数,因此我需要将定时器0中断里的代码移到一个可以在PD模式工作的中断中,那么掉电唤醒专用定时器有中断吗?

点评

掉电唤醒定时器无中断,唤醒后从原来PD的地方继续运行 PD状态主时钟停振,所有依赖主时钟的外设均不可用 RTC使用外部32768晶振可继续工作,32768晶振的两个IO要设置为高阻并关闭数字输入  详情 回复 发表于 昨天 17:07
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:121
  • 最近打卡:2025-07-08 07:45:36

751

主题

1万

回帖

1万

积分

管理员

积分
17652
发表于 昨天 15:32 | 显示全部楼层
内部专用掉电唤醒定时器是无中断产生的;
可以用 1.5uA的 RTC 来唤醒,这个可以产生中断



截图202507071540461334.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-07-07 14:45:36
已绑定手机

4

主题

7

回帖

66

积分

注册会员

积分
66
发表于 昨天 15:51 | 显示全部楼层
神*** 发表于 2025-7-7 15:32
内部专用掉电唤醒定时器是无中断产生的;
可以用 1.5uA的 RTC 来唤醒,这个可以产生中断

关于内部RTC,我有个疑问,手册上说PD模式会关闭外设,那我在PD模式的时候,RTC是不是不会计时?

点评

你编的吧,省电模式:主时钟停振  详情 回复 发表于 昨天 16:27
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:121
  • 最近打卡:2025-07-08 07:45:36

751

主题

1万

回帖

1万

积分

管理员

积分
17652
发表于 昨天 16:27 | 显示全部楼层
Greek*** 发表于 2025-7-7 15:51
关于内部RTC,我有个疑问,手册上说PD模式会关闭外设,那我在PD模式的时候,RTC是不是不会计时? ...

你编的吧,省电模式:主时钟停振
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-07-07 14:45:36
已绑定手机

4

主题

7

回帖

66

积分

注册会员

积分
66
发表于 昨天 16:44 | 显示全部楼层
神*** 发表于 2025-7-7 16:27
你编的吧,省电模式:主时钟停振

e96a23f9fde5a8a45d000813943cb01.png
???我没事编这种东西干嘛,手册9.2.1上都直接写了

点评

省电模式/主时钟停振模式,俗称掉电模式: 仅主时钟停止振荡,无法获得工作时钟的 CPU/大部分功能模块, 无法继续工作,耗电的这部分工作暂停后,MCU进入低功耗状态。 RTC如选择的是外部32768RTC晶振,RTC 会继续正  详情 回复 发表于 昨天 16:55
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:121
  • 最近打卡:2025-07-08 07:45:36

751

主题

1万

回帖

1万

积分

管理员

积分
17652
发表于 昨天 16:55 | 显示全部楼层
Greek*** 发表于 2025-7-7 16:44
???我没事编这种东西干嘛,手册9.2.1上都直接写了

省电模式/主时钟停振模式,俗称掉电模式:
仅主时钟停止振荡,依赖主时钟工作的 CPU/及大部分外设功能模块,
无时钟无法继续工作,耗电的这部分功能模块工作被暂停后,MCU几乎没有功耗。
不依赖主时钟工作的低功耗外设可继续工作,如:
RTC 如选择的是外部32768RTC晶振,RTC 会继续正常工作,
RTC 工作,仅需要 1.5uA的电流。
段码LCD,如需要继续工作,功耗也极低,不含屏的功耗,也仅需 1.5uA。

以下相关部分都需要修改

截图202507071658113055.jpg

截图202507071702305984.jpg

截图202507071703459107.jpg

截图202507071711422265.jpg







回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2025-07-07 14:45:36
已绑定手机

4

主题

7

回帖

66

积分

注册会员

积分
66
发表于 昨天 17:03 | 显示全部楼层
神*** 发表于 2025-7-7 16:55
省电模式/主时钟停振模式,俗称掉电模式:
仅主时钟停止振荡,无法获得工作时钟的 CPU/及大部分外设功能模 ...

明白了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-8 23:17 , Processed in 0.123622 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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