N-mosfet low side switch being turned on with no direct gate drive signal

Thread Starter

helpinvent4you

Joined Dec 24, 2016
11
Hello,

I made a relay h-bridge by using two 40 amp single pole double throw relays. I used this h-bridge, and another, to each drive a wheel chair motor fused at 20 amps each. I control the direction of each motor via an arduino uno driving a few transistors that I use to drive the relay coils. Thus I am able to get four driving conditions(directions) by selecting the direction of the left and right motor.
*Forward(turn both motors clockwise in the same direction)
*Reverse(turn both motors counterclockwise in the same direction)
*Left(turn left motor clockwise and the right motor counterclockwise)
*Right (turn left motor counterclockwise and the right motor clockwise see image attached below.

This system worked fine, allowing me to drive a machine that the two motors propelled via each driving a wheel on each side of a four wheels cart. The two non driven wheels are caster wheels.

I then added N-mosfet low side switches to each motor relay h-bridge by removing the ground connection in the h-bridge and connecting these ground wires to the respective mosfet drains. See second image.

All worked well and I was able to PWM the motors for variable speeds. Now the last thing I wanted to do was run the motors at different PWM speeds so as to have the cart veer a little left or a little more right or to make larger arcing turns rather than the skid steer turns i was doing with the relay h-bridges. No mater what I tried it seems that while I send each motor a different PWM, both mosfets/motors sync up.

Even if I stopped sending the one mosfet a gate signal(grounding the gate at the gate driver board) its respective mosfet still turns on. Also, now that I run the motors via sending them different PWM signals I keep destroying mosfets after a while. I suspect that the driven mosfet is always inducing the non-driven mosfet side, how I do not know. I am using 56 ohm gate resistors. Each motor is fused at 20 amps, I think the drawl per motor is between 10 -15 amps when riding on the ground. During this testing the cart is on a test stand free wheel spinning.

I have done everything I can think of via manipulation of the gates to no avail. The protection diodes are Shotcky diodes 30 amps each. I have a pair across each mosfet as they were dual anode single cathode 220 packages.

I suspect that I am losing mosfets when sending differing PWM signals because the induced turn on mechanism is not sharp or clean thus maybe sending the gate of the off mosfet into the linear region although all visually looks good with motors turning in sync, although each should be doing their own thing(turn rate. I am using the Arduino Uno, PWWM is on pin 10 and 11(different timers), 500 hz.

I am looking a this as being a circuit problem. I am using a logic mosfet part number FKI06269 (60 volts, 24 amps). Two in parallel on the low side for each motor.



The motor drive protection diodes and mosfets sit on a solderable perf board about 2.5 feet from the arduino. I am using 14 gauge wire to this board for most connections but the gate drives feeds are 22 gauge. I use individual wire feeds for the left side motor components and the right side motor components. I am using 5 k ohm pull down resistors on each gate but have gone as low as 500 ohms when trying to eliminate my problem.

If someone can give me their thoughts on what the problem is, or may be, I would appreciate the insights.

Thanks, D
 

Attachments

ScottWang

Joined Aug 23, 2012
7,409
Using relays to do the pwn speed control is not a good idea, you may change to use the 4 MOSFETS with high current and lower Rds less than 5 mΩ and some bjts, diodes, resistors.
 

ebp

Joined Feb 8, 2018
2,332
Putting the gate drivers such a long way from the FETs will create problems due to the substantial inductance of the path. Under some circumstances, a twisted pair (signal and "ground") would help, but you have the problem of having multiple paths to the sources of the FETs, so using twisted pairs becomes less effective, but still worth trying. You might improve matters by using a small resistance (e.g. t0 ohms) in series with each FET gate, right at the FET. This will "decouple" the two FETs in the pairs from each other. Directly paralleling FETs without individual gate resistances is likely to cause problems at the best of times (actual high-frequency oscillation is possible).

It would be better to place the gate drive circuits as close as possible to the FETs. You still may have issues with integrity of the digital signal to the inputs of the gate drivers due to the long connections. Though a little more expensive and possibly a problem if you need through-hole parts, you would likely be better off with integrated gate drivers that have hysteresis (Schmitt trigger) on their inputs. This might solve any problems with dubious signal integrity at the driver inputs when they are moved to proximity to the FETs. Be sure to use adequate power supply bypass capacitors right at the drivers. At your PWM frequency, you don't need really high current from the drivers. Lower current translates to longer switching transitions and higher power loss per transition, but at such low PWM frequency you can afford this. Be sure to use a pull-down resistor at the input to any driver and one from gate to source of each FET or pair to assure that the FETs don't get turned on if they have power when the micro doesn't or its outputs are floating during reset. 10k is generally appropriate but the value isn't critical. You may need to add circuitry to assure that the gate drivers are held OFF if their power supply voltage is too low to assure adequate drive for the FETs. This can happen at power up and down. Some drivers have internal circuitry to handle this.

I recommend using single FETs instead of pairs of FETs. The FET you have chosen has high ON resistance by today's standards. There are lots available that have vastly lower ON resistance, even with just 5 V gate drive. You could easily get half the ON resistance with a single FET that you now have with two in parallel. Select FETs based on ON resistance rather than current rating. Current ratings are sometimes rather unrealistic. If you go by resistance, you can directly calculate your voltage and power losses.

Keep all of your power wiring twisted or cable-tied into pairs ("out" and "return" conductors paired) as much as possible. This significantly reduces inductance because the magnetic fields due to the opposite-direction currents largely cancel each other. Wiring inductance can make for some nasty voltage spikes when currents change quickly.
 

Thread Starter

helpinvent4you

Joined Dec 24, 2016
11
Using relays to do the pwn speed control is not a good idea, you may change to use the 4 MOSFETS with high current and lower Rds less than 5 mΩ and some bjts, diodes, resistors.
Hi Scott, Thank you for your help. I am not using the relay h-bridge for PWM but using them to change the direction of the motors. After the motor drive worked well(can easily change the motors directions) I thought variable speed would be nice so I added low side PWM N-Mosfets in each of the Relay H-bridge ground paths. Thus I do not switch the relay on and off with PWM but instead turn on the low side mosfet, completing the loads path to ground, direction being set with the relays. This works good with no problem during test runs. The last thing I wanted was variable duty cycle to run each motors speed independent of the other motor and thus the problem I am looking to overcome..
 

Thread Starter

helpinvent4you

Joined Dec 24, 2016
11
Putting the gate drivers such a long way from the FETs will create problems due to the substantial inductance of the path. Under some circumstances, a twisted pair (signal and "ground") would help, but you have the problem of having multiple paths to the sources of the FETs, so using twisted pairs becomes less effective, but still worth trying. You might improve matters by using a small resistance (e.g. t0 ohms) in series with each FET gate, right at the FET. This will "decouple" the two FETs in the pairs from each other. Directly paralleling FETs without individual gate resistances is likely to cause problems at the best of times (actual high-frequency oscillation is possible).

It would be better to place the gate drive circuits as close as possible to the FETs. You still may have issues with integrity of the digital signal to the inputs of the gate drivers due to the long connections. Though a little more expensive and possibly a problem if you need through-hole parts, you would likely be better off with integrated gate drivers that have hysteresis (Schmitt trigger) on their inputs. This might solve any problems with dubious signal integrity at the driver inputs when they are moved to proximity to the FETs. Be sure to use adequate power supply bypass capacitors right at the drivers. At your PWM frequency, you don't need really high current from the drivers. Lower current translates to longer switching transitions and higher power loss per transition, but at such low PWM frequency you can afford this. Be sure to use a pull-down resistor at the input to any driver and one from gate to source of each FET or pair to assure that the FETs don't get turned on if they have power when the micro doesn't or its outputs are floating during reset. 10k is generally appropriate but the value isn't critical. You may need to add circuitry to assure that the gate drivers are held OFF if their power supply voltage is too low to assure adequate drive for the FETs. This can happen at power up and down. Some drivers have internal circuitry to handle this.

I recommend using single FETs instead of pairs of FETs. The FET you have chosen has high ON resistance by today's standards. There are lots available that have vastly lower ON resistance, even with just 5 V gate drive. You could easily get half the ON resistance with a single FET that you now have with two in parallel. Select FETs based on ON resistance rather than current rating. Current ratings are sometimes rather unrealistic. If you go by resistance, you can directly calculate your voltage and power losses.

Keep all of your power wiring twisted or cable-tied into pairs ("out" and "return" conductors paired) as much as possible. This significantly reduces inductance because the magnetic fields due to the opposite-direction currents largely cancel each other. Wiring inductance can make for some nasty voltage spikes when currents change quickly.
Hi EBP,
Thank you for such an insightful answer. I did not know that each parallel mosfet needed it own gate resistor to limit oscillation possibilities. I will try some of the remedies you suggested as soon as I can. One thing I can easily do is remove the redundant mosfet from each side as it was initially used for added current head room that after testing seems ot be overkill. On the FKI06269 is ~22.7 Milli ohms rds with vgs of 4.5 volts really a lot by today's standards? Thanks again for your help. D
 

ScottWang

Joined Aug 23, 2012
7,409
Hi Scott, Thank you for your help. I am not using the relay h-bridge for PWM but using them to change the direction of the motors. After the motor drive worked well(can easily change the motors directions) I thought variable speed would be nice so I added low side PWM N-Mosfets in each of the Relay H-bridge ground paths. Thus I do not switch the relay on and off with PWM but instead turn on the low side mosfet, completing the loads path to ground, direction being set with the relays. This works good with no problem during test runs. The last thing I wanted was variable duty cycle to run each motors speed independent of the other motor and thus the problem I am looking to overcome..
Sorry, it's my fault when I used my smartphone to saw the contents and I didn't check the details of circuit, and I also felt quite strange, because the relay only can be use it to less than 10 Hz then why you want to use it with pwm, but I still didn't figure out during that time, when I back to my computer and rechecked the circuit, I see now.

Why the pwm drivers didn't used like the relay drivers?
How is the resistor values(Rb) of Q1~Q4?

The ideally is to use two P MOSFETs and two N MOSFETs to control the direction and pwm, but I'm afraid of maybe not easy to find the low Rds and high current for the P MOSFETs, how is the heat of the MOSFET, it is touchable or not, if it is ok for the Rds(22.7 mΩ) then maybe you can choose the P MOSFETs from here.

The new circuit as two bjts relay drivers and 2 P MOSFETs and 2 N MOSFETs.
 

Thread Starter

helpinvent4you

Joined Dec 24, 2016
11
Sorry, it's my fault when I used my smartphone to saw the contents and I didn't check the details of circuit, and I also felt quite strange, because the relay only can be use it to less than 10 Hz then why you want to use it with pwm, but I still didn't figure out during that time, when I back to my computer and rechecked the circuit, I see now.

Why the pwm drivers didn't used like the relay drivers?
How is the resistor values(Rb) of Q1~Q4?

The ideally is to use two P MOSFETs and two N MOSFETs to control the direction and pwm, but I'm afraid of maybe not easy to find the low Rds and high current for the P MOSFETs, how is the heat of the MOSFET, it is touchable or not, if it is ok for the Rds(22.7 mΩ) then maybe you can choose the P MOSFETs from here.

The new circuit as two bjts relay drivers and 2 P MOSFETs and 2 N MOSFETs.
Hi Scott, Thank you for your help. This part of the circuit does appear to be working fine from the start, but I understand how this solution would eliminate the present issues as the paralleled mosfet low side switches would go away..In the future I may revisit the H-bridge direction circuit that is now built with relays, as I understand what you are saying. i.e. that I can set the motor direction and send PWM to the h-bridge if built with Mosfets instead of Relays. Presently this would require scrapping lots of work in building, wiring and mounting that went into in the relay h-bridge. Presently the low side switching mosfets run cool to the touch. I am going to cut one mosfet from each pair of low side mosfet switches that are redundant, from each side. EBP let me know about oscillation that can be caused by not having a gate resistor for each individual mosfet gate. I think this oscillation theory makes sense and could be why I see the problem I am seeing; considering all the inductive layout issues I introduced by laying the circuit builds far from the controller etc.. thank you for writing back!.
 

ebp

Joined Feb 8, 2018
2,332
Here's a reasonably low-cost low on-resistance logic level FET in a fully-insulated TO-220 type package:
BBK4001 (weird part number for ON Semi!)
60V, 9.8 milliohms max with 4 Vgs, about 7 milliohms typical with 5 V.

I think using a relay with a low-side PWM'd FET is not a bad way to go especially if your main objective at this point in time is to prove your concept for improved steering. I've seen people do all sorts of very complex "bells and whistles" things in early prototypes only to discover that something critical to the core functionality can't be made to work in the way that was hoped for. If you've got a big money budget and a small time-to-market budget, starting work on the bells and whistles early in the development can make sense.
 

ScottWang

Joined Aug 23, 2012
7,409
Hi Scott, Thank you for your help. This part of the circuit does appear to be working fine from the start, but I understand how this solution would eliminate the present issues as the paralleled mosfet low side switches would go away..In the future I may revisit the H-bridge direction circuit that is now built with relays, as I understand what you are saying. i.e. that I can set the motor direction and send PWM to the h-bridge if built with Mosfets instead of Relays. Presently this would require scrapping lots of work in building, wiring and mounting that went into in the relay h-bridge. Presently the low side switching mosfets run cool to the touch. I am going to cut one mosfet from each pair of low side mosfet switches that are redundant, from each side. EBP let me know about oscillation that can be caused by not having a gate resistor for each individual mosfet gate. I think this oscillation theory makes sense and could be why I see the problem I am seeing; considering all the inductive layout issues I introduced by laying the circuit builds far from the controller etc.. thank you for writing back!.
As I asked but you didn't answer - Why the pwm drivers didn't used like the relay drivers?
Why I asked that because the pwm driving level of MOSFET looks like reversed with the Arduino output, it means that when the Arduino output a high level, but on the Vgs is low, so you have to send a low level (this is also the same with power on state) from arduino and reversed to high to drive Vg, that is no good for the initial situation of N MOSFET, and there is another issue is that the Vgs, if the Vc is 5V of second bjt then the Ve will be around 4.1~4.2V(Vbe[0.7V] + Vce[0.2V]) and that is no good to drive Vg, although the Vgs is 4.5V that we called a logic level.

Next times before you post the circuit then you better label all the name for all the components and that is easiler to identify and point out when we talking about any component.
 

Thread Starter

helpinvent4you

Joined Dec 24, 2016
11
Here's a reasonably low-cost low on-resistance logic level FET in a fully-insulated TO-220 type package:
BBK4001 (weird part number for ON Semi!)
60V, 9.8 milliohms max with 4 Vgs, about 7 milliohms typical with 5 V.

I think using a relay with a low-side PWM'd FET is not a bad way to go especially if your main objective at this point in time is to prove your concept for improved steering. I've seen people do all sorts of very complex "bells and whistles" things in early prototypes only to discover that something critical to the core functionality can't be made to work in the way that was hoped for. If you've got a big money budget and a small time-to-market budget, starting work on the bells and whistles early in the development can make sense.
Hi EBP,

Thank you for the part number and the advice, I appreciate your insights.

D
 

Thread Starter

helpinvent4you

Joined Dec 24, 2016
11
As I asked but you didn't answer - Why the pwm drivers didn't used like the relay drivers?
Why I asked that because the pwm driving level of MOSFET looks like reversed with the Arduino output, it means that when the Arduino output a high level, but on the Vgs is low, so you have to send a low level (this is also the same with power on state) from arduino and reversed to high to drive Vg, that is no good for the initial situation of N MOSFET, and there is another issue is that the Vgs, if the Vc is 5V of second bjt then the Ve will be around 4.1~4.2V(Vbe[0.7V] + Vce[0.2V]) and that is no good to drive Vg, although the Vgs is 4.5V that we called a logic level.

Next times before you post the circuit then you better label all the name for all the components and that is easiler to identify and point out when we talking about any component.
Hi Scott,

Thank you for writing back, sorry if I missed some of your inquiry. I will attempt to answer your questions in this reply, I if do not cover all your questions please write back.

Initially I was driving the Mosfet gates with PWM signals directly from the arduino. When I started tried to send different duty cycles to each mosfet group and was then having issues with the mosfet performance I started making changes to the Mosfet gates and the gate pull down resistors, attempting to help clear the false triggers on the lower duty cycle mosfet group. When I reduced the gate resistor to zero, to see if the gate resistor was contributing to the problem via the drain-gate capacitance forming a bridge to get voltage to the gate, I was concerned that the arduino PWM drive would be over drawn & damaged, by driving directly into the mosfet gates without a gate resistor. Thus I built the temporary driver circuit to drive the gates and buffer the arduino outputs. You are correct in that the buffer circuit I added does invert the PWM signals. I corrected this by writing my drive signals with this in mind and by eventually just correcting the pwm by mapping the pwm signal output numbers in the code, backwards. Like so PWM-CH1 = map(PWM_CH1, 0, 255, 255, 0); This code workaround helped me not to forget to correct the pwm I was sending via the add on driver circuit inverting the PWM.

Good call, you may be correct on the bjt drop bringing the voltage slightly below 4.5 volts but the mosfet seem to be working fine with the voltage to the gate while in the test stand, as the motors off the ground with no load. I will double check the exact voltage of this temp driver. I will also see about raising the voltage level feeding this driver 9-12 volts. Bit wanted to keep the gate voltage low allowing faster turn off of the mosfets

I will attempt to present better schematics for postings in the future.

Thank you for your help.

D
 

ScottWang

Joined Aug 23, 2012
7,409
Hi Scott,

Thank you for writing back, sorry if I missed some of your inquiry. I will attempt to answer your questions in this reply, I if do not cover all your questions please write back.

Initially I was driving the Mosfet gates with PWM signals directly from the arduino. When I started tried to send different duty cycles to each mosfet group and was then having issues with the mosfet performance I started making changes to the Mosfet gates and the gate pull down resistors, attempting to help clear the false triggers on the lower duty cycle mosfet group. When I reduced the gate resistor to zero, to see if the gate resistor was contributing to the problem via the drain-gate capacitance forming a bridge to get voltage to the gate, I was concerned that the arduino PWM drive would be over drawn & damaged, by driving directly into the mosfet gates without a gate resistor. Thus I built the temporary driver circuit to drive the gates and buffer the arduino outputs. You are correct in that the buffer circuit I added does invert the PWM signals. I corrected this by writing my drive signals with this in mind and by eventually just correcting the pwm by mapping the pwm signal output numbers in the code, backwards. Like so PWM-CH1 = map(PWM_CH1, 0, 255, 255, 0); This code workaround helped me not to forget to correct the pwm I was sending via the add on driver circuit inverting the PWM.

Good call, you may be correct on the bjt drop bringing the voltage slightly below 4.5 volts but the mosfet seem to be working fine with the voltage to the gate while in the test stand, as the motors off the ground with no load. I will double check the exact voltage of this temp driver. I will also see about raising the voltage level feeding this driver 9-12 volts. Bit wanted to keep the gate voltage low allowing faster turn off of the mosfets

I will attempt to present better schematics for postings in the future.

Thank you for your help.

D
I have attached the new drivers for the N MOSFETs and that is like as the relay drivers, please check the blue frame and I have labeled the values of resistors for your reference, if you feel that the resistors is a little higher when the duty cycle is very small then you can reduce their values.


2018-07-26 19_20_49-ExpressSCH_ScottWang.png
 

Thread Starter

helpinvent4you

Joined Dec 24, 2016
11
I have attached the new drivers for the N MOSFETs and that is like as the relay drivers, please check the blue frame and I have labeled the values of resistors for your reference, if you feel that the resistors is a little higher when the duty cycle is very small then you can reduce their values.


View attachment 157034
Hi Scott, I see what you were getting at with your last post. It comes down to discharge time. The reason I did not use these non inverting circuits, Like the ones driving the relay coils and in your example, is due to their inability to drive large currents into the mosfet gates that can also quickly be drained away when the PWM signal goes low, turning off the mosfets. For example, as I understand it Q10 and Q12 each have 4.7k ohm resistors in their collector to ground path (understanding we can alter this value). While the PNP should transition on fast enough to put a high voltage on the collector to feed the mosfet gates, the collector pull down resistors will form an RC discharge time constant via these collector resistors, the gate resistor and the mosfet gate capacitance, during the off transition. This will delay the mosfet turn off time. This will likely set up a slow gate transition likely allowing the mosfet to stay in the linear region creating excessive power losses. If we lower the pnp collector resistors to a much lower value to offset this RC discharge effect they will be using excessive power when the PNP's are on. Thus I am sure with some careful calculations and a few tests to get the timing in spec the design you are showing can be very effective, with the added bonus of not inverting the PWM signals feeding the mosfet, but for the reasons discussed I did not duplicate the relay coil circuits for the mosfet driver buffer. Thank you for drilling down on your question about this and for drawing it into the schematic. Apologies for not answering this more thoroughly earlier.

Before I ended on the inverting circuit I ended up with, I originally made the buffer a, push pull design. The npn-pnp push-pull design has the bonus of using a high side transistor that quickly provides plenty of current to the mosfet gate on a high pwm drive signal and also quickly remove the voltage from the gate via a low side transistor, and no inversion of the pwm signal. Since each transistor works inversely with is counterpart we avoid shoot through, and thus keep overall power use of such a buffer low. The problem I had, was that during testing with 5 volts, the push pull circuit's high output, was below 4 volts. Thus I discarded this idea for this particular application.
 

ScottWang

Joined Aug 23, 2012
7,409
Hi Scott, I see what you were getting at with your last post. It comes down to discharge time. The reason I did not use these non inverting circuits, Like the ones driving the relay coils and in your example, is due to their inability to drive large currents into the mosfet gates that can also quickly be drained away when the PWM signal goes low, turning off the mosfets. For example, as I understand it Q10 and Q12 each have 4.7k ohm resistors in their collector to ground path (understanding we can alter this value). While the PNP should transition on fast enough to put a high voltage on the collector to feed the mosfet gates, the collector pull down resistors will form an RC discharge time constant via these collector resistors, the gate resistor and the mosfet gate capacitance, during the off transition. This will delay the mosfet turn off time. This will likely set up a slow gate transition likely allowing the mosfet to stay in the linear region creating excessive power losses. If we lower the pnp collector resistors to a much lower value to offset this RC discharge effect they will be using excessive power when the PNP's are on. Thus I am sure with some careful calculations and a few tests to get the timing in spec the design you are showing can be very effective, with the added bonus of not inverting the PWM signals feeding the mosfet, but for the reasons discussed I did not duplicate the relay coil circuits for the mosfet driver buffer. Thank you for drilling down on your question about this and for drawing it into the schematic. Apologies for not answering this more thoroughly earlier.

Before I ended on the inverting circuit I ended up with, I originally made the buffer a, push pull design. The npn-pnp push-pull design has the bonus of using a high side transistor that quickly provides plenty of current to the mosfet gate on a high pwm drive signal and also quickly remove the voltage from the gate via a low side transistor, and no inversion of the pwm signal. Since each transistor works inversely with is counterpart we avoid shoot through, and thus keep overall power use of such a buffer low. The problem I had, was that during testing with 5 volts, the push pull circuit's high output, was below 4 volts. Thus I discarded this idea for this particular application.
If you really concerned and it was real affected the Ciss discharge time then you can add a discharge bjt and Schottky Diodes, when to do this then you can keep non-inverting logic, or maybe you can try to do just use three components, one resistor(2.2K), one bjt(PNP) and one Schottky Diodes, there is no other components as Q19, Q10, 4.7K *2, 10K, if you don't have the Schottky Diodes then you can use 1N4148 to try.

2018-07-26 19_20_49-ExpressSCH_ScottWang-02.png
 

Thread Starter

helpinvent4you

Joined Dec 24, 2016
11
If you really concerned and it was real affected the Ciss discharge time then you can add a discharge bjt and Schottky Diodes, when to do this then you can keep non-inverting logic, or maybe you can try to do just use three components, one resistor(2.2K), one bjt(PNP) and one Schottky Diodes, there is no other components as Q19, Q10, 4.7K *2, 10K, if you don't have the Schottky Diodes then you can use 1N4148 to try.

View attachment 157040
Hi Scott,

Very nice! good work on this circuit! Thank you for sharing this work.
 

ScottWang

Joined Aug 23, 2012
7,409
The new circuit just used 4 components, you can use 1N4148(or 1N4004~4007) to replace Schottky Diodes to try, if you don't have the 3.3V zener diode then you can in series with 4 1N4148 or 1N4004~4007 or mix them to try.

2018-07-26 19_20_49-ExpressSCH_ScottWang-03.png
 
Top