Showing results for 
Search instead for 
Did you mean: 

I2C not running reliably at 400KHz when using firmware loaded by SBSFU

Associate II


I am working on a project that uses the STM32H7B0 processor on a custom board. The firmware is loaded by ST SBSFU bootloader STM32CubeExpansion_SBSFU_V2.4.0. 

I have used 2_Images_ExtFlash example as a template, and our firmware is stored an 8 pin external flash. The external flash part we are using is 4MByte and by EON EN25QH32B.

In addition to using SBSFU I am also using Keil MDK RTOS-v2. In one of the tasks, the STM32H7B0 is operating as an I2C slave device communicating with an I2C master controller that does not support clock stretching.

If load and run firmware with the debugger and without bootloader everything works fine.


The problem I am having is that when the firmware is loaded by SBSFU the I2C communications between the master controller and the STM32H7B0 does not realiable run at 400KHz but works fine with 100KHz. 

The STM32H7B0 processor is running at 240MHz.

Jocelyn RICARD
ST Employee

Hello OOni,

I guess you need to align the SBSFU clocking with the clocking that is working fine.

Other way to debug:

Take a snapshot of the RCC registers you get with and without SBSFU.

This would probably give you a clue where issue comes from

Best regards