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/DRV8301-HC-C2-KIT: BLDC_Sensorless on the DRV830x-HC-C2-KIT_v105 and DRV8312-C2-KIT_v128 with F28069

Part Number: DRV8301-HC-C2-KIT

Tool/software: Code Composer Studio

Dear Sir/Madam-

I have a need to demonstrate BLDC technology on the DRV830x-HC-C2-KIT_v105 kit to compare it with newer PMSM technology.  I have operated the BLDC_Sensorless software on the DRV8312-C2-KIT_v128 kit and it works just fine. When the software is downloaded to the DRV830x-HC-C2-KIT_v105 hardware, and when scope probes are used to examine PWM_AH, PWM_AL PWM_BH, PWM_BL, and PWM_CH, PWM_CL channels, the appropriate PWM are present.  However, once moving to lab2 and examining ADC-Vhb1, ADC-Vhb2, and ADC-Vhb3 there is no signal and of course the connected motor won't spin or even lock-up. There must be some simple fix? Before you give me your standard TI party line, "BLDC_Sensorless is not supported..." - consider the immortal words of George Santayana, "Those who cannot remember the past are condemned to repeat it." there are historical reasons why the motor control experts evolved to the Clarke/Park methodology, there are many motor controller still using BLDC, not being able to explain to your customers why the new way is better than the old way will increase your profits.

Thanks,

Kurt Kloesel

 

  • 1. Please make sure the configuration of ADC and PWM modules is right for DRV8301-HC-C2-KIT.
    2. Please follow the application notes to try this example project from level1 to level 7, to check which build level failed, and try to provide more detailed information on your question.
    3. Please make sure the configuration of DRV8301 is right, and enable the DRV8301 also when you enable PWM output.

  • Thanks Yanming Luo;

    As it turns out, your third suggestion led to the correct results.
    "...enable the DRV8301 also when you enable PWM output"
    1.) An examination of the DRV8312-C2-KIT_v128 schematics in directory:
    C:\ti\controlSUITE\development_kits\DRV8312-C2-KIT_v128\~DRV8312EVM-HWdevPkg\DRV8312_RevD_HWDevPKG\DRV8312EVM_RevD_Schematic.pdf
    reveals there is no EN_GATE on the DRV8312 chip whereas an examination of the DRV830x-HC-C2-KIT_v105 kit in directory:
    C:\ti\controlSUITE\development_kits\DRV830x-HC-C2-KIT_v105\~DRV830x-HC-EVM-HWdevPkg\DRV830x_RevD_HWDevPKG\Schematic\515502~1.PDF
    on sheet 3 (pin 16) and sheet 5 (pin 42), clearly show an EN_GATE signal.
    A review of the DRV8301 datasheet indicates that the EN_GATE must be pulled up. A curious puzzlement occurs on sheet 5 (pin 42),
    because it is labelled GPIO-39/51.
    Now if one studies the BLDC_Sensorless code, specifically the file named "BLDC_Sensorless-DevInit_F2806x.c", the following code
    segment indicates that GPIO-39 (same for GPIO-51) is designated as an input:
    //--------------------------------------------------------------------------------------
    // GPIO-39 - PIN FUNCTION = --Spare--
    GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 0; // 0=GPIO, 1=Resv, 2=Resv, 3=Resv
    GpioCtrlRegs.GPBDIR.bit.GPIO39 = 0; // 1=OUTput, 0=INput
    // GpioDataRegs.GPBCLEAR.bit.GPIO39 = 1; // uncomment if --> Set Low initially
    // GpioDataRegs.GPBSET.bit.GPIO39 = 1; // uncomment if --> Set High initially
    //--------------------------------------------------------------------------------------

    If one just changes the initial settings in "BLDC_Sensorless-DevInit_F2806x.c":
    //--------------------------------------------------------------------------------------
    // GPIO-51 - PIN FUNCTION = --was a Spare-- commented out K.Kloesel
    // GPIO-51 - PIN FUNCTION = EN_GATE DIMM pin 42 shown on sheet 5, DRV830x-HC-C2-KIT_v105 schematics
    // K.Kloesel 1/11/2019
    GpioCtrlRegs.GPBMUX2.bit.GPIO51 = 0; // 0=GPIO, 1=EQEP1B, 2=MDRA, 3=TZ2
    GpioCtrlRegs.GPBDIR.bit.GPIO51 = 1; // 1=OUTput, 0=INput
    // GpioDataRegs.GPBCLEAR.bit.GPIO51 = 1; // uncomment if --> Set Low initially
    GpioDataRegs.GPBSET.bit.GPIO51 = 1; // uncomment if --> Set High initially
    //--------------------------------------------------------------------------------------

    Then the GPIO-51 pin is set high during initialization. THIS WORKS, AND THE MOTOR SPINS ON lab2.  It appears that the reference to GPIO-39 may be
    for some other purpose, maybe an earlier design.  it would be more preferable for the EN_GATE to be switched on during the ENABLE process in the javascript file. Any suggestions where to put the statement in the main file BLDC_Sensorless.c?

    Thanks,
    Kurt