Electronic – How to shorten fall time on high-side BJT drive


I have built a PCB with a set of high-side BJT drives shown in the schematic below. I'm using 8 of these to drive the columns of an 8×8 RBG LED matrix.

High-side BJT drive

While debugging the board with my oscilloscope (with the load, i.e. L1 and R4, disconnected), I noticed that the circuit was showing a much longer fall time than I expected. I got 660us while I expected a fall time below 1us. Below are a series of scope shots I took.

Switching at 250Hz (T=4ms):

Scope shot at 250Hz

Switching at 1kHz (T=1ms):

Scope shot at 1kHz

Switching at 2kHz (T=500us):

Scope shot at 2kHz

I'm switching the drive using an MCU through the MCU_OUTPUT signal and the scope shots were measured at the PROBE label.

The problem is that I need to switch the drive at around 14kHz, but above 1kHz, it doesn't even get to 0V during fall anymore. So above a certain frequency, the drive doesn't turn off.

Well, I only (sort of) understand how BJTs work in simple switch and amplifier configurations, so I'm puzzled with these results. I tried googling for it, but I don't even know what search terms to use. I'm stuck.

My questions are:

  1. Why is the fall time so much longer than the rise time on this circuit? The fall curve looks like that of a capacitor discharging, but I don't have a capacitor in the circuit. Or do I?

  2. How can I shorten the fall time on this circuit? Can I shorten it by changing the resistor values or the transistors?

I'm hoping I can learn something new about transistors with this opportunity.

Update: Testing with the load connected

I took Michael's answer into consideration and took another set of measurements with the load now connected. The scope shots are below. The results were much lower fall times, in the order of 660ns. That's 1000x lower than the original 660us I was getting with the load disconnected.

Switching at 2kHz with load connected (T=500us):

Scope shot with load switched at 2kHz

Switching at 14kHz with load connected:

Scope shot with load switched at around 14kHz

The end result is that the circuit I built is capable of switching my loads at the required frequency. It's just that I was making an incorrect measurement with the load disconnected.

Best Answer

Trying to evaluate your fall time with the load disconnected is not a useful measurement. As the PNP transistor turns OFF its collector terminal goes to a high impedance. That leaves the load to be the scope probe impedance which is likely to be 1Meg or 10Meg ohms. It is no wonder that it takes a long time for that size of load to discharge the small capacitance of the collector circuit and the scope probe capacitance.

Instead you should be looking at your switching time with the actual load hooked up. If the actual load is not available then at least add a test load resistor from the PNP collector to the GND rail. Size the resistor to dissipate power equivalent to the normal load that the circuit is meant to drive. Doing this you will see the real fall time and rise time of the circuit.


To get my point across take a look at the LT Spice circuit simulation below. I've drawn the circuit with a load consisting of a 10Meg ohm scope probe in parallel with 22pF of capacitance to simulate your actual scope probe capacitance plus some for the PNP collector terminal and the wiring. These pictures clearly show that the long fall time you are seeing is due to the fact that you have the load disconnected as I said above. It has next to nothing to do about the LED characteristics or the PNP saturation as another answer suggests.

enter image description here

enter image description here