打印

2.4G NRF24L01无线射频模块调试方法

[复制链接]
1580|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Ketose|  楼主 | 2014-12-24 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
玩NRF24L01时候,很多朋友反应调试模块有困难,调试不通的时候,不知道到底是芯片坏了还是收发芯片调试有BUG,现在把调试的方法一步步讲解一下,一劳永逸的解决这些问题。
分析步骤:
首先给芯片上电的时候,切记 VCC供电不要超过3.6V,否则芯片基本上报废了
(A)检查芯片是否被烧坏,烧录提供的发射(TX)代码,方法两种:
第一种,由于MISO脚的数据时读出来,所以用示波器看一下MISO脚是不是有波形,如果有,说明芯片没有被烧坏。
第二种,用SPI进行读写寄存器,如果写入的数据和读出来的数据一样,说明芯片没有问题。

(B)检查芯片发送端:
1)从发送代码中找到
    SPI_RW_Reg(WRITE_REG + EN_AA, xxxx);         
   SPI_RW_Reg(WRITE_REG + EN_RXADDR, xxxx);   
SPI_RW_Reg(WRITE_REG + SETUP_RETR, xxxx);  
把“xxxx”值改为如下值
   SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);         // 关闭通道0自动应答
   SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x00);    // 关闭接收通道0
SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x00);  // 关闭自动重发
2)读取STATUSFIFO_STATUS的值,在loop函数加入
    status=SPI_Read(STATUS);
    fifostatus=SPI_Read(FIFO_STATUS);
如果status=0x2efifostatus=0x11,标志发送方成功,不成功检查硬件连接、时序等可能导致的问题,关于“status=0x2efifostatus=0x11”,请看芯片寄存器介绍,在此不一一解释。
(B)检查芯片接受端:
1)发送方不要撤离,用另一块主板连上另一个NRF2401。从接收代码中找到
   SPI_RW_Reg(WRITE_REG + EN_AA, xxxx);         
SPI_RW_Reg(WRITE_REG + EN_RXADDR, xxxx);   
把“xxxx”值改为如下值
   SPI_RW_Reg(WRITE_REG + EN_AA, 0x00);         // 关闭通道0自动应答
SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);    // 接收要使能接收通道0
2)读取STATUSFIFO_STATUS的值,在loop函数加入
    status=SPI_Read(STATUS);
    fifostatus=SPI_Read(FIFO_STATUS);
如果接收方成功,STATUSFIFO_STATUS值如下:
status=0x40
如果NRF24L01最大支持32字节宽度,RX_PLOAD_WIDTH=32
Fifostatus  0x12------>0x11
如果NRF24L01支持小于32字节宽度,RX_PLOAD_WIDTH<32
Fifostatus  0x10------>0x11
(3)发送接收方都调试成功后,把之前调试“xxxx”的值恢复还原,重新编译烧录代码测试。

相关帖子

沙发
wangyaping11| | 2015-5-17 09:14 | 只看该作者
学习了

使用特权

评论回复
板凳
淡定的牙粉| | 2015-6-11 15:58 | 只看该作者
大神。你好!我看到您发的帖子在(B)检查芯片发送端;我的status=0x0e;fifostatus=0x11;这是怎么回事

使用特权

评论回复
地板
Ketose|  楼主 | 2015-6-11 19:16 | 只看该作者
淡定的牙粉 发表于 2015-6-11 15:58
大神。你好!我看到您发的帖子在(B)检查芯片发送端;我的status=0x0e;fifostatus=0x11;这是怎么回事 ...

没有发送成功

使用特权

评论回复
5
淡定的牙粉| | 2015-6-12 08:51 | 只看该作者

大神,您好!经过仔细研究,终于搞好了;但是只有在关闭自动应答的情况下,可以互相通讯;一旦双方打开自动应答就接收异常!只有一开始上电的时候接收端可以收到信号,过后就不能通讯了。这是怎么回事!麻烦您了大神。

使用特权

评论回复
6
图灵信念| | 2015-7-24 14:40 | 只看该作者
我也刚刚开始弄NRF,但是check一直错误,也就是说与MCU连接出现问题,用示波器打SPI对应的引脚也没波形,,,,

使用特权

评论回复
7
lm258| | 2015-10-29 21:50 | 只看该作者
整个程序拿上来一起讨论分析才好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我最讨厌两种人:一是有种族歧视的; 二是黑人;三是不识数的!

64

主题

3211

帖子

15

粉丝