手上用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引起,为什么会有这样的不同?芯片坏了?还是芯片的差异性?
|