Confirmation GPIO I2C ESP32s

Bonjour à tous ,

Je cherche quel GPIO utiliser sur un ESP32s pour brancher en I2C un capteur AHT21.
Ce que je vois sur le datasheet suivant :

images

Dans le tableau c'est noté : Any GPIO.

ça veux bien dire que je peux sélectionner les deux GPIO que je veux, car j'avais vu sur des carte ESP32 devkit avec un ESP-WROOM-32 les GPIO 21 pour sda et 22 pour scl.

Si je prend les GPIO que je veux, ça veut dire que je dois les déclarer dans le programme?

Quand est il réellement ?

Il y a t'il une différence dans les GPIO entre l'ESP32s et l'ESP-Wroom-32 ?

Désolé ça fait beaucoup trop de questions dans un premier message!!!

L'I2C passe par le matrice d'aiguillage des IOs donc on peut utiliser n'importe quelles paires d'IOs.
C'est déjà le cas sur l'ESP32 WROOM GPIO21 et 22 sont juste les GPIOs par défaut si on ne précise pas de numéro de broches dans begin
https://docs.espressif.com/projects/arduino-esp32/en/latest/api/i2c.html#id1

Aucune idée je n'ai pas fait l'exercice.

Merci @fdufnews pour les infos.

Dans certains paramétrages on indique en troisième paramètre la fréquence du bus.

A quoi correspond cette fréquence ?

les 2 modules utilisent sous le capot la même puce ESP32 (donc les m^mes GPIO) mais certains modules peuvent donner accès à plus de GPIO que d'autres.

voir les docs de chaque module d'Espressif , leur brochages , voire leurs schémas internes (un module comporte un ESP32 et quelques composants complémentaires)

déclaration des GPIO sélectionnés pour l'I2C traitée içi :
https://randomnerdtutorials.com/esp32-i2c-communication-arduino-ide/

Merci @al1fch ,

Dans le lien je n'ai pas vu l'ESP32S, mais c'est bien un ESP32 de base mais avec l'antenne en cuivre sur la mini carte et en plus une prise pour une antenne externe ?
C'est pour ça le S ?
Et pour la fréquence de bus, apparemment elle n'est pas obligatoire, mais elle correspond à quoi ?

Le module ESP-32S apparaît souvent avec le logo AI Thinker , il ne figure plus au catalogue d'Espressif s'il y a figuré un jour.

Le pdf que tu donnes au message #1 est pour un module ESP32-S d'AI Thinker

je supponouvelels puces ESP32-S2 et ESP32-S3

Le miens et estampillé espressif.
Je n'ai trouvé que ce datasheet.

Pour connaitre les affectations par défaut, il faut aller dans les fichiers de l'IDE et plus particulièrement, il faut rechercher le fichier "pins_arduino.h" correspondant à ta carte.

À noter que ce fichier constitue un excellant résumé des fonctions de la carte.

Pour Windows et l'IDE Arduino, ils sont dans le répertoire arduino15
Pour Linux et l'IDE arduino ils sont dans le répertoire .arduino15 (le point avant arduino indique un fichier non listé, il faut activer "voir les fichiers cachés" pour le voir).
Les fichiers de configuration sont souvent cachés pour ne pas encombrer l'écran.

Pour windows et plateformIO je ne sais pas
Pour linux et platformIO :
activer "voir les fichiers cachés et rechercher le répertoire .platformIO

Voici l'arboressence Linux pour PIO
Pour une carte ESP32 dev-kit M1
/.platformio/packages/framework-arduinoespressif32/variants/esp_c3_m1_i_kit

Le fichier à consulter est "pins_arduino.h"

Le contenu est :

/*
   For more information about this board:
   https://docs.ai-thinker.com/_media/esp32/docs/nodemcu-esp-c3-m1i-kit_v1.2.0_specification.pdf
*/

#ifndef Pins_Arduino_h
#define Pins_Arduino_h

#include <stdint.h>

#define EXTERNAL_NUM_INTERRUPTS 22
#define NUM_DIGITAL_PINS        22
#define NUM_ANALOG_INPUTS       6

#define analogInputToDigitalPin(p)  (((p)<NUM_ANALOG_INPUTS)?(analogChannelToDigitalPin(p)):-1)
#define digitalPinToInterrupt(p)    (((p)<NUM_DIGITAL_PINS)?(p):-1)
#define digitalPinHasPWM(p)         (p < EXTERNAL_NUM_INTERRUPTS)

// User LEDs are also connected to USB D- and D+
static const uint8_t LED_WARM = 18;
static const uint8_t LED_COLD = 19;

// RGB LED 
static const uint8_t LED_RED = 3;
static const uint8_t LED_GREEN = 4;
static const uint8_t LED_BLUE = 5;

static const uint8_t LED_BUILTIN = LED_WARM;
#define BUILTIN_LED  LED_BUILTIN // backward compatibility

// Standard ESP32-C3 GPIOs
static const uint8_t TX = 21;
static const uint8_t RX = 20;

static const uint8_t SDA = 8;
static const uint8_t SCL = 9;

static const uint8_t SS    = 7;
static const uint8_t MOSI  = 6;
static const uint8_t MISO  = 5;
static const uint8_t SCK   = 4;

static const uint8_t A0 = 0;
static const uint8_t A1 = 1;
static const uint8_t A2 = 2;
static const uint8_t A3 = 3;
static const uint8_t A4 = 4;
static const uint8_t A5 = 5;

#endif         /* Pins_Arduino_h */

Merci @68tjs ,

J'ai essayer de trouver le fichier, je suis sous Windows, mais je n'ai pas trouvé ou est le répertoire arduino15.
Peux tu me dire ou il ce situe exactement

arduino15 est un repertoire caché

Désolé je n'ai pas utilisé windows depuis 2002.

Je me suis dit que il se pourrait que ce soit dans AppData, et du coup j'en ai 319, ESP32 et ESP8266 confondus.

Et moi ça fait bien 20 ans que j’essaie de me faire à linux, et j'y arrive pas.

Mais tu n'es peut être pas sous linux ?

Si.
Commencé avec une Mandrake vers 1998, arret total de windows en 2002 et passé à Debian vers 2007.

Et bien justement à la fréquence du bus I2C.

Le bus I2C a deux fréquences recommandées 100 kHz et 400 kHz.

Recommandé veut dire qu'il en existe d'autres au choix de l'utilisateur => il vaut mieux savoir ce que l'on fait et bien maitriser le bus I2C.

Attention, certains composants ne fonctionnent pas à plus de 100 kHz.
En cas de doutes, lecture de la datasheet.

Par défaut la fréquence de 100 kHz est sélectionnée.

Merci pour les infos, et j'en ai profité pour regarder ce qu'était un bus.

En dehors de celui de ville !!

C'est plus clair maintenant.

J'ai également fait mon câblage sur les GPIO21 et 22, I2C par défaut

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