I'm driving some 12v fan motors from a microcontroller using ULN2003A Darlington array. Both total wattage and per-channel wattage are way below ULN2003a limits. Still, I found that when PWM duty cycle is below 20%, ULN2003a starts to get really hot (can't touch with a finger). At higher PWM duty cycle temperature is much lower.
Update: Fans draw around 0.2A each, and the PWM frequency is 32 kHz currently. The capacitors are there to reduce the audible noise (I was using lower PWM frequency initially).
Am I correct in suspecting that the heat source is the flyback diodes, and not the darlingtons?
I'm thinking of adding some external flyback diodes across the motor coil. Is this the corect thing to do in this situation? I have some 1N5818DICT on hand (Schottky diode 30V 1A, Recovery < 500ns). Will such diode be ok, or I I need something special?