Skip to content

Module radio NRF04 SPI

Description

Module SPI basé sur un émetteur / récepteur radio NRF04 permettant d'utiliser la communication sans fil avec le Pi Pico

Principe général utilisation

Ce sont des modules de comm’ radio qui utilise une comm’ SPI pour l'interfaçage.

Ce sont des modules et une norme de communication créés par Nordic Semiconductor, une société norvégienne de fabrication de semi-conducteurs.

Pour comprendre, en bref, NRF24 :

  • c’est 125 canaux physiques, appelés frequency channel, de communication différents possibles nommés par un numéro
  • et dans chaque canal, c’est 6 canaux logiques différents appelés data-pipe (nommé par une adresse sur 6 bytes)

Avec nRF24, on pourra facilement faire de la communication entre une base (PRX) et 6 points différents (PTX1-6) sur un canal de fréquence donné N (125 canaux disponibles). Ce qui est déjà pas mal.

A noter une librairie pour CircuitPython ici : https://circuitpython-nrf24l01.readthedocs.io/en/latest/index.html

Le module

Le brochage

Typique d'un dispositif SPI :

  • broche MOSI
  • broche MISO
  • broche CLK
  • broche CS (Chip Select)
  • le V+ qui peut être 3.3V ou 5V (régulateur vers 3.3V sur la carte)
  • le 0V

Dispose également de :

  • broche CE : Chip Enable qui défini le mode TX ou RX du module (à priori 0 pour RX et 1 pour TX)
  • broche IRQ : broche d'interruption. Active niveau bas. NC en pratique.

Datasheet du NRF04

Pour mémoire : les broches SPI du Pi Pico

Sur le Pi Pico, on a 2 ports SPI. Les broches sont indiquées au format suivant :

  • _SCK : CLK
  • _TX : MOSI à priori *_RX : MISO à priori
  • _CSn : CS

On a plusieurs possibilités. Il semble intéressant d'utiliser un groupe de 4 broches contiguües pour faciliter la connexion.

Montage type

On connecte :

  • broche MOSI
  • broche MISO
  • broche CLK
  • broche CS (Chip Select)
  • broche CE
  • 0V sur 0V
  • V+ sur 3.3V

Librairie Micropython

Librairie officielle ici : https://github.com/micropython/micropython/tree/master/drivers/nrf24l01

Copier les 2 fichiers : le test.py fournit une fonction d'initialisation esclave et
Plutôt prévu Pyboard.

Pour le Pi Pico : modifier les broches, et ajouter compatibilité dans NRF04

Ici, une librairie qui implémente le protocole de communication. https://github.com/peterhinch/micropython-radio

Débrouillage dans l'interpréteur


Code d'exemple


Liens utiles