I would like to increase the maximum current that a PWM signal from a microcontroller can source/sink from +-25mA to +-500mA. The output should have the same peak-to-peak voltage (0 to 3.3V) and should not be inverted (i.e. follows the input). The PWM frequency is ~30kHz. I have looked into using an active push-pull output but the only configuration I can find is inverting. Since the output needs to follow the input, I need to invert the input. I found this chip with complementary mosfets that looks like it would work for the output stage: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=DMG1016V-7DICT-ND and this chip for the input BJT inverting stage: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=MMDT2227MDICT-ND Here is my proposed circuit: The output stage mosfets have fairly small total gate charge of ~700pC each, so I think I could drive them directly with my microcontroller if I could find a non-inverting configuration. So my questions are: 1. Will this circuit work? 2. Is there a single chip solution? 3. Is there a better circuit that would fit my needs (less components, cheaper, smaller footprint)? 4. Is there anything that I am missing? Diodes, resistors, etc? Also, I do not have a specific load that I am driving, this is more of a generic output that can drive different load types. I would like to make this +-500mA source/sink PWM as similar to a uC output, but with larger current sourcing and sinking capacity. Thanks for the help.