Espressif ESP32-S3 DevKitC-1

De NCad Wiki
Version datée du 19 octobre 2026 à 22:40 par Cacheln (discussion | contributions) (→‎Configuration de l'IDE)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

— Electronique —

Capteur DS18B20 | Capteur SEN0562 | Capteur SEN0381 | Mémoire ADA563X

Microcontrôleur Espressif ESP32-S3 DevKitC-1

Présentation

Schéma de la carte

ESPRESSIF ESP32-S3 DevKitC-1 PINS.jpg

Broches spécifiques

.
Broches Etat Fonctions
GPIO0/36 flottant Bouton BOOT.
GPIO3/13 flottant Contrôle du BOOT mode JTAG
GPIO9/15 GPIO10/16 GPIO11/17 GPIO12/18 GPIO13/19 GPIO14/20 flottant Interface SPI et mémoire PSRAM.
GPIO35/32 GPIO36/33 GPIO37/34 GPIO38/35 flottant Interface JTAG (MTCK, MTDO, MTDI, MTMS)
GPIO40/29 GPIO41/30 flottant Interface JTAG
GPIO26 GPIO27 GPIO28 GPIO29 GPIO30 GPIO31 GPIO32 flottant Interfaces SPI Flash et PSRAM (SPICS1, SPIHD, SPIWP, SPICS0, SPICLK, SPIQ, SPID)
GPIO43 GPIO44 flottant Interface de debug UART (UART0 TX, UART0 RX)
.
Broches Etat Fonctions
GPIO19/42 GPIO20/43 - USB D- et USB D+
GPIO38/32 - LED RGB
GPIO43/24 GPIO44/25 - Interface UART0 (communication série via USB)

Configuration de l'IDE

IDE Arduino

  • Rediriger la sortie Serial sur le port COM :
USB CDC On Boot : Enable
  • Paramétrage de la taille de la mémoire flash :
Flash Size : 8M
  • Paramétrage de la taille de la mémoire RAM :
PSRAM : OPI PSRAM
  • Paramétrage de la partition :
Partition Scheme : Huge APP (3MB No OTA/1MB SPIFFS)

Requêtes d'interruption

Timers

Timer matériel

Timer logiciel FreeRTOS

hw_timer_t * timer = NULL;
volatile SemaphoreHandle_t timerSemaphore;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;

# Fonction d'interruption
void ARDUINO_ISR_ATTR onTimer() {
  portENTER_CRITICAL_ISR(&timerMux);           # Verrouille l'accès à la variable pour l'ISR et inhibe les requêtes interruptions
  watchdog_count++;                            # Variable incrémentale
  portEXIT_CRITICAL_ISR(&timerMux);            # Libère le verrou
  xSemaphoreGiveFromISR(timerSemaphore, NULL); # Libération du sémaphore
}

# Initialisation du timer dans la fonction setup()
setup () {
  timerSemaphore = xSemaphoreCreateBinary(); # Création du sémaphore
  timer = timerBegin(1000000);               # Limite du timer à 1 seconde
  timerAttachInterrupt(timer, &onTimer);     # Execution de la fonction onTimer à l'expiration du timer
  timerAlarm(timer, 1000000, true, 0);       # Répétition du timer
}

loop() {

}