2025-11-11 9:24 AM
Hi -
I am trying to bring up a new design - a 3 phase forward converter, using the HRTIM to fire six gate drives. Under normal design loads it works great, but for normal loading I have the CONT bits set for master and subs. For light loading, I need to keep a minimum on-time, so must drop the frequency.
I could reduce the resolution by using a smaller PLL multiplier (presently using x8 with a 150 MHz sysclock for a 1.2 GHz HRTIM), but that is unsatisfactory. I tried setting different PLL multipliers for the master and the three sub timers, but found that different PLL settings precludes cross-channel event messaging, so I could not phase the three sub clocks with the master anymore. I suspect I could use the burst mode, but have not researched that yet.
The technique I am trying now is linking to TIM1 to start the master for one cycle in one-shot mode. This gives me a proper fixed on-time burst for all six phases, but reducing TIM1 frequency can stretch this out for very low duty cycle. This proves to work MOST of the time, but there are some pathological settings that result in double pulsing, non-pulsing, long on-times, etc. I suspect that some of the update and reset bits in the HRTIM_RSTxR or HRTIM_TIMxCR registers are not being set right, but I've worked through all combinations (I think) that make sense and still get unsatisfactory waveforms.
Can anybody hellp with the proper settings? Do the sub timers want to have the CONT bit set? do I want to set TxRSTU or TxREPU in TIMxCR? How should I be configuring the resets of the three sub timers -- I've tried reset on master timer compare channels, on UPDT, on CMP4 (set properly), and I still get pathological output for some settings (generally appearing as if each channel is confused and doesn't shut off properly after each cycle). The problem does not exist with the master and subs with CONT set, running continuous full cycles. It only appears with CONT off running one-shot mode.
My settings are:
_MCR: 0x28000E02 (MREPU on, PREEN on, synch to TIM1_trgo, CONT off, CKPSC=010
_TIMxCR: 0x0802000A (PREEN on, CKPSC=010, cont off, TxREPU.....also tried with TxRSTU)
_MPER set for full cycle time
_MCMPxR set to 0, 60, 120 phase times
_CMP1xR set by feedback for variable pulsewidth
_CMP2xR set to 180 phase time
_CMP3xR set by feedback to same as 1xR+180 deg
_SETx1R set to M cmp1, M cmp2, or M cmp3
_RSTx1R set to cmp1 or eev (comparator for peak current commutation)
_SETx2R set to cmp2
_SETx3R set to cmp3 or eev (comparator)
_RSTxR - I have tried many things - master cmp 1/2/3, update, cmp4 with cmp4 set to full cycle or same as cmp3
Thanks! Jeff Casey