要在Zstack中驱动RFX2401C,网上找资料说需要修改两个地方,一、定义#define HAL_PA_LNA这个宏,二、在macRadioTurnOnPower函数中把修改以下代码
/* P1_1 */
RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
OBSSEL1 = OBSSEL1_OBS_CTRL0;
/* P1_4 */
RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
OBSSEL4 = OBSSEL4_OBS_CTRL4;
修改成
/* P1_5 -> PAEN */
RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
OBSSEL5 = OBSSEL_OBS_CTRL0; //P1_5 TXEN
P1SEL &= ~0X10;
P1DIR |= 0X10;
P1_4 = 1; //P1_4 RXEN andy pa其中P1_5接TXEN,P1_4接RXEN,这样修改后,协议栈自己就会完成对RFX2401C的驱动。
但是我的问题是这样的,我们硬件工程师把TXEN接到P0_0,RXEN接到P0_1上了,而OBSSEL5寄存器只有0~5,也就是只能控制P1_0到P1_5,我现在没办法配置OBSSEL5寄存器了,请问,在不改动硬件的前提下是否有解决方法?在线等,求TI员工或者各位大神帮帮忙。
Aries Lord:
TXEN只能配置为P1_0到P1_5,RXEN可以任意接。不过如果你们的设备只是点对点单向通信,不组网,单发单收,可以持续使能TXEN
JingYong Qu:
回复 Aries Lord:
请问如果调用协议栈组网的话,TXEN没接到P1_0到P1_5就不行,或者是否有解决办法?
Aries Lord:
回复 JingYong Qu:
你可以试试自己写个协议出来
JingYong Qu:
回复 Aries Lord:
自己写协议水平不够啊
Aries Lord:
回复 JingYong Qu:
给你一个建议,P1_0到P1_5任意一个闲置引脚,配置成TX状态同步模式,然后设置上升沿中断,上升沿中断时反转为下降沿中断,并且TXEN口拉高,下降沿中断时再把TXEN拉低。
VV:
@jingyong,
还是改硬件比较方便了。
JingYong Qu:
回复 Aries Lord:
谢谢,已经决定改硬件