- Thu May 29, 2014 1:04 pm
#171559
I have a bit of a unique situation here and hoping someone might have a better idea of what I can do, even if it means going through a hardware redesign. I have LED strips with LPD8806 drivers that are powered directly from a single Li-Ion Power Cell so they can take advantage of the amp burst. They're controlled via several 4.1A Sziklai pairs (PNP/NPN pairs) which in turn are controlled by the MCU. The MCU turns them on or off when needed. The issues I have here are two:
a) the way the software is written, there's a trigger button that actually turns the strips on and starts displaying whatever they're meant to display. When the button is pushed, the MCU first turns on the Sziklai pairs which provide power to the strips, and then it starts sending data to them. When the button is pushed again, it stops sending data, and powers down the Sziklai pairs. However, what I'm noticing is, when I trigger them on again, the strips are coming on with some random data for a brief second before actual data from the MCU starts arriving. This tells me that somewhere, either when they're turned off or when they're turned on, whatever's in the drivers' registers gets horribly mangled and when power is applied again, it just displays whatever it sees. The LED drivers don't actually reset to a known state when power is removed from them. I'm not sure if it's because I'm powering down the Sziklai pairs too fast, or if something else is going on. I'm open to suggestions on what to try.
b) next issue is, because the LED strips are connected directly to the battery and the Sziklai pairs are controlled by the MCU, when the unit's running and power is cut off, the strips will remain turned on because the MCU died before telling the Sziklai pairs to actually power down the strips prior to shutting down. Short from using a DPST switch to forcibly cut power off from the strings, is there a way to do a delayed power off where when I hit the rocker switch, the MCU actually knows to power down the Sziklai pairs first before the whole unit loses power? Or should I be thinking about a different hardware circuit that will also power down the Sziklai pairs when power is cut off?
And before you ask why I did it this way, there are several reasons. The LED drivers will continue to consume a phantom amount of current even when the LEDs are turned off. And since there are 96 of them, that adds up very quickly. So I needed a way to cut off power completely to them while the unit itself might just be sleeping (as opposed to being completely turned off.) The trigger button is there to start or stop a display sequence. When stopped, all the drivers should have power removed, but the MCU continues to run, waiting for the next trigger.
Attached is the Sziklai pairs circuit.
a) the way the software is written, there's a trigger button that actually turns the strips on and starts displaying whatever they're meant to display. When the button is pushed, the MCU first turns on the Sziklai pairs which provide power to the strips, and then it starts sending data to them. When the button is pushed again, it stops sending data, and powers down the Sziklai pairs. However, what I'm noticing is, when I trigger them on again, the strips are coming on with some random data for a brief second before actual data from the MCU starts arriving. This tells me that somewhere, either when they're turned off or when they're turned on, whatever's in the drivers' registers gets horribly mangled and when power is applied again, it just displays whatever it sees. The LED drivers don't actually reset to a known state when power is removed from them. I'm not sure if it's because I'm powering down the Sziklai pairs too fast, or if something else is going on. I'm open to suggestions on what to try.
b) next issue is, because the LED strips are connected directly to the battery and the Sziklai pairs are controlled by the MCU, when the unit's running and power is cut off, the strips will remain turned on because the MCU died before telling the Sziklai pairs to actually power down the strips prior to shutting down. Short from using a DPST switch to forcibly cut power off from the strings, is there a way to do a delayed power off where when I hit the rocker switch, the MCU actually knows to power down the Sziklai pairs first before the whole unit loses power? Or should I be thinking about a different hardware circuit that will also power down the Sziklai pairs when power is cut off?
And before you ask why I did it this way, there are several reasons. The LED drivers will continue to consume a phantom amount of current even when the LEDs are turned off. And since there are 96 of them, that adds up very quickly. So I needed a way to cut off power completely to them while the unit itself might just be sleeping (as opposed to being completely turned off.) The trigger button is there to start or stop a display sequence. When stopped, all the drivers should have power removed, but the MCU continues to run, waiting for the next trigger.
Attached is the Sziklai pairs circuit.
You do not have the required permissions to view the files attached to this post.