MOSFETS on custom ESC for BLDC are overheating really badly and I can't figure out why HELP

hey thanks for doing this! what software did you use? and is this the INPUT at the FET gates or the OUTPUT at the source? since if its the source I think shoot through is fine since the LIN on the ir2101 is inverted meaning LIN high actually mean the LO is low. but regardless thanks for the simulation hopefully the software you used is cheap or free :slight_smile:

Yeah ive seen all the greatscott and electronoobs videos on this topic thanks

The way a BLDC is energized is that one wire is held low, one held high, and the other floats. The one that's floating can be used to sense back-EMF as a way to measure rotor position. This then can tell you when to commutate (move to the next pattern in the sequence). If there are Hall sensors you use those to tell you the same thing.

You need to measure the idle winding in synchrony with any PWM that's happening as you need that one-high/one-low/one-floating situation for consistent measurement. Also at slow speeds the back-EMF is less and harder to see against the noise (there's a lot of PWM switching noise flying around, another reason to synchronize carefully).
Its not an easy problem (compared to with a Hall-sensored motor), you are best off looking at working open-source ESC code to see all the details.

That is a simple Saleae Logic analyser clone connected to a Uno which is running your sketch. It is not a simulation. These are about $20 on Ebay.

The labeling in your schematic does not exactly tie up directly between the Nano and the Mosfet drivers but this is input at the Mosfet gates. How I connected it was this:

D3 to channel H1
D2 to channel L1
D9 to channel H2
D4 to channel L2
D10 to channel H3
D7 to channel L3

But are you sure that this is how the data sheet should be interpreted for the IR2101 ? :

Thank you ive been lookin at alot of different code and Iā€™m going to put back in my code using the internal comparator and see if that helps

Iā€™m pretty sure thats the correct way to look at it as when I started the project just making a test h bridge on breadboard pulling Lin low activated the Low side FET but il check again just to be sure.

Yes, you know why now - its in open-loop mode which is not sustainable. You may think its spinning fine, but it isn't, the torque will be way less than it should be for example.

Incidentally looking at your step sequencing you forget to turn off A on the high side in step2, instead turning B and C off. Not sure it matters though. You might want to think about deadtime around these direct register operations, perhaps adding a few asm nop's to allow a few 100ns of safety margin.

yeah ive been thinking about trying to implement some sort of dead time without using any sort of micros() based stuff, possibly a quick while loop or something until a number reaches a certain point, do you know of any operations that take roughly 1 clock cycle ?

edit: just googled asm nop so I'm also gonna look into that thanks.

Hi,

Yes any ultrafast would do.
I don't think you can get lower than 1A, but any should be okay just make sure the Voltage rating is 50V or higher.
https://www.jaycar.com.au/uf4003-1a-200v-ultrafast-diode/p/ZR1034

Tom... :smiley: :+1: :coffee: :australia:

The specification you should look as it the reverse recovery time. It is the time the diode will conduct in the reverse direction after having been conducting in the forward direction.

An asm nop, as I said.

  asm ("nop") ;

You might also look into:

il make sure I update my IDE to the most recent version currently I think its 1.8.3 or something and try out both codes, also in regard to the diodes I found the reverse recovery time is much less on the 1n4148 compared to a uf4007 but anyway Ive decided to solder a new board from scratch with a new schematic that il post before I solder just to get some extra eyes on it. anyways thanks for the clock delaying info too.

Before you decide on the 1N4148 be sure it can handle the peak current when turning the FET off. I'll guess the UF4001 would be a better choice. Or any "fast" diode with more peak current capability than the 1N4148.