uext-ch390-low-power-wake-8.ino
Ejemplo conceptual que muestra cómo usar el pin de interrupción del CH390 para despertar un MCU en sueño profundo.
Este ejemplo ilustra la interacción hardware/software para modos de bajo consumo. El CH390 debe configurarse a través de sus registros internos para señalar la actividad de red en el pin INT. El microcontrolador (RP2040/ESP32) debe configurarse para dormir y despertar en este pin. Requiere un controlador SPI para escribir en los registros de control del CH390.
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
}