7 votos

Detección de presencia NRF24L01

He adaptado mi Biblioteca RF73/RFM73 para el NRF24L01. Estos chips son casi idénticos, excepto que el RFM73 tiene un segundo banco de registros que debe ser inicializado con algunos valores mágicos. El RFM73 tiene un comando especial para cambiar entre los bancos, y un bit en el registro de estado que indica el banco actual. Esto proporciona un buen mecanismo para comprobar la presencia del chip (cambiar al otro banco y comprobar que el bit en el registro de estado cambia), sin alterar ninguna configuración ni transmitir nada.

¿Alguien ha encontrado una función del NRF24L01 que pueda utilizarse de forma similar para comprobar la presencia de este chip?

0 votos

¿Se refiere al nRF24L01+? Nadie utiliza ya el nRF24L01, según parece.

2 votos

Entonces supongo que no me llamo nadie. Yo uso unos módulos de dx.com, quizás el chip de esos sea en realidad un 24L01+ o 24L01B, lo comprobaré. ¡Si alguien quiere responder a la pregunta para uno de esos módulos relacionados siéntase libre!

0 votos

@WoutervanOoijen Uno de los módulos nRF24 que compré en eBay era un L01 y no un L01+, pero el vendedor fue lo suficientemente amable como para sustituirlo gratuitamente cuando se lo indiqué. ¿Quieres probarlo? Cuando lo he comprobado ahora mismo, los módulos más baratos son L01, mientras que los más caros son todos L01+ aparentemente.

2voto

Ron Harlev Puntos 4923

Esta biblioteca distingue el NRF24L01 del NRF24L01+ intentando establecer la velocidad de datos de 250Kbps. Si lo consigue, el chip es de la variedad +. También puedes probar a encender y apagar el chip. Parece poco probable que usted perturbe otro software de controlador al establecer y reestablecer estos ajustes. https://github.com/jpbarraca/pynrf24/blob/master/nrf24.py#L671

1voto

BRIGHT Puntos 26

No conozco todas tus limitaciones, es decir, cuántos bytes te atreves a enviar si te preocupan algunos otros El dispositivo SPI está presente en su lugar o lo que sea, pero asumiendo que estás dispuesto a hacer algo de comunicación [SPI, no necesariamente RF] y que eres usuario exclusivo de ese dispositivo SPI seleccionado, parece que hay un montón de maneras de abordar esto:

  • si sabes que la radio se ha apagado por defecto, comprueba que RX_ADDR_P0 es 0xE7E7E7E7. No descarta completamente el ruido, y son unos cuantos bytes más que comprobar, por ejemplo, el byte RF_SETUP, pero parece una apuesta decente.
  • si te va bien escribiendo en el dispositivo, pon RX_ADDR_P0 a algún valor de señal improbable o aleatorio codificado, y mira si te devuelve la lectura correctamente. Lo mismo con cualquier otra configuración (SETUP_RETR parece un buen candidato para un valor de un solo byte).

Ninguno de estos confirmará que otros pines han sido conectados para eso probablemente necesitarás intentar un envío ACK'ed donde probablemente fallará (y por lo tanto tu pin CE si está conectado debería causar que el bit de estado MAX_RT se ponga y el pin IRQ sea señalado). Tampoco podrían distinguir de un dispositivo potencialmente similar o lo que sea. Pero sólo para la comprobación del cableado SPI básico, los elementos mencionados anteriormente deberían ser suficientes.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X