uext-ch390-low-power-wake-8.ino
Exemple conceptuel montrant comment utiliser la broche d'interruption du CH390 pour réveiller un MCU en veille profonde.
Cet exemple illustre l'interaction matériel/logiciel pour le low-power. Le CH390 doit être configuré via ses registres internes pour signaler une activité réseau sur la broche INT. Le microcontrôleur (RP2040/ESP32) doit être configuré pour dormir et se réveiller sur cette broche. Nécessite un driver SPI pour écrire les registres de contrôle du 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
}