首页 > 其他分享 >CH32FV32系列进入STOP及STANBY模式电流大的问题

CH32FV32系列进入STOP及STANBY模式电流大的问题

时间:2023-11-09 09:56:47浏览次数:42  
标签:低功耗 电阻 CH32FV32 RAM STOP 模式 外围 电流 STANBY

关于CH32FV32低功耗模式(STOP及STANDBY)。

 

我们EVT例程中将所有IO均配置成下拉输出而防止外部器件漏电流引起功耗增大。但是有的客户进入低功耗后需要IO电平保持从而出现了进入STOP/STANBY模式后电流还是很大(STOP几百个uA  STANDBY一百多uA)。手册中低功耗电流如下:

 

对此通常做法有如下几点:

  • MCU外围管脚配置
  • 检查外围有无闭合回路
  • SWDIO,SWCLK 管脚
  • 电压调节器与RAM低电压模式是否开启

1. MCU外围管脚配置

在进入Stop模式时候,通常是设置成为输入模式。 根据设备原理图查看IO外部引脚连接电路,

如果闲置状态为悬空,设置为模拟输入;

如果闲置状态为低电平,设置为下拉输入;

如果闲置状态为高电平,设置为上拉输入; 

当悬空时,斯密特触发器是打开的,要判断输入的是高电平还是低电平,需要一点电流损耗,但是设备模拟输入,这个触发器是关闭的 当IO通过外围电路电阻接地被拉低时,

如果设置为上拉输入,则在芯片内部的上拉电阻和外围的下拉电阻构成回路,电流损耗取决于这两个电阻;

当IO通过外围电路电阻接电源被拉高时,则在芯片内部的下拉电阻和外围的上拉电阻构成回路,电流损耗也取决于这两个电阻;

2. 检查外围有无闭合回路

排查外围电路,某些驱动、电源转换IC如果是由软件使能,如果进入停止模式之后不需要则关闭,因为本身就有工作电流;如果是由硬件使能,则需要查看芯片手册看静态工作电流是多少,如果比较高,只能修改硬件电路或者用低耗IC代替。外围是否有一些闭合回路,比如电压采集,虽然ADC已经关闭,但是这个分压电路还是有损耗的,大小一般取决于电阻和电源电压。

3、SWDIO,SWCLK 管脚

看看是不是SWDIO、SWCLK两个引脚也直接设置成了模拟输入,并关闭了调试功能:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

4、电压调节器与RAM低电压模式是否开启

停止模式:在停止模式下,可选LPDS 位,LPDS=0,电压调节器工作在正常模式;LPDS=1,电压调节器工作在低功耗模式。在低功耗模式下,可以通过配置PWR_CTLR 寄存器的RAMLV=1,使能RAM 低电压模式,功耗达到最低。

待机模式:在待机模式下,当正常供电时,通过配置PWR_CTLR 寄存器的R2KSTY=1 控制2K 字节RAM 不掉电,R30KSTY=1 控制30K 字节RAM 不掉电;当使用VBAT 供电时,通过配置PWR_CTLR 寄存器的R2KVBAT=1控制2K 字节RAM 不掉电,R32K_VBATEN =1 控制30K 字节RAM 不掉电。在该基础之上,可以通过配置PWR_CTLR 寄存器的RAMLV=1,使能RAM 低电压模式,功耗达到最低。

标签:低功耗,电阻,CH32FV32,RAM,STOP,模式,外围,电流,STANBY
From: https://www.cnblogs.com/wchmcu/p/17818131.html

相关文章

  • Linux环境下java jar包(start 启动 stop 停止 restart 重启 status 查状态) 处理
    运行jar包sh脚本:#!/bin/sh#./ry.shstart启动stop停止restart重启status状态AppName=ruoyi-admin.jar#JVM参数#JVM_OPTS="-Dname=$AppName #-Duser.timezone=Asia/Shanghai#-Xms512m-Xmx1024m#-XX:MetaspaceSize=128m-XX:MaxMetaspaceSize=512m-XX:+He......
  • Apache, service httpd stop, Address already in use:
    servicehttpdstopStoppinghttpd:                                           [FAILED][root@testtestapache_logs]#servicehttpdstartStartinghttpd:(98)Addressalreadyinuse:make_sock:couldnotbindtoaddress[::......
  • mac os 编译webrtc 报错screen_capturer_mac.mm:500:5: error: 'CGDisplayStreamStop'
    ../../modules/desktop_capture/mac/screen_capturer_mac.mm:462:11:error:'CGDisplayStreamUpdateGetRects'isonlyavailableonmacOS13.0ornewer[-Werror,-Wunguarded-availability-new]462|CGDisplayStreamUpdateGetRects(updateRef,kC......
  • Vue进阶(贰零玖):@click.stop与@click.prevent应用讲解
    一、@click.stop问题:父元素中添加了一个click事件,其下面的子元素中也添加了click事件,此时,我想点击子元素获取子元素的点击事件,但却触发的是父元素的事件:<viewclass="footer-box"@click="clickCard"> <view@click="footerClick('喜欢')"><textclass="footer-box__i......
  • 计时 System.Diagnostics.Stopwatch
     // System.Diagnostics.Stopwatch.StartNew();  //使用StartNew表示已经实例并且开始计时//sw.Reset();//重置//sw.Elapsed.TotalMilliseconds;//毫秒  System.Diagnostics.Stopwatchsw=newSystem.Diagnostics.Stopwatch();  sw.Start();......
  • Failed to stop auditd.service: Operation refused, unit auditd.service may be req
    [root@7~]#systemctlstopauditd.serviceFailedtostopauditd.service:Operationrefused,unitauditd.servicemayberequestedbydependencyonly(itisconfiguredtorefusemanualstart/stop).Seesystemlogsand'systemctlstatusauditd.service&#......
  • CLion 中 使用MSVC工具链构建QT项目时出现 ninja: build stopped: subcommand failed.
    两个方法:把构建方式改为Release;或者在CMakeList.txt中把一下行给注释了。 解释一下:这段代码的意思是:如果是MSVC工具链,且处在Debug模式下,把需要的库名加个后缀“d”。......
  • vue @click.native/stop/prevent
    [email protected]父组件要引用子组件中的点击事件,可以通过@click.native来直接访问子组件中的方法,如果不使用@click.native可在子组件中使用this.$emit('click')来传递事件//父组件<template><div><span>父组件页面</span><search@click="onSubmit"></search&g......
  • Cesium加载三维模型rendering.Rendering has stopped
    使用Cesium加载数据量大、精度高的三维模型数据经常在运行一段时间后,会报如下错误:Anerroroccurredwhilerendering.Renderinghasstopped.TypeError:Failedtoexecute'shaderSource'on'WebGLRenderingContext':parameter1isnotoftype'WebGLShader'.这是由于GPU......
  • 二张图解释什么是DevOps、TestOps、TestDev
    DevOpswikipedia解释:DevOps是一种软件工程文化和实践,旨在统一软件开发(Dev)和软件运维(Ops)。DevOps运动的主要特点是在软件构建的所有步骤中极力提倡自动化和监控,从集成、测试、发布到部署和基础设施管理。DevOps的目标是缩短开发周期,增加部署频率,更可靠的发布,与业务目标紧密结合......