PA_EN LNA_EN HGM三根线连接无误。
参考了CC2538-CC2592手册,想设置TXPOWER=0xFF,让发射功率是最大的,现在遇到了设置问题,找了deyisupport和google也没看到有类似的问题。
1、很多人都会推荐直接在osal_start_system()前面调用macRadioSetTxPower或者ZMacSetTransmitPower设置。试过了,这样在macRadioUpdateTxPower里面打断点是能看到TXPOWER被设置为了0xFF,但是后面OSAL运行之后,在某个地方会osal偷偷调用macRadioSetTxPower两次,自动给设置成默认的0x42了,具体在哪里调用了这个函数,位置没找到。
当然也可以暴力修改macRadioUpdateTxPower函数,让其永远设置为0xFF,但是似乎不妥当。
2、搜索了所有协议栈源代码文件,也没找到调用的地方,那在哪里能找到调用位置呢?
我测试把源码中macRadioSetTxPower函数都修改为别的名字,再编译发现link错误,是TIMAC-CC2538.a报出的错误,难道是在这个黑匣子里调用了,下载了TIMAC代码,也没找到调用位置,如何破?
gaoyang9992006:
不知道这个跟CC2530用的一样不,CC2530里面还有个
uint8 value = 0xF5;
MAC_MlmeSetReq(MAC_PHY_TRANSMIT_POWER_SIGNED, &value);
这种用法。
Susan Yang:
默认TX Power是在cc2538-rf.h内的#define CC2538_RF_TX_POWER_RECOMMENDED 0xD5您可以尝试使用#ifndef CC2538_RF_CONF_TX_POWER #define CC2538_RF_CONF_TX_POWER0xFF #endif /* CC2538_RF_CONF_CHANNEL */
miffy:
回复 Susan Yang:
这个头文件也没找到,宏也没找到,SuSan 您确定是在Z-Stack 3.0 安装后的文件夹里面吗?
Lianxing Qiu:
回复 miffy:
是不是问题出现在RX时候,这个应该是一个有个if函数没有进入,找找吧
miffy:
回复 Lianxing Qiu:
最后也不算是最好的解决方法了,但是也算是解决了,两步走:
1、修改mac_radio_defs.c中macRadioDefsTxPwrCC2592数组最后一个元素0x42改成0xFF,很奇怪为什么协议栈会默认调用最后一个?
#if defined HAL_PA_LNA_CC2592 || defined MAC_RUNTIME_CC2592 const uint8 CODE macRadioDefsTxPwrCC2592[] = {22,/* tramsmit power level of the first entry */(uint8)(int8)8, /* transmit power level of the last entry *//*22 dBm */0xFF,/* characterized as 22 dBm in datasheet *//*21 dBm */0xD5,/* characterized as 20.9 dBm in datasheet *//*20 dBm */0xC5,/* characterized as 20.1 dBm in datasheet *//*19 dBm */0xB0,/* characterized as 19 dBm in datasheet *//*18 dBm */0xA1,/* characterized as 17.8 dBm in datasheet *//*17 dBm */0xA1,/*16 dBm */0x91,/* characterized as 16.4 dBm in datasheet *//*15 dBm */0x88,/* characterized as 14.9 dBm in datasheet *//*14 dBm */0x88,/*13 dBm */0x72,/* characterized as 13 dBm in datasheet *//*12 dBm */0x72,/*11 dBm */0x62,/* characterized as 11 dBm in datasheet *//*10 dBm */0x58,/* characterized as 9.5 dBm in datasheet *//*9 dBm*/0x58,/*22 dBm*/0xFF,/* characterized as 22 dBm in datasheet */ }; #endif2、找到mac_radio_defs.h文件中的如下宏,进行修改(不然设置的时候会判断当前值为0xFF,新的也为0xFF,TXPOWER就会设置不成功)
//#define MAC_RADIO_TX_POWER_INVALID0xFF #define MAC_RADIO_TX_POWER_INVALID0x42