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.

CCS/DRV8312-69M-KIT: DRV8312 with sensorless BLDC

Part Number: DRV8312-69M-KIT

Tool/software: Code Composer Studio

i have the DRV8312-69M-KIT and i want to run BLDC with sensorless trapezoidal method.

I used the code provided with ControlSuit for DRV8312-C2-KIT

C:\ti\controlSUITE\development_kits\DRV8312-C2-KIT_v128\BLDC_Sensorless

And i changed the memory to this

FPUTABLES : origin = 0x3FD590, length = 0x0006A0 /* FPU Tables in Boot ROM */
IQTABLES : origin = 0x3FDC30, length = 0x000B50 /* IQ Math Tables in Boot ROM */
IQTABLES2 : origin = 0x3FE780, length = 0x00008C /* IQ Math Tables in Boot ROM */
IQTABLES3 : origin = 0x3FE80C, length = 0x0000AA /* IQ Math Tables in Boot ROM */

I have 3 questions:

1- after testing the firmware with the KIT, the motor didn't run smoothly.

2- The Java script file for the watch variable is corrupted

3- is the firmware support Speed feedback also

  • 1. What build level are you using? Please follow the application guide to set the build level in "BLDC_Sensorless-Settings.h".

    2. It's an old version, not update for the latest CCS and project. Please try the following text.

    //AddWatchWindowVars_F2806x.js
    //Add watch window variables

    expRemoveAll();
    expAdd ("EnableFlag", getNatural());
    expAdd ("IsrTicker", getNatural());
    expAdd ("SpeedRef", getFloat());
    expAdd ("dlog.prescalar", getNatural());
    expAdd ("SpeedLoopFlag", getNatural());
    expAdd ("ILoopFlag", getNatural());
    expAdd ("CmtnPeriodTarget", getNatural());
    expAdd ("DFuncDesired", getQValue(15));
    expAdd ("pid1_spd.term.Out", getFloat());
    expAdd ("speed1.Speed", getFloat());
    expAdd ("speed1.SpeedRpm", getNatural());
    expAdd ("CurrentSet", getFloat());
    expAdd ("pid1_idc.term.Out", getFloat());
    expAdd ("pid1_idc.term.Ref", getFloat());
    expAdd ("pid1_idc.term.Fbk", getFloat());
    expAdd ("DCbus_current", getFloat());
    expAdd ("DfuncTesting", getQValue(15));
    expAdd ("BemfA_offset", getFloat());
    expAdd ("BemfB_offset", getFloat());
    expAdd ("BemfC_offset", getFloat());
    expAdd ("IDC_offset", getFloat());

    3. As replied in item 1, the build LEVEL7 support speed close loop control.