36 Phase PWM control

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
PaSv_1652016
Level 2
Level 2
10 likes given 5 likes given First like received

Hello 
For my current project i need 36x phase PWM  output Up to ~100khz  each , with phase shift , and dead time  control .
Whether implementation of this project is possible using Psock5 , with use of any existing components. ?

0 Likes
6 Replies
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted
0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Assuming that each of the PWMs is consuming one UDB you will be able to implement in hardware as a max 24 PWMs.

   

At frequencies up to 100kHz even a software implementation could be too tight to CPU limits. Think of using 2 PSoC5 chips.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

I presume you'd run them at the same frequency given the phase-shift requirement?

   

If so then continually generating a static signal would involves 72x toggles at some cycle and order within one period, continually repeating the same pattern. This pattern might be played back from a pre-assembled buffer through an array of UDB FIFOs with parallel outputs routed to the pins. Say with 36-bits of pin data and a cycle count defining when to trigger the next edge in each DMA word using a separate counter.

   

Then you could pre-compile such scripts in software, including a transitional buffer to handle the crossover, which would be swapped over with DMA transaction chains once submitted. Effectively modification would be relatively CPU intensive (sorting the flank events, etc) this work could be performed entirely asynchronously and so wouldn't be critical unless you require fast and continuous modification of the waveforms.

   

Of course even then the compilation algorithm might be optimized to perform single-cycle parameter shifts efficiently, probably not even requiring the transitional buffer.

   

edit: At maximum resolution DMA bandwidth may be a problem for short pulses in rapid succession. You might want to use an absolute cycle comparator instead of a relative delay to re-synchronize after a quick pulse train draining the FIFOs. Perhaps juggle both UDB FIFOs for extra tolerance.

0 Likes
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

pcf1ru,

   

your question is ambiguous. Can you please specify how many PWM blocs you need and what relative phase granularity you expect for each one? How far phase shift would go (is 0-90 deg enough or 0-360deg)? Bit resolution, etc...

0 Likes
PaSv_1652016
Level 2
Level 2
10 likes given 5 likes given First like received

Thanks  All!!
36x PWM  for control 36x Phase motor
360deg  16 bit phase shift
8bit Duty
frequency up to 100khz 
 

0 Likes
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted
        pcf1ru, it looks like you need single 36-phase 16-bit PWM component, which is outside of PSoC hardware resources. This is trivial task for small $20 FPGA though.   
0 Likes