历史上的今天
返回首页

历史上的今天

今天是:2024年09月10日(星期二)

正在发生

2018年09月10日 | STM8L101+si4463低功耗和自动唤醒配置

2018-09-10 来源:eefocus

刚开始接触RF通信,借助成都亿佰特的demo很快完成了数据互传,但是功耗一直降不下去,ST和SiliconLabs官方的datasheet里分别说STM8L101在halt模式功耗为1uA(开AWU的情况下)、SI4463在standby模式为50nA,但是即使把STM8和SI4463以外的芯片都拆了,整板的实际测试值也比1uA大两个数量级。


一、关于低功耗


首先,把SI4463拿掉,只剩STM8L,在main函数直接进入halt模式,得到工作电流为0.4uA,达到标称值。

然后,将si4463接上,在main函数直接进入halt模式,工作电流飙升至167uA。为什么呢?

在ST官网找到了《AN3147:Power management in STM8L and STM8AL》,在“第五章 :Power management tips”中找到了问题的关键点——进入HALT之前必须将GPIO设为固定的电平状态,否则有漏电流存在。于是根据电路设计原理图,除了与SI4463连接的SPI_CSN设为输出高、SDN设为输出低,其余全设为输入上拉。电流降到了25uA,仍远远大于标称值。


图1 整板电路图


最后问题定位在SI4463的GIO设置上,亿佰特的SI4463模块采用的是TX和RX分离的模拟电路设计(图2),GIO2和GIO3控制选通开关,它们根据TX和RX的状态输出0和1,比如芯片处于TX状态时GIO2输出1、GIO3输出0,此时天线与TX形成通路,调制信号从TX口经过电感电路被发送出去。在使si4463进入低功耗之前,必须将GIO2、GIO3拉低。



图2 si4463参考电路设计            

SI446X_GPIO_CONFIG(3, 3, 2, 2, 3, 0, 0x60);

SI446X_CHANGE_STATE(1);

最后功率降到了1uA以下,与标称值相符。


二、关于AWU设置

AWU(Auto Wakeup Unit)的时钟源是独立的LSI(Low Speed Internal Clock),官方datasheet显示LSI的一致性比较差,从25KHz到75KHz不等(确实很差生气),所以配置AWU之前要先知道每一片芯片的LSI是多少,才能达到唤醒时间的预期值。首先,用TIM2测量LSI的频率,官方驱动库就有函数实现,函数原型如下


uint32_t TIM2_ComputeLsiClockFreq(uint32_t TIM2_TimerClockFreq);


官网驱动库也有AWU的配置函数 void AWU_LSICalibrationConfig(uint32_t LSIFreqHz), 这个函数给出的结果很糟糕,唤醒时间根本不对。于是自己根据datasheet写了个函数



#define AWU_MAX_INTERNVAL_COEFFICIENT        ((uint32_t)3932160)  

#define AWU_APR_MAX_VALUE                    ((uint8_t)64)  

#define AWU_TBR_MAX_VALUE                    ((uint8_t)0x0f)  

#define AWU_APR_MIN_VALUE                    ((uint8_t)2)  

#define AWU_TBR_MIN_VALUE                    ((uint8_t)0x01)  

#define AWU_HIGH_RESOLUTION_THRESHOLD        ((uint32_t)6889)     

 



/**

  * @brief  Update APR register with the measured LSI frequency.

            Accuracy is much better than AWU_LSICalibrationConfig().

  * @param  LSIFreqHz -- the LSI frequency, in Hertz.

            internval -- AWU wake up interval, in milliseconds

  * @note   AWU must be disabled to avoid unwanted interrupts.

  * @retval None

  */

ErrorStatus AWU_ConfigLSI(uint32_t LSIFreqHz, uint32_t internval)

{

   uint32_t tmp = 0, z = 0;

   uint8_t  y = 0, x = 0;

   uint8_t  flag = 0;

  

  /* Check parameter */

  assert_param(IS_LSI_FREQUENCY(LSIFreqHz));  

 

 

  z = LSIFreqHz * internval;

  

  if(internval>AWU_HIGH_RESOLUTION_THRESHOLD)

  {

    tmp = z / 10240000;

    if( tmp>=AWU_APR_MIN_VALUE && tmp <= AWU_APR_MAX_VALUE)

    {

      AWU->TBR |= 0x0e;

      AWU->APR = (tmp)-2;

      return SUCCESS;

    }

    

    tmp = z / 61440000;

    if( tmp>=AWU_APR_MIN_VALUE && tmp <= AWU_APR_MAX_VALUE)

    {

      AWU->TBR |= 0x0f;

      AWU->APR = (tmp)-2;

      return SUCCESS;

    }  

        

  }

  

  

  /* 2^x*y = LSIFreqHz * internval */

  for(y=64;y>1;y=y>>1)

  {

     tmp =  z/((uint32_t)y*1000) ; 

     if(tmp>=1 && tmp<=4096)  /*value is between 2^0 and 2^12*/

     {

        flag = 1;

        break;

     }

  } 

  

  /*计算TBR,再根据TBR推导出APR*/

  if(flag!=0)

  {

    for(x=0;x<13;x++)

    {

      if( (tmp>>x)==0 )

      {

        break;

      }

    }

    tmp = (uint32_t)1<

    y = z/((uint32_t)tmp*1000);

    if(y<2)

    {

      return ERROR;

    }

    AWU->TBR = x+1;

    AWU->APR = y-2;

    return SUCCESS;

  }

  else

  {

    return ERROR;

  

  }

}





参数internval是期望的唤醒时间,单位是ms,数值范围是1到60000。


设置好TBR和APR之后,只要使用AWU_Cmd(ENABLE)即可启动AWU,它只会在STM8处于halt模式下才开始计时,当计时达到设置的interval时产生中断,将STM8从halt模式唤醒。


/***** 补丁1:AWU设置函数存在BUG,修正了一下,现在可以放心使用了 20161205 *******/


推荐阅读

史海拾趣

APTA Group Inc公司的发展小趣事

APTA Group Inc在电子行业中崭露头角,得益于其一次重要的技术突破。公司在研发新型半导体材料方面取得了重大进展,这种材料不仅性能稳定,而且成本大大降低。这一创新使得APTA的产品在市场上具有极强的竞争力,吸引了众多合作伙伴。随着技术的逐步推广和应用,APTA的业绩迅速攀升,逐渐在行业中占据了一席之地。

台湾美丽微(FMS)公司的发展小趣事

2013年,FTDI推出了最新的嵌入式视频引擎(EVE)技术产品。这项技术将高度先进的图形控制器、显示器、音频和触摸功能集成到单一芯片中,为智能显示器的实施提供了高效、便捷的解决方案。这一创新不仅提升了FTDI在嵌入式系统领域的竞争力,也为公司在智能家居、工业自动化等多个领域的市场拓展提供了有力支持。

雅特力(Artery)公司的发展小趣事

雅特力在追求经济效益的同时,也高度重视企业社会责任和可持续发展。公司积极参与社会公益事业,通过捐款、捐物等方式支持教育、环保等领域的发展。此外,雅特力还注重环境保护和资源利用,采用环保材料和节能技术,努力降低生产过程中的能耗和排放。这些举措不仅有助于提升公司的社会形象,也为实现可持续发展做出了积极贡献。

统宇电研(Coilmaster)公司的发展小趣事

统宇电研深知品质对于企业的重要性,因此一直将品质管理作为公司的核心竞争力之一。公司建立了严格的品质管理体系,从原材料采购到产品出厂的每一个环节都进行严格把关。同时,统宇电研还注重员工品质意识的培养和提高,通过培训和实践相结合的方式不断提升员工的品质素养。这些努力使得统宇电研的产品品质得到了客户的广泛认可。

绿索超容(GreenSource)公司的发展小趣事

面对日益激烈的市场竞争,统宇电研不断拓展市场领域,寻求新的增长点。公司积极参与国内外行业展会和论坛,加强与客户的沟通与交流,深入了解市场需求。同时,统宇电研还针对不同地区的市场特点,制定了灵活多样的销售策略和方案。这些努力使得统宇电研的市场份额不断扩大,品牌知名度也逐渐提升。

EOS POWER INDIA Pvt公司的发展小趣事

在稳固了印度市场后,EOS开始积极拓展国际市场。公司参加了多个国际电子展会,与全球各地的客户和合作伙伴建立了广泛的联系。通过与国际知名企业的合作与交流,EOS不断吸收先进的管理经验和技术理念,并将其应用到自己的产品和服务中。这些举措不仅提升了EOS的国际知名度,还为公司带来了更多的商业机会。

问答坊 | AI 解惑

AD9852资料(程序,原理图)

本帖最后由 paulhyde 于 2014-9-15 02:54 编辑 包括测试程序,原理图,是买的一块开发板上给的。 [ 本帖最后由 chbaaic 于 2008-10-30 11:52 编辑 ]  …

查看全部问答>

LCD的一点资料

本帖最后由 paulhyde 于 2014-9-15 08:54 编辑 大家好 这是我收集到的一些LCD的资料 希望对大家有用!  …

查看全部问答>

光敏电阻

哪位仁兄介绍个好点的光敏电阻? 功率可调…

查看全部问答>

关于测试领导力的一道笔试题该怎么答?

大家好,昨天我去一家民营企业的笔试,前面几道题都是关于技术的。 但是后面又2道题是测试个人能力的,1是问:8个球中有1个较轻,用天平称2次把它找出来,这个简单,我觉得个人智商还行,回答的挺好的。 2是问:团队里出现了消极怠工的员工,你作 ...…

查看全部问答>

如何选择生物识别产品?

  采用生物识别技术的门禁系统在安防行业应用已经越来越多,包括银行、监狱、部队等单位已经采用生物识别的门禁系统来加强其管理的安全性和使用的方便性。由于生物识别技术已经开始达到大规模的应用水平,包括产品价格、品质和技术都已经相对成熟 ...…

查看全部问答>

LM3S系列电源管理方式

本文以TI 公司的cortex M3芯片为例,说明了如何降低其功耗 …

查看全部问答>

window media player下添加菜单

大家好:      请教大家一个问题:      在微软window mobile 的windows media player下的右软键菜单下添加一个菜单项,该怎么添加? 微软是否提供相应的接口?      有谁知道 ...…

查看全部问答>

美企招聘Java Engineer (SW 6#)

公司名称: Carrier Access 公司网址: http://www.carrieraccess.com 电子邮箱: lshi@carrieraccess.com,简历请注明信息出处 工作地点: 上海 外语要求: 英文良好 简历接收方式: 英文及中文 学历: 本科以上 职位描述: -Candidates will ha ...…

查看全部问答>

万利的ISP-STM32F怎么不能下载啊?

都连不上,大家帮帮忙!新手  …

查看全部问答>