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.
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):
Switching at 1kHz (T=1ms):
Switching at 2kHz (T=500us):
I'm switching the drive using an MCU through the
MCU_OUTPUT signal and the scope shots were measured at the
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:
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?
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):
Switching at 14kHz with load connected:
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.