请教!STC8H8K64U(20引脚)的低功耗电流怎样测量才能得到正确结果
本帖最后由 乐此不疲 于 2024-1-4 18:53 编辑我测量的结果总是与手册的0.4ua相差很多,以下是我的电路图和程序:
#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指针万用表是无法测出精确结果的,测量的目的也只是想粗略判断一下电流范围的,只要结果能稳定在几个微安就可以满足要求了。不知道我的实验哪里有问题请大神指点,先谢了!
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
神农鼎 发表于 2024-1-4 19:07
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对 ...
你好,我就是参照这贴里说的(也是手册上的内容)测试的,尤其是这一句:“总之,省电模式时,I/O尽量 高阻输入并关闭数字输入”,我在程序里将所以I/O都配置成了高阻+关闭数字通道模式,另外和我的电路图中一样,片外只加了32k晶振和电容而且没有配置初始化RTC功能,其他引脚都是浮空状态。
还有这些 I/O,要全部处理:
用STC8H8K64U 就不要过分追求超低功耗。
因为STC8H8K64U有8K的RAM, 有USB功能,有64K的FLASH, 支持这些都要消耗电流的。
目前,STC8G1K08A的低功耗做的最好。 STC8H8K64U 的省电模式肯定《 1uA的 !
40uA ? 肯定是其他问题 神农鼎 发表于 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:30
你好,经过再三测试STC8H8K64U单片机的I/O口全部浮空状态下的省电模式电流小于1uA是真实有效的,但我最终 ...
搞定就行,准双向口,可以 省电模式,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尽量 高阻输入并关闭数字输入
神农鼎 发表于 2024-1-6 19:00
省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前:
===主时钟停振/省电模式,STC8/STC32系列如 ...
多谢,测试已经完成了,片内RTC启用后省电模式电流2-3uA这个数据也核实了,不错,STC8H8K64U是一款非常不错的单片机。
页:
[1]