标签:
总结一下无线模块调试的体会。Arduino上已经有人做了这个模块的库了,但是自己根据手册写的也有一定的参考意义。
无线模块是我认为比较难调试的模块之一,因为是双方互动的一种模块,通信失败有两方面的原因,不能从单一代码中找。代码写好了,也将各种信息写进去了,但就是收不到或者接收不到数据。首先想到的是检查设备的连线。因为是SPI通信,所以使用的是mega2560自带的SPI通道口,查看上篇文章介绍。
除此之外CC1101有个GDO0 我连接在了板子上的48引脚、
确认连线。
其次就是测试SPI是否正常工作,在状态寄存器的0x31地址为0x14,如果你读取结果为0x14那么基本上SPI为静态工作的,查看芯片手册说这个Version状态寄存器的复位值为0x04,可能为手册的一处笔误。因为我们读取了3个模块,用了不同的代码都为这个值。
另外我们在测试的工程中常常用的是写Addr寄存器来测试读写是否正常,Addr寄存器地址为0x09,先写入后读出,如果前后一致,则你与芯片的通信基本上是没问题了。
测试这些后如果你还是无法两个无线通信,那么确认信道是否一致。
手册上建议IO电流不要超过10ma,但是经测试我直接用io口读取,电流为50mA也还正常工作。
标签:
原文地址:http://my.oschina.net/000quanwei/blog/476712