通过优化固件实现低功耗
通过优化以下4个功能以降低BLE设计的平均电流消耗:
1、低功率启动
2、深度睡眠
3、IMO时钟设置
4、调试选择
当系统处于低功耗模式时,则需要利用看门狗定时器(WDT)来唤醒系统。
低功率启动
通电复位(POR)后,BLE系统通过调用不同组件的启动功能对这些组件进行初始化。初始化时通过执行以下步骤实现低功耗运行:
1、在32.768-kHz watch晶体振荡器(WCO)启动时,关闭24-MHz外部晶体振荡器(ECO)以降低功耗。
2、500 ms后(WCO启动时间),启用WDT以唤醒系统。
3、将MCU配置成在500 ms WCO启动时间内处于深度睡眠模式。
4、WCO启用后,重启ECO以启用BLE子系统(BLESS)接口。
5、把WCO置于低功耗模式,并将低频时钟(LFCLK)源从32‐kHz内部低速振荡器(ILO)改为WCO。
6、启用WDT以唤醒系统。
7、将MCU置于深度睡眠模式。
[图5:低功耗启动波形]
深度睡眠
用户设计应管理系统时钟、系统功率模式和BLESS功率模式,以实现BLE MCU的低功耗运行。
在BLE事件间隔期间,建议通过执行以下步骤实现深度睡眠:
1、关闭ECO以降低功耗。
2、1.5s后(BLE事件间隔),启用WDT以唤醒系统。
3、将MCU置于深度睡眠模式。
4、1.5s后,重启ECO以启用BLE子系统(BLESS)接口。
5、发送BLE广播数据。
6、从步骤1开始重复。
[图6:深度睡眠波形图]
IMO 时钟设置
3-MHz到48-MHz内部主振荡器(IMO)是主要的内部时钟源。IMO的默认频率是48 MHz,可在3 MHz到48 MHz范围内以1 MHz的步长调节。在默认的校准设置下,IMO与本例中RDK的公差为±2%。图7显示了改变IMO频率后的总功耗示例。
[图7:IMO DC规格和示例总功耗]
调试选择
串行线调试(SWD)引脚用于开发阶段的运行时固件调试。将SWD引脚配置为调试模式会增加电流消耗。因此,这些引脚应在最终版本时切换到通用输入输出(GPIO)模式,让它们在芯片复位时仍可用于设备编程。
我们可以使用电压和电流波形计算BLE设计的平均消耗电流,以确认设计上的优化程度。图8显示了功率优化设计的功耗结果。
[图8:功率优化的BLE设计的电流消耗]
平均电流约为1.5 µA,从启动到待机的总功耗为0.106 mJ。
采用能量采集技术运行
在这平均电流和总功耗水平上,需要确认系统能够采用能量采集技术运行。图9显示了能量采集系统的框图。该系统采用了S6AE10xA Energy Harvesting(EH)PMIC系列,可使用 CYALKIT-E04 S6AE102A和S6AE103A EVK 以及CY8CKIT-042-BLE BLE Pioneer Kit 运行一整天。
[图9:能量采集系统框图]
图10中的框图显示了基于S6AE102A和S6AE103APSoC电路板的PSoC 4 BLE的能量采集过程。
Wave1显示了基于太阳能的BLE运行,Wave2显示了发送时的BLE电流消耗。PMIC首先将太阳能存储到VSTORE1(VST1)上的一个300-μF陶瓷电容器上 。当VST1达到VVOUTH时,能量被发送到MCU用于BLE运行。
[图10:简单的能量采集]
但是,这种简单的能量采集过程,在没有备用电容器的情况下(例如,没有光线的期间)不能持续运行一整天。
图11中的框图和波形显示了混合储能控制功能。用于运行系统的能量存储在VST1中,其余能量用于对VSTORE2(VST2)进行充电。当没有环境光线时,VST2中能持续为系统提供能量。
[图11:混合储能控制功能]
图12中的波形显示将能量存储到VSTORE2时的充电曲线。S6AE10xA将能量存储到VSTORE1(小电容器)和VSTORE2(大电容器)中。存储在VSTORE1中的能量用于系统运行,其余能量用于VSTORE2(VST2)的子储能器件充电。VSTORE2中持续为系统提供能量,因此,即使在没有环境光线的情况下,系统也能继续运行一段时间。
[图12:存储多余能量的波形]
图13中的框图显示了混合电源输入控制模式。Wave1显示的是PMIC如何控制两个电源(太阳能和电池)。PMIC通过转换这两个电源在不同场景下驱动系统。环境光线通常是持续的,但某些地方可能没有持续的光线。PMIC能够自动转换这两个电源,在没有光线的情况下继续供电。
[图13:混合电源输出控制]
S6AE10xA根据VSTORE1的电压自动更换电源。如果VSOTRE1的电压达到VVOUTL,将从VBAT电源供电,以便在无环境光线的情况继续供电。
通过优化固件实现低功耗
通过优化以下4个功能以降低BLE设计的平均电流消耗:
1、低功率启动
2、深度睡眠
3、IMO时钟设置
4、调试选择
当系统处于低功耗模式时,则需要利用看门狗定时器(WDT)来唤醒系统。
低功率启动
通电复位(POR)后,BLE系统通过调用不同组件的启动功能对这些组件进行初始化。初始化时通过执行以下步骤实现低功耗运行:
1、在32.768-kHz watch晶体振荡器(WCO)启动时,关闭24-MHz外部晶体振荡器(ECO)以降低功耗。
2、500 ms后(WCO启动时间),启用WDT以唤醒系统。
3、将MCU配置成在500 ms WCO启动时间内处于深度睡眠模式。
4、WCO启用后,重启ECO以启用BLE子系统(BLESS)接口。
5、把WCO置于低功耗模式,并将低频时钟(LFCLK)源从32‐kHz内部低速振荡器(ILO)改为WCO。
6、启用WDT以唤醒系统。
7、将MCU置于深度睡眠模式。
[图5:低功耗启动波形]
深度睡眠
用户设计应管理系统时钟、系统功率模式和BLESS功率模式,以实现BLE MCU的低功耗运行。
在BLE事件间隔期间,建议通过执行以下步骤实现深度睡眠:
1、关闭ECO以降低功耗。
2、1.5s后(BLE事件间隔),启用WDT以唤醒系统。
3、将MCU置于深度睡眠模式。
4、1.5s后,重启ECO以启用BLE子系统(BLESS)接口。
5、发送BLE广播数据。
6、从步骤1开始重复。
[图6:深度睡眠波形图]
IMO 时钟设置
3-MHz到48-MHz内部主振荡器(IMO)是主要的内部时钟源。IMO的默认频率是48 MHz,可在3 MHz到48 MHz范围内以1 MHz的步长调节。在默认的校准设置下,IMO与本例中RDK的公差为±2%。图7显示了改变IMO频率后的总功耗示例。
[图7:IMO DC规格和示例总功耗]
调试选择
串行线调试(SWD)引脚用于开发阶段的运行时固件调试。将SWD引脚配置为调试模式会增加电流消耗。因此,这些引脚应在最终版本时切换到通用输入输出(GPIO)模式,让它们在芯片复位时仍可用于设备编程。
我们可以使用电压和电流波形计算BLE设计的平均消耗电流,以确认设计上的优化程度。图8显示了功率优化设计的功耗结果。
[图8:功率优化的BLE设计的电流消耗]
平均电流约为1.5 µA,从启动到待机的总功耗为0.106 mJ。
采用能量采集技术运行
在这平均电流和总功耗水平上,需要确认系统能够采用能量采集技术运行。图9显示了能量采集系统的框图。该系统采用了S6AE10xA Energy Harvesting(EH)PMIC系列,可使用 CYALKIT-E04 S6AE102A和S6AE103A EVK 以及CY8CKIT-042-BLE BLE Pioneer Kit 运行一整天。
[图9:能量采集系统框图]
图10中的框图显示了基于S6AE102A和S6AE103APSoC电路板的PSoC 4 BLE的能量采集过程。
Wave1显示了基于太阳能的BLE运行,Wave2显示了发送时的BLE电流消耗。PMIC首先将太阳能存储到VSTORE1(VST1)上的一个300-μF陶瓷电容器上 。当VST1达到VVOUTH时,能量被发送到MCU用于BLE运行。
[图10:简单的能量采集]
但是,这种简单的能量采集过程,在没有备用电容器的情况下(例如,没有光线的期间)不能持续运行一整天。
图11中的框图和波形显示了混合储能控制功能。用于运行系统的能量存储在VST1中,其余能量用于对VSTORE2(VST2)进行充电。当没有环境光线时,VST2中能持续为系统提供能量。
[图11:混合储能控制功能]
图12中的波形显示将能量存储到VSTORE2时的充电曲线。S6AE10xA将能量存储到VSTORE1(小电容器)和VSTORE2(大电容器)中。存储在VSTORE1中的能量用于系统运行,其余能量用于VSTORE2(VST2)的子储能器件充电。VSTORE2中持续为系统提供能量,因此,即使在没有环境光线的情况下,系统也能继续运行一段时间。
[图12:存储多余能量的波形]
图13中的框图显示了混合电源输入控制模式。Wave1显示的是PMIC如何控制两个电源(太阳能和电池)。PMIC通过转换这两个电源在不同场景下驱动系统。环境光线通常是持续的,但某些地方可能没有持续的光线。PMIC能够自动转换这两个电源,在没有光线的情况下继续供电。
[图13:混合电源输出控制]
S6AE10xA根据VSTORE1的电压自动更换电源。如果VSOTRE1的电压达到VVOUTL,将从VBAT电源供电,以便在无环境光线的情况继续供电。
举报