无线传输,好处很多.记得调试的第一块数传模块是nRF2401.那时我在做个小项目(液位自动控制装置)的时候,用到这对nRF2401.下面就说下调试nRF2401的调试过程遇到的问题。

MSP430F149(两块)+ nRF2401(一对)+4*4键盘(两个)+LCD1602(两片)-----进行半双工通信,并用LCD显示通信的数据是否正确。因为nRF2401也是3.3V供电的,因此我就用MCU的电源供到nRF2401中,上电几次了,发现MCU不能复位。为什么会这样呢? 是单片机出问题了吗 ?我单独测了下单片机.....没问题啊。nRF2401在作怪?

由于nRF2401工作在2.4G频段,理应不会受到其他的频率干扰啊. nRF2401的晶振用的是16MHz,单片机用的是4MHz,是在发生谐振吗?不会啊,两晶振不相等啊,我用3M多的晶振换下那个4MHz的.再测,还是老样子,经多次请教与反复调试,终于查出,是电源在作怪.我给nRF2401单独供电就解决了.因此我们应该重视电源管理,常备如一些辅助的器件,如磁珠,电感等.还有一些屏蔽盒,在高频的场合相当有用.

接下来是程序的调试.由于是半双工的,用到两块单片机,怎么JTAG在线调试呢? 想了下,只能是这样了:我将主机的代码下载到到主机中,给主机上电,此时主机就在不断向从机发送数据,接下来我就在JIAG调试从机,当然也给它上电.经过不断的修改代码,当然有点难,因为要两边的程序都完全正确了才能接收数据,记得那晚调试到很晚了才出来.程序调试的时候也有一些小技巧:利用一些发光二极管来监测关键代码段的进行情况,如发送数据的过程与接收过程中点亮LED.还要有适当的延时,不要它操作过频繁等.

再下来就是测试传输的数据是否正确了.理论上来说,只要没有同频段的干扰,误码率是很低的,尤其是这些高度集成的无线数传模块.测试开始,隔着一堵墙,数据的发送与接收都正确,至于更远的距离我也没有试过,我还发现在两片nRF2401靠得很近的时候,数据传输出错,这时应该是通信饱和了.为此,在实际应用时我们应该避免这种情况.

这次我用的nRF2401是成品板了,因此只需要考滤软件方面就可以了.如果是自已画PCB的话,还得在硬件方面下些功夫,如何设计阻抗匹配的天线,还有晶振的布局等.

02-05 12:09