Controllable phase shift BETWEEN Power Stage Controllers? AT90PWM316

Go To Last Post
2 posts / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi All,


How to generate phase shift, at 1Mhz, between separate power stage controllers within a single uC? So far I've been able to synchronize startup of PSC's within an AT90PWM316 using the PARUN bits... but I need real-time, controllable phase shift between two PSC's. If there's a way to modify the 12-bit counter value within the PSC core, I haven't been able to find it.


Phase-Shifted Full Bridge using GDIC's


My goal is to generate the four colored square waves seen in the above picture, for input to four Gate Drive IC's. Extremely narrow (10nS probably good enough) dead-bands between the square waves are not shown, but are required. Switching frequency is 1Mhz, so, using the fast clock (64Mhz) of the AT90PWM316. Although at shitty (30 counts) resolution, I was easily able to generate two square waves with controllable phase-shift in between:


    OCR0RB=62;                                      //Sets the freq. Main reference signal. Part B. PSCOUT01. Trigger on this.
    OCR0RA=0;                                       //Part A, PSCOUT00, Phase shifted signal.
    PLLCSR=(1<<PLLF)|(1<<PLLE);                     //Set PLL division factor (64Mhz when set, 32M when cleared) and enable PLL
    PCNF0|=(1<<PCLKSEL0);                           //use the fast CLK
    while ((PLLCSR&(1<<PLOCK))==0);                 //Wait for PLL lock
    PSOC0=(1<<POEN0A)|(1<<POEN0B);                  //Enable outputs
    PCTL0|=(1<<PRUN0);                              //Run Power Stage Controller 0

If 30 counts are added to OCR0RA and OCR0SA (making them 30 and 60, respectively) the two square waves are perfectly shifted. That was real fantastic when I was using Gate Drive Transfor mers that had two secondaries each. This is an ultra high speed application and I *cannot* use GDT's for this... had to switch to Gate Drive IC's... four square waves now required, with narrow dead bands, and controllable phase shift from one pair of square waves to the next.



Last Edited: Mon. Mar 20, 2017 - 01:13 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Other than powering up one PSC, adding short delay, then powering up a different PSC, it is apparently impossible to vary the phase between power stage controllers at high frequency.


I may have found a solution, though an imperfect one, by changing around which PSC output goes to which MOSFET, and inverting the output of one of the PSC output pins.


  • PSC0B pin controls the UPPER LEFT xstr. The PSC0SB and PSC0RB registers must NOT be modified to change the output power of the converter (Staying at 32 and 64 for my application @ 1Mhz).
  • PSC0A pin controls the UPPER RIGHT xstr. To vary converter power, change these PSC0SA and PSC0SB registers, but IN TANDEM WITH THE PSC1SA and PSC1SB registers. My values, for 1Mhz, vary between 0 and 64. Most of the registers cover this entire range when the power is swept from 0% to 100%.
  • PSC1B with inverted output controls the LOWER LEFT xstr. PSC1SB and PSC1RB registers must NOT be modified to change the output power of the converter (Staying at 32 and 64 for my application @ 1Mhz).
  • PSC1A pin controls the LOWER RIGHT xstr. To vary converter power, change these PSC1SA and PSC1RA registers, but IN TANDEM WITH THE PSC0SA and PSC0RA registers.


I deem this an "imperfect solution" because at least one switching transition will not have a controllable dead time. No worries if you're using a gate drive IC or some logic that performs "shoot-through" or "cross-conduction" or "overlap" protection.


Anyhow I hope someone appreciates this someday, cheers fren.



Last Edited: Thu. Mar 23, 2017 - 01:00 AM