请教功耗问题

mcu是ch579,整个系统关掉蓝牙并且对不用的引脚做了必要初始化,在HAL_SLEEP=1的情况下,如果不读传感器数据时,功耗为18ua,主要是传感器自身的耗电,mcu不耗电。但根据实际需求,每0.2s需要读一次传感器,这时加了一个tmos_start_task来唤醒,时间为0.2s来读传感器,这时功耗在50-150ua变化。然后为了测试,进行修改,依然每0.2s唤醒一次,但并不做任何操作,进入事件处理后直接结束,这时功耗仍然在50-150ua变化。按理说没跑什么代码不应该有这么大电流,不知能否修改一些设置达到低电流。谢谢

用的HID_Keyboard这个例程

更改的代码如下

.

.

.

#define SENSOR_INTERVAL? ? ?MS1_TO_SYSTEM_TIME(200)

.

.

.


uint16 HidEmu_ProcessEvent( uint8 task_id, uint16 events )

{

.

.

.

if ( events & READ_SENSOR )

{

//if(readsensor()==1)

{

// display(pTxData);

}

tmos_start_task( hidEmuTaskId, READ_SENSOR, SENSOR_INTERVAL );

return ( events ^ READ_SENSOR );

}

.

.

.

}

注释掉了读传感器和显示,依然不能降低功耗,将SENSOR_INTERVAL 设置很大,相当于长时间休眠,mcu就不耗电了


结合蓝牙使用时原始功耗为18uA,这里提供一个思路:添加一个TMOS任务,每0.2S执行一次打印,其他均为默认,串口接上打印信息查看日志同时测试功耗,理论上功耗增加不会特别大的。


关了蓝牙,18ua是传感器的功耗,无任务时mcu没有耗电,具体情况帖子应该说清楚了,增加了0.2s空任务都没有添加打印代码电流就变大了很多


整个电路上有个传感器,相当于排除这个传感器,不开蓝牙无任务整个系统基本不耗电,但TMOS添加一个每0.2s的空任务,耗电会增加平均七八十微安的功耗(电流波动很大,大概50-150ua,减去20ua传感器电流也有30-130ua),按理说只是每0.2s唤醒一次,不应该这么大


下图分别测试默认的例程和添加了TMOS任务的功耗测试:

1.png

添加打印

2.png

3.png


用的HID_Keyboard这个例程吗?你这是开了蓝牙才平均29ua,开蓝牙并增加打印任务才65.55ua。比我测试的低多了,我电路板加了个47微法的电容,测试时电池直接串联的万用表


使用的是HID_KBD的例程,连接间隔做了修改。

image.png

可以先在开发板上进行测试,上面开启了0.2S的任务后功耗增加30±,这还是一个比较正常的现象的。


会不会是版本问题,能否方便把你用的版本给个下载地址或者发给我也行?


PPK2功耗分析仪,多少钱可以买到?


功率计直接淘宝上搜索进行购买即可,目前提供精准测量的工具很多的。


程序是官网下载的最新的,做了连接间隔的调整如上。

TMOS任务如图:

image.png

可以发送一份邮件至邮箱:lpc@wch.cn,我这里也可以提供该程序进行验证,备注情况。


去官网下载了2.5版本,做了图中的修改,做测试估算平均电流也有五六十微安,能否通过更改设置将电流降到20ua以下


企业微信截图_16657156371846.png


企业微信截图_16657156593938.png



企业微信截图_16657156712517.png


企业微信截图_16657157023293.png



官方提供了PM的程序,开启sleep模式查看芯片的sleep模式底电流是否为手册标注,注意需去除LDO/灯等功耗元件。

上面测试的是开启了一个TMOS任务的睡眠,如果需要进一步降低功耗,需要将执行该任务的时间拉大,否则唤醒还是很频繁的。


谢谢解答。由于液晶显示的问题,如果降低唤醒频率会使显示看起来不平滑。看了下PM程序,没提供类似TMOS的时间唤醒.项目是纽扣电池供电,其中传感器大约不到20ua,希望不开蓝牙的状态下总共不超过50ua,看来不容易了


再请教下,发现TOMS系统在HAL_SLEEP=1时LCD不能显示,怎样设置能使LCD点亮


确保你的操作是在TMOS管理运行的,可以加上打印信息查看是否有运行到了。

在开启睡眠后,确保LCD显示已完成,可以通过置一个标志,如果该标志显示任务未完成,此时进入了睡眠,则直接在一进入CH58X_LowPower这个函数时就return出去,直到任务执行完成将标志恢复,重新进入睡眠。



只有登录才能回复,可以选择微信账号登录