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.

MCF8329EVM: OCP_VDS_FAULT

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

Tool/software:

Hi, we are developing a medical device using a 24V BLDC motor (R=0,15ohm; L=0,12mH), peak current 10A. We managed to spin it with the EVM board and MPET without any load. The moment we applied a load appeared DRIVER_FAULT message.

Next step, as the peak current is 10A we have changed Rsense on the board to 0.004ohm, and set BASE_CURRENT=0x100. Now we are not able to spin the motor even without load, DRIVER_FAULT and OCP_VDS_FAULT message appears.

What might be the problem? CSA_GAIN=40, SEL_VDS_LVL=2.0V

thanks.

  • Hi Rafael,

    Could you provide me your current register configuration so that I can look over your settings like the current limits and gate driver settings?

    Also, I would recommend setting the BASE_CURRENT to 0x200 and set the CSA_GAIN to 20V/V, his will set the max current that the internal CSA can measure to 18.75A. Once the BASE_CURRENT is set, adjust all the current limits accordingly. We recommend setting HW_LOCK_ILIMIT and LOCK_ILIMIT above the max peak phase current of the motor and to set the other current limits like ILIMIT, OL_ILIMIT, etc. less than or equal to the max peak phase current of the motor.

    Regards,

    Joshua

  • Hi Joshua, we have updated the registers values as suggested, but the same motor behavior; find below the registers, thanks.

    idx id value addr
    0 ISD_CONFIG 0x64A2D4A1 0x00000080
    1 REV_DRIVE_CONFIG 0x48300000 0x00000082
    2 MOTOR_STARTUP1 0x10A64CC0 0x00000084
    3 MOTOR_STARTUP2 0x3581C007 0x00000086
    4 CLOSED_LOOP1 0x1D7181B8 0x00000088
    5 CLOSED_LOOP2 0x0AAD4137 0x0000008A
    6 CLOSED_LOOP3 0x00000000 0x0000008C
    7 CLOSED_LOOP4 0x00000348 0x0000008E
    8 REF_PROFILES1 0x00000000 0x00000094
    9 REF_PROFILES2 0x00000000 0x00000096
    10 REF_PROFILES3 0x00000004 0x00000098
    11 REF_PROFILES4 0x00000000 0x0000009A
    12 REF_PROFILES5 0x00000000 0x0000009C
    13 REF_PROFILES6 0x00000000 0x0000009E
    0 FAULT_CONFIG1 0x37FA31A6 0x00000090
    1 FAULT_CONFIG2 0x71422888 0x00000092
    0 INT_ALGO_1 0x0946027D 0x000000A0
    1 INT_ALGO_2 0x020082E3 0x000000A2
    0 PIN_CONFIG 0x40032309 0x000000A4
    1 DEVICE_CONFIG1 0x00100002 0x000000A6
    2 DEVICE_CONFIG2 0x03E8C00C 0x000000A8
    3 PERI_CONFIG1 0x69845CC0 0x000000AA
    4 GD_CONFIG1 0x0000807A 0x000000AC
    5 GD_CONFIG2 0x00000200 0x000000AE
    0 GATE_DRIVER_FAULT_STATUS 0x91000000 0x000000E0
    1 CONTROLLER_FAULT_STATUS 0x00000001 0x000000E2
    0 ALGO_STATUS 0x00C00004 0x000000E4
    1 MTR_PARAMS 0x00000000 0x000000E6
    2 ALGO_STATUS_MPET 0x04000000 0x000000E8
    0 ALGO_CTRL1 0x00000000 0x000000EA
    0 ALGO_DEBUG1 0x80000000 0x000000EC
    1 ALGO_DEBUG2 0x0000003E 0x000000EE
    2 CURRENT_PI 0x00000000 0x000000F0
    3 SPEED_PI 0x00000000 0x000000F2
    4 DAC_1 0x00000000 0x000000F4
    0 ALGORITHM_STATE 0x00000010 0x00000196
    1 FG_SPEED_FDBK 0x7FFFFFFF 0x0000019C
    2 BUS_CURRENT 0x00000000 0x0000040E
    3 PHASE_CURRENT_A 0xFFFE0000 0x0000043C
    4 PHASE_CURRENT_B 0x000A0000 0x0000043E
    5 PHASE_CURRENT_C 0xFFF80000 0x00000440
    6 CSA_GAIN_FEEDBACK 0x00000000 0x00000450
    7 VOLTAGE_GAIN_FEEDBACK 0x00000000 0x00000458
    8 VM_VOLTAGE 0x03400000 0x0000045C
    9 PHASE_VOLTAGE_VA 0x01ECC4B8 0x00000460
    10 PHASE_VOLTAGE_VB 0x01E94DE9 0x00000462
    11 PHASE_VOLTAGE_VC 0x01F2D4A3 0x00000464
    12 SIN_COMMUTATION_ANGLE 0x08000000 0x000004AA
    13 COS_COMMUTATION_ANGLE 0x00000000 0x000004AC
    14 IALPHA 0x00050000 0x000004CC
    15 IBETA 0x0002E302 0x000004CE
    16 VALPHA 0x0004E8CD 0x000004D0
    17 VBETA 0x00000000 0x000004D2
    18 ID 0x0002E302 0x000004DC
    19 IQ 0xFFFB0000 0x000004DE
    20 VD 0x00000000 0x000004E0
    21 VQ 0xFFFB1733 0x000004E2
    22 IQ_REF_ROTOR_ALIGN 0x00000000 0x0000051A
    23 SPEED_REF_OPEN_LOOP 0x00000000 0x00000532
    24 IQ_REF_OPEN_LOOP 0x00000000 0x00000542
    25 SPEED_REF_CLOSED_LOOP 0x00000000 0x000005D0
    26 ID_REF_CLOSED_LOOP 0x00000000 0x0000060A
    27 IQ_REF_CLOSED_LOOP 0x00000000 0x0000060C
    28 ISD_STATE 0x00000005 0x000006B0
    29 ISD_SPEED 0x16A84869 0x000006BA
    30 IPD_STATE 0x00000000 0x000006E4
    31 IPD_ANGLE 0x00000000 0x0000071A
    32 ED 0x00000000 0x0000075C
    33 EQ 0x00000000 0x0000075E
    34 SPEED_FDBK 0x00000000 0x0000076E
    35 THETA_EST 0x00000000 0x00000774
  • Hi Rafael,

    Please measure nFAULT, GHx, SHx, and GLx with single-ended probes (or GHx-SHx with a differential probe) to trigger on an nFAULT falling edge to see if each MOSFET’s VDS voltage gets higher than the SEL_VDS_LVL. You will need to zoom in close to around 1 us/div to analyze the VDS behavior for the high-side MOSFET (PVDD/VDRAIN-SHx) and the low-side MOSFET (SHx-LSS).

    Regards,

    Joshua

  • Hi Joshua, we have ordered a new MCF8329EVM, we had a problem while meassurig and sync on nFault, I suggest adding a TP on the future; I will answer as soon as we receive it and change Rsense (unless you think it is not neccessary),

    Regards.

  • Hi Rafael,

    MCF8329EVM, we had a problem while meassurig and sync on nFault, I suggest adding a TP on the future

    Thank you for the suggestion, we will keep this in mind for the future.

    I will answer as soon as we receive it and change Rsense (unless you think it is not neccessary)

    If the fault occurs again, then the captures would be good to have.

    Regards,

    Joshua

  • Hi Joshua, new board received, Rsense=0.001, still not changed. As previously, motor spins correctly without load, and speed can be controlled from MotorStudio, then we stop the motor apply the load and appears CONTROLLER_FAULT, ABN_BEMF, and MTR_LCK faults; I think this time we should try to spin the motor with load before changing Rsense (and getting OCP_VDS_FAULT), what might be the problem? thanks.

    idx id value addr
    0 ISD_CONFIG 0x64A2D4A1 0x00000080
    1 REV_DRIVE_CONFIG 0x48300000 0x00000082
    2 MOTOR_STARTUP1 0x10A64CC0 0x00000084
    3 MOTOR_STARTUP2 0x2D81C007 0x00000086
    4 CLOSED_LOOP1 0x1D7181B8 0x00000088
    5 CLOSED_LOOP2 0x0AAD4137 0x0000008A
    6 CLOSED_LOOP3 0x54800002 0x0000008C
    7 CLOSED_LOOP4 0x7D9F4348 0x0000008E
    8 REF_PROFILES1 0x00000000 0x00000094
    9 REF_PROFILES2 0x00000000 0x00000096
    10 REF_PROFILES3 0x00000004 0x00000098
    11 REF_PROFILES4 0x00000000 0x0000009A
    12 REF_PROFILES5 0x00000000 0x0000009C
    13 REF_PROFILES6 0x00000000 0x0000009E
    0 FAULT_CONFIG1 0x37FA31A6 0x00000090
    1 FAULT_CONFIG2 0x71422888 0x00000092
    0 INT_ALGO_1 0x0946027D 0x000000A0
    1 INT_ALGO_2 0x020082E3 0x000000A2
    0 PIN_CONFIG 0x40032308 0x000000A4
    1 DEVICE_CONFIG1 0x00100002 0x000000A6
    2 DEVICE_CONFIG2 0x03E8C00C 0x000000A8
    3 PERI_CONFIG1 0x69845CC0 0x000000AA
    4 GD_CONFIG1 0x0000807B 0x000000AC
    5 GD_CONFIG2 0x00000400 0x000000AE
    0 GATE_DRIVER_FAULT_STATUS 0x00000000 0x000000E0
    1 CONTROLLER_FAULT_STATUS 0x80500001 0x000000E2
    0 ALGO_STATUS 0x068AFF14 0x000000E4
    1 MTR_PARAMS 0x00000000 0x000000E6
    2 ALGO_STATUS_MPET 0x0A000000 0x000000E8
    0 ALGO_CTRL1 0x00000000 0x000000EA
    0 ALGO_DEBUG1 0x00000000 0x000000EC
    1 ALGO_DEBUG2 0x00000018 0x000000EE
    2 CURRENT_PI 0x00000000 0x000000F0
    3 SPEED_PI 0x027D017D 0x000000F2
    4 DAC_1 0x00000000 0x000000F4
    0 ALGORITHM_STATE 0x0020000E 0x00000196
    1 FG_SPEED_FDBK 0x0653FF28 0x0000019C
    2 BUS_CURRENT 0x0006B149 0x0000040E
    3 PHASE_CURRENT_A 0xFFFE0000 0x0000043C
    4 PHASE_CURRENT_B 0xFFFF0000 0x0000043E
    5 PHASE_CURRENT_C 0x000D0000 0x00000440
    6 CSA_GAIN_FEEDBACK 0x00000000 0x00000450
    7 VOLTAGE_GAIN_FEEDBACK 0x00000000 0x00000458
    8 VM_VOLTAGE 0x03410000 0x0000045C
    9 PHASE_VOLTAGE_VA 0x000C1FD5 0x00000460
    10 PHASE_VOLTAGE_VB 0x000C1FD5 0x00000462
    11 PHASE_VOLTAGE_VC 0x000EB8F1 0x00000464
    12 SIN_COMMUTATION_ANGLE 0xFBE1E23C 0x000004AA
    13 COS_COMMUTATION_ANGLE 0x06DA0FDC 0x000004AC
    14 IALPHA 0x00320000 0x000004CC
    15 IBETA 0x00827B2D 0x000004CE
    16 VALPHA 0x000C9FF1 0x000004D0
    17 VBETA 0x0029106C 0x000004D2
    18 ID 0xFFE42439 0x000004DC
    19 IQ 0x0088BCFA 0x000004DE
    20 VD 0xFFF5A93E 0x000004E0
    21 VQ 0x0029BB77 0x000004E2
    22 IQ_REF_ROTOR_ALIGN 0x00CCC9C8 0x0000051A
    23 SPEED_REF_OPEN_LOOP 0x00D90DFA 0x00000532
    24 IQ_REF_OPEN_LOOP 0x01325CF8 0x00000542
    25 SPEED_REF_CLOSED_LOOP 0x014FACAA 0x000005D0
    26 ID_REF_CLOSED_LOOP 0x00000000 0x0000060A
    27 IQ_REF_CLOSED_LOOP 0x00000000 0x0000060C
    28 ISD_STATE 0x00000005 0x000006B0
    29 ISD_SPEED 0x000079CF 0x000006BA
    30 IPD_STATE 0x00000000 0x000006E4
    31 IPD_ANGLE 0x00000000 0x0000071A
    32 ED 0xFFF640F4 0x0000075C
    33 EQ 0x001F6E92 0x0000075E
    34 SPEED_FDBK 0x01F53E9D 0x0000076E
    35 THETA_EST 0xA757EFA8 0x00000774
  • Hi Rafael,

    If the motor with load is not generating an OCP_VDS fault then I recommend trying to get the motor to spin without changing the sense resistor.

    1. With and without load, does enabling AUTO_HANDOFF_EN allow the motor to spin into closed loop aligned?
    2. Can capture of the phase current from startup to fault with the load be provided?
    3. Can a capture of the phase current from startup to closed loop without load be provided? 
    4. If possible, I recommend hand measuring the BEMF constant of the motor using the instructions in section 7.3.14.3 of the MCF8329 Datasheet

    Regards,

    Joshua

  • Hi Joshua, find below the answers and the screenshots of phase currents with and without load:

    1)yes without load; and no, it can not spin into closed loop aligned with load.

    2)Screenshots named as "current_LOADx" (speed at 25%, 50%, 100%) ; motor can not spin.

    3)Screenshots named as "current_NO_LOADx (speed at 25%, 50%, 100%) ;

    4)hand meassured BEMF is 115mv/Hz

    also attached the json file, thanks

    Register1.csv

  • Hi Rafael,

    1. To see if the load can be spun with load, please decrease the open loop and closed loop acceleration down to 25 Hz/s and 20 Hz/s respectively.
    2. When loaded, does the motor settle before going into open loop? If it does not, please increase the align time so the motor has time to settle before entering open loop.
    3. When AUTO_HANDOFF_EN was disabled, did the motor spin for a while before the fault occurred or did the motor stall before the fault?

    Regards,

    Joshua

  • Hi Joshua,
    1) With Load: After decreasing the values for the acceleration, the motor still doesn’t move. The only difference is that the sound it makes is quieter. I am attaching photos of the phase currents and algorithm state at 25%, 50%, and 100% speeds.
       
    2) With load: After increasing the alignment time, the motor still doesn’t move. The only difference is that the sound lasts longer. We had 400ms as the base time and conducted tests with 750ms, 1s, 2s, 3s, and 7.5s. I am attaching a photo of the phase currents and algorithm state with the alignment time set to 1s, and accelerations set to 25Hz/s and 20Hz/s.

    3.1) Without load: The motor spun and didn’t stop.

    3.2) With load: The motor didn’t spin before the fault occurred.

    register2.csv

  • Hello Joshua,

    Did you have time to check the new results? Do you have any new idea to make the motor work?

    Regards,

    Rafael

  • Hi Rafael,

    In the .csv that you provided I see that the base current is set to 0x400 and the CSA_GAIN is set to 40V/V. Please set the BASE_CURRENT to 0x100 so that the CSA will provide an accurate measurement of the phase current to the MCF8329A.

    For future captures, if you can use an oscilloscope with a current probe this would be preferred to get a better resolution of the phase current.

    Please try and increase the open loop current limit if the motor moves during align. If the motor does not move during align, first increase the ALIGN or slow first cycle current limit.

    Regards,

    Joshua

  • Hi Joshua,

    All of this test have been performed under LOAD, we will try to send you next time the captures on an oscilloscope.

    1) We have adjusted the BASE_CURRENT to 0x100 (Attaching graphs).

    2) We made this test with 5Sec ALIGN_TIME. We increased the align or slow first cycle current limit to 75% (Attaching a video, so you can check the sound and graphs), over 75%, the motor stopped making sound. 

    3) After this, we tried increasing the OL_LIMIT, but the motor didn´t make noise, neither turn.

    Regards,

    Rafael

  • Hello Joshua.

    We have been able to solve the trouble, and make the motor spin with and without load.

    If we have any other problem in the future we will open a new thread.

    Thank you very much for everything.

    Regards,

    Rafael