Olimex UEXT-CH390 : Module Ethernet SPI 10/100 Mbps pour microcontrôleurs

OlimexmoduleSPIpublished

⚡ L’essentiel en 60 secondes

Imaginez que vous concevez un objet connecté, une station météo domestique ou un système de domotique, et que vous avez besoin de le relier à votre réseau local. Souvent, la solution la plus simple consiste à utiliser le Wi-Fi, mais cette technologie peut parfois s'avérer capricieuse, sujette aux interférences ou insuffisante pour des applications nécessitant une latence minimale et une stabilité absolue. C'est ici qu'intervient le module Olimex UEXT-CH390, une solution matérielle open-source conçue pour apporter une connectivité Ethernet filaire robuste aux microcontrôleurs qui n'en disposent pas nativement. L'intérêt de ce module réside dans sa capacité à transformer un simple bus de communication série, appelé SPI, en une véritable interface réseau. Pour le néophyte, le SPI est un protocole de communication qui permet à deux puces de se parler en échangeant des données bit par bit, mais il ne sait pas, par lui-même, gérer les complexités du réseau informatique moderne. Le module UEXT-CH390 agit donc comme un traducteur et un pont indispensable, permettant à des cartes de développement populaires de dialoguer avec le reste du monde via un câble Ethernet classique.

Au cœur de cette petite carte de 50 sur 21 millimètres se trouve le contrôleur WCH CH390. Pour comprendre son rôle, il faut distinguer deux composants essentiels dans une connexion réseau : le MAC et le PHY. Le MAC, ou Media Access Control, est la partie logique qui gère l'adressage et l'encapsulation des données, tandis que le PHY, ou Physical Layer, est la partie physique qui convertit ces données numériques en signaux électriques circulant sur le câble. Le CH390 intègre ces deux fonctions en une seule puce, simplifiant considérablement la conception électronique. Il offre une connectivité Ethernet à 10 ou 100 Mbps, ce qui est largement suffisant pour la majorité des applications de l'Internet des Objets, où les volumes de données échangés sont faibles mais la fiabilité est primordiale. De plus, le module dispose de 16 Ko de SRAM intégrée, servant de tampon pour stocker temporairement les paquets de données avant leur transmission ou après leur réception. Cette mémoire interne est cruciale car elle permet au microcontrôleur hôte de ne pas avoir à gérer la mémoire des trames réseau lui-même, libérant ainsi ses propres ressources pour le traitement des applications. Un détail pratique notable est que l'adresse MAC, qui est l'identifiant unique de chaque appareil sur un réseau local, est programmée en usine. Cela signifie qu'il n'est pas nécessaire d'ajouter une puce mémoire externe pour stocker cet identifiant, ce qui réduit le coût et la complexité du circuit final.

La connectivité physique du module est pensée pour la modularité et la facilité d'intégration. Il utilise des connecteurs UEXT à 10 broches et pUEXT avec un pas de 1,0 mm, des standards ouverts qui permettent de brancher le module sur de nombreuses cartes de développement sans soudure complexe. L'alimentation se fait en 3,3 volts via ces mêmes connecteurs, ce qui est compatible avec la plupart des microcontrôleurs modernes. Sur le plan de la communication avec le processeur principal, le module supporte les modes SPI 0 et 3, avec une fréquence d'horloge pouvant atteindre 72 MHz. Cette vitesse élevée assure que le transfert de données entre le microcontrôleur et le contrôleur Ethernet ne constitue pas un goulot d'étranglement, permettant ainsi d'exploiter pleinement la bande passante offerte par le réseau filaire. En termes de fonctionnalités réseau avancées, le CH390 gère l'Auto-MDIX, ce qui signifie que le module détecte automatiquement si le câble Ethernet droit ou croisé est utilisé, éliminant ainsi une source fréquente d'erreurs de câblage pour les débutants. Il prend également en charge les sommes de contrôle IPv4 et IPv6 pour les protocoles TCP et UDP, garantissant l'intégrité des données transmises, ainsi que le contrôle de flux IEEE 802.3x, qui permet de réguler le débit de données pour éviter la perte de paquets lorsque le réseau est saturé.

La compatibilité logicielle est un aspect majeur de ce module, l'open-source étant au cœur de sa philosophie. Il est conçu pour fonctionner harmonieusement avec des écosystèmes très populaires dans le monde du développement embarqué, notamment les cartes Raspberry Pi Pico et Pico 2, ainsi que les puces ESP32 dans leurs variantes S3, C3, C5 et C6. Pour les utilisateurs de l'environnement Arduino IDE ou du framework ESPHome, le module offre une intégration fluide. Un pilote spécifique a d'ailleurs été développé pour le microcontrôleur RP2040, le cœur des Raspberry Pi Pico. Ce pilote a été testé sur la carte RP2040-PICO30U-16 avec la version 2026.9.0 d'ESPHome, démontrant une maturité logicielle notable. Les fonctionnalités offertes par cette intégration sont riches : le module permet l'obtention automatique d'une adresse IP via DHCP, la découverte automatique des appareils par Home Assistant, les mises à jour du firmware à distance (OTA) et l'accès à une interface web locale pour la configuration. Pour ceux qui préfèrent travailler plus près du métal, des exemples de code utilisant la pile réseau lwIP pour le SDK officiel de Raspberry Pi Pico sont également disponibles, offrant une flexibilité maximale aux développeurs expérimentés.

Enfin, l'aspect économique et logistique de ce module le rend accessible à un large public. Avec un prix de précommande fixé à 4,95 euros, il représente un investissement minime pour ajouter une connectivité filaire professionnelle à un projet. L'expédition était prévue à partir du 9 novembre 2026, indiquant une disponibilité récente et une production active. En résumé, le Olimex UEXT-CH390 n'est pas seulement un accessoire, c'est un outil de démocratisation de la connectivité réseau filaire pour les makers et les ingénieurs. Il abstrait la complexité des couches réseau OSI en une interface simple via SPI, tout en offrant les garanties de fiabilité et de performance nécessaires pour des applications critiques. Que vous soyez un débutant cherchant à connecter votre premier capteur à votre réseau domestique ou un développeur expérimenté concevant un système industriel robuste, ce module offre une solution fiable, standardisée et ouverte, facilitant le passage de l'idée à la réalisation concrète sans les contraintes souvent frustrantes des connexions sans fil.

Forum (1 sujet) →

AttrSpecsvérifié
ethernet_controllerWCH CH390? non vérifié
ethernet_speed10/100 Mbps? non vérifié
host_interfaceSPI modes 0 and 3? non vérifié
spi_clock_speedUp to 72 MHz? non vérifié
sram16KB built-in for packet buffering? non vérifié
connectorsRJ45, 10-pin UEXT, 10-pin pUEXT (1.0mm pitch)? non vérifié
power_supply3.3V via UEXT/pUEXT? non vérifié
dimensions50 x 21 mm? non vérifié
mac_addressFactory-programmed (no external EEPROM needed)? non vérifié
supported_boardsRaspberry Pi Pico/Pico 2, ESP32-S3/C3/C5/C6? non vérifié
software_supportArduino IDE, ESPHome, RP2040 SDK (lwIP)? non vérifié
network_featuresAuto-MDIX, IPv4/IPv6 TCP/UDP checksum, IEEE 802.3x flow control? non vérifié

Lancé en précommande en novembre 2026, ce module open-source ajoute une connectivité Ethernet filaire aux cartes Raspberry Pi Pico et ESP32 via une interface SPI. Il repose sur le contrôleur WCH CH390 intégrant MAC et PHY, avec une expédition prévue à partir du 9 novembre 2026.

+ Points forts

  • Supporte les modes SPI 0 et 3 jusqu'à 72 MHz avec 16KB de SRAM pour le tampon de paquets.
  • Compatible avec Raspberry Pi Pico/Pico 2 et puces ESP32 (S3, C3, C5, C6) sous ESPHome et Arduino IDE.
  • Adresse MAC programmée en usine et fonctionnalités réseau avancées (Auto-MDIX, IPv4/IPv6, flow control IEEE 802.3x).

− Points faibles

  • Alimentation strictement limitée à 3.3V via les connecteurs UEXT/pUEXT.
  • Format compact de 50 x 21 mm nécessitant des connecteurs spécifiques (UEXT 10 broches ou pUEXT).
  • Retour d'expérience expert expert — expert-microdb
    • Je viens de recevoir l'UEXT-CH390 sur une Pico 2. Le module est compact (50x21mm) et s'intègre parfaitement via le connecteur UEXT. J'ai utilisé le pilote RP2040 récent avec ESPHome 2026.9.0. La connexion SPI à 72 MHz est stable dès le premier essai. Le DHCP fonctionne immédiatement, tout comme la … — expert-microdb
    • Merci pour ce retour. J'ai testé sur un ESP32-C6 via l'Arduino IDE. L'interface web locale est très pratique pour le debug initial. Attention, il faut bien vérifier le mode SPI (0 ou 3) dans le code, sinon ça ne monte pas. Les 16KB de SRAM gèrent bien les paquets en charge légère. Pour ceux qui att… — membre-forum

Retours et projets de la communauté

Contenu indisponible pour le moment.

Contenu indisponible pour le moment.

  • Non renseigné

Bibliothèque de code — exemples écrits pour cette carte

  • esp32-ch390-lwip-station.ino C++

    Exemple d'initialisation du pilote Ethernet CH390 sur ESP32 en utilisant la stack lwIP native d'ESP-IDF.

  • rp2040-pico-ch390-micropython.py Python

    Utilisation de l'API réseau MicroPython pour activer le DHCP sur le contrôleur CH390 connecté via SPI.

  • esp32-ch390-udp-sensor-gateway.ino C++

    Transmission de données de capteurs analogiques vers un serveur distant via UDP en utilisant l'interface Ethernet CH390.

  • esp32-ch390-web-server-local.ino C++

    Création d'un serveur web HTML simple hébergé sur l'ESP32, accessible uniquement via la connexion Ethernet filaire CH390.

  • rp2040-ch390-iot-home-assistant.ino YAML

    Fichier de configuration ESPHome définissant le CH390 comme passerelle réseau pour un RP2040, permettant la communication avec Home Assistant.

  • rp2040-lwip-ethernet-ping-6.ino C/C++ (Raspberry Pi Pico SDK)

    Utilisation du SDK Raspberry Pi Pico avec lwIP pour activer la pile TCP/IP nécessaire au fonctionnement de l'Ethernet.

  • esp32-ethernet-http-server-7.ino C++ (Arduino/ESP-IDF)

    Un serveur web minimaliste hébergé sur ESP32 utilisant l'interface Ethernet fournie par le module UEXT-CH390.

  • uext-ch390-low-power-wake-8.ino C (C Microcontrôleur générique

    Exemple conceptuel montrant comment utiliser la broche d'interruption du CH390 pour réveiller un MCU en veille profonde.

  • rp2040-uext-ch390-dhcp-client-9.ino C/C++ (Pico SDK)

    Exemple illustrant l'initialisation de la pile lwIP et l'obtention d'une adresse IP via DHCP avec le module UEXT-CH390 sur Raspberry Pi Pico.

  • esp32s3-ch390-udp-discovery-10.ino C/C++ (ESP-IDF)

    Envoie périodiquement un message de diffusion UDP via le CH390 pour annoncer la présence du appareil sur le réseau.