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.

DRV8332: Problems when replacing DRV8312 with DRV8332.

Part Number: DRV8332
Other Parts Discussed in Thread: DRV8312, , MOTORWARE, LAUNCHXL-F28069M, BOOSTXL-DRV8305EVM

I am running InstaSPIN labs with F28054M controller. drv8312 kit_revD

Since I am testing more powerful motors, I need a motor driver can provide 4-6A continuous current output.

After hardware modification, when the motor is holding its position, the current output can easily go up to 5A when I was pushing against it (it was 1.2A with DRV8312 before it lost control and generate 2002 position error).

With this new motor driver DRV8332, it should have capability of running powerful motor faster. but it didn't. It can only run smoothly with slow speed and lost control easily with fast speed that DRV8312 can run.

Any ideas why this's happening? What are the parameters that I need to change when replacing DRV8312 with DRV8332? 

Any parameters that I need to change in USER.H?

  • you need to follow SPRUHJ1 regarding making updates to the MotorWare code for a new driver.

    You will need to create updated HAL files for DRV8332, make sure you follow HW guidelines, and make updates to user.h for current, voltage, and filter pole settings.

    You may also just want to purchase a LaunchPad and BoosterPack combination that meets your current requirements. Gives you a known starting point.

    LAUNCHXL-F28069M

    BOOSTXL-DRV8305EVM

    is a good choice.

  • Is there any specific parameters I need to make change in Hal files when I switch to DRV8332? My motor can easily generate position error 2002 when I make it run a bit faster. I followed SPRUHJ1 HW guidelines, nothing needs to be changed because I am using extract same value resistors, capacitors and etc.

    When motor holds still, and I push against it, gMotorVars.Is_A shows 6.5A. The max output current looks right. But when motor is running and changing direction, it lost control and gMotorVars.Is_A  only reads out approx 1A before it lost control. It's quite confusing.

  • if you used the exact same value of resistors, capacitors, etc. then you would have the same current and voltage scaling as the DRV8312, meaning you aren't able to provide any additional current to your motor.

    You need the scaling to fit the driver, board, and motor.

    update the scaling as required in HW, make those changes in user.h software

  • Other than those parameters, what else do I need to change when switch to DRV8332?

    #define USER_IQ_FULL_SCALE_VOLTAGE_V (24.0) // 24.0 Example for drv8312_revd typical usage and the Anaheim motor

    #define USER_ADC_FULL_SCALE_VOLTAGE_V (66.32) // 66.32 drv8312_revd voltage scaling

    #define USER_IQ_FULL_SCALE_CURRENT_A (10.0) // 10.0 Example for drv8312_revd typical usage

    #define USER_ADC_FULL_SCALE_CURRENT_A (17.30) // 17.30 drv8312_revd current scaling

    #define USER_VOLTAGE_FILTER_POLE_Hz (714.14) // 714.14, value for drv8312_revd hardware

  • I don't know anything about the DRV8332, perhaps someone from the Motor Drive team can comment. If it's very similar to DRV8312 you probably don't need to change anything else.

  • Qiang,

    The DRV8312 and DRV8332 offer the same pins and functionality, main difference being that the DRV8332 has a larger top mounted heat slug for easier use of a heatsink.

    The programming, trimming, control of both devices are identical.

    Are you using a large enough heatsink?

    Regards,

    -Adam