CC2530的PA寄存器设置
请教TI大神:
CC2530外加PA模块,查看CC2530数据手册的OBSSEL0~OBSSEL5寄存器,OBSSEL0~OBSSEL5寄存器是否就是对应的CC2530的IO口P1.0~P1.5作为控制RX和TX端口,能否使用P1.6和P1.7作为控制PA模块,假如电路已经使用P1.6和P1.7作为控制PA模块,能否使用IOP1.3 P1.4口映射到P1.6和P1.7,谢谢回答
你如果要使用OBSSEL来覆盖GPIO以控制PA的话,只能用P1.0-P1.5,通过映射IO来关联理论上应该行不通,我也没测试过。但是既然你已经用P1.6和P1.7来控制PA了,为什么一定要这么用呢,作为单片机普通IO口的电平你不是随便控制吗?只需要了解PA芯片的控制电平,在你打开发送或者打开接收之前先切换PA控制引脚电平不就完全搞定了?正好我有一个产品用的CC2530+rfx2401,引脚控制刚好也用的P1.6和P1.7,反正使用毫无问题。
感谢您的回答,如果使用P1.6和P1.7,那程序上如何对PA进行设置,我看使用2591时候程序的设置为
#if INCLUDE_PA==2591
// Initialize CC2591 to RX high gain mode
static uint8 fFirst= TRUE;
if(fFirst) {
AGCCTRL1 = 0x15;
FSCAL1 = 0x0;
RFC_OBS_CTRL0 = 0x68;
RFC_OBS_CTRL1 = 0x6A;
OBSSEL1 = 0xFB;
OBSSEL4 = 0xFC;
那如果使用P1.6和P1.7,程序只需要对IO端口进行高低电平的设置吗,不需要进行其他的寄存器设置了,还是我理解错了,本人初次接触PA,希望大神指导下,如果方便能否发下你关于PA的程序设置,谢谢
你把这段改成普通IO口控制就行,可以理解为CC2591内部有一个射频开关,通过电平状态来切换发送和接收的切换,具体电平状态可以看数据手册
其实就是你在发射前把RXTX和HGM的电平按照上图给出就行,前提时也要先使能PAEN,一般发射时 RXTX=1,接收时RXTX=0,至于HGM=1不变就行
感谢您的回答,如果使用2401作为PA,使用P1.6和P1.7连接TXEN和RXEN,对PA的设置也是将P1.6和P1.7改成普通IO口控制,根据下图所示的电平,对P1.6和P1.7端口进行电平的输出控制,不知道这样说是否正确
是的,2591也是类似,我手里也有带2591的模块,虽然是用的P1.0和P1.1但是还是按照普通IO给的电平,可以用。
可以的话帖子里采纳一下答案呗
想请教您,在使用PA时候,在不使用协议栈时候cc2530的程序是如何进行识别PA模块是2401还是2591?谢谢指点
这个跟用不用协议栈没关系,PA用哪个都是一样,主要区别就在控制PA时序上,至于用程序去识别是哪种芯片基本上不可行,一般都是知道了芯片的使能逻辑,才能用程序去控制
请问打开发送具体指的哪个接口呢?是APSDE_DataReq吗,调用这个函数之后再切回接收可以实现对PA的控制吗
对CC2591的操作主要是PAEN, EN, HGM, RXTX几个脚,决定该芯片的状态是TX还是RX,具体请参考手册Using CC2591 Front End with CC2530/1