This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ePWM chopper submodule use with DRV8312 driver

Other Parts Discussed in Thread: DRV8312, DRV8301

I have a question regarding the usefulness of the ePWM chopper submodule.  I have an application that benefits from the use of an extremely high PWM frequency, so the chopper would help out immensely.  However, I've noticed that the minimum chopper frequency is 1.56MHz according to the user reference guide (refer to page 749 of the spruh22c document, Concerto F28M35x Technical Reference Manual).  The maximum switching frequency of the DRV8312 driver IC is 500kHz.  Is there a way of modulating the epwm chopper down below 500kHz? Otherwise, it seems that the chopper cannot be used with the DRV8312 driver.

  • Jared,

    Figure 7-34. PWM-Chopper Submodule Operation Details on page 675 (in spruh22c revC) should help visualize the issue. 

    As you mention, the minimum configurable chopping clock frequency is 1.5625MHz on a C28x core running at 100MHz.  Unfortunately, the only method to generate a slower chopping clock frequency with the Chopper submodule would be to slow down the C28x core's SYSCLK.


    Thank you,
    Brett

  • Brett,

    Thank you for the response.  It seems that I need to slow down the Concerto's C28x CPU from 150MHz to about 30MHz in order to get the chopper speed below 500kHz for evaluating on the DRV8312EVM base board (which would then prove problematic from an ISR standpoint).  For the DRV8301 base board, we need to slow it down even more to accommodate its max switching frequency of 200kHz.  Do you have any recommendations for readily available hardware I can use for evaluating the ePWM chopper submodule?  Thank you for your assistance.

  • Jared,

    How are you wanting to experiment with the PWM chopper submodule? 
    1) Do you just want to look at the PWM waveforms directly? 
    2) Or do you want some sort of PWM driver and FET to be attached to your PWM output?

    If (1), I'd recommend using the controlCARD Docking Station that comes in many of our Experimenter's Kits.  It basically takes all the major pins of the MCU to headers.  I use this tool a lot when evaluating peripherals.


    Thank you,
    Brett

  • Brett,

    (2) - I'd like to see the effects of the epwm chopper module when used on my motor (hoping for a reduction in ripple current amplitude), and experiment with which chopper duty cycle works best for my application.

    Thanks for your investigation.

  • Jared,

    Unfortunately, I don't think that the DRV kit will work very well for this investigation then.

    TI does offer a motor control kit that doesn't have a DRV module on it (and therefore may not have the same timing limitations), the much larger TMDSHVMTRPFCKIT.  It uses a bulkier Powerex PS21765 as its IPM.  According to its datasheet:

    the input PWM's minimum allowable turn-on time is 0.3us
    the input PWM's minimum allowable turn-off time is 1.4us

    This means that you may be on the limits of being able to experiment on this kit as long as your careful with duty cycles.

    Which motor type are you using?


    Thank you,
    Brett

  • I'm using a custom motor built in-house.  It's a 3-phase, 4 pole PMSM motor with a speed range of 10,000 to 30,000 rpm with an R/L=163kHz and nominal RMS motor current of 200mA to 500mA.  The motor requires 15V bus voltage in order to achieve the top end speed.  Hence, our ripple current at 20kHz PWM is insanely high.

  • Jared,

    That's an insane R/L!  But you should still be able to PWM at < 100 KHz for this motor. I'm not exactly sure what you are trying to do with the chopper.

  • First, thanks for the responses guys.  I truly appreciate them.

    Yes, it is an insane motor design, but not something I can change.  I'm just the humble controls guy trying to make everything work.  I can actually run the motor with 20kHz PWM/ISR, but I'm trying to optimize for low heat generation and power consumption.  That ripple current is killing me, plus it makes the current waveform look pretty awful on the scope.

    My thinking was that if I ran the PWM/ISR at 20kHz and ran the ePWM chopper with it in the 300kHz-500kHz, the motor would see a really high PWM frequency and the ripple current would be greatly reduced.  I've actually seen this work.  On the Piccolo F28035 I got the PWM frequency up to 300kHz using the standard instaspin software package.  Enormous difference in ripple, heat, and general current waveform as seen on the scope.  I'm seeing if I can replicate these results with FOC using the VisSim software package for the Concerto F28M35x controlcard with the DRV8312EVM board.  I'd rather not throw huge filter inductors on the output of the motor driver, but I'll do what I need to do.

    Again, I appreciate any/all input.  Thanks.

  • Jared,

    thinking about it more, this may work. The biggest challenge will be on getting good current sampling information.  Especially if you are trying to chop the bottom leg of the inverter as well....that will make it extremely challenging with FOC. Can you non-chop the bottom leg and only chop the high side? That could work.

     

  • Jared,

    Another thought....if you can't have them design a proper motor (there is no reason the R/L should be so high), can you add some inductance in series?

    For 30krpm, 4-pole, you only need to run at 1kHz and a PWM Frequency of 10kHz should be no issue if the inductance was higher.

    What is the flux of this machine?  I.e. what kind of short circuit current (Flux(Vs/rad) / Ls) does this motor have? If it is more than twice the rated current (which it must be given your R/L) add a few small inductors and your current ripple will disappear.


    Taking a guess at the flux of your machine:

    suppose 14V L-L @ 30krpm: 7V/1000Hz = 7mV/Hz = 1.1mVs/rad

     
    Rated current 500mA implies that max possible shaft power (losses neglected) is 15V*0.5A*sqrt(3/2) = 9.2W.  This is a tiny  motor!

    It should be designed to have a short ciruit current of  <4x rated current = 2Arms =2.8Apeak.

    Its inductance should thus be not smaller than 0.0011Vs/rad / (2.8A) = 400uH. Any smaller value will cause unnecessary ripple and losses.


    Try this: add three inductors (470uH or 330uH, 500mA).  R/L becomes realistic, current ripple goes away even at 10kHz..

  • Chris,

    Thank you for the detailed answer, I appreciate the thought you are putting into this.  We've played with the idea of adding series inductance.  We're going for minimum board space, but it's looking more and more likely that we will just have to bite the bullet and add the inductors.  Our typical load is 300mA to 500mA, but we have to design for up to 750mA loads.  I'm not excited about the size of the inductors I'll need, but I guess we can get a few surface mount inductors in series.

    Thanks again.