各位大牛:
之前用的2530,我的应用没用用到协议栈,自己控制寄存器,设置RF不过滤帧,来写一个简单的控制协议。
现在想加上PA,网上买的2530+2591,使用的时候距离还没有原来单纯2530远,这肯定是2591没有正确打开。
TI发布的 Using CC2591 Front End with CC2530/1 里写到:
然后看TI发布的 TIMAC and Z-Stack Modifications for using CC2591 RF Front End with CC2530 ,理解为:P0.7控制2591高增益或者低增益。
P1.1和P1.4的控制,按表格中TX: EN = 0; PA_EN = 1; RX: EN = 1; PA_EN = 0; 于是就在发射函数的开始和结束分别进行管脚控制。
在Using CC2591 Front End with CC2530/1 里,还提到其他寄存器的新值:
于是在RF初始化中设置为:
EN = 1; PA_EN = 0;
P0DIR |= 0x80;
HAL_PA_LNA_RX_HGM();
FRMFILT0 = 0x0C; // 静止接收过滤,即接收所有数据包 TXPOWER = 0xD5; // 发射功率为19dBm
FREQCTRL = 0x0B; // 选择通道11
CCACTRL0 = 0xF8; // 推荐值smartRF软件生成
FSCAL1 = 0x00; TXFILTCFG = 0x09;
AGCCTRL1 = 0x15;
AGCCTRL2 = 0xFE; TXFILTCFG = 0x09; RFIRQM0 |= (1<<6); // //使能RF数据包接收中断
IEN2 |= (1<<0); //使能RF中断
RFST = 0xED; //清除RF接收缓冲区 ISFLUSHRX
RFST = 0xE3; // RF接收使能 ISRXON RFC_OBS_CTRL0 = 0x68;
RFC_OBS_CTRL1 = 0x6A;
OBSSEL1 = 0xFB;
OBSSEL4 = 0xFC;
但是结果仍然是距离不远,也就是2591不工作。
请问,还有哪里没有考虑到?
VV:
EN = 1; PA_EN = 0;搞错了??
应该是反过来才是TX Power增强