From f5fecac79759880f2eb6f23b2992076e218ab86e Mon Sep 17 00:00:00 2001 From: Alexandre Bobkov Date: Tue, 5 Aug 2025 08:32:52 -0400 Subject: [PATCH] i2c io --- .../I2C_MultiDevice/main/CMakeLists.txt | 2 +- .../I2C_MultiDevice/main/i2c_io.c | 0 .../I2C_MultiDevice/main/i2c_io.h | 22 +++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/i2c_io.c create mode 100644 ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/i2c_io.h diff --git a/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/CMakeLists.txt b/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/CMakeLists.txt index 6e7327c60..3d22e6724 100644 --- a/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/CMakeLists.txt +++ b/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/CMakeLists.txt @@ -1,3 +1,3 @@ -idf_component_register(SRCS "i2c_multidevice.c" +idf_component_register(SRCS "i2c_io.c" "i2c_multidevice.c" PRIV_REQUIRES spi_flash INCLUDE_DIRS "") diff --git a/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/i2c_io.c b/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/i2c_io.c new file mode 100644 index 000000000..e69de29bb diff --git a/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/i2c_io.h b/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/i2c_io.h new file mode 100644 index 000000000..cd5132c67 --- /dev/null +++ b/ESP32-IDF_FreeRTOS/I2C_MultiDevice/main/i2c_io.h @@ -0,0 +1,22 @@ +#ifndef I2C_IO_H +#define I2C_IO_H + +#include +#include "driver/i2c_master.h" + +typedef struct { + SemaphoreHandle_t i2cMutex; + uint16_t sda; + uint16_t scl; +} io_bus; + +i2c_master_bus_config_t bus_config = { + .clk_source = I2C_CLK_SRC_DEFAULT, + .i2c_port = I2C_NUM_0, // Use I2C_NUM_1 for second port + .scl_io_num = GPIO_NUM_22, // Your SCL pin + .sda_io_num = GPIO_NUM_21, // Your SDA pin + .glitch_ignore_cnt = 7, + .flags.enable_internal_pullup = true +}; + +#endif