Skip to main content
FStra.9
Associate III
December 11, 2020
Solved

Why is the SMBus-two-wire interface limited to 100kHz clock,

  • December 11, 2020
  • 1 reply
  • 1049 views

I'm using the STM32H743 and the it will not allow me to choose fast mode for a 400kHz clock speed. Is that a bug in the IDE?

This topic has been closed for replies.
Best answer by TDK

The reference manual lists max SMBus frequency as 100kHz so CubeMX is probably just respecting that.

0693W000006FOGCQA4.png 

This presentation says it works at higher speeds:

https://www.st.com/resource/en/application_note/dm00118362-stm32-smbuspmbus-embedded-software-expansion-for-stm32cube-stmicroelectronics.pdf

So probably if you changed the clock initialization manually it would work. But it's not going to work with HAL due to this define:

#define IS_SMBUS_CLOCK_SPEED(SPEED) (((SPEED) > 0U) && ((SPEED) <= 100000U))

1 reply

TDK
TDKBest answer
December 11, 2020

The reference manual lists max SMBus frequency as 100kHz so CubeMX is probably just respecting that.

0693W000006FOGCQA4.png 

This presentation says it works at higher speeds:

https://www.st.com/resource/en/application_note/dm00118362-stm32-smbuspmbus-embedded-software-expansion-for-stm32cube-stmicroelectronics.pdf

So probably if you changed the clock initialization manually it would work. But it's not going to work with HAL due to this define:

#define IS_SMBUS_CLOCK_SPEED(SPEED) (((SPEED) > 0U) && ((SPEED) <= 100000U))

"If you feel a post has answered your question, please click ""Accept as Solution""."