This commit is contained in:
2025-04-28 00:08:19 +02:00
parent 8e72fa7475
commit d6375cd108
5 changed files with 1396 additions and 10 deletions

1383
changes.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -26,6 +26,9 @@
#include "i2c.h" #include "i2c.h"
#include "driver/i2c_master.h" #include "driver/i2c_master.h"
#include "lepton_system.h" #include "lepton_system.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
// #include "freertos/FreeRTOS.h" // #include "freertos/FreeRTOS.h"
// #include "freertos/semphr.h" // #include "freertos/semphr.h"
@@ -42,7 +45,6 @@ i2c_master_dev_handle_t LEPTON_DEV_HANDLE;
esp_err_t i2c_master_bus_detect_devices(i2c_master_bus_handle_t handle) esp_err_t i2c_master_bus_detect_devices(i2c_master_bus_handle_t handle)
{ {
const uint16_t probe_timeout_ms = 50; // timeout in milliseconds
uint8_t address; uint8_t address;
bool found_any = false; bool found_any = false;
@@ -53,7 +55,7 @@ esp_err_t i2c_master_bus_detect_devices(i2c_master_bus_handle_t handle)
fflush(stdout); fflush(stdout);
address = i; address = i;
esp_err_t ret = i2c_master_probe(handle, address, probe_timeout_ms); esp_err_t ret = i2c_master_probe(handle, address, I2C_MASTER_FREQ_HZ);
if (ret == ESP_OK) if (ret == ESP_OK)
{ {
@@ -70,13 +72,13 @@ esp_err_t i2c_master_bus_detect_devices(i2c_master_bus_handle_t handle)
return ESP_OK; return ESP_OK;
} }
esp_err_t i2c_master_init(gpio_num_t scl_pin, gpio_num_t sda_pin) esp_err_t i2c_master_init()
{ {
i2c_master_bus_config_t i2c0_bus_cfg = { i2c_master_bus_config_t i2c0_bus_cfg = {
.i2c_port = I2C_MASTER_NUM, .i2c_port = I2C_MASTER_NUM,
.sda_io_num = sda_pin, .sda_io_num = GPIO_NUM_4,
.scl_io_num = scl_pin, .scl_io_num = GPIO_NUM_5,
.clk_source = I2C_CLK_SRC_DEFAULT, .clk_source = I2C_CLK_SRC_DEFAULT,
.glitch_ignore_cnt = 7, .glitch_ignore_cnt = 7,
.flags = { .flags = {
@@ -86,7 +88,10 @@ esp_err_t i2c_master_init(gpio_num_t scl_pin, gpio_num_t sda_pin)
}; };
ESP_ERROR_CHECK(i2c_new_master_bus(&i2c0_bus_cfg, &i2c0_bus_hdl)); ESP_ERROR_CHECK(i2c_new_master_bus(&i2c0_bus_cfg, &i2c0_bus_hdl));
i2c_master_bus_detect_devices(i2c0_bus_hdl); for (uint8_t i = 0; i < 10;i++) {
i2c_master_bus_detect_devices(i2c0_bus_hdl);
vTaskDelay(100 / portTICK_PERIOD_MS);
}
i2c_device_config_t LEPTON_DEV_CFG = { i2c_device_config_t LEPTON_DEV_CFG = {
.dev_addr_length = I2C_ADDR_BIT_LEN_7, .dev_addr_length = I2C_ADDR_BIT_LEN_7,

View File

@@ -49,5 +49,5 @@ extern i2c_master_dev_handle_t LEPTON_DEV_HANDLE;
// //
// I2C API // I2C API
// //
esp_err_t i2c_master_init(gpio_num_t scl_pin, gpio_num_t sda_pin); esp_err_t i2c_master_init();
#endif #endif

View File

@@ -23,7 +23,7 @@ bool lepton_io_init()
printf("[LEP SYS] Lepton I/O Initialization\n"); printf("[LEP SYS] Lepton I/O Initialization\n");
// Attempt to initialize the I2C Master // Attempt to initialize the I2C Master
ret = i2c_master_init(I2C_MASTER_SCL_PIN, I2C_MASTER_SDA_PIN); ret = i2c_master_init();
if (ret != ESP_OK) { if (ret != ESP_OK) {
printf("[LEP SYS] Error: I2C Master initialization failed\n"); printf("[LEP SYS] Error: I2C Master initialization failed\n");
return false; return false;

View File

@@ -21,8 +21,6 @@
#define I2C_TIMEOUT_MS_VALUE 2000 #define I2C_TIMEOUT_MS_VALUE 2000
#define I2C_MASTER_SDA_PIN GPIO_NUM_4 // SDA
#define I2C_MASTER_SCL_PIN GPIO_NUM_5 // SCL
#define CCI_ADDRESS 0x2A #define CCI_ADDRESS 0x2A
// I2C // I2C