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.

DRV8308 Bad Commutation in SINE mode

Other Parts Discussed in Thread: DRV8308

The DRV8308 register setup I am using is shown below.

The mode is 120 deg commutatioin with single Hall (BASIC = 0, ENSINE=0)

This runs the motor perfectly over a wide speed range.  LOCKn active after startup at any speed.

The problem comes when doing nothing more than setting ENSINE=1.  The motor draws large current, the phase current is erratic.  Continuously goes in/out of LOCK.  Setting before start or setting on-the-fly does same.  Setting MOD120=3970, does the same.

ENSINE should just change the PWM flat duty to sinusoidal duty.  It should not change commutation angle (my assumption about what is happening).  The switch between 180 comm single Hall and 120 comm single Hall should be seamless.  I don't understand what is happening here.

A good overall block diagram of the system, filter topology, startup algorithm, would be very helpful.

I am unable to get Sine mode to operate in my drive nor in the evaluation kit.

  • Hi Paul,

    We will investigate and reply soon.
  • Hi Paul,

    Sorry, did you intend to place an image of the register settings used? If so, would you please try again.

    For our understanding, we should be able to duplicate what you are seeing with the motor in the kit. All that is required is to change from BASIC=0, ENSINE =0 to BASIC =0, ENSINE=1 while the motor is running. Is that correct?
  • Paul, are you using Clock Frequency Mode or a PWM mode?

    Maybe you could try setting MOD120=3970, use a PWM mode with a 30% input duty cycle (and 16-50kHz frequency), and then try toggling ENSINE to see if it seamlessly switches to sine mode.

    Another thing to try is, after you replicate the behavior you described where phase current is erratic, try halving or doubling LOOPGAIN to see if that restores behavior to normal.

    Another idea that's a less likely scenario is that sine mode requires higher peak current.  So if you're near the limit of 0.25V/Rsense, or the limit of your power supply or bulk cap, it's possible sine mode requries just a little more current.

    The behavior you describe seems most likely to happen if MOD120 were set to something other than 3970...but you said it already is.  Double check that.

    If you attach a screenshot of the GUI 3rd tab, I'll review it.

    Best regards,
    RE

  • Hi Paul,

    Try to set HALLPOL = 1, but the direction changed. So you can use DIR to set back.

    There are several combination of the device's UVW and HALL inputs and the combinations are somehow related to the transtion from 120 to 180 degree driving. HALLPOL (or change the real hardware Hall inputs polar) will help you to find the only one combination works. (Smooth running in 120 mode only doesn't mean the combination will be good also in 120 to 180 transfering.)

    Best regards,
  • Wilson,

    Thank you for the confirmation.  We too, discovered that HALLPOL=1 is required to use 180 mode even though that is an unexpected behavior.

    Having a detailed block diagram of the internal operation of the controller would certainly be helpful in our continuing efforts to get tuned sine drive running.

    -Paul

  • My understanding is that single-Hall mode requires perfect motor phase mapping, Hall mapping, and Hall polarity (between the motor and DRV8308).  If that's not perfect, then one DIR setting might seem to work well, but the other DIR doesn't (in single-Hall mode).  Also, BASIC=1 may work but BASIC=0 doesn't (since BASIC=1 forces the device to stay in 3-Hall mode).

    I don't recall 180 degree sine mode being related to this topic.  180 mode happens to be entered at the same time as single-Hall mode; when the motor reaches a consistent speed, LOCKn goes Low, single-Hall mode is entered, and 180 commutation is used.

    Best regards,
    RE

  • RE,

    I am now having some luck with sine mode but I still have some way to go.
    If you please, could you tell me how the DRV8308 does the startup?
    I'm guessing that the DRV' starts in open loop PWM mode with SPEED setting the startup duty cycle. The three hall signals directly commutate the output phases.
    Is this correct? Do you have a block diagram or something that shows how duty cycle is ramped or set during startup?

    Thank you for your help.

    -Paul
  • Paul, good question. The duty cycle the DRV8308 applies during startup is not well-controlled. The SPEED register does affect it, but really just needs to be a large enough value to spin the motor up to the target speed. Lower values of SPEED should prevent overshoot, but if it's too low, target speed won't be reached, so it's simplest to just set it to 4000.

    Best regards,
    RE