单片机
返回首页

STM8 低功耗时钟管理

2020-09-07 来源:eefocus

  第一次做低功耗设备,单片机 STM8s003 ,起初只设置了进入 Halt模式,IO配置是使用之前的状态。客户测试结果,9v的电池,10天电压损失比率为 13.5%。

  自己做了下测试,运行状态电流 -- 7.2mA,待机电流 1.6mA.

  首次改进,由于使用的是外部上拉,在进入 Halt模式前将单片机 IO全部配置为浮空输入状态,按键使用的 IO加上下降沿触发中。测试结果:运行状态电流 6.7mA;待机电流 133uA.

  第二次改进,将 12M的内部时钟 4分频,CPU时钟 4分频,外设时钟只保留两个定时器和一个看门狗;测试结果:运行状态电流 2.36mA;待机电流 127uA.

经理说还是太大,至少要降到两位数,继续吧。。。

拿着 STM8的 Datesheet翻低功耗,时钟这块,发现用 LSI作为系统时钟可以再次降低功耗,于是配置寄存器调试。

配了半天发现 CLK_SWR寄存器中的数据始终修改不了。百度查原因,又过了几个小时终于发现了问题的所在,需要配置选项字。

如下:

------------------------------------------- 我是分割线 -------------------------------------------

摘自:http://blog.sina.com.cn/s/blog_4a3946360100yuzl.html  


“选项字节包括芯片硬件特性的配置和存储器的保护信息,这些字节保存在存储器中一个专用的块内。除了ROP(读出保护)字节,每个选项字节必须被保存两次,一个是通常的格式(OPTx)和一个用来备份的互补格式(NOPTx)”


要使用内部低速RC必须将LSI_EN置1,就是这个地方让我纠结了半天,然后用IAR将其置1,方法是:进入调试模式,在上面有个ST-LINK,点击,看到OPTION BYTE,左键点进去,右键单击上面的选项,就可更改了,然后全速运行,就写进去了。


STM8的时钟分为HSI,HSE,LSI,最常用的是HSI,STMS105S4内置的是16M的RC,叫fhsi。它可以分频输出为fhsidiv=fhsi/hsidiv,如果选择其为主时钟源,那么主时钟fmaster=fhsidiv。CPU时钟fcpu=fmaster/cpudiv。


可以通过外设时钟门控寄存器CLK_PCKENR1和CLK_PCKENR2选择是否与某个外设连接。


好了上个切换内部时钟的源代码,测试通过


void CLK_Init(void)

{

  //切换到内部LSI(!!!需要修改选项字节的LSI_EN为1)

  CLK_ICKR|=0x08;//开启内部低速RC震荡

  while(CLK_ICKR&0x10==0);//LSI准备就绪

  CLK_SWR=0xd2;

  while(CLK_SWCR&0x08==0); //等待目标时钟源就绪

  CLK_SWCR|=0x02;  

  //CPU分频设置

  CLK_CKDIVR=0;  //内部RC输出不分频,CPU亦分频

}


------------------------------------------- 我是分割线 -------------------------------------------

代码大差不差


1 CLK->ICKR |= 0x04;        // 快速唤醒

2 CLK->SWCR |= 0x02;    // 使能时钟切换

3 CLK->ICKR |= 0x08;     // 打开内部低速振荡器

4 while(!(CLK->ICKR & 0x10));    // 等待内部时钟稳定

5 CLK->SWR = 0xD2;                // 将 LSI设置为系统时钟

6 while(CLK->SWCR & 0x01);    // 等待时钟切换完成

7 CLK->CKDIV = 0x00; // 设置分频系数,不分频 

8 CLK->HSI &= ~0x01;    // 关闭 HSI


至此,运行状态电流:2.36mA;待机状态电流:130uA


还是降不下来,晕了,直接拆芯片,测试电路消耗电流,结果为 120uA左右,也就是说单片机消耗电流也就在 10uA左右,达到预期目标。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 简洁的过零调功器电路设计与分析

  • 永不缺相启动运行的电动机控制电路

  • IGBT模块通过控制门极阻断过电流

  • 比较常见的功率整流器和滤波电路

  • 基于M66T旋律发​​生器的电路图解析

  • 基于CA3193的热电偶放大器电路

    相关电子头条文章