打印
[STM32F1]

STM32F103VC工作电流

[复制链接]
1417|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
barry_chen|  楼主 | 2015-2-3 22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手上用32F103VC做了四块板,用备用电源时有两块工作电流在2mA左右,两块工作电流在9mA左右。开始以为是外围电路没处理好漏电了,测量了没有用的IO输出都是低电平,最后没有办法就换了103,结果电流就2mA了。是芯片损坏了还是软件上处理的问题?

软件这样的设置的,用3.5的库,用HSI,HPRE8分频。
启动后初始化PORTA PORTD,检测电源是否OK,如果主电源OK,就配置RCC,进入高速模式,频率设为72M。否则运行在低速模式。
void PowerUp_Init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
       
        RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOD , ENABLE);
       
        /* Config GPIOA */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;       
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;       
        GPIO_Init(GPIOA, &GPIO_InitStructure);       
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10;
//        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);       
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_0;
//        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOA, &GPIO_InitStructure);       

        GPIO_InitStructure.GPIO_Pin = GPIOA_Mode_IN_FLOATING;                                                                                               
//        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
       
//        GPIO_InitStructure.GPIO_Pin = GPIOA_AF_PP_ALL;
//        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
//        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//        GPIO_Init(GPIOA, &GPIO_InitStructure);


        /* Config GPIOD */
        GPIO_InitStructure.GPIO_Pin = GPIOD_OUT_PP_ALL;
//        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_Init(GPIOD, &GPIO_InitStructure);       

        GPIO_InitStructure.GPIO_Pin = GPIOD_IPU_ALL;
//        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_Init(GPIOD, &GPIO_InitStructure);       

        GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
       
        if(POWERDOWN==1)
        {               
                ActiveMode=FAST_MODE;
        }
        else ActiveMode=SLOW_MODE;
}


为了证明是芯片的问题,焊了一块只有103的最小系统板来测试。

在两块板子上烧录同一个程序,分别测试电流如下

      有问题的完整板子 9MA左右
      电小系统板子  1.9MA

将两块板子上的103调换,后测试得的电流如下

       有问题的完整板子 2MA左右
       电小系统板子 9MA左右

电流是只供给103VDD VADD的电流,不是整块板子的电流。

特意在最小系统板上测试了待机模式电流,好的芯片待机后测试是30UA左右,有问题的进入待机模式是190UA

看了手册上HSI 8M时电流是6.6MA,待机电流最大也只有3.8UA
如此看来电流是103引起,为什么会有这样的不同?芯片坏了?还是芯片的差异性?
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

33

帖子

0

粉丝