[STM8]

关于STM8L低功耗设计测试分享

[复制链接]
楼主: liuguobing
手机看帖
扫描二维码
随时随地手机跟帖
无冕之王| | 2014-3-27 19:16 | 显示全部楼层
这个分享还是相当有意义的

使用特权

评论回复
秋天落叶| | 2014-3-27 19:24 | 显示全部楼层
非常值得分享的经验

使用特权

评论回复
restless| | 2014-5-7 20:38 | 显示全部楼层
我看过很多,从未发过帖子,但是我这次,我破例发一个。
我的目的就是赞一个楼主。

使用特权

评论回复
liuguobing|  楼主 | 2014-5-15 13:50 | 显示全部楼层
restless 发表于 2014-5-7 20:38
我看过很多,从未发过帖子,但是我这次,我破例发一个。
我的目的就是赞一个楼主。 ...

太给力了,能有所帮助就好。

使用特权

评论回复
FAQ| | 2014-5-15 17:51 | 显示全部楼层
liuguobing 发表于 2014-5-15 13:50
太给力了,能有所帮助就好。

楼主我的项目要收尾了,你帮了我很大的忙啊,谢谢。

使用特权

评论回复
aydf369| | 2014-6-30 12:38 | 显示全部楼层
想玩STM8L,就是中文资料太少

使用特权

评论回复
185050301| | 2014-7-16 13:05 | 显示全部楼层
不错,感谢楼主,做的很系统。 后来者可以借鉴学习下。

使用特权

评论回复
hificwc| | 2014-7-16 16:31 | 显示全部楼层
收藏先

使用特权

评论回复
panqijkp| | 2014-8-1 23:00 | 显示全部楼层
请教各位大侠一下,目前在用stm8L051F3单片机开发,在低功耗方面遇到问题,功耗始终在330uA左右(3.3V供电)。
使用活跃停机模式,RTC 500ms唤醒一次,目前设置主要如下:
     1、RTC由LSI提供时钟(16分频);
     2、关闭了MVR(通过SAHALT置1);
     3、使能了超低功耗模式 (PWR_UltraLowPowerCmd(ENABLE));
     4、将所有端口设置为推挽输出低,除了NRST没有做设置;
     5、调试中尝试进入Iddq模式,但是执行“FLASH->CR1 |= FLASH_CR1_EEPM;”无法将EEPM位置位。
相关程序如下(其中可能有些地方是冗余的,“//”之后的内容为调试中尝试过的指令),麻烦指点一下,非常非常感谢:
void main(void)
{
  GPIO_int();
  EXTI_SelectPort(EXTI_Port_B);
  EXTI_SetPinSensitivity(EXTI_Pin_3, EXTI_Trigger_Falling);
    //CLK->ICKCR |= CLK_ICKCR_FHWU;
  RTC_Config();
  IWDG_Config();
  enableInterrupts();
  rim();
  while (1)
  {
    IWDG_ReloadCounter();
FLASH->CR1 |= FLASH_CR1_EEPM;
  //FLASH_PowerRunModeConfig(FLASH_Power_IDDQ);
      //PWR_PVDCmd(0);
    RTC_SetWakeUpCounter(70);
    RTC_WakeUpCmd(ENABLE);
    PWR_UltraLowPowerCmd(ENABLE);
      //CLK->ICKCR &= ~CLK_ICKCR_HSION;
    halt();
    RTC_WakeUpCmd(DISABLE);
  }
}
void RTC_Config(void)
{
    // RTC_WakeUpCmd(DISABLE);
    //CLK_LSICmd(ENABLE);
  CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_16);
  while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == RESET);
  CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
  RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
  RTC_ITConfig(RTC_IT_WUT, ENABLE);
    //RTC_SetWakeUpCounter(100);
    //RTC_WakeUpCmd(ENABLE);
}

使用特权

评论回复
朝阳之光| | 2014-8-2 08:41 | 显示全部楼层
支持,这么好的测试数据

使用特权

评论回复
Rain_King| | 2014-8-2 09:09 | 显示全部楼层
学习啊..........

使用特权

评论回复
liuguobing|  楼主 | 2014-8-8 16:27 | 显示全部楼层
panqijkp 发表于 2014-8-1 23:00
请教各位大侠一下,目前在用stm8L051F3单片机开发,在低功耗方面遇到问题,功耗始终在330uA左右(3.3V供电 ...

看着有点复杂,并且代码不全。
建议你先用最少的步骤,试验出最低的功耗,再来进行模块递增。
另外,你使用的3.3V电源,请确认是否电源部分的损耗。

使用特权

评论回复
axushilong| | 2014-8-20 15:48 | 显示全部楼层
请教stm8l 低功耗运行模式,我的代码如下:
void main(void)
{
        AllGpioRPPLowOut();        //配置IO为推免输出低电平
        HSItoLSI();
        PWR->CSR2 = 0x2;
        LCD_GLASS_Init();
//        CLK->REGCSR = 0x02;        // Swith off the Regulator
//        while(((CLK->REGCSR)&0x01)==0x01);
        while(1) LCD_GLASS_ScrollSentence("      ** STM8L-DISCOVERY **",1,SCROLL_SPEED);
}
上面代码电流为100uA,LCD屏能正常显示;
如果去掉注释,也就是说关闭电压调节器,电流为10uA左右,可是此时LCD屏不显示,请问这是怎么回事?怎么解决啊?

使用特权

评论回复
liuguobing|  楼主 | 2014-8-23 08:45 | 显示全部楼层
axushilong 发表于 2014-8-20 15:48
请教stm8l 低功耗运行模式,我的代码如下:
void main(void)
{

具体的问题我没有碰到过,给一点点参考,不一定有用
1. 我在测试中,发现关闭电压调节器LCD会变暗,不知你的是否正在此临界位置,可以考虑调整几个显示参数
2. 不知道LCD使用内、外部电源是否有影响,我之前测试使用的是外部Vlcd

使用特权

评论回复
axushilong| | 2014-8-23 15:34 | 显示全部楼层
liuguobing 发表于 2014-8-23 08:45
具体的问题我没有碰到过,给一点点参考,不一定有用
1. 我在测试中,发现关闭电压调节器LCD会变暗,不知 ...

我重新写了代码,让所有的代码都在ram中运行,之前有延时函数没有配置在ram中运行,我想那100uA的电流是因为执行到延时函数后之前配置flash为 低功耗IDDQ模式又自动恢复的原因,但是为什么关闭电压调节器为什么lcd不显示还是没弄清楚,你说的临界位置指的是什么啊?

使用特权

评论回复
zbx1981| | 2014-9-15 15:55 | 显示全部楼层
  LCD_CR1 = 0x06;
  LCD_CR2 = 0x46;//电压
  LCD_CR3 = 0x00;
  LCD_FRQ = 0x04;
  LCD_PM0 = 0xff;//0-7
  LCD_PM1 = 0xff;//8-15
  LCD_PM2 = 0xff;//16-23
  LCD_PM3 = 0;
  
  LCD_CR3 |= 0x40;//开显示

使能active halt ,另外开了rtc wakeup 1秒中断,lcd显示用的内部lsi 电流有35ua,正常吗,未使用的io都是推挽输出低电平

使用特权

评论回复
zbx1981| | 2014-9-15 15:59 | 显示全部楼层
另外我把lcd关了,所有lcd引脚设置为推挽输出0,电流2ua左右,这个应该还算是正常,说明其他部分功耗都是正常的,只要一打开lcd显示就是35ua左右

使用特权

评论回复
liuguobing|  楼主 | 2014-9-23 10:42 | 显示全部楼层
zbx1981 发表于 2014-9-15 15:59
另外我把lcd关了,所有lcd引脚设置为推挽输出0,电流2ua左右,这个应该还算是正常,说明其他部分功耗都是正 ...

LCD 正常也就 10uA 左右,35太大了。

使用特权

评论回复
943633664| | 2014-9-23 14:30 | 显示全部楼层
楼主你单片机的时钟频率是多少,我现在做的加了两个外部芯片,进入Halt模式,RTC唤醒,工作电流是78UA,我好想在往下降一点,希望可以和你讨论一下

使用特权

评论回复
liuguobing|  楼主 | 2014-12-10 09:54 | 显示全部楼层
943633664 发表于 2014-9-23 14:30
楼主你单片机的时钟频率是多少,我现在做的加了两个外部芯片,进入Halt模式,RTC唤醒,工作电流是78UA,我 ...

很久没看帖子了,相信你已经解决了吧。
我单片机跑16M的HSI,不过Halt之后,都没有区别,主时钟都不会运行的。78uA电池供电肯定高了,其实也就是一点点排除,一般电流偏大最大可能是有悬空引脚

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则