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.

MCF8329A: MPET not working No skipping

Part Number: MCF8329A
Other Parts Discussed in Thread: MCF8329EVM,

Tool/software:

Dear TI Team,

I followed the article (SLLU374 – NOVEMBER 2024) to tune my MCF8329EVM. I manually measured the Rs, Ls, and BEMF and entered the values.

After That, I tried to run MPET. The motor rotated until the open-loop speed, returning no errors, but only zero values were obtained in MPET results.

I also tried to skip MPET measurement by following section 4.1.7.1 Skipping MPET Measurements.

However, I cannot rotate my motor from i2c speed commands in the quick spin menu; the motor remains idle, and no fault occurs.

Let me know how I proceed. 

  • Hi Prabhat,

    Can you share motor spec R, L, rated current and speed (RPM and pole pairs)

    I will provide you a JSON with small tuning guide to try.

    Thanks and Best Regards

    Venkatadri S

  • R is 0.035 ohms, L is 11.33uH rated current is 25A (peak current 35A) and rated speed is 7000 RPM pole pair 12.

  • Please use this JSON, I have not entered KE which you need to measure from MPET or manual method.

    The reference JSON is tuned for 1mohm shunt, current loop (speed is not controlled).

    Follow the attached document to understand current reference.

    Run MPET to measure KE

    I have entered R, L for per phase and max speed. Please verify once and program if needed.

    example :

    {
    "signature":"oneui-register-data",
    "data":[
    [
    {
    "idx":0,
    "id":"ISD_CONFIG",
    "value":"0x64A294A1",
    "addr":"0x00000080"
    },
    {
    "idx":1,
    "id":"REV_DRIVE_CONFIG",
    "value":"0x48300000",
    "addr":"0x00000082"
    },
    {
    "idx":2,
    "id":"MOTOR_STARTUP1",
    "value":"0x07260D00",
    "addr":"0x00000084"
    },
    {
    "idx":3,
    "id":"MOTOR_STARTUP2",
    "value":"0x1B032007",
    "addr":"0x00000086"
    },
    {
    "idx":4,
    "id":"CLOSED_LOOP1",
    "value":"0x133911B8",
    "addr":"0x00000088"
    },
    {
    "idx":5,
    "id":"CLOSED_LOOP2",
    "value":"0x0AAD1706",
    "addr":"0x0000008A"
    },
    {
    "idx":6,
    "id":"CLOSED_LOOP3",
    "value":"0x00000002",
    "addr":"0x0000008C"
    },
    {
    "idx":7,
    "id":"CLOSED_LOOP4",
    "value":"0x409220D0",
    "addr":"0x0000008E"
    },
    {
    "idx":8,
    "id":"REF_PROFILES1",
    "value":"0x00000000",
    "addr":"0x00000094"
    },
    {
    "idx":9,
    "id":"REF_PROFILES2",
    "value":"0x00000000",
    "addr":"0x00000096"
    },
    {
    "idx":10,
    "id":"REF_PROFILES3",
    "value":"0x00000000",
    "addr":"0x00000098"
    },
    {
    "idx":11,
    "id":"REF_PROFILES4",
    "value":"0x00000000",
    "addr":"0x0000009A"
    },
    {
    "idx":12,
    "id":"REF_PROFILES5",
    "value":"0x00000038",
    "addr":"0x0000009C"
    },
    {
    "idx":13,
    "id":"REF_PROFILES6",
    "value":"0x00007FC2",
    "addr":"0x0000009E"
    }
    ],
    [
    {
    "idx":0,
    "id":"FAULT_CONFIG1",
    "value":"0x3667B1A7",
    "addr":"0x00000090"
    },
    {
    "idx":1,
    "id":"FAULT_CONFIG2",
    "value":"0x7F47A8B8",
    "addr":"0x00000092"
    }
    ],
    [
    {
    "idx":0,
    "id":"INT_ALGO_1",
    "value":"0x0940027D",
    "addr":"0x000000A0"
    },
    {
    "idx":1,
    "id":"INT_ALGO_2",
    "value":"0x02008229",
    "addr":"0x000000A2"
    }
    ],
    [
    {
    "idx":0,
    "id":"PIN_CONFIG",
    "value":"0x48021300",
    "addr":"0x000000A4"
    },
    {
    "idx":1,
    "id":"DEVICE_CONFIG1",
    "value":"0x00100002",
    "addr":"0x000000A6"
    },
    {
    "idx":2,
    "id":"DEVICE_CONFIG2",
    "value":"0x03E8D00C",
    "addr":"0x000000A8"
    },
    {
    "idx":3,
    "id":"PERI_CONFIG1",
    "value":"0x069445C0",
    "addr":"0x000000AA"
    },
    {
    "idx":4,
    "id":"GD_CONFIG1",
    "value":"0x0000807B",
    "addr":"0x000000AC"
    },
    {
    "idx":5,
    "id":"GD_CONFIG2",
    "value":"0x00000400",
    "addr":"0x000000AE"
    }
    ],
    [
    {
    "idx":0,
    "id":"GATE_DRIVER_FAULT_STATUS",
    "value":"0x00000000",
    "addr":"0x000000E0"
    },
    {
    "idx":1,
    "id":"CONTROLLER_FAULT_STATUS",
    "value":"0x00000000",
    "addr":"0x000000E2"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_STATUS",
    "value":"0x00000004",
    "addr":"0x000000E4"
    },
    {
    "idx":1,
    "id":"MTR_PARAMS",
    "value":"0x00430000",
    "addr":"0x000000E6"
    },
    {
    "idx":2,
    "id":"ALGO_STATUS_MPET",
    "value":"0x15000000",
    "addr":"0x000000E8"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_CTRL1",
    "value":"0x00000000",
    "addr":"0x000000EA"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_DEBUG1",
    "value":"0x80000000",
    "addr":"0x000000EC"
    },
    {
    "idx":1,
    "id":"ALGO_DEBUG2",
    "value":"0x00000001",
    "addr":"0x000000EE"
    },
    {
    "idx":2,
    "id":"CURRENT_PI",
    "value":"0x0375038A",
    "addr":"0x000000F0"
    },
    {
    "idx":3,
    "id":"SPEED_PI",
    "value":"0x02480140",
    "addr":"0x000000F2"
    },
    {
    "idx":4,
    "id":"DAC_1",
    "value":"0x00000000",
    "addr":"0x000000F4"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGORITHM_STATE",
    "value":"0x00000000",
    "addr":"0x00000196"
    },
    {
    "idx":1,
    "id":"FG_SPEED_FDBK",
    "value":"0x7FFFFFFF",
    "addr":"0x0000019C"
    },
    {
    "idx":2,
    "id":"BUS_CURRENT",
    "value":"0x00000000",
    "addr":"0x0000040E"
    },
    {
    "idx":3,
    "id":"PHASE_CURRENT_A",
    "value":"0x00000000",
    "addr":"0x0000043C"
    },
    {
    "idx":4,
    "id":"PHASE_CURRENT_B",
    "value":"0x00000000",
    "addr":"0x0000043E"
    },
    {
    "idx":5,
    "id":"PHASE_CURRENT_C",
    "value":"0x00000000",
    "addr":"0x00000440"
    },
    {
    "idx":6,
    "id":"CSA_GAIN_FEEDBACK",
    "value":"0x00000003",
    "addr":"0x00000450"
    },
    {
    "idx":7,
    "id":"VOLTAGE_GAIN_FEEDBACK",
    "value":"0x00000002",
    "addr":"0x00000458"
    },
    {
    "idx":8,
    "id":"VM_VOLTAGE",
    "value":"0x019B8000",
    "addr":"0x0000045C"
    },
    {
    "idx":9,
    "id":"PHASE_VOLTAGE_VA",
    "value":"0x0206885F",
    "addr":"0x00000460"
    },
    {
    "idx":10,
    "id":"PHASE_VOLTAGE_VB",
    "value":"0x02168DDE",
    "addr":"0x00000462"
    },
    {
    "idx":11,
    "id":"PHASE_VOLTAGE_VC",
    "value":"0x02168DDE",
    "addr":"0x00000464"
    },
    {
    "idx":12,
    "id":"SIN_COMMUTATION_ANGLE",
    "value":"0x00000000",
    "addr":"0x000004AA"
    },
    {
    "idx":13,
    "id":"COS_COMMUTATION_ANGLE",
    "value":"0x00000000",
    "addr":"0x000004AC"
    },
    {
    "idx":14,
    "id":"IALPHA",
    "value":"0x00000000",
    "addr":"0x000004CC"
    },
    {
    "idx":15,
    "id":"IBETA",
    "value":"0x00000000",
    "addr":"0x000004CE"
    },
    {
    "idx":16,
    "id":"VALPHA",
    "value":"0x00000000",
    "addr":"0x000004D0"
    },
    {
    "idx":17,
    "id":"VBETA",
    "value":"0x00000000",
    "addr":"0x000004D2"
    },
    {
    "idx":18,
    "id":"ID",
    "value":"0x00000000",
    "addr":"0x000004DC"
    },
    {
    "idx":19,
    "id":"IQ",
    "value":"0x00000000",
    "addr":"0x000004DE"
    },
    {
    "idx":20,
    "id":"VD",
    "value":"0x00000000",
    "addr":"0x000004E0"
    },
    {
    "idx":21,
    "id":"VQ",
    "value":"0x00000000",
    "addr":"0x000004E2"
    },
    {
    "idx":22,
    "id":"IQ_REF_ROTOR_ALIGN",
    "value":"0x00000000",
    "addr":"0x0000051A"
    },
    {
    "idx":23,
    "id":"SPEED_REF_OPEN_LOOP",
    "value":"0x00000000",
    "addr":"0x00000532"
    },
    {
    "idx":24,
    "id":"IQ_REF_OPEN_LOOP",
    "value":"0x00000000",
    "addr":"0x00000542"
    },
    {
    "idx":25,
    "id":"SPEED_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x000005D0"
    },
    {
    "idx":26,
    "id":"ID_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x0000060A"
    },
    {
    "idx":27,
    "id":"IQ_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x0000060C"
    },
    {
    "idx":28,
    "id":"ISD_STATE",
    "value":"0x00000000",
    "addr":"0x000006B0"
    },
    {
    "idx":29,
    "id":"ISD_SPEED",
    "value":"0x00000000",
    "addr":"0x000006BA"
    },
    {
    "idx":30,
    "id":"IPD_STATE",
    "value":"0x00000000",
    "addr":"0x000006E4"
    },
    {
    "idx":31,
    "id":"IPD_ANGLE",
    "value":"0x00000000",
    "addr":"0x0000071A"
    },
    {
    "idx":32,
    "id":"ED",
    "value":"0x00000000",
    "addr":"0x0000075C"
    },
    {
    "idx":33,
    "id":"EQ",
    "value":"0x00000000",
    "addr":"0x0000075E"
    },
    {
    "idx":34,
    "id":"SPEED_FDBK",
    "value":"0x00000000",
    "addr":"0x0000076E"
    },
    {
    "idx":35,
    "id":"THETA_EST",
    "value":"0x00000000",
    "addr":"0x00000774"
    }
    ]
    ]
    }

    Notes

    Thanks and Best Regards

    Venkatadri S

  • 15:24:8:197 | : Could not detect any MPET fault. Please check the tuning file..

    It is unable to measure Ke

  • Why is there excess heat generation in MPET identification?

    Ke measured by MPET is 4mv/Hz while when I measured it using DSO it was 9mV/Hz, which value to believe.

    Motor keeps rotating after  (15:24:8:197 | : Could not detect any MPET fault. Please check the tuning file.) this.

  • At no load the motor should not extract more than 0.9 Amps but while running MPET it is drawing from 2 to 3 Amps current, why is that?

  • MPET is open loop configuration, it delivers configured current.

    You can reduce MPET open loop current reference and verify again.

    Can you explain me complete procedure of manual measurement which you are doing? Can you share the oscilloscope waveform of phase-to-phase voltage and frequency of on wave?

    You can reduce the MPET open loop current reference as much required. Example at no load you are seeing ,max current is 0.9A (Is this phase current or DC bus current?)

    Thanks and Best Regards

    Venkatadri S

  • Please follow the MPET flow which I shared before. 

    MPET needs to be configured properly 

    - Open loop current reference: set a value which is appropriate to motor inertia 

    - Open loop speed reference: MPET spins the motor to the speed (% of max speed) and then stops driving. In this case motor continues to coast down, if motor generates good BEMF while coasting down device measure with lesser error.

    Thanks and Best Regards

    Venkatadri S

  • I follow these Steps.

    Open TI Motor Studio, MCF8329A is autodetected,

    I proceed and do Hardware Setup as shown in the GUI

    I go to the Quick SPin Menu

    Under the Load Default menu, I selected the JSON file (which you just shared)

    Load Preset Values and write to EEPROM (from the Controls Menu)

    then Run MPET from the MPET menu.

    ()

    motor to the speed (% of max speed) and then stops driving. In this case motor continues to coast down, if motor generates good BEMF while coasting down

    in my case motor keeps rotating

  • Is this phase current or DC bus current?)

    Phase current

  • Current is not my main concern, my concern is heating in the MOSFETs

  • Another point, do not run MPET form quick spin tab.

    RUN MPET triggers KE and MECH. Some motor running together may not work well.

    The button "RUN MPET"  on the quick spin triggers both and hence go to MPET tab and select only KE as shown below

    Once MPET is successful for KE we can do MECH.

    Thanks and Best Regards

    Venkatadri S

  • Can you show snapshot of PERI_CONFIG? Check if dead time has reduced? It should be 500ns for EVM.

    Thanks and Best Regards

    Venkatadri S

  • Yes, it was reduced to 50nS; I have changed it to 500n; let me rerun it. will post the results.

  • Changing to 500ns has improved the heat issue.

    I can get the Ke measured independently. Now for measuring MECH will I have to put zero values in the Kp and Ki?

  • No required, you can enable the switch and run.

    MECH may take several seconds.

    You can first characterize with current loop whether motor meeting all the requirement, speed, power etc.

    Then enable speed loop and tune it.

    Thanks and Best Regards

    Venkatadri S

  • What is further step after MPET?

    Once I am satisfied with values of Kp, Ki and other parameters.

    why my motor is not running when I give I2C speed commands directly?

  • Is there any fault?

    What is the command value?

    Speed pin has to be high even in I2C mode, in this SPEED pin acts as WAKE pin will not hold motor in IDLE.

    Read all motor status.

    Thanks and Best Regards

    Venkatadri S

  • Nope, there are no faults.

    Whatever command value I give the motor won't run.

    I am sending in the Final JSON Value for your reference.

  • I will be away for next two days, please try verifying the hardware and JSON.

    You can send the JSON, whenever I can manage to check this thread I will respond.

    Thanks and Best Regards

    Venkatadri S

  • sent you in private message.

  • Sure. Let me check.

    Thanks and Best Regards

    Venkatadri S

  • Hi Prabhta

    I have answered in the message with modified JSON.

    If you want we can continue discussion in the message , we can close this thread.

    Thanks and Best Regards

    Venkatadri S