小车使用的是2.4G进行遥控通信,有快响应、低功耗等特点,我使用的是NRF24L01模块实现,然后集成到电路板上。焊接完后,2.4G芯片可以检测到但是无法收发,通过排除法,先测试了两个模块各自的收发通信成功,用模块跟自己焊的进行通信无法是收还是发都不行,更换电容滤波、天线、电感等等有关元器件依然不能通信,重新焊一板也不行,尝试多次直接拆焊模块上的芯片却一直检测不出来,说明不是代码问题,也不是焊接问题,就是电路或者芯片有问题,但是检测芯片是成功的,就非常奇怪,电路也是验证过的。直到看到了这篇文章NRF24L01故障排查_nrf24l01无反应-CSDN博客,里面说si和nrf(仿造和原厂)的区别,我发现我买的芯片都是si的,拆模块的nrf焊接是一直不成功,那么就证明了芯片的区别导致的无法收发,但是为什么可以识别成功呢?
图一:NRF24L01原理图
图二:Si24R1原理图
对比两个芯片的原理图发现其外围电路和封装基本一样,区别就是有两个引脚和天线的连接方式是不一样的,代码中判断标志位使用的引脚一样。Si和nrf的SPI通信的引脚是通用的,所以会检测到,但是si的驱动的库完全不一样,无法与nrf进行2.4G通信。