Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
ESP32 qui plante
#11
Changer d'Oled.
J'ai un SSD1309 en test , pas de plantage jusqu'à présent même si je n'ai pas assez de recule pour être sûr.
Répondre
#12
Changé d'OLED (sans les résistances pull up, pour commencer), et avec noté I2C 4 broches, puce pilote SH1106 dans les caractéristiques.
Toujours du plantage après quelques heures.
Répondre
#13
Diymore TPL5150
[/url]
Adafruit TPL5150
[url=https://fr.aliexpress.com/i/1005001311149466.html]
Diymore TPL5110 aide moi pour faire un chien de garde hardware pour mon ESP32 programme arduino et cablage


ChatGPT a dit :
Le module TPL5110 de Diymore est un excellent choix pour mettre en place un chien de garde (watchdog) hardware pour un microcontrôleur comme l’ESP32, surtout pour les projets à très basse consommation. Il permet de couper complètement l’alimentation de l'ESP32 si celui-ci devient inactif ou ne "répond" plus correctement.

? Ce que fait le TPL5110
C’est un timer ultra basse consommation.

Il peut couper et rétablir l'alimentation d’un microcontrôleur (ici l’ESP32).

Il attend un signal nommé "Done" du microcontrôleur pour savoir s’il doit redémarrer le timer ou non.

Si ce signal n’est pas envoyé à temps, il redémarre le système.

Objectif :
  • Normalement : l'ESP32 fonctionne, effectue sa tâche, et signale "DONE" → le TPL5110 n’intervient pas.
  • En cas de plantage ou blocage : si "DONE" n’est pas reçu à temps, le TPL5110 coupe l'alim → redémarrage automatique de l'ESP32.

Schéma de câblage recommandé :
  • DRIVE (TPL5110) → Alimente l’ESP32 (via un transistor déjà sur la carte Diymor TPL5110)
  • DONE (TPL5110) → Connectée à une broche GPIO de l’ESP32 (ex: GPIO 15)
  • DELAY pin → Résistance → GND (définit le timeout du watchdog)
  • GND / VDD → Alimentation 3.3V ou 5V du TPL5110

✅ Exemple de code ESP32 :
cpp
CopierModifier
Code :
#define DONE_PIN 15 // Broche connectée à la pin DONE du TPL5110
void setup() {
  Serial.begin(115200);
  pinMode(DONE_PIN, OUTPUT);
  digitalWrite(DONE_PIN, LOW); // Assure un démarrage propre
}
void loop() {
  // --- Code principal ici ---
  Serial.println("ESP32 opérationnel");
  // Tâche simulée
  delay(1000); // Remplace par ton vrai traitement
  // Envoie le signal "DONE" au TPL5110 pour éviter reset
  digitalWrite(DONE_PIN, HIGH);
  delay(100); // Court pulse HIGH
  digitalWrite(DONE_PIN, LOW);
}

? Détails importants :
  • Le signal "DONE" doit être envoyé au moins une fois par cycle du TPL5110 (ex: toutes les 30 secondes si tu as une résistance 330 kΩ).
  • En cas de plantage logiciel ou blocage, le signal ne sera pas envoyé, donc le TPL5110 interrompt l’alim et redémarre l'ESP32.
  • Cela agit comme un watchdog hardware sans impliquer de watchdog interne.
Répondre
#14
Réduit la fréquence I²C
      Dans setup()
Wire.begin(SDA_PIN, SCL_PIN);  // Bien spécifier les broches si custom
Wire.setClock(100000);          // Baisse de fréquence
InitSSD();   


Ajoute un filtre RC (Résistance + Condensateur) sur les lignes I²C (voir Photos)

Blinder les fils de l'afficheur 

Alimenter l’afficheur avec une alimentation séparée 3,3V et mettre les masses communes avec l’ESP32


Pièces jointes Miniature(s)
   
Répondre
#15
Merci pour ces informations, mais étant nul en programmation, je suis incapable de modifier quoique ce soit dans ce magnifique programme d'André.
Répondre
#16
(24-05-2025, 06:29 PM)BernardF a écrit : Merci pour ces informations, mais étant nul en programmation, je suis incapable de modifier quoique ce soit dans ce magnifique programme d'André.

Peut être d'alimenter le oled en 5v.
Vu que les infos via I2C sont dans le sens ESP via Oled, tu ne risques pas grand chose.

Ou alors utiliser un level shifter sur les lignes I2C 
Et d'alimenter le oled en 5v .
Répondre
#17
Merci, avec l'alimentation de l'OLED directement en 5V, il a planté au bout de 1H30 !
Un autre essai OLED toujours alimenté en 5V, mais en passant de la version 14.21 à la version 14.23 j'ai presque cru que c'était bon, mais il a figé pile au bout de 24H !
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)