CC2530+CC2591 PA寄存器配置

来源:互联网 发布:yy挂机软件免费 编辑:程序博客网 时间:2024/05/24 07:13

在TI Ztack 协议栈中,CC2530与CC2591接线方式如下图:


CC2591有三个脚与CC2530连接,如果硬件管脚连接的是其他的管脚则需要在协议栈上修改。值得注意的是PA_EN与EN只能连接在P1_0到P1_5,这是由CC2530决定的。HGM可以任意定义。

下面说下这三个管脚在协议栈中的修改方式。 
1. HGM的修改:如果定义了HAL_PA_LNA那么首先会在初始化的时候调用对应的
HAL_BOARD_INIT函数,在该函数中有Set PA/LNA HGM control 的引脚P0DIR |= BV(7),那么修改该处的管脚定义即可。然后在mac_radio_defs.h中

 #define HAL_PA_LNA_RX_HGM()  st( P0_7 = 1; )    
#define HAL_PA_LNA_RX_LGM()  st( P0_7 = 0; )修改此处即可。 
2. 修改PA_EN与EN,此处的修改比较隐藏。在mac_radio_defs.c中找到
macRadioTurnOnPower函数,在该函数中找到 /* P1_2 -> PAEN */ 
RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV; OBSSEL2       = OBSSEL_OBS_CTRL0;  
/* P1_5 -> EN (LNA control) */

RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV; 
OBSSEL5      = OBSSEL_OBS_CTRL1;

第一个就是设置PAEN的,如果是P1_3就设置OBSSEL3,用的P1口的哪个管脚就设置对应的OBSSEL寄存器即可。同理EN也是同样的设置。


在不用TI协议栈的情况下,需要自己直接配置相应的寄存器:

代码如下:

void Enable_TX_POWER()
{
  AGCCTRL1 = 0x15;
  FSCAL1   = 0x00;
  RFC_OBS_CTRL0 = 0x68;
  RFC_OBS_CTRL1 = 0x6A;
  TXPOWER  = 0xE5;
  OBSSEL1  = 0xFB;
  OBSSEL4  = 0xFC;
  //Set PA/LNA HGM control P0_7                  
  P0DIR |= BV(7);
#if RF_SEND  
  //P0_7 = 1;
  P1_1 = 1;
  P1_4 = 0;
#else//RF_RECV
  P0_7 = 1;
  P1_1 = 0;
  P1_4 = 1;
#endif
}

参考TI文档http://www.ti.com.cn/cn/lit/an/swra308a/swra308a.pdf

0 0
原创粉丝点击