关于ZIGBEE的CC2530+RFX2401C协议栈的修改

参照网上论坛和一些相关的帖子很容易就找到设置了;小白在这里再详细的总结一下,把遇到的一些问题提出来。

首先在网上买了一对CC2530+RFX2401C的模块,发射功率和1.2公里吹嘘的话也不知道是不是真的,暂时当它是真的吧!手头上也没有什么工具可以测这些参数。

跑题了,还是先看看代码怎么修改吧。我们根据模块的硬件连接线找到RFX24001C的控制线先,根据这颗PA数据手册我们可以清楚地知道PA控制管脚是TXEN和RXEN


知道这两个脚,那我们就很容易在CC2530上面找出控制这两个的引脚,因为ZIGBEE的厂商不一定都是按照官方连接的管脚做的,这样子也为一些不清楚的同学、糊里糊涂测试的同学带回正轨。现在我手上这块模块CC2530使用的是P1.1--TXEN;P1.2--RXEN;然后根据RFX2401C的管脚控制定义进行程序修改


知道这两个之后我们来修改代码:

第一步:在hal_board_cfg.h中找到#define xHAL_PA_LNA,把它改成#define HAL_PA_LNA;这样是打开协议栈的PA使能。

第二步:在mac_radio_defs.c中找到MAC_INTERNAL_API void macRadioTurnOnPower(void)这个函数

/* P1_1 -> PAEN */
RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
OBSSEL1       = OBSSEL_OBS_CTRL0;


/* P1_2 -> EN (LNA control) */
RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
OBSSEL2       = OBSSEL_OBS_CTRL1;

把原来那部分屏蔽后,再复制粘贴修改成上述代码。到这里代码已经改完了,我们可以去测试了。

如果做到这里,你的测试完全成功,请不要高兴,因为作为一个研发人员还是需要更深刻的理解的。在这里我就有几个疑问,提出来让大神们指正指正……

1、协议栈中的PA和LNA代表的是什么意思?而RFX2401C中却命名为TXEN和RXEN,这样程序的修改虽然是交给协议栈处理,但协议栈并不知道PA芯片是CC2591还是RFX2401C?这里面的PA控制过程还需要验证。有帖子讲PA是发射电路用的信号放大,LNA是接收信号放大。

2、我们知道有OBSSEL0-OBSSEL4的五个这样控制,分别对应P1.0到P1.4的管脚,OBSSEL_OBS_CTRL0和OBSSEL_OBS_CTRL1给它们赋的值代表的是置0或置1吗?

3、这只是打开PA的使能而已,一些同学测得结果往往不理想,为什么呢?或许你并没有把发射功率设置到最大4.5Dbm。

不知道大神们有没有遇到过更神奇的一些事情,可以一起分享一下!

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值