For controlling power to a LED string on the high side, one can use a P-ch fet. Pull the gate to GND, and it turns ON, powering the LEDs. Pull the gate to VCC and it turns off. Works great.
Gets a little trickier when the LED source voltage is higher than the logic levels controlling the gate. 5V at the gate from an AVR pin won't necessarily turn off the LEDs if the supply voltage is higher than 5V, say 12V or 36V etc. Turning on is fine - just drag it down to GND. Turning off though, the gate has to be pulled up to the source voltage. Either use a specialized fet driver, or an N-ch fet to control the P-ch gate.
Way back when, I remember a cool multiple-fet package ... it had an N-ch fet controlling the gate to a P-ch fet. Internally the P-ch gate was pulled up via resistor to the source pin of the P-ch. It looked a bit like the image below.
The neat trick was that logic levels worked fine. Pull the gate to GND and the N-ch turned OFF, which let the P-ch gate be pulled up to +12V, turning it OFF. Pull the gate to +5V and the N-ch turns ON, GNDing the P-ch gate, turning it ON.
And do you think I can remember what it was called ? Or that I've been able to find it (or similar) again ? My digikey-FU has failed me.
I need 4 of them - 4 channels of 8 LEDs each, max of 50mA per LED. So they have to handle at least 0.4A, so preferably 1A for margin. Source supply is 12V, AVR is at 5V.
Oh, and small. Board space is tight. An array of 4 would be great if it exists. Or ... does anyone have a more preferable way to control power to strings of LEDs like this ? Individual LEDs in each channel are controlled by a driver - tlc5916.