当前位置:网站首页>NRF24L01故障排查

NRF24L01故障排查

2022-07-06 09:17:00 XlinliY.Zhang

一、概述

        NRF24L01想必是大家在入门时候最常用的一款射频模块,它使用SPI接口,2.4G频段进行通讯,长距离低功耗,对于免连接通讯非常好用。但,我们常说浪费生命就用NRF24L01,它在射频的好用和在硬件搭建的难用几乎成正比,使用面包板 + 杜邦线跑通的可能性很渺小。所以针对这个问题,我专门写下这篇文章,用来帮助新手快速跑通NRF24L01;同时避免新手因误看垃圾教程,什么 "NRF24L01应该接5V增强供电",“肯定是淘宝假芯片”等,导致浪费时间和精力。

二、如何查出故障

  1、工欲善其事必先利其器

  1. 对于NRF24L01,检查故障应该有两块开发板及两块NRF24L01,这样才方便测试通讯。
  2. 强烈建议购买一块万用表,使用万用表对查故障简直如虎添翼。
  3. 多多准备一些新的杜邦线,和准备面包板,这样可以避免接触不良从而浪费时间。 

   2、知己知彼百战百胜

        在淘宝购买的时候,你以为你买到的就是NRF24L01了么,其实并不是,主流的货源主要分为这三个系列

  • 欧美产NRF24L01(原厂正品)
  • 台湾产NRF24L01(1:1山寨,问题不大)
  • 国产    SI24L01    (仿造,通用,当不是完全通用)

在淘宝上,大部分商家因为价格问题都会选择国产SI24L01,这就导致了你看你买的是NRF其实是SI,那怎么方便这两者呢? 答案很简单,手机打开手电筒,照着模块上的丝印看,写NRF的是NRF,写SI的是SI,当然,牛屎封装(就是一坨圆圆的黑胶)的肯定是SI没得跑。

 

SI24

 

 NRF24

 

 

分辨NRF还是SI对排障很有必有,因为部分库完全不通用.

  3、对症下药,药到病除

  (1)NRF24L01 欧美/台湾产:

      程序可以参考这篇文章:Arduino MEGA 与UNO 通过nRF24L模块通讯

      只要是NRF24L01,使用全新杜邦线,确保接触良好,完全可以正常使用,什么3.3V供电不够都是骗人的,这模块最大70mA电流就极限了,Arduino 3.3V电流完全够用。而且这模块没有大模块小模块只分,只有带转接板和不带转接板,部分模块带有一个LDO降压,支持5V输入,常见的模块如下图这种,接5V只会发热,甚至烧毁模块!!!!

        

 

    对于有万用表的同学:

   使用毫安档位,红表笔接3.3V,黑表笔接NRF24L01的VCC,根据电流,可分为

  • 9mA左右,模块通讯异常,压根没工作
  • 大于100mA,模块损毁,直接换货
  • 其余电流,硬件通讯,模块运作正常,检查通讯信道

   对于没有万用表的同学:

        单独接收端模块连接上去后,串口应没有任何输出,在没有发射端的情况下,接收端应该串口无输出,如果一直输出0,可以考虑接线接触不良或者模块彻底损坏。

(2)SI24L01 国产:

                对于这款模块,程序可用的只有店家经过测试的程序能通讯,需要找店家索取,且和NRF24L01匹配信道方式不同,较难通讯,由于笔者到目前用个10+个NRF24L01仍买到SI的,只有帮助别人进行查故遇到过,每一个SI24的问题花开两朵各表一枝,只能总结以下问题

  • 库问题,导致程序无法运行,找店家索要程序
  • 不同库文件信道表示方式不同,建议使用同款模块
  • 使用开发板和多次使用的杜邦线导致接触不良

(3)信道不匹配:

        还有一种可能就是接收和发送设置的信道不一样,导致模块虽然正常工作,但完全没有接收到,这点主要检查存在库对信道的编写不一样,建议不改动示例,使用相同库进行测试。

三、总结

  XX24L01主要问题在于以下几点

  • 驱动库没有统一标准
  • 接触不良影响极大(浪费生命就用NRF24L01的原因,老手都日常翻车)

        玩单片机到现在多年,大部分场景我都是拒绝使用NRF24L01的,每次使用单单SI 和 NRF就是个坑,一点点接触不良就会导致NRF24直接不工作,各种问题频繁出现,但其在低功耗长距离方面仍是其他通讯方式不可比拟的,如果非用不可,强烈建议使用转接板进行连接而不使用杜邦线,或者多掏钱买串口通讯的模块,或者集成了这些模块的开发板,这些模块帮你杜绝了芯片和硬件问题,能让专心应对程序BUG,让你你少掉几根头发。

        当然在可以的情况下,建议切换通讯方案,使用ESPNOW、LORA、315\433MHz都是不错的替代方案或者使用串口透传进行数据传输。当然有经验的建议去看看STM32对NRF的处理,自己编写程序,完善DEBUG操作,使开发更加省时省力

原网站

版权声明
本文为[XlinliY.Zhang]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44635175/article/details/120595758