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.

DRV8432 CBC mode pwmA=on, pwmB=constant low, is this correct?

Other Parts Discussed in Thread: CONTROLSUITESri, I am using the DRV8432 in the mode M1=M2=M3="0": Dual full bridges (two PWM inputs each full bridge) with cycle-by-cycle current limit. Configuration 2FB. Lets say i have a simple motor load. To move motor in CW direction i put pwmA on say 97% duty cycle and I put pwmB to constant "0" (ie, no pulses but just a constant off so that B side has its high side off and low side on). To move motor in CCW direction i put pwmB on say 97% duty cycle and I put pwmA to constant "0" (ie, no pulses but just a constant off so that A side has its high side off and low side on). Is this correct to put a constant "0" on the opposite side and not put say a pwm pulse with a very low duty cycle of say 1%? What low duty cycle is recommended in place of the constant "0"?? thanks, Steve
  • Hi Steve,

    We made a similar mistake when starting out on the DRV8432, but it doesn't work as the other side needs to toggle as well.

    If you have a high resolution PWM input, you could experiment with a really low pulse every cycle to the PWM_B rather than making it constant.

    Or, you could even consider 4-quadrant unipolar switching. Your "effective" output then becomes "(PWM_A - PWM_B)*2", thereby doubling your frequency, as well as your "rest" position coming in at PWM_A = PWM_B.

    Regards,

    Anup

  • Hi Anup, thanks for your reply to me. I will try what you suggest above. But could you pls explain to me what you mean by the 4-quadrant unipolar idea? i do not get it. if you want to email me inplace of using this forum then ok as well. my email is: stevenbriandunn@gmail.com up to you. thanks, steve
  • Hi Anup

    We are using drv8432 in stepper motor M3=M2=M3=0 do I wonder if an APP o material we can read 4-quadrant unipolar in order to apply to motor control.

    You mention also to provide to PWM_B a small pulse is any suggestions for the duty cycle PWM_B   how small we can got or parentage of the duty cycle PWM_A

    Regards

    Albert

  • Hi Albert

    Not so sure about you first question. Maybe Anup can help.

    For the second question, test result shows 1us will be effective for our purpose. You can use small pulse longer than that according to the way how you generate the PWM.

    Best regards,

  • Hi Wilson

    Thank you for the info. I would like to corroborate with you the following sequence :

    M3=M2=0 M1= 1, NO CBC current control .

    I have two questions:

    I)

    OC_ADJ = 33K  , we use the board with stepper motor 4 Amp .

    As an example :

    1) We move CW

    PWM_A      = PWM (Center aligned) freq= 80 KHZ 

    PWM_B   = 0

    PWM_C = PWM  

    PWM_D = 0

    2) CCW

    PWM_A=0

    PWM_B =PWM

    PWM_C= 0

    PWM_D=PWM

    Is any  problem  to control drv8432  with the above stetting ? , If it yes which correction I have to make ? drv8432 to work  with M3=M2=0, M1=1;

    II) How can I ask Anup for " 4-quadrant unipolar idea" where can I find more information ?

    I need to open a new case ?

    Albert

  • Hi Albert,

    Unfortunately, there's no app that I referred to. The concept is that we give two different PWMs on both ends, lets say PWMA and PWMB. When PWMA_dutycycle = PWMB_dutycycle, the net output is ZERO. When PWMA_dutycycle > PWMB_dutycycle, we can assume that the motor moves in positive direction, and negative direction when PWMB_dutycycle > PWMA_dutycycle. I will look up and see if I can find any documents on the same.

    In your case, I am not sure whether you would want to use a PWM! Is that for microstepping, or do you want such uncontrolled motion on the stepper?

    Regards,

    Anup

  • Sorry Anup for the dealy.

    Our application is Micro-stepping , and I am having problems to use M3=M2=0, M1=1 , after first step FAUL goes down , has a ADJ a resistor of 33K and we setup   current 1.4 Amp , 

    Out PWM is center aligned, if the motor move

    CW ,

    PWM_A= pwm, PWM_B=0

    CCW

    PWM_A=0, PWM_B =pwm

    IS any problem with this configuration ?

    Albert 

  • Albert,

    The PWM pattern you mentioned above results in 2-quardent uni-polar. I don't see any issuse with Mode-setting pins. DRV8432 should be functional in this case. I think you are missing something in micro-stepping logic which may be resulting in OC.

    Based on 2-quardent uni-polar pattern, we have application example using C2000 piccolo micro-controller for stepper micro stepping.It can be found in control-suite: controlSUITE\development_kits\DRV8412-C2-KIT_v131\Stepper

    For 4-quardent Uni-polar, I don't know about application note but once you are successful with 2-quardent unipolar scheme, it can be easily converted to 4-qurdentadent. Attached PPT will help you to generate the pattern.

    Milan-Motor Applicaiton Team6177.Uni-polar PWM.ppt

  • Milan

    We use a bipolar motor in microsteps the signal mentioned was only for one phase.

    First cuadrant: PWM_A= pwm; PWM_=0, PWM_C=pwm; PWM_D=0 ;

    My questions is if we setup M3=M2=M1=1 FAULT line goes down  , we have a breakpoint in the interrupt when happen the event. No more of two steps  and we detect FAULT goes low ,

    ADJ resistor 33K,  , VDD=12 V  ( no noise, for testing we use a lab power supply ) , PVDD =24V.

    Shunt resistor 4 x 0.125 Ohms . IF We config  M3=M2=0 M1=0 the motor move just fine as expected . 

    my question is Why  FAULT line goes down after second step , when M3=M2=0; M1=1

    Albert

  • Hi Albert,

    I haven't touched this IC for a long time now, but would you like to provide a very short duration "1" pulse on the "0" PWM output instead of having it constantly at 0? That should reset it's over-current detection logic every cycle.

    Also, M1 = M2 = M3 = 1 seems to be a reserved mode! Why are you using that?

    --

    Anup

  • Sorry Anup

    I made a mistake  M3=M2=0; M1 =1  no CBC. What can be the problems when M1=0 ,  the motor move in micro stepping , if we set M1=1 motor stop and FAULT goes down low. 

    I will try tuo use the pulse in with M1=1.

    Albert

  • Albert,

    So if I read correctly:

    if M1=0, motor moves fine.

    If M1=1, Motor stops and nFault goes low.

    That's becuase motor is drawing transiently higher current during start-up.

    With M1=0,  DRV 8432 performs a CBC current-limiting function rather than prematurely shutting down the device. This feature could effectively limit the inrush current during motor start-up or transient.

    With M1=1, it latched shut-down so as soon as OC is detected, nFault goes low.

    Please refer to over-current section of data-sheet for more details.

    Best Regards

    Milan-Motor Application Team

  • Milan ,

    I read several times the data sheet.

    I have a questions in the EVB shows M1 =0 to use with stepper.

     Here is my question:

    Where is the mistake in stating the motor with  PWM signals  bipolar stepper:

    Fisrt quadrant , move CW, bipolar

    PWM_A = pwm ; PWM_B =0

    PWM_C-= pwm ; PWM_D=0;  

    Note: We are implementing now  a PWM_B PWM_D  pulse of 1 uSec for PWM_B PWM_D when both are in Zero

    How can  PWM signals need to be created when M1=0,   like EVB

    Albert   

  • Albert,

    I'm not able to understand your exact questions here.

    What do you mean by EVB? Is it EVM (evalulation module)?

    Are you looking for answer how to do generate PWM signals for DRV8432 to drive stepper?

    Please clarify.

    Best Regards

    Milan-Motor Application Team

     

  • Milan

    I need to know how a bipolar stepper motor can be drive with M1=0;

    This is my only question, please

    Why drv8432  FAULT goes to low when 

    PWM_A =PWM , PWM_B =0 ;

    PWM_C=PWM ; PWM_D =0  Where are is the mistake 

    Albert

  • Milan

    Having PWM_B = PWM_D =0 ( first quadrant ) you mentioned to create a pulse instead in driving all pwm period in 0.

    Adding this pulse will allow to work  in M1=0. ?

    Albert

  • Albert,

    Over-all it's pretty confusing. I'm not able to understand your quries? In one of the previous post you mentioned:

     IF We config  M3=M2=0 M1=0 the motor move just fine as expected .

    So what's the issue with M1=0?

    Can you please clarify, you exact questions?

    Best Regards

    Milan-Motor Application Team

  • Albert,

    After revisiting post once again, I realized that you are asking, why to add short pulse on PWM B and PWM D=0, with M1=0, in cycle-by-cycle mode.

    The reason is that with M1=0, In CBC current limiting mode, when side FET OC is detected, the device will turn off the affected low side FET and keep the high side FET at same half bridge off until the next PWM cycle. But if PWMB and PWMD are always low, there is no next PWM pulse so device shuts-off permanently. Therefore in 2-Quad uni-polar switching, it is recommended to add small pulse for PWMB and PWMD.

    If you go with 4-quad uni-polar switching, this problem will not appear.

    Best Regards

    Milan-Motor Application Team

  • Hi Milan

    Thank you for the answer. 

    One small question: the pulse we have make  PWM_B, PWM_D needs to be after  intermediately  PWM_A PWM_C  goes to 0 o we need to provide a delay before the pulse is done ?

    Albert 

  • Albert,

    You can add small delay so as not to limit the max operating duty cycle . The other paramter to look for pulse-width, both of them will put limit on max duty cycle.

    That's why 4-quad uni-polar scheme would be best as it will not have above limitation.

    Best Regards

    Milan-Motor Application Team