经过测试,如果不连接任何SimpleBLECentral设备的话,上电很快就可以自动进入休眠,电流0.5uA,想必一定是PM3模式了,不然不会这么低。
如果配对连接成功了以后,SimpleBLEPeripheral就始终无法自动休眠了,此时电流200uA左右。看了网上的帖子,说是手动强制进休眠再次唤醒会有问题,据说OSAL没消息需要处理了,且没有定时器在运行了,就会自动休眠,但默认的SimpleBLEPeripheral工程似乎没法进PM3休眠,看了工程编译属性,已经默认定义了POWER_SAVING
那么怎么修改,才能让其连接后自动休眠,需要的时候再次外部IO唤醒?之后又自动休眠,唤醒我知道修改hal_sleep.c代码里面映射的IO即可,那自动休眠呢?莫非要自定义timer来处理?
da qin zheng sheng:
powersaving模式对应pm2
da qin zheng sheng:
pm3模式蓝牙不能自动工作,需要外部中断唤醒。
Viki Shi:
SimpleBLEPeripheral可以进入PM2,PM3.关闭广播后,如果系统中有定时任务没有完成,那就进入PM2,没有就进入PM3。
miffy:
回复 Viki Shi:
目前连接成功以后,广播就已经关闭了(没有定义PLUS_BROADCASTER),目前使用SimpleBLEPeripheral里面的CC2541DK-MINI Keyfob进行测试的,连接成功后等了很久很久,都没进入PM3模式
miffy:
回复 da qin zheng sheng:
这个已经知道是必须IO唤醒了,只是我现在还没到唤醒那一步,现在就进不了PM3,默认进PM2,电流应该在200uA左右
Viki Shi:
回复 miffy:
直接用SimpleBLEPeripheral例程测试,路径: C:\Texas Instruments\BLE-CC254x-1.4.2.2\Projects\ble\SimpleBLEPeripheral\CC2541DB
miffy:
回复 Viki Shi:
必须断开连接才能进入PM3,那么问题是再次IO唤醒之后,能在百毫秒级内实现重连吗?有没有相关的sample或者思路