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

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

[复制链接]
  • TA的每日心情
    开心
    昨天 11:24
  • 签到天数: 129 天

    [LV.7]常住居民III

    30

    主题

    107

    回帖

    944

    积分

    高级会员

    积分
    944
    发表于 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指针万用表是无法测出精确结果的,测量的目的也只是想粗略判断一下电流范围的,只要结果能稳定在几个微安就可以满足要求了。不知道我的实验哪里有问题请大神指点,先谢了!

    回复 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 11:24
  • 签到天数: 129 天

    [LV.7]常住居民III

    30

    主题

    107

    回帖

    944

    积分

    高级会员

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

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

    使用道具 举报

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

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

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

    截图202401051055068174.jpg



    截图202401051056298778.jpg




    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:17
  • 签到天数: 173 天

    [LV.7]常住居民III

    17

    主题

    371

    回帖

    1367

    积分

    荣誉版主

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

    点评

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

    使用道具 举报

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 11:24
  • 签到天数: 129 天

    [LV.7]常住居民III

    30

    主题

    107

    回帖

    944

    积分

    高级会员

    积分
    944
     楼主| 发表于 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
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

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

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

    使用道具 举报

    该用户从未签到

    552

    主题

    9532

    回帖

    1万

    积分

    管理员

    积分
    14106
    发表于 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尽量 高阻输入关闭数字输入

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 11:24
  • 签到天数: 129 天

    [LV.7]常住居民III

    30

    主题

    107

    回帖

    944

    积分

    高级会员

    积分
    944
     楼主| 发表于 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, 2024-5-20 08:40 , Processed in 0.082819 second(s), 74 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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