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.

DRV8823: Interface Via I2C

Other Parts Discussed in Thread: DRV8823, DRV8828

Hi, 

Customer Vubic in SoCal  are designing in a number of TI devices into their upcoming Haul Pass system.  DRV8823 has been recommended  for driving their Stepper Motors.  They like the device but they provided feedback indicating the datasheet is deficient in terms of how to operate the device from the SW point of view.  It would be great if you could elaborate and/or provide an application example on how to interface via I2C with a DRV8823. 

 

Thanks,

Anish Jacob

  • Hi Anish,

    Do you mean I2C or SPI? DRV8823 is SPI, not I2C.

    To control a stepper with the DRV8823 you need to write an SPI packet on a per step basis. The datasheet cannot go into the detail of how to do this, but we have application notes that explain how to do microstepping with DACs by grabbing the information from a look up table and then outputing it into the DAC on a per step basis.

    An application note that I would take a look at would be http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=slva416&fileType=pdf This App note is not the closest implementation but it gives you the theory on how microstepping is achieved by modulating current while employing DAC blocks and values fetched from a lookup table.

    An application note that approaches the DRV8823 implementation much more would be: http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=slva443&fileType=pdf In this application note we show how to implement microstepping by writing a binary combination into the DRV8828/29's AIx pins. Now, on the DRV8828/29, the AIx pins are external and you use parallel loading to modify the binary information.

    The DRV8823 implementation would be 98% identical except that instead of using parallel loading to specify the current level, you would use SPI packets. Also, you would only have a 3 bit DAC instead of a 5 bit DAC. Everything else would be the same. You would count from 0 to 7 and then from 7 to 0 on the 3 bits allocated for current control (called A12, A11, A10 for H Bridge A, and so on for the other three registers). You would also need to articulate each PHASE signal accordingly.

    I will not paraphrase the entire App Note in this response, but if there are still questions feel free to let us know.

    Best regards,

    Jose Quinones