Skip to main content
Shubham1
Associate
April 22, 2021
Solved

Hello everyone, I have to implement SMBus communication with battery. I read X-CUBE-SMBUS Software is only compatible with NUCLEO-G431RB, NUCLEOH743ZI, NUCLEO-L4R5ZI, 32F072BDISCOVERY, 32L0538DISCOVERY, 32L476GDISCOVERY, and STM32F3DISCOVERY boards.

  • April 22, 2021
  • 1 reply
  • 1275 views

I have an STM32 F401RE (NUCLEO - 64)board. In the document " Description of STM32F4 HAL and low-layer drivers" there are HAL SMBUS Generic drivers. Is it possible to implement SMbus communication using this board or I will have to purchase on of the above mentioned boards.

And does it work only for the above mentioned boards or the all the boards of STM32 F0 / F3 / G4 / H7 / L0 / L4 / WB Series ?

This topic has been closed for replies.
Best answer by Imen.D

Hi @Shubham​ ,

The SMBus on STM32F4 is limited to 100kHz, because the I2C peripheral doesn't support timing necessary for higher SMBUS frequency (it's then different to I2C). According to the reference manual it's limited to SMBus 2.0.

After an internal cross-check with the team, there is no plan to modify the driver calls in the stack/middleware to use the HAL driver of STM32F4.

Please mark my answer as best by clicking on the "Select as Best" button if it helped :)

Imen

1 reply

Technical Moderator
April 22, 2021

Hello @Shubham​ ,

Let me first welcome you to the STM32 Community =)

What version of SMBUS interface specification the battery is using ?

There is a HAL SMBus source code within STM32CubeF4 MCU package: stm32f4xx_hal_smbus.c and stm32f4xx_hal_fmpsmbus.c, available under this path: STM32Cube_FW_F4_V1.26.1\Drivers\STM32F4xx_HAL_Driver\Src

But, let me check back with the SMBUS team if the X-CUBE-SMBUS package will be updated to support F4.

I'll make sure to post any updates here as soon as I hear back from them.

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
Imen.DBest answer
Technical Moderator
April 22, 2021

Hi @Shubham​ ,

The SMBus on STM32F4 is limited to 100kHz, because the I2C peripheral doesn't support timing necessary for higher SMBUS frequency (it's then different to I2C). According to the reference manual it's limited to SMBus 2.0.

After an internal cross-check with the team, there is no plan to modify the driver calls in the stack/middleware to use the HAL driver of STM32F4.

Please mark my answer as best by clicking on the "Select as Best" button if it helped :)

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks