« Espressif ESP32-S3 DevKitC-1 » : différence entre les versions
Aller à la navigation
Aller à la recherche
Capteur DS18B20 | Capteur SEN0562 | Capteur SEN0381 | Mémoire ADA563X | Chargeur/Alim Bat. Lipo
Microcontrôleur Espressif ESP32-S3 DevKitC-1
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| Ligne 3 : | Ligne 3 : | ||
= Présentation = | = Présentation = | ||
L'''ESP32-S3-DevKitC-1''' est une carte de développement d'''entrée de gamme''' équipée d'un microcontrôleur ESP32-S3-WROOM-1, ESP32-S3-WROOM-1U ou ESP32-S3-WROOM-2 ''(selon le modèle)''. Ainsi que d'un module '''MCU Wi-Fi'' + '''Bluetooth® Low Energy (BLE)''' intégrant des fonctions Wi-Fi et Bluetooth à faible consommation d'énergie. | L''''ESP32-S3-DevKitC-1''' est une carte de développement d''''entrée de gamme''' équipée d'un microcontrôleur ESP32-S3-WROOM-1, ESP32-S3-WROOM-1U ou ESP32-S3-WROOM-2 ''(selon le modèle)''. Ainsi que d'un module '''MCU Wi-Fi''' + '''Bluetooth® Low Energy ''(BLE)''''' intégrant des fonctions Wi-Fi et Bluetooth à faible consommation d'énergie. | ||
== Schéma de la carte == | == Schéma de la carte == | ||
| Ligne 61 : | Ligne 61 : | ||
* Paramétrage de la partition : | * Paramétrage de la partition : | ||
Partition Scheme : | Partition Scheme : 8M with spiffs (3MB APP/1.5MB SPIFFS) | ||
= Requêtes d'interruption = | = Requêtes d'interruption = | ||
Dernière version du 21 octobre 2026 à 17:27
— Electronique —
Présentation
L'ESP32-S3-DevKitC-1 est une carte de développement d'entrée de gamme équipée d'un microcontrôleur ESP32-S3-WROOM-1, ESP32-S3-WROOM-1U ou ESP32-S3-WROOM-2 (selon le modèle). Ainsi que d'un module MCU Wi-Fi + Bluetooth® Low Energy (BLE) intégrant des fonctions Wi-Fi et Bluetooth à faible consommation d'énergie.
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 : 8M with spiffs (3MB APP/1.5MB SPIFFS)
Requêtes d'interruption
Timers
Timer matériel
- Cet exemple illustre l'incrémentation à fréquence régulière (toutes les 1 secondes) de la variable watchdog_count à l'aide du timer matériel du microcontrôleur.
hw_timer_t *timer = NULL;
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
# Fonction d'interruption
void IRAM_ATTR timer_isr(){
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
}
# Initialisation du timer dans la fonction setup()
setup () {
timer = timerBegin(1000000); # Limite du timer à 1 seconde
timerAttachInterrupt(timer, &timer_isr); # Exécution de la fonction timer_isr à l'expiration du timer
timerAlarm(timer, 1000000, true, 0); # Répétition du timer
}
loop() {
}
Timer logiciel FreeRTOS
- Cet exemple illustre l'incrémentation à fréquence régulière (toutes les 1 secondes) de la variable watchdog_count à l'aide du timer logiciel du microcontrôleur.
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); # Exécution de la fonction onTimer à l'expiration du timer
timerAlarm(timer, 1000000, true, 0); # Répétition du timer
}
loop() {
}
