I have built the following h-bridge: h-bridge schematic

  • VMOT1 is at logic level (3.3V)
  • FWD and REV are driven by MCU (no PWM in the scope examples given)
  • Q7/Q8 are DMP1045
  • Q9/Q10 are BSS138
  • D3/D4 are 4 x 4148
  • the 2 voltmeters are the color-coded scope probes with common ground
  • M2 is one of those cheap yellow Chinese DC motors

The scope measurements are representing a switch from the motor running at full speed in one direction, switching to the opposite direction. If I have understood well, this is the most likely scenario for either shoot-through or back-EMF.

When I leave the motor disconnected, the transition looks like this:

motor disconnected

This looks fine to me, the timing between P-MOSFET and N-MOSFET is not exactly the same, but I see no concern for shoot-through (correct me if I'm wrong).

Now with the motor connected, it starts getting interesting: motor connected

What do I see here? Is the (yellow) dip below 0V the power returned to the circuit by the braking motor or is this the back-EMF? And what are the spikes showing up just before that dip? I have seen them in all samples taken.

And more practically speaking: Do I really need those freewheeling Schottky diodes or are they just not doing anything at all in this circuit?

Another question, is there any shoot-through happening here during the ±200ns transition or can that be neglected? There is an option to control all 4 MOSFETs independently and switch the P-MOSFETS's 1us later.

-- edit --

I was asked to add a .1R resistor accross GND and measure that. I didn't have one handy, so used 1R instead.

Yellow shows the logic level at FWD, and pink the voltage accross the ' current sense resistor'. First images shows one full FWD->REV->FWD cycle:

enter image description here

The circuit uses a switching boost converter (TPS61322) on a dual alkaline battery so that is probably causing the ripple (?). Averiging it out, the voltage is at about -125mV, so that makes a 125mA current draw at the battery terminals. But of course the 200ms period after switching direction is more interesting:

enter image description here

Here's there's a brief peak to 1A at the moment of switching over then 300mA without ripple for a while and then about 80ms of 1A max! I wouldn't be surprised if that is the current limit of the switch (1.8A max, inductor used Ir is 1.6A) . So I guess I have a case of shoot-through after all?

-- edit --

I compared the behaviour with a TI DRV8835 H-bridge IC, and actually it shows a very similar output. I will also make another measurement with a lab supply instead of the boost converter. Hopefully this clears things up even more.

-- edit --

This is without the boost converter, just 3.3V from the lab supply: enter image description here

And this on the DRV8835: enter image description here

  • 1
    \$\begingroup\$ Install a 0.1 ohm resistor in the Ground pin, and display that waveform. \$\endgroup\$ Jan 15, 2019 at 11:57
  • 1
    \$\begingroup\$ the timing between PNP and NPN Uh, I only see MOSFETs? Your "using xxx but planning to use yyy" is quite confusing! List the components you use because they cause the measured behavior, not the components you're not using. The DMP1045 can handle 10x more Id than the BS170, it can work but just looks "odd" to me. I would choose more complementary types of MOSFETs like AO3400 / AO3401. \$\endgroup\$ Jan 15, 2019 at 12:04
  • \$\begingroup\$ I know it's odd @Bimpelrekkie, UPS lost my shipment with the parts I was planning to use. Just got the correct parts in, will update question with new data once I have replaced the parts. Also editted the text, following your suggestions. \$\endgroup\$
    – Genoil
    Jan 15, 2019 at 12:10
  • \$\begingroup\$ @analogsystemsrf editted question per your suggestion \$\endgroup\$
    – Genoil
    Jan 15, 2019 at 13:10

1 Answer 1


Here's what I think is going on: You have three separate issues. Shoot-through occurs only at the very edge of your switching circuit because of the difference between turn-on delay time and turn-off delay time of your parts. This is current spike on the pink traces. If this is the cause, you can easily solve it with a modification to the gate drive circuit to slow down the "on" time so that you always turn "off" first. However, since this occurs so infrequently, (only when you change directions) you might get away without it.


simulate this circuit – Schematic created using CircuitLab

The short excursion below ground is from the motor inductance. Current flows briefly back through the body diode of the FET.

The rest is from your boost inverter, because you have to supply sufficient current to provide torque to decelerate the rotor and accelerate it to the running speed. If you put an inertial load on your motor shaft (a disk or similar that would act like a small flywheel) you will likely be able to see on the trace that the recovery time of your circuit is lengthened. The current levels out when the motor is back up to speed.

  • \$\begingroup\$ Thanks I will try this. What I find strange though, is why such a simple addition to the circuit is apparently not present in an H-bridge IC like the drv8835 that I used as a comparison (see last two screenshots). Couldn’t the purple spikes in those just be the added current generated by the braking motor and just nothing else? \$\endgroup\$
    – Genoil
    Jan 15, 2019 at 21:41
  • \$\begingroup\$ Some power FETs have much larger gate capacitance than others, so the gate resistance would vary from one design to another. However, your intuition is exactly right - a quick glance at the data sheet of the part you mentioned shows a 100-ns output dead time, which is the time between one switch "off" and the other "on." This guards against shoot-through. \$\endgroup\$ Jan 15, 2019 at 22:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.