Port usb Esp32 planté

Bonjour à tous,
Suite à ce que je pense être une erreur de programmation, je ne peux plus televerser de projet dans mon Esp32.
Je suppose avoir reprogrammer en mode UART le port com USB au lieu de reatribuer les bonnes pin. Mon pc reconnais bien la carte, sur le bon port com du pc. Mais je ne plus rien faire, je n ai pas réussi non plus avec les outils esptool et un autre en ligne.

Si quelqu un a déjà eu le soucis et peu me venir en aide.

Merci

Bonsoir @greg60 et Bienvenue sur ce forum !

je ne peux plus televerser de projet dans mon Esp32.

Qu'appelles tu ESP32 ? A quoi ressemble le tien ? (ce terme désigne à l'origine une puce , mais aussi souvent par extension des modules sous capot métalliques , des cartes très diverses.....)

Je suppose avoir reprogrammer en mode UART le port com USB

Peux tu préciser ce point ? Sur la plupart des cartes avec des ESP32 c'est un circuit intégré non programmable qui assure l'interface série-USB

C’est une Esp32 de chez . AZ delivery

Je n ai plus le code malheureusement ^^
Mais ça ressemblait à :
Serial.begin(115200,SERIAL_8N1,3,1)
Alors que j aurais dû mettre Serial1.begin(115200,SERIAL_8N1,3,1)

Les chipset USB est le CP2102

Tu as donc une carte NodeMCU avec un ESP32 sous le capot métallique du module

Serial.begin(115200,SERIAL_8N1,3,1)

Alors que j aurais dû mettre Serial1.begin(115200,SERIAL_8N1,3,1)

La première ligne correspond à la liason entre la puce ESP32 et l'ordinateur par le port série à travers le circuit intégre CP2102 Seule cette première liaison série sert à téleverser un nouveau programme via l'embase USB de la carte.

La seconde ligne correspond à un second port série disponible pour relier des périphériques divers : GPS, SIM800L..... Aucun rapport ici avec le port USB de la carte

SI le câble USB est OK et le CP2102 fonctionnel l'ordinateur doir voir un port série apparaître
Si rien n'est câblé sur le GPIO0 le téleversement doit se faire après avoir sélectionné dans l'IDE Arduino le bon port série quelque soit le code précédemment envoyé

Je viens de réessayer. Cela fonctionne.
Il est possible que la GPIO était à HIGT …

Merci :pray:

Édit : GPIO 0 n était pas câblé. Je ne comprends pas

Erreur de débutant, mais cela pourra peut être servir à quelqu un d autre :
En utilisant les pins 1 et 3 en tant que serial et non serial1, il y avait collision entre les données entrante et les donnes USB ….
Maintenant c’est résolu.

je dirai les choses autrement pour différencier les 3 UARTS, les 3 ports série matériels :

Serial : UART0 (Rx,TX) est positionné dès la mise sous tension sur les GPIO3 et 1 (c'est effectué par le bootloader)
-> On n'indique pas ce brochage dans ce SerialBegin vu que c'est effectué en amont du code que l'on téléverse

Serial1 : UART1_RX et UART1_TX peuvent être positionnés sur n'importe quels GPIO disponibles
-> indiquer les GPIO dans Serial1Begin()

Serial2 : UART2_RX et UART2_TX peuvent également être positionnés sur n'importe quels GPIO disponibles, même si sur les dessins de 'pinout' les GPIO 16 et 17 sont proposés
-> indiquer les GPIO utilisés dans Serial2.Begin()

:point_right:Pour éviter les problèmes ne rien câbler sur les GPIO1 et 3 et ne pas chercher à leur attribuer une autre fonctionnalité que l'UART0 = Serial , port série associé sur la pluspart des cartes à l'interface USB

A titre d'exemple voici un petit programme qui laisse tranquille Serial (Rx,Tx) en GPIO3 et 1(GPIO ne figurant pas dans le code) et place Serial1 arbitrairement en 26 et 27, la même chose est possible avec Serial2

// test UART1 GPIO arbitraires

#define RXD1 26
#define TXD1 27

void setup() {
  Serial.begin(115200);
  Serial1.begin(9600, SERIAL_8N1, RXD1, TXD1);
}

void loop() { 
  while (Serial1.available()) {
    Serial.print(char(Serial1.read()));
  }
  while (Serial.available()) {
    Serial1.print(char(Serial.read()));
  }
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.