Well, the hardware development bug has bitten me. I'm going to have to re-make the circuit boards. Damn.
The N-Channel MOSFETs that control the buck converters for each group of LEDs are really good parts. They have an incredibly low RDSon resistance of only 11 milliohms (33 millivolts of drop at 3A) which is great. Unfortunately, they have a pretty high gate charge capacitance. I underestimated this value (datasheet was very wishy-washy about it) and my fet drivers don't have enough stones to turn the fets on and off quickly enough.
I'm running the buck-converter at 500 Khz, which helps to keep the inductor physically small. Unfortunately, 500 Khz means that I have to transition from off to on and back to off five-hundred-thousand times every second. A million transitions per second. That leaves me with a full swing time of only 2 micro-seconds.
With the 1A drivers that I currently have on the board, I'm seeing rise and fall times of almost 500 nano-seconds (NOT GOOD). This means that I'm spending about half of the cycle in the linear region of the fet where it burns off power as heat like crazy. It also means that I don't have very good fine-control of current.
I cobbled a 6A driver onto the board using wires and way too much solder. I also increased the gate voltage from 5V to 10V, and my rise/fall times fell to less than 51 nano-seconds. Thats where I want to be. 50 * 2 / 2000 = 5% of the time in the linear region - which is a much much much better number.
I have to re-spin the circuit boards because I can't get any drivers bigger than 2 amps in the same package, so anything bigger won't physically fit. I knew hoping for a fully working design at Rev.A was too optimistic :) Designing with 1 amp drivers was stupid on my part, I'm face-palming myself for this one.
I already re-did the layout and sent the new boards out for fab - have them back in about a week. Getting the (much) larger drivers to fit in the confined space that I have available was not easy. I don't think I could add one single component to the design - it's packed. I was really worried that I wasn't going to be able to route the whole thing in 2 layers which would have forced me to move to a 4 layer board. Luck was with me, though, and I got it all routed without touching my high-current traces.
The good news is that I was able to test everything else, and it all works. The DSP is controlling the LED's beautifully and the whole system is pretty quiet from a noise/EMI perspective. Turning 8 groups of 3 Amp LED's on and off a million times a second is not an easy thing to do without spewing noise all over the place, so I'm thrilled that at least that is stable and quiet. I'm running the DSP in spread-spectrum mode, where the buck-converter frequency actually varies between 495 and 505 Khz, which helps to spread the EMI out a lot. EMI increased a tiny bit with the faster rise and fall times of the bigger driver, but not even close to enough to worry me.
Since I have nothing to do now until the new boards show up, I figure I'll start tinkering with the bluetooth radio. I can solder it down to the current board, put the board in the enclosure, and see if I can get a connection to it through the enclosure. With any luck, by the time the new board shows up, I'll have an answer as to whether bluetooth is going to work or not. Maybe even have a semi-functional Android app written. Downloading the Android SDK now.
PPtk