Hello, I'm using a FRDM-K64F and some custom hardware to spin a 3-phase synchronous ac motor. The motor will spin at it's native speed, 1200rpm, but it has to remain phase locked to the zero crossings of the ac line. The motor is a rotating spark gap for a tesla coil and the 6 firing electrodes must be in the same place on the ac cycle every time.
As you can see from the enclosed KDS 3.0 and PeX project I have used 6 pwm components and a ppg. I use the ppg to make the fine frequency adjustments that are needed to sync the pwm outputs to the zero crossing pulses from an external op amp circuit. That works great. Pairing of the 6 pwm outputs and dead time insertion is all done in my C code but there's a problem. When I disable one pwm output in a pair it doesn't go off. That is essential to avoid putting the igbt's on my power inverter board into a dead short. It's hard to see these signals accurately even though I have a good scope so I added a little test in my code. It puts out 4 fixed width pulses on one pwm output, then disables it and sets it high, then puts out 4 pulses on another. I should see the exclusive swapping of channels on my scope but I don't. I see them both at the same time with lots of overlap.
So what am I doing wrong? Should I use the pwm interrupts instead of the ppg? So far I need the ppg to make the fine frequency adjustments I need for syncing. Is there some other low level method of disabling a pwm channel? Any help will be greatly appreciated!
Original Attachment has been moved to: k64First.zip