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.

DRV8462: Customizable micro-stepping table operate under 1/256 micro step mode

Part Number: DRV8462

I use DRV8462 to design our precision motion control system. it is working well. the only issue is Customizable micro-stepping.  

I load the customized number into register 0x17-0x1E.  

when I set EN_CUSTOM to 0 

if  write 0xFA into  register 0x05 , will cause motor move forward 1/256 step.    (register 0x11  number increase/decrease 1 step)

the write 0xF5 into  register 0x05 , will cause motor move forward 1/8 step.     (register 0x11  number increase/decrease 32 steps)

MICROSTEP_MODE [3:0] works

but, if I set  EN_CUSTOM to 1 

No matter what MICROSTEP_MODE I selected. 

write 0xFA or 0xF6 or 0xF0 into  register 0x05 ,  the motor always move forward 1/8 step.    (register 0x11  number will turn to same as the CUSTOM_CURRENTx value)

is it possible to make DRV8462  able to support 1/256 micro-step mode using a Customizable micro-stepping table? 

  • Hello,

    Today is a US holiday.  Please expect a response within 24 hours.

    Regards,

    Ryan

  • Hello Fan,

    Custom microstepping is a dedicated microstepping mode and it is independent of the regular microstepping mode setting. The do not operate simultaneously. In the customer mode you have to setup your desired waveform by proving values in registers for one quadrant. The driver will replicate this custom waveform for the remaining three quadrants. You can try this with our EVM and GUI. When custom microstepping is selected regular microstepping selection will be ignored. Regulare microstepping = internal sine indexer table will be used. Customer microstepping = internal indexer table is not used instead customer indexer table defined by the custom register settings will be used.

    Regards, Murugavel

  • understand under customer mode, custom micro stepping table will replace the internal Sine indexer table. I like to know if custom mode, is still able to support 1/256 micro step mode?  If it is YES, how to move 1/256 microstep?   when using the internal Sine index, I  write 0xFA into register 0x05, Motor move 1/256 micro step, CUR_A_POS(register 0x11) will +1 or -1.   but at customer micro stepping mode,  I do the same action, and found CUR_A_POS directly jumps to the value of CUSTOM_CURRENT1,  CUSTOM_CURRENT2, CUSTOM_CURRENT3. ....   Why the  CUSTOM_CURRENT be used as Position? how do move 1/256 microstep under customer mode?    except register CUSTOM_CTRL1-9. Does any other important register need to be configured to make the customer microtable work properly? 

  • Hello Fan,

    You asked "I like to know if custom mode, is still able to support 1/256 micro step mode?". The general 1/256 microstepping mode and all other microstepping modes in a STEP/DIR indexer based stepper drivers including the DRV8462 are associated with the internal sine table based indexer. I want to mention this for clarity. In addition to this the DRV8462 has a unique feature to allow user defined custom indexer based microstepping table. When this feature is enabled internal sine table indexer, microstepping settings and automicrostepping are ignored. 

    See page-27 of the datasheet. The custom microstepping table is equivalent to the 1/8 micro-stepping of the internal sine table based indexer. So you must treat the STEP input frequency similar to a 1/8 microstep setting and define 8 points using register values in addition to 0 which is automatically added. The description also mentions that this table is further interpolated to 256 microsteps of the custom waveform which means the custom microstepping always operates with 256 microsteps for the output current waveform generation. For the input STEP frequency it must be treated similar to the general purpose 1/8 th microstepping. I verified this to be true using a DRV8462EVM and enabling the custom microstepping feature using the GUI. I hope this explanation helps you to understand the csutom microstepping behavior.

      

    Could you please let us know why you are considering custom microstepping of the DRV8462 for your application? What waveform is planned for your application vs. the standard sine-wave lookup table and why?

    Please note the stall detection feature may not work reliably with custom microstepping. If you don't need stall detection I'd recommend Mixed Decay, 60% Fast decay mode for 12V or lower VM, Mixed 30% Fast for 24V or higher VM or Smart Tune Dynamic Decay decay mode for better current waveform at the output.

    Also, do not use Silent step mode with custom microstepping. Silent step mode automatically switches to the internal indexer and custom mode will be ignored.  

    Regards, Murugavel

  • Got it, custom microstepping mode treats all input pulses as 1/8 microstep signals. Although there is an interpolation, there is no way to accurately control the motor to stop at any 1/256 microstep position.  Using a regular Sine index table, the current<->position response is not perfectly linear. I'm considering using custom microstepping so that the motor motion linearly follows the CUR_A_POS (register 0x11) value with a resolution of 1/256 micro steps. Based on current info, the custom micro-stepping mode is not suitable for me. thank you for the explanation.