Daniel kalu
Daniel kalu
DIIDevHeads IoT Integration Server
Created by Daniel kalu on 9/13/2024 in #firmware-and-baremetal
Resolving I2C Timeout Error When Updating STM32G4 Firmware with ESP32
Hi guys i'm trying to use an ESP32 to update the firmware on an STM32G4 over I2C, but I'm getting an I2C timeout error when trying to initiate the update. I've connected the SDA and SCL pins, and I'm controlling the BOOT0 and RESET pins on the STM32G4. My ESP32 is running a custom Arduino sketch for I2C communication, and the STM32G4 has a minimal bootloader expecting I2C programming mode. ESP32 I2C Connection Code :
Wire.begin();
if (Wire.beginTransmission(0x58) != 0) { // 0x58 is the STM32G4 I2C address
Serial.println("I2C timeout");
return;
}
Wire.begin();
if (Wire.beginTransmission(0x58) != 0) { // 0x58 is the STM32G4 I2C address
Serial.println("I2C timeout");
return;
}
I expect the ESP32 to connect to the STM32G4, enter programming mode, and update the firmware. Instead, I get the I2C timeout error. Any advice on how to resolve this issue would be greatly appreciated.
4 replies