Ti工程师 及 其他大神, 大家好,
我想使用CC3200 的 hibernate节电功能,就是平时不用的时候尽量低功耗,当需要使用的时候,通过外部按键唤醒芯片,该功能理想流程如下:
1、当设备(cc3200)上电后立刻进入hibernate模式;
2、外部gpio触发唤醒芯片
3、芯片设置STA模式,并关联到AP
4、和AP通信结束后返回hibernate模式;
问题:
1、请问上述流程是否可行 ???
2、如果可行,我看hibernate模式就支持gpio0~gpio6的事件触发,但是这些gpio中断对应的bit位我不太清楚 ??
3、如果task的运行函数为GPIO初始化等操作,进入hibernate模式后,下一次GPIO中断触发是否会生效(hibernate模式会停止GPIO吗 ?)
4、hibernate影响network处理器的相关的休眠,还有其他模块受影响无法工作吗?
5、请问有没有更好的解决方式,我是要求GPIO中断唤醒芯片 ??
谢谢大家
zhihong duan:
问题补充,
1、第二条我可以算出来
Yonghua Pan:
1, 可行
2, 你参考一下SDK里面有release notes,里面有讲,然后data sheet里面也有说。
3, 会生效,hibernate下会有6个GPIO触发生效的
4, hibernate下外设都会断掉的,只有时钟或者6个GPIO去唤醒
5, 你这种方法是可行的,很省电。
zhihong duan:
回复 Yonghua Pan:
yonghua, 好
我在运行Hib的实例时碰到一个问题:
说明: 代码是原始的实例(hibernate application),我就修改common.h中的AP的ssid,但是烧写到flash中运行的结果在分配IP地址哪里卡住,下面是log:
************************************************* CC3200 Hibernate Application *************************************************
HIB: Wake up on Power ONHost Driver Version: 1.0.0.10Build Version 2.0.7.0.31.0.0.4.1.1.5.3.3Device is configured in default state Started SimpleLink Device: STA Mode[WLAN EVENT] STA Connected to the AP: 19#4#loctest , BSSID: 6:14:4b:63:11:e8[NETAPP EVENT] IP acquired by the device
Device has connected to 19#4#loctestError [-15457] at line [1112] in function [Network_IF_IpConfigGet] Error [-15457] at line [1036] in function [Network_IF_ConnectAP] Connection to AP failed
从代码上走应该是 lRetVal = sl_NetCfgGet(SL_IPV4_STA_P2P_CL_GET_INFO,&isDhcp,&len,(unsigned char *)&ipV4); 这里出问题了,我有考虑吧宏参数换成
SL_IPV4_STA_P2P_CL_DHCP_ENABLE, 但是依然无效。
请告知下原因? 我的service pack 和SDK都是对应的,且是最新的
谢谢