I need to PWM a motor with an n-FET using an already existing function in an MCU. That's the easy part, because I already know how to do that. What I'd like to do now, is to generate a complementary signal that will be used for EMI suppression purposes. But this signal must have an independent delay-start and a delay-end with respect to the original signal, as shown in the following graph.
A requirement is that the complementary wave must be generated outside the MCU, mainly to avoid programming overhead. Another requirement is that D-st and D-end must be independent of each other, and easily adjustable in order to account for the different gate rise and fall times of the mosfet being driven. Frequency range will be between 10 and 28 KHz
After some thought, I realized that generating D-st is not that complicated, but that I cannot predict the future to generate D-end, since the reference signal must always be the original PWM function. And D-end has a negative value with respect to PWM.
The solution that came to mind was to generate a delayed replica of the original PWM wave to drive the motor's mosfet, and then generate the complementary function referenced to the original PWM one to drive the EMI suppresor circuit. This way all delay values would stay positive, the downside being that I'd need to generate three different delays instead of two. Those would be: Da, Db and Dc; as shown in the following image:
An advantage is that Da can stay constant, and only Db and Dc must be adjustable. Using a couple of pots for this purpose would be an acceptable solution.
My first thought was to use a set of 555/556 chips to accomplish this, but I'm beginning to think that maybe there's a simpler (and, especially, more reliable) solution out there. Maybe using gates, flip-flops or whatever? It also occurred to me that a slave MCU could also be used to accomplish this, but that seems like an awful waste of resources.
What do you guys think?
A requirement is that the complementary wave must be generated outside the MCU, mainly to avoid programming overhead. Another requirement is that D-st and D-end must be independent of each other, and easily adjustable in order to account for the different gate rise and fall times of the mosfet being driven. Frequency range will be between 10 and 28 KHz
After some thought, I realized that generating D-st is not that complicated, but that I cannot predict the future to generate D-end, since the reference signal must always be the original PWM function. And D-end has a negative value with respect to PWM.
The solution that came to mind was to generate a delayed replica of the original PWM wave to drive the motor's mosfet, and then generate the complementary function referenced to the original PWM one to drive the EMI suppresor circuit. This way all delay values would stay positive, the downside being that I'd need to generate three different delays instead of two. Those would be: Da, Db and Dc; as shown in the following image:
An advantage is that Da can stay constant, and only Db and Dc must be adjustable. Using a couple of pots for this purpose would be an acceptable solution.
My first thought was to use a set of 555/556 chips to accomplish this, but I'm beginning to think that maybe there's a simpler (and, especially, more reliable) solution out there. Maybe using gates, flip-flops or whatever? It also occurred to me that a slave MCU could also be used to accomplish this, but that seems like an awful waste of resources.
What do you guys think?


