Z-Stack 3.0.0 + CC2530 ZNP + RFX2401 的 PA设置出现问题
Z-Stack 3.0.0 + CC2530 ZNP + RFX2401 的 PA设置出现问题
==============================================================
CC2530 P1.1 连接 RFX2401 的第5脚 TXEN
CC2530 P1.4 连接 RFX2401 的第6脚 RXEN
下面的2种测试中, ZNP 都用作协调器,并且是同一块板子放在同一个位置,抓包器的位置也是固定的。
把抓包器和ZNP的位置固定,
使用不做任何修改的 ZNP 代码编译下载并测试,
P1.4测得电压为 3.3V
ubiqua 测得协调器的 Link Quality: -31dmb
==============================================================
ZNP 代码只做下面的修改:
1,
Hal_board_cfg.h (components\hal\target\cc2530znp)
#define HAL_PA_LNA
2,
Mac_radio_defs.c (components\mac\low_level\srf04\single_chip)
uint8 paLnaChip = PA_LNA_CC2591;//PA_LNA_NONE;
3,
Mac_radio_defs.c (components\mac\low_level\srf04\single_chip)
else
{
/* P1_1 -> PAEN */
RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
OBSSEL1 = OBSSEL_OBS_CTRL0;
/* P1_4 -> EN (LNA control) */
//RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
//OBSSEL4 = OBSSEL_OBS_CTRL1;
P1SEL &= -0x10;
P1DIR |= 0x10;
P1_4 =1;
}
修改完毕之后,重新编译并下载,
P1.4测得电压为 3.3V
相同的位置,ubiqua 测得协调器的 Link Quality: -39dmb
就是说,设置PA之后,居然信号变差了。
请大家帮忙看看,谢谢。
有可能你没有设置成功,您可以在线调试的时候在这两句代码那里设置断点,看有没有执行到
参考CC2530规格书中寄存器RFC_OBS_CTRL0,RFC_OBS_CTRL1的描述,设置成0x68和0x6A分别作PA和LNA控制引脚
OBSSEL_OBS_CTRL0~OBSSEL_OBS_CTRL4中可以指定P1.0~P1.4任意IO口作为RFC_OBS_CTRL0或者RFC_OBS_CTRL1的功能输出。
通过设置断点,发现下面的代码是被运行了,而且是在 ZNP 一启动没做任何操作,它就会自动运行到这来的。
我所用的代码,就是 原版的 3.0 SDK, 仅仅打开了 HAL_PA_LNA , uint8 paLnaChip = PA_LNA_CC2591; 而已
/* P1_1 -> PAEN */
RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
OBSSEL1 = OBSSEL_OBS_CTRL0;
/* P1_4 -> EN (LNA control) */
//RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
//OBSSEL4 = OBSSEL_OBS_CTRL1;
P1SEL &= -0x10;
P1DIR |= 0x10;
P1_4 =1;