uext-ch390-low-power-wake-8.ino
Conceptual example showing how to use the CH390 interrupt pin to wake up a MCU in deep sleep.
This example illustrates hardware/software interaction for low-power modes. The CH390 must be configured via its internal registers to signal network activity on the INT pin. The microcontroller (RP2040/ESP32) must be set to sleep and wake on this pin. Requires an SPI driver to write to the CH390 control registers.
uext-ch390-low-power-wake-8.ino
#include <stdio.h>
// Broches UEXT communes
#define CS_PIN 1
#define INT_PIN 2
#define RST_PIN 3
void setup() {
// Configuration GPIO basique
printf("Configuration GPIO...\n");
// Activer le mode Low Power sur le CH390
// Commande spécifique WCH: Écrire dans le registre de configuration
uint8_t config_reg = 0x00;
config_reg |= (1 << 0); // Enable Low Power Mode
// Envoyer la commande au CH390 via SPI
printf("Envoi commande Low Power au CH390...\n");
// Activer l'interrupteur (INT) pour réveiller le MCU
// Sur RP2040 ou ESP32, configurer INT_PIN comme entrée avec interruption sur front montant
printf("Mise en veille du MCU, attente d'activité réseau...\n");
}
void loop() {
// Le code entre ici n'est exécuté que si une interruption est levée (paquet reçu)
printf("Paquet détecté ! Réveil du système.\n");
// Traiter le paquet (lecture SPI)
// ...
// Remettre en veille
printf("Retour en veille basse consommation...\n");
// sleep_deep(); // Fonction dépendante du MCU
}