微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2538-CC2592发射功率设置为最大问题

CC2538-CC2592发射功率设置为最大问题

时间:10-02 整理:3721RD 点击:

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代码,也没找到调用位置,如何破?

不知道这个跟CC2530用的一样不,CC2530里面还有个

uint8 value = 0xF5;

MAC_MlmeSetReq(MAC_PHY_TRANSMIT_POWER_SIGNED, &value);

这种用法。

默认TX Power是在cc2538-rf.h内的 #define CC2538_RF_TX_POWER_RECOMMENDED 0xD5 您可以尝试使用 #ifndef CC2538_RF_CONF_TX_POWER #define CC2538_RF_CONF_TX_POWER 0xFF #endif /* CC2538_RF_CONF_CHANNEL */

这个头文件也没找到,宏也没找到,SuSan 您确定是在Z-Stack 3.0 安装后的文件夹里面吗?

是不是问题出现在RX时候,这个应该是一个有个if函数没有进入,找找吧

最后也不算是最好的解决方法了,但是也算是解决了,两步走:

 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 */
};
#endif

2、找到mac_radio_defs.h文件中的如下宏,进行修改(不然设置的时候会判断当前值为0xFF,新的也为0xFF,TXPOWER就会设置不成功)

//#define MAC_RADIO_TX_POWER_INVALID              0xFF
#define MAC_RADIO_TX_POWER_INVALID              0x42

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top