2025-12-21 6:48 AM
Hello everyone. I was trying to implement the 6 Step PWM using STM32F411RE Nucleo board to drive a BLDC motor via 3 half bridges. Each half bridge was driven by signals from TIM1, using 3 of it's channels along with their complementary output for HIN and LIN of IR2110.
TIM1_CH1 is located at PA8 for this board. This pin is shows continuity towards the 5V and U5V pins. The voltage for PA8 in reference to GND is around 2.8V.
I have tried almost everything including disabling the TIM1, disable the GPIO pins, setting the PA8 as analog pin, disabling the peripheral clock, disable MCO, cleared MODER and AFR, tried NVIC_SystemReset, RCC clock reset, Timer Reset, shorted BOOT0 and VDD - power cycling the board, lastly I also pulled NRST low, did all of these separately, but still it showed a short between PA8 and 5V-U5V pins.
This pin worked fine before. It was only after I accidentally set LOCK to level 2 in BDTR register of TIM1 that I saw weird behaviour from this TIM1 Channel. I was getting opposite polarity of what I had set in TIM1_CH1 and CH1N.
Although, I did set lock back to default, but since then CH1N went back to normal but, PA8 is constantly high.
When the board is not powered, the pin doesn't show a short.
I would love to know if this problem is solvable and what can I further do to solve this problem?
If the PIN is dead, what alternatives can I explore? Because I really need this board to work so I can complete my project. I was also thinking to use TIM1_CH4 and TIM1_CH1N and add a software based deadtime.
Thank you!
2025-12-21 7:06 AM
> TIM1_CH1 is located at PA8 for this board. This pin is shows continuity towards the 5V and U5V pins. The voltage for PA8 in reference to GND is around 2.8V.
If it's shorted to 5 V, how is the output 2.8 V? Shouldn't it show 5 V? Is PA8 connected to anything externally?
Try setting it as GPIO output and toggle between 0 and 3.3 V. If it can't do that, it is damaged.
Sounds like the pin is damaged, probably due to an overvoltage condition. Motors are good at doing that due to the back-emf when they stop and start. There is no recourse for a damaged GPIO pin other than replacing the chip or using a different one. And even if you use a different pin, who knows what else is damaged within the chip.
2025-12-21 8:45 AM
I would also like to mention that I had only hooked the timer pins to the "IC socket" only, without any IC. I measure the voltage directly from the IC socket - which again has no IC inserted in it. I would also like to clarify that I had not connected any Motor yet neither powered my PCB.
Regardless of that, my PCB and the Nucleo board are powered separately and during entire the coding and experimentation the motor was disconnected, the driver PCB was powered off, there were no IC's - I was only power the nucleo board via USB so that I can see what signals am I getting.
This is what surprises me. I already have flyback diode on my motor even if I didn't power it.
Lastly, I would also like to mention that I was able to rotate my motor earlier, "without COMG event" and by manually changing the CCER. It was later that I explored the prescribed 6 Step method in the datasheet.
I am not sure how useful this information to declare my pin dead.