2025-06-14 4:31 AM
Hello ST Team and Community,
I’m working with the X-NUCLEO-IHM07M1 board for 6-step sensorless BLDC control, and I need some clarification regarding the purpose and correct use of the GPIO_BEMF pin.
In this ST Community answer, it is mentioned:
"The GPIO_BEMF pin is provided to manage the BEMF sampling during the PWM ON state for 6-Step control only."
I understand that this refers to enabling the BEMF voltage divider (e.g., 10k/2.2k) to bring phase voltage into the ADC range during PWM ON time. However, on the X-NUCLEO-IHM07M1, it seems that even during the PWM OFF time, if GPIO_BEMF is not pulled LOW, the voltage divider is disconnected (floating bottom resistor), and the BEMFx signal becomes unreliable or unusable for ADC reading.
So my question is:
Do we also need to pull GPIO_BEMF LOW when sampling BEMF during the PWM OFF-state (e.g., mid-off-time) in order to enable the voltage divider and get a proper ADC reading?
If not, how is the ADC expected to receive a reliable voltage at BEMFx without a complete divider path?
Thanks in advance for your clarification!
Best regards,
Duc Le
2025-06-16 6:36 AM
Hello @Duc,
The GPIO_BEMF pin in the X-NUCLEO-IHM07M1 board is used to manage the Back-EMF voltage divider.
This divider scales the motor phase voltage to a range suitable for ADC readings.
For more details, you can check STM32MotorControl:6-step Firmware Examples User Manual
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2025-06-16 6:46 AM
Thank you for the explanation — I understand that enabling the voltage divider via GPIO_BEMF is essential during PWM ON-time sampling, to protect the ADC and scale the voltage correctly.
However, I would like to clarify the OFF-time case specifically.
In the X-NUCLEO-IHM07M1, the BEMF sensing circuit does not use any op-amp or virtual neutral; it relies solely on the resistor divider formed by 10k and 2.2k resistors. When GPIO_BEMF is not pulled LOW (i.e., left floating or set to input), the bottom resistor is disconnected, and the divider is incomplete.
This makes the BEMFx line float, and the ADC receives an undefined voltage.
In other words:
Even though OFF-time sampling is safer in terms of voltage range, isn’t GPIO_BEMF still required just to ensure the divider is electrically complete and functional, regardless of ON or OFF time?
Thanks again for the support — I just want to be sure I’m using the hardware correctly in both cases.
Best regards,
Duc Le