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

请教!STC8H8K64U(20引脚)的低功耗电流怎样测量才能得到正确结果

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-05-02 09:05:39

45

主题

176

回帖

1735

积分

金牌会员

积分
1735
发表于 2024-1-4 18:47:46 | 显示全部楼层 |阅读模式
本帖最后由 乐此不疲 于 2024-1-4 18:53 编辑

我测量的结果总是与手册的0.4ua相差很多,以下是我的电路图和程序:


123.jpg

#include "STC8H.h"


//----I/O口配置函数-------------------------
void GPIO_SE(u8 n)
{


    if((n < 1) || (n > 2))
        return;


    if(n == 1) //准双向口模式
    {
        P0M0 = 0x00;
        P0M1 = 0x00;
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P4M0 = 0x00;
        P4M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;


        P0IE = 0xff;//开启所有数字通道
        P1IE = 0xff;
        P2IE = 0xff;
        P3IE = 0xff;
        P4IE = 0xff;
        P5IE = 0xff;
    }


    if(n == 2) //高阻态输入模式
    {
        P0M0 = 0x00;
        P0M1 = 0xff;
        P1M0 = 0x00;
        P1M1 = 0xff;
        P2M0 = 0x00;
        P2M1 = 0xff;
        P3M0 = 0x00;
        P3M1 = 0xff;
        P4M0 = 0x00;
        P4M1 = 0xff;
        P5M0 = 0x00;
        P5M1 = 0xff;
        P6M0 = 0x00;
        P6M1 = 0xff;
        P7M0 = 0x00;
        P7M1 = 0xff;


        P0IE = 0x00;//关闭所有I/0口的数字通道
        P1IE = 0x00;
        P2IE = 0x00;
        P3IE = 0x00;
        P4IE = 0x00;
        P5IE = 0x00;
        P6IE = 0x00;
        P7IE = 0x00;
    }
}
//----------------------------------------------
void main(void)
{


    P_SW2 |= 0x80; //使能 XFR 访问


    GPIO_SE(2);//配置所有I/O为高阻态模式、关闭所有I/O口的数字通道


    NOP2();
    PCON = 0x02;//MCU 进入掉电模式
    NOP10();


    while (1);


}


程序烧录时已经去除了STC-ISP软件中的“允许低压复位”的勾选,烧录完成后断开电源正极串入万用表,测量的结果是最低电流0.005mA(约4-5uA),受到某些不确定的干扰时表针会飘动、最大可以达到0.04mA(约40uA)。过程中如果用手触摸多个I/O口(TSSOP封装的芯片太小无法触摸单个引脚)时电流迅速升高并稳定在1.7mA。
需要说明的是我用MF47指针万用表是无法测出精确结果的,测量的目的也只是想粗略判断一下电流范围的,只要结果能稳定在几个微安就可以满足要求了。不知道我的实验哪里有问题请大神指点,先谢了!

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-1-4 19:07:23 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-05-02 09:05:39

45

主题

176

回帖

1735

积分

金牌会员

积分
1735
发表于 2024-1-5 10:52:18 | 显示全部楼层
神*** 发表于 2024-1-4 19:07
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对 ...

你好,我就是参照这贴里说的(也是手册上的内容)测试的,尤其是这一句:“总之,省电模式时,I/O尽量 高阻输入并关闭数字输入”,我在程序里将所以I/O都配置成了高阻+关闭数字通道模式,另外和我的电路图中一样,片外只加了32k晶振和电容而且没有配置初始化RTC功能,其他引脚都是浮空状态。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-1-5 10:56:35 | 显示全部楼层

还有这些 I/O,要全部处理:

截图202401051055068174.jpg



截图202401051056298778.jpg




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:514
  • 最近打卡:2025-05-02 10:18:47

24

主题

515

回帖

990

积分

荣誉版主

积分
990
发表于 2024-1-5 11:19:45 | 显示全部楼层
用STC8H8K64U 就不要过分追求超低功耗。
因为STC8H8K64U有8K的RAM, 有USB功能,有64K的FLASH, 支持这些都要消耗电流的。
目前,STC8G1K08A的低功耗做的最好。

点评

能实现手册上的参数就行,,实际应用肯定不会纠结能不能到0.4uA,增加了功能肯定是会增加一些功耗这很正常  发表于 2024-1-5 11:39
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-1-5 12:07:35 | 显示全部楼层
STC8H8K64U 的省电模式肯定  《 1uA的 !
40uA ? 肯定是其他问题
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-05-02 09:05:39

45

主题

176

回帖

1735

积分

金牌会员

积分
1735
发表于 2024-1-6 18:30:50 | 显示全部楼层
神*** 发表于 2024-1-5 12:07
STC8H8K64U 的省电模式肯定  《 1uA的 !
40uA ? 肯定是其他问题

你好,经过再三测试STC8H8K64U单片机的I/O口全部浮空状态下的省电模式电流小于1uA是真实有效的,但我最终得到这个结果的端口设置却与资料所说的配置(高阻输入模式)有所不同,那就是1.将所有I/O口配置为准双向模式。2.关闭所有I/O口的数字输入功能。此时单片机电流稳定在1uA以下(指针万用表估测值,0.05mA挡表针微动)。

点评

搞定就行,准双向口,可以  详情 回复 发表于 2024-1-6 18:59
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-1-6 18:59:11 | 显示全部楼层
乐此*** 发表于 2024-1-6 18:30
你好,经过再三测试STC8H8K64U单片机的I/O口全部浮空状态下的省电模式电流小于1uA是真实有效的,但我最终 ...

搞定就行,准双向口,可以
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-1-6 19:00:33 | 显示全部楼层
省电模式,I/O口如何设置才省电进入主时钟停振/省电模式前:
===主时钟停振/省电模式,STC8/STC32系列如何省电
1,  不用的I/O口,就是浮空的I/O, 关闭数字输入
2,用作模拟输入的口,一般是配置成高阻输入,也必须关闭数字输入
     ===指用作 ADCx外部模拟输入的I/O
     ===
指用作 比较器外部模拟输入的I/O
3,用作高阻输入的I/O,  也必须关闭数字输入
     如你I/O外部的输入电平Vx在   【不是逻辑高的电压,也不是逻辑低的电压
     这时内部数字输入电路就会有翻转,就会有几十uA的功耗
     关闭数字输入,就不会有功耗


4,I/O外部是高电平的,你如要工作在输出,你就置高
      I/O外部是低电平的,你如要工作在输出,你就置低
     否则两边的电平电位不同,就会水往低处走,有电流流进或流出

     如你I/O外部的输入电平Vx在   MCU_Gnd < Vx < MCU_VCC
     这时工作在输出,也会有电流流动
     所以进省电模式前,必须改设置为高阻输入,并关闭数字输入

5,如有启动RTC/实时时钟功能,在省电时工作的MCU, 【P1.7/XTALI, P1.6/XTALO】
     【P1.7/XTALI, P1.6/XTALO】- 接外部32768-RTC晶振,

      这2个口上电默认是高阻输入,可用户程序配置为高阻输入
     省电模式时必须保持高阻输入,必须关闭数字输入


总之,省电模式时,I/O尽量 高阻输入关闭数字输入

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:441
  • 最近打卡:2025-05-02 09:05:39

45

主题

176

回帖

1735

积分

金牌会员

积分
1735
发表于 2024-1-8 13:37:28 | 显示全部楼层
神*** 发表于 2024-1-6 19:00
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前:
===主时钟停振/省电模式,STC8/STC32系列如 ...

多谢,测试已经完成了,片内RTC启用后省电模式电流2-3uA这个数据也核实了,不错,STC8H8K64U是一款非常不错的单片机。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 20:43 , Processed in 0.185752 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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