Skip to main content
Simon Sq
Associate II
September 4, 2020
Question

Setting VREF voltage in CubeMX not working correctly for STM32H7

  • September 4, 2020
  • 3 replies
  • 1547 views

CubeMX Version : 6.0.1.202008101643 com.st.stm32cube.common.feature.mx

Device: STM32H743

I believe there may be an issue when setting the VREFBUF output voltage in CubeMX. The definitions for VREFOUT in CubeMX are inconsistent with the definitions given in the stm32H7xx_hal.c file.

CubeMX uses the following in the dropdown:

Scale 0 - 2.5V

Scale 1 - 2.048V

Scale 2 - 1.8V

Scale 3 - 1.5V

However the function description for

HAL_SYSCFG_VREFBUF_VoltageScalingConfig()

in the stm32h7xx_hal.c indicates the following:

SYSCFG_VREFBUF_VOLTAGE_SCALE0 = 2.048V
SYSCFG_VREFBUF_VOLTAGE_SCALE1 = 2.5V
SYSCFG_VREFBUF_VOLTAGE_SCALE2 = 1.5V
SYSCFG_VREFBUF_VOLTAGE_SCALE3 = 1.8V

This issue leads to the incorrect voltage being present on VREF+ pin once the code is generated. I believe this is a similar issue to that reported on other STM32 devices. Setting of scale 0 in CubeMX results in scale 0 being used in the generated code, but the voltage is incorrect.

I don't know which set of scales is ultimately correct, but the scales listed in the stm327hxx_hal.c file do set the value of the CSR register correctly inline with method description.

My hunch is that the descriptions in the CubeMX dropdown are incorrect?

Kind Regards,

Simon

This topic has been closed for replies.

3 replies

Nesrine.JLASSI
Visitor II
September 7, 2020

Hello @Simon Sq​ 

Thanks for the feedback, the problem is in the description in the stm32h7xx_hal.c file not in STM32CubeMX:

/**

 * @brief Configure the internal voltage reference buffer voltage scale.

 * @param VoltageScaling specifies the output voltage to achieve

 *     This parameter can be one of the following values:

 *      @arg SYSCFG_VREFBUF_VOLTAGE_SCALE0: VREF_OUT1 around 2.048 V.

 *                        This requires VDDA equal to or higher than 2.4 V.

 *      @arg SYSCFG_VREFBUF_VOLTAGE_SCALE1: VREF_OUT2 around 2.5 V.

 *                        This requires VDDA equal to or higher than 2.8 V.

 *      @arg SYSCFG_VREFBUF_VOLTAGE_SCALE2: VREF_OUT3 around 1.5 V.

 *                        This requires VDDA equal to or higher than 1.8 V.

 *      @arg SYSCFG_VREFBUF_VOLTAGE_SCALE3: VREF_OUT4 around 1.8 V.

 *                        This requires VDDA equal to or higher than 2.1 V.

 * @retval None

 */

So, issue reported to the tool development team that will plan the correction.

Best regards,

Nesrine

Nesrine.JLASSI
Visitor II
September 7, 2020

0693W000003Qu3FQAS.png

Simon Sq
Simon SqAuthor
Associate II
September 13, 2020

Thank you Nesrine.

I can work around it for now until the fix is realised at some point in the future.