« 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
Microcontrôleur Espressif ESP32-S3 DevKitC-1
(Page créée avec « == Schéma de la carte == Image:ESPRESSIF_ESP32-S3_DevKitC-1_PINS.jpg == 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) ») |
|||
| (4 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
{{Electronique}} | |||
= Présentation = | |||
== Schéma de la carte == | == Schéma de la carte == | ||
[[Image:ESPRESSIF_ESP32-S3_DevKitC-1_PINS.jpg]] | [[Image:ESPRESSIF_ESP32-S3_DevKitC-1_PINS.jpg]] | ||
== Configuration de l'IDE | == Broches spécifiques == | ||
{| class="wikitable" | |||
|+ . | |||
|- | |||
! Broches !! Etat !! Fonctions | |||
|- | |||
| {{Espressif GPIO|pin=GPIO0/36}} || flottant || Bouton BOOT. | |||
|- | |||
| {{Espressif GPIO|pin=GPIO3/13}} || flottant || Contrôle du BOOT mode JTAG | |||
|- | |||
| {{Espressif GPIO|pin=GPIO9/15}} {{Espressif GPIO|pin=GPIO10/16}} {{Espressif GPIO|pin=GPIO11/17}} {{Espressif GPIO|pin=GPIO12/18}} {{Espressif GPIO|pin=GPIO13/19}} {{Espressif GPIO|pin=GPIO14/20}} || flottant || Interface SPI et mémoire PSRAM. | |||
|- | |||
| {{Espressif GPIO|pin=GPIO35/32}} {{Espressif GPIO|pin=GPIO36/33}} {{Espressif GPIO|pin=GPIO37/34}} {{Espressif GPIO|pin=GPIO38/35}} || flottant || Interface JTAG ''(MTCK, MTDO, MTDI, MTMS)'' | |||
|- | |||
| {{Espressif GPIO|pin=GPIO40/29}} {{Espressif GPIO|pin=GPIO41/30}} || flottant || Interface JTAG | |||
|- | |||
| {{Espressif GPIO|pin=GPIO26}} {{Espressif GPIO|pin=GPIO27}} {{Espressif GPIO|pin=GPIO28}} {{Espressif GPIO|pin=GPIO29}} {{Espressif GPIO|pin=GPIO30}} {{Espressif GPIO|pin=GPIO31}} {{Espressif GPIO|pin=GPIO32}} || flottant || Interfaces SPI Flash et PSRAM ''(SPICS1, SPIHD, SPIWP, SPICS0, SPICLK, SPIQ, SPID)'' | |||
|- | |||
| {{Espressif GPIO|pin=GPIO43}} {{Espressif GPIO|pin=GPIO44}} || flottant || Interface de debug UART ''(UART0 TX, UART0 RX)'' | |||
|} | |||
{| class="wikitable" | |||
|+ . | |||
|- | |||
! Broches !! Etat !! Fonctions | |||
|- | |||
| {{Espressif GPIO|pin=GPIO19/42}} {{Espressif GPIO|pin=GPIO20/43}} || - || USB D- et USB D+ | |||
|- | |||
| {{Espressif GPIO|pin=GPIO38/32}} || - || LED RGB | |||
|- | |||
| {{Espressif GPIO|pin=GPIO43/24}} {{Espressif GPIO|pin=GPIO44/25}} || - || Interface UART0 ''(communication série via USB)'' | |||
|} | |||
= Configuration de l'IDE = | |||
== IDE Arduino == | |||
* Rediriger la sortie Serial sur le port COM : | * Rediriger la sortie Serial sur le port COM : | ||
| Ligne 22 : | Ligne 60 : | ||
Partition Scheme : Huge APP (3MB No OTA/1MB SPIFFS) | 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() { | |||
} | |||
Dernière version du 19 octobre 2026 à 22:40
— 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() {
}
