TI论坛
直播中

张琪

7年用户 228经验值
私信 关注
[问答]

请问从PM2转换到PM1模式中间的延时怎么处理?

ti同事,
在使用CC2540/2541时遇到了如下问题,不知如何处理,请指示!
1,作为从机的“SimpleBLEPeripheral“上电后进入执行“osal_pwrmgr_device( PWRMGR_BATTERY ); ”, 从机进入PM2省电模式(电流立马降到0.5MA左右,很好),此时蓝牙通讯功能正常--我有LCD监控显示。
2,手机发送命令给作为从机的“SimpleBLEPeripheral“,LCD显示“SimpleBLEPeripheral“接收命令正确。 此时执行“osal_pwrmgr_device( PWRMGR_ALWAYS_ON );”命令将从机从PM2省电模式唤醒到PM1正常工作模式 。
3,从机“SimpleBLEPeripheral“执行某I/O口的LED开/关动作。
4, 执行“osal_pwrmgr_device( PWRMGR_BATTERY ); ”命令,从机进入PM2省电模式。

上面流程产生的现象是:
步骤3处的 LED变成闪烁(而且亮度不够)状态了 --本应该是常亮/常灭的。
如果去掉上面的步骤4,则步骤3处的 LED是常亮/常灭的,符合设计要求。但这没进入PM2省电,省不到电。

请问上面碰到的情况我应该怎么处理好? 有没可能在上面步骤3和4之间加个延时之类?

回帖(4)

华农武

2020-3-12 13:12:52
norman,
这个,3到4,肯定会进入PM2或者PM3,这样IO就会被关闭,没电平输出了,自然会变成一闪一闪。。。
如果你要用IO输出长亮,就不能让系统进入PM2或者3.
举报

张琪

2020-3-12 13:21:06
刚才的实验步骤及结果如下:
1,去掉步骤4,
2,在步骤3处添加了一个定时中断,中断时间为时间n(譬如1秒,目的是保证该动作已经完成),
3,在定时中断里面执行“osal_pwrmgr_device( PWRMGR_BATTERY ); ”命令,从机进入PM2省电模式。
目前看起来这个方法是可以的,但不知道是否最佳解决方法。
举报

华农武

2020-3-12 13:34:40
引用: dualxu 发表于 2020-3-12 13:21
刚才的实验步骤及结果如下:
1,去掉步骤4,
2,在步骤3处添加了一个定时中断,中断时间为时间n(譬如1秒,目的是保证该动作已经完成),

norman,
就这样吧,应该没有其他更好办法,尽量少让LED长亮。
举报

张琪

2020-3-12 13:53:15
引用: 骑猪去天山 发表于 2020-3-12 13:34
norman,
就这样吧,应该没有其他更好办法,尽量少让LED长亮。

TI同事,
谢谢回复!
再请问,系统进入PM2后,不用到的管脚系统内部已经进行了低功耗处理(譬如设置为输入/输出,内部上拉/下拉电阻设置)还是需要用户自己再进行处理?
如果用户自己处理,那么没用到的管脚即I/O口,该设成输入/输出,上拉/下拉(内部/外部)?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分