cancel
Showing results for 
Search instead for 
Did you mean: 

[STM32F7] SMBus stack

smrtkai
Senior
Posted on September 06, 2016 at 11:36

Hi,

I want to read the battery status from a smart battery using SMBus. I found the Cube extension ''X-CUBE-SMBUS''. 

http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-expansion-software/x-cube-smbus.html

In Application Note 4502 says: 

''This document describes the STM32 SMBus/PMBus firmware (X-CUBE-SMBUS) stack,which is based on specific STM32Cube™ HAL drivers available for STM32F0 andSTM32F3 families, i.e. the STM32 MCUs that contain I2C peripheral supportingSMBus/PMBus features�?.''

I tried to port the software stack to STM32F7. I have commented out every macro in stm32_hal_legay.h and added the files ''stm32f3xx_hal_smbus.*''  and ''stm32_SMBUS_stack.*'' from the example project to my project (generated from STM32CubeMX). After adapting the includes everything compiles. But I get the following linker errors, although the functions are defined in ''stm32f3xx_hal_smbus.*'':

Undefined symbol HAL_SMBUS_DeInit ...

Undefined symbol HAL_SMBUS_DisableListenIT ...

...

Can anyone help to fix this error? Or does anyone know how to use SMBUS on STM32F7?

3 REPLIES 3
Nesrine M_O
Lead II
Posted on September 06, 2016 at 12:31

Hi smrtkai,

Unfortunately the SMBus/PMBus stack is not supported by STM32F7 HAL drivers.

I will raise you request to our development team. Sorry for the inconvenience it may bring.

-Syrine-

smrtkai
Senior
Posted on September 06, 2016 at 13:42

Thank you.

But SMBus is basically I2C, so there should not be a problem to port the stack. I think it should work, if I solve this linker error.
Nesrine M_O
Lead II
Posted on September 06, 2016 at 14:59

Hi smrtkai,

HAL_SMBUS_DeInit

HAL_SMBUS_DisableListenIT...

These functions are defined on the hal_smbus driver witch is not available on the STM32F7 HAL package.

-Syrine-