OM6621X 低功耗开发注意事项

Curry · 1026次点击 · 2023-07-13

1.使能sleepJLINK无法再下载调试,需要按键唤醒MCU或者按住复位才可以下载,无法进行DEBUG调试。


2.调试睡眠状态的时候,尽量不要在这个sleep event里面添加LOG,如果要加也只能在ENTRY/LEAVE_TOTTOM

这两个状态加极少的打印,LEAVEL TOP不能够添加打印,否则会死机,原因是休眠的时候UART会被关闭,

所以唤醒的时候要先打开串口,才可以打印LOG,否则未打开UART,打印LOG会hardfault.


3.查看是否睡眠的最好的方法是调用pmu_dump;


串口会输出:

 1*   [PMU] prevent_status=00000000

 2*   [PMU] wakeup_pin=0001000004(cur_level=0001000004 sleep_level=0001000004)

 3*   [PMU] pull_up=FFFD7F9CDF(cur_level=FFFD7F9CDC) pull_down=0000000000(cur_level=0000000000) all_cur_level=FFFFFFFFFC

 4*   [PMU] clocking: CPU(128MHz) SRAM(000087FF,ULP:32MHz) SF0 SF1 UART0 GPIO ANA


需要认真阅读,这段是设备低功耗调试的关键;

1)设备功耗比较大,mA级别以上的情况,就是未进入睡眠,主要解析:

第一行:是否有阻止状态,比如TIMERPWM等外设在工作;

第二行:唤醒源设置错误,比如设置高电平唤醒,但是对应的IO一直是高电平,那样就会被一直唤醒;

2)设备有细微的漏电,uA级别的情况,主要解析:

第三行:如果上拉不等于当前的电平或者下拉的不等于当前的电平,都会存在漏电,实际应用中,主要是上拉漏电,

因为我们默认全部上拉,如果有的IO在配置的时候,没有修改模式会存在漏电的情况,简单的做法是,把当前的电

平替换默认的电平;

4.关闭睡眠功能正常,使能睡眠,系统出现不稳定的死机情况:


主要是因为睡眠的时候,系统会自动关闭SPI/I2C/UART,所以唤醒后,需要重新OPEN

这个外设才可以使用,并且在使用的过程中需要阻止睡眠,因为系统唤醒后,不阻止的

话,会马上睡眠.

外设驱动开发的时候,需要做到以下几个步骤:

1)阻止睡眠:

void pmu_lowpower_prevent(pmu_lowpower_peripheral_t lpp);

2)外设读写:

I2C/SPI/UART/ADC硬件外设读写;

3)允许睡眠:

void pmu_lowpower_allow(pmu_lowpower_peripheral_t lpp);

详细的请下载链接文档


 


 


OM6621X 低功耗开发注意事项-202307137084.pdf
被收藏 1  ∙  0 赞  
加入收藏
点赞
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站