jackmorrison
Newbie level 6
- Joined
- Jul 11, 2013
- Messages
- 14
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1
- Activity points
- 162
I'm building a specialized LED matrix display for neuropsychology (visual perception) research. The overall display is 64x64 LEDs, built up from 64 8x8-LED modules. These can't be time-multiplexed or PWM driven - the LEDs need to be controlled in parallel, with DC waveforms. We're looking at visual effects down to 250ns.
Each LED can be software-switched between two voltage levels for brightness control (I don't have the budget or room for 4096 current-control circuits), so I'm using a voltage follower circuit to keep the voltage constant regardless of load (number of LEDs switched on). The attached schematic shows the scheme, simplified a bit to show one channel, and representing one fixed + one switched LED. Actually there are 64 LEDs, each with a fast SPDT analog switch (NX3L4053) to select one of two sources. The op-amp is LM6142 (17MHz GBW) and transistor is ZXTN25012EZ (260MHZ fT).
This works except that the response time is too slow, about 2us rise time for a square wave input at LEDV1. Also, with a fixed voltage at LEDV1, switching from no load to one LED on takes about 10us. Switching from one LED to two LEDs is fine, I get a 250ns rise time. Adding a 1M fixed load (between Q5 emitter and ground) reduces the time to turn on the first LED to 3us, but also adds significant ringing to the square wave response. Using a faster op-amp (LT1813, 100MHz GBW) gives faster response, but there's significant overshoot on a rising edge input, and oscillation around 25MHz when driving an LED.
The circuit is built on a 4-layer PCB with ground plane. The farthest LED is about 3 inches from the amp circuit. Timing measurements are of actual LED emission, made with a photodiode and 200-ohm shunt resistor attached directly to a scope probe.
I'm hoping for some advice on how to adjust the circuit for better performance. Ideally, a square wave input (with switches fixed), or a DC level with switching, would give 250ns or faster rise/fall times with minimal overshoot and ringing.
Hopefully I haven't left out any important info. Thanks for any suggestions.
Each LED can be software-switched between two voltage levels for brightness control (I don't have the budget or room for 4096 current-control circuits), so I'm using a voltage follower circuit to keep the voltage constant regardless of load (number of LEDs switched on). The attached schematic shows the scheme, simplified a bit to show one channel, and representing one fixed + one switched LED. Actually there are 64 LEDs, each with a fast SPDT analog switch (NX3L4053) to select one of two sources. The op-amp is LM6142 (17MHz GBW) and transistor is ZXTN25012EZ (260MHZ fT).
This works except that the response time is too slow, about 2us rise time for a square wave input at LEDV1. Also, with a fixed voltage at LEDV1, switching from no load to one LED on takes about 10us. Switching from one LED to two LEDs is fine, I get a 250ns rise time. Adding a 1M fixed load (between Q5 emitter and ground) reduces the time to turn on the first LED to 3us, but also adds significant ringing to the square wave response. Using a faster op-amp (LT1813, 100MHz GBW) gives faster response, but there's significant overshoot on a rising edge input, and oscillation around 25MHz when driving an LED.
The circuit is built on a 4-layer PCB with ground plane. The farthest LED is about 3 inches from the amp circuit. Timing measurements are of actual LED emission, made with a photodiode and 200-ohm shunt resistor attached directly to a scope probe.
I'm hoping for some advice on how to adjust the circuit for better performance. Ideally, a square wave input (with switches fixed), or a DC level with switching, would give 250ns or faster rise/fall times with minimal overshoot and ringing.
Hopefully I haven't left out any important info. Thanks for any suggestions.