ZStack-2.5.1a CC2530+CC259x PA功率放大应用
使用的是ZStack-2.5.1a协议栈,ZStack-3.0.1的协议栈也有,但是个人感觉不好用,没有ZStack-2.5.1a好用。
ZStack-2.5.1a协议栈没有集成CC2592,但是集成了CC2591。从软件控制上,CC2592和CC2591一样,没差。
打开宏定义
\Components\HAL\Target\CC2530EB\Config\hal_board.h
去掉xHAL_PA_LNA最前面的x
#define HAL_PA_LNA
#define xHAL_PA_LNA_CC2590
输出功率修改
\Components\mac\high_level\mac_pib.c
static CODE const macPib_t macPibDefaults =
{54, FALSE, TRUE, FALSE, 6, NULL, 0, MAC_BO_NON_BEACON, 0, 0, {0, SADDR_MODE_EXT}, MAC_SHORT_ADDR_NONE, 0, FALSE, 4, 3, 0xFFFF, FALSE, FALSE, MAC_SHORT_ADDR_NONE, MAC_SO_NONE, 0x01F4, FALSE, 5, 1220, 3, 32, 0, TRUE, FALSE,
#if defined (HAL_PA_LNA)19,
#elif defined (HAL_PA_LNA_CC2590)11,
#else3,
#endifMAC_CHAN_11, {0, SADDR_MODE_EXT}, 1, MAC_BO_NON_BEACON,
};
\Components\mac\low_level\srf04\single_chip\mac_redio_defs.c
#if defined HAL_PA_LNA || defined MAC_RUNTIME_CC2591
const uint8 CODE macRadioDefsTxPwrCC2591[] =
{21, (uint8)(int8)10, 0xE5, 0xD5, 0xC5, 0xB5, 0xA5, 0xA5, 0x95, 0x85, 0x85, 0x75, 0x65
};
#endif
CC259x控制引脚定义
TI官方参考设计
CC2592 | CC2591 | 功能 |
---|
P0_7 | P0_7 | HGM |
P1_0 | P1_4 | LNA_EN |
P1_1 | P1_1 | PA_EN |
功能 | 说明 |
---|
HGM | 高增益模式控制 |
LNA_EN | 使能低噪声放大器 |
PA_EN | 使能PA |
| PA_EN | LNA_EN|HGM| 功能|说明|
| ------------- |:-------------😐 -----😐
| 0| 0| x| Power Down|掉电模式(最省电)|
| 0| 1| 0| RX LGM |接收低增益模式|
| 0| 1| 1| RX HGM |接收高增益模式|
| 1| 0| x| TX |发送模式|
| 1| 1| x| No allowed |不允许该模式|
\Components\mac\low_level\srf04\single_chip\mac_redio_defs.h
/* ----------- PA/LNA control ---------- */
#define HAL_PA_LNA_RX_HGM() st( P0_7 = 1; )
#define HAL_PA_LNA_RX_LGM() st( P0_7 = 0; )
\Components\mac\low_level\srf04\single_chip\mac_redio_defs.c
#if defined MAC_RUNTIME_CC2591 || defined MAC_RUNTIME_CC2590 || \defined HAL_PA_LNA || defined HAL_PA_LNA_CC2590{ RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;OBSSEL1 = OBSSEL_OBS_CTRL0;
RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;OBSSEL0 = OBSSEL_OBS_CTRL1;COMPRESSION_WORKAROUND_ON();}
#endif
源码链接
https://download.csdn.net/download/kangweijian/10398466