刚开始接触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 *******/
上一篇:STM8L SPI使用过程记录
下一篇:STM8L之低功耗模式
推荐阅读
史海拾趣
随着电子行业的快速发展,科达嘉意识到技术革新是企业持续发展的关键。因此,公司不断增加自动化生产设备,购置先进的质量测试仪器,并筹建了电感元器件分析实验室和标准的AEC-Q200可靠性实验室。这些举措大大增强了公司的研发分析能力,提升了产品质量和生产效率。科达嘉逐渐形成了以材料研发、产品研发、生产、质量及物控为基础的完整产业链。
自1983年Futaba的VFD产品被福特汽车公司采用后,其在美国三大汽车厂的市场占有率迅速达到100%。这一成就不仅证明了Futaba VFD产品在汽车行业的卓越性能和广泛应用,还推动了其在全球汽车市场上的快速扩张。VFD的抗震性能、良好的温差适应性以及高可靠性,使其在汽车仪表盘和抬头显示器等关键部件中扮演了重要角色。随着新能源汽车的兴起,Futaba的VFD技术也进一步适应市场需求,为新能源汽车提供了更加先进的显示解决方案。
在快速发展的同时,EICHHOFF公司也积极关注环保和可持续发展问题。公司认识到作为电子行业的一员,必须承担起保护环境、节约资源的责任。为此,EICHHOFF公司采取了一系列措施来降低生产过程中的能耗和排放。例如:引入节能设备和技术、优化生产流程、推广绿色包装等。
此外,EICHHOFF公司还积极参与环保公益活动和社会责任项目,为社会做出积极贡献。这些努力不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。
力芯微公司在数字信号处理器领域拥有丰富的经验和深厚的技术积累,是行业内领先的企业之一。公司拥有一支高素质的研发团队,不断推进技术创新和产品升级。通过持续的研发投入和技术创新,力芯微在数字信号处理器领域保持了领先地位,并赢得了客户的广泛认可。
随着技术的不断进步和市场的日益成熟,千志电子开始注重电阻产业的深耕。公司不仅专注于电阻的生产,还逐渐向电阻专用设备、原材料等领域延伸。2006年,千志电子成立了深圳市鑫兴志实业有限公司,主要生产电阻相关的生产机器如切割机、焊接机、成型机、涂装机等。同时,千志电子还成立了千志电子科技(湖北)有限公司,生产各类型电阻器、设备及电阻所需原材料如碳棒、线材等。这一战略调整使千志电子形成了从原材料到设备的完整产业链,提高了生产效率和产品质量,进一步巩固了其在电阻行业的领先地位。
为了满足全球客户的需求,EECO Switch公司积极实施全球化战略。公司在墨西哥、台湾和中国等地设立了制造工厂,并在英国剑桥设立了销售办事处。这些海外机构不仅为公司提供了更广阔的市场空间,还帮助公司更好地了解当地市场的需求和趋势。展望未来,EECO Switch将继续秉承创新、质量、服务的核心价值观,致力于成为全球领先的人机界面产品提供商。
来源:电子时报 微控制器技术与应用论坛专刊 随着功能不断增强,微控制器(MCU)的应用面也愈来愈大,市场需求愈来愈高。因此,追求效能更高、更符合市场需求的规格特性,就成为MCU厂商努力的方向。为能完整说明MCU技术开发的大趋势,同时一次提供研 ...… 查看全部问答∨ |
1--实现一个8路输出的扫描电路, 每个之间都是一个有一定相位差的方波。 如果用先计数器, 然后再用译码, 这个是采用线性思维, what和when的思考模式, 非常合乎常情。 但是, 当速度高的时候, 每个输出之间由于译码长度传输不同, 就导致毛刺 ...… 查看全部问答∨ |
我的整个电路就是4节南孚电池供电也就是6v,这样的话就不能用双电源供电放大器,但单电源供电的放大器似乎很少啊,我现在就知道LM324,还有其他推荐吗? 或者有可以将我的供电电路改造一下成双电源吗,似乎可以。 还有我的传感器输出是0-80mv这样 ...… 查看全部问答∨ |
|
真烦扰,我把它放在multisim仿真这么好使,但一把它拿到PCB腐出板子,它就自激了。 在面包板上搭出来也自激。这是怎么回事?有望高手帮忙分析一下此电路自激的原因啊,我的PCB电路multisim仿真还有LH0032资料都在附件里了。 电路里的C1在LH0032中 ...… 查看全部问答∨ |
搞不定了,求助,关于MSP430F5438A ADC12时触发钟源 在使用MSP430F5438A ADC12时,想利用定时器触发,进行多通道多次转换,但是查看手册说时钟源选择要看note B ,不知道这个文档在哪。请问MSP430F5438A的触发用的是哪个定时器呢?哪位大婶能贴个代码或解释下~… 查看全部问答∨ |