Espressif ESP32-S3 DevKitC-1
Aller à la navigation
Aller à la recherche
Capteur DS18B20 | Capteur SEN0562 | Capteur SEN0381 | Mémoire ADA563X
Microcontrôleur Espressif ESP32-S3 DevKitC-1
— Electronique —
Présentation
Schéma de la carte
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() {
}
