Skip to main content
FStra.9
Associate III
Dec 11, 2020 2:38 AM UTC
Solved

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

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.
TDK
TDKBest answer
Dec 11, 2020 3:12 AM UTC

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""."

1 reply

TDK
TDKBest answer
Dec 11, 2020 3:12 AM UTC

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""."