TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2540/2541从PM2被唤醒后驱动I/O口有问题,请问从PM2转换到PM1模式中间的延时怎么处理–目的是保证外部32MHZ晶体工作稳定

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之间加个延时之类?

 

Yan:

norman,

这个,3到4,肯定会进入PM2或者PM3,这样IO就会被关闭,没电平输出了,自然会变成一闪一闪。。。

如果你要用IO输出长亮,就不能让系统进入PM2或者3.

user3840094:

刚才的实验步骤及结果如下:

1,去掉步骤4,

2,在步骤3处添加了一个定时中断,中断时间为时间n(譬如1秒,目的是保证该动作已经完成),

3,在定时中断里面执行“osal_pwrmgr_device( PWRMGR_BATTERY ); ”命令,从机进入PM2省电模式。

目前看起来这个方法是可以的,但不知道是否最佳解决方法。

user3840094:

回复 Yan:

TI同事,

谢谢回复!

再请问,系统进入PM2后,不用到的管脚系统内部已经进行了低功耗处理(譬如设置为输入/输出,内部上拉/下拉电阻设置)还是需要用户自己再进行处理?

如果用户自己处理,那么没用到的管脚即I/O口,该设成输入/输出,上拉/下拉(内部/外部)?

赞(0)
未经允许不得转载:TI中文支持网 » CC2540/2541从PM2被唤醒后驱动I/O口有问题,请问从PM2转换到PM1模式中间的延时怎么处理–目的是保证外部32MHZ晶体工作稳定
分享到: 更多 (0)