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.

MCF8316C-Q1: Unreliable Startup

Part Number: MCF8316C-Q1
Other Parts Discussed in Thread: MCF8329A

Tool/software:

Hi

I am experiencing a start-up issue with the MCF8316C. I am using the Maxon 449464 motor.

The application uses PWM (5kHz) to control speed, and the test I am running consist of 3 seconds run (stepped 0% to 16% duty cycle) followed by 2 seconds off (stepped from 15% to 0% duty cycle) repeated indefinitely.

Randomly from time to time, the driver doesn't start the motor up, although the algorithm has ramped up to closed loop control:

MPET results for loaded and unloaded motor shown below, currently using unloaded values to run testing. Should the loaded values be used instead?

Configuration file also attached.

  • {
    "signature":"oneui-register-data",
    "data":[
    [
    {
    "idx":0,
    "id":"ISD_CONFIG",
    "value":"0x75734C20",
    "addr":"0x00000080"
    },
    {
    "idx":1,
    "id":"REV_DRIVE_CONFIG",
    "value":"0xA8200000",
    "addr":"0x00000082"
    },
    {
    "idx":2,
    "id":"MOTOR_STARTUP1",
    "value":"0x6B6815D2",
    "addr":"0x00000084"
    },
    {
    "idx":3,
    "id":"MOTOR_STARTUP2",
    "value":"0xA306601C",
    "addr":"0x00000086"
    },
    {
    "idx":4,
    "id":"CLOSED_LOOP1",
    "value":"0x29A181BD",
    "addr":"0x00000088"
    },
    {
    "idx":5,
    "id":"CLOSED_LOOP2",
    "value":"0xCCAD6E49",
    "addr":"0x0000008A"
    },
    {
    "idx":6,
    "id":"CLOSED_LOOP3",
    "value":"0x1400183A",
    "addr":"0x0000008C"
    },
    {
    "idx":7,
    "id":"CLOSED_LOOP4",
    "value":"0x56A3D068",
    "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":"0x00000000",
    "addr":"0x0000009C"
    },
    {
    "idx":13,
    "id":"REF_PROFILES6",
    "value":"0x00000000",
    "addr":"0x0000009E"
    }
    ],
    [
    {
    "idx":0,
    "id":"FAULT_CONFIG1",
    "value":"0x4F680206",
    "addr":"0x00000090"
    },
    {
    "idx":1,
    "id":"FAULT_CONFIG2",
    "value":"0x540007DB",
    "addr":"0x00000092"
    }
    ],
    [
    {
    "idx":0,
    "id":"INT_ALGO_1",
    "value":"0xA553417D",
    "addr":"0x000000A0"
    },
    {
    "idx":1,
    "id":"INT_ALGO_2",
    "value":"0x000001A7",
    "addr":"0x000000A2"
    }
    ],
    [
    {
    "idx":0,
    "id":"PIN_CONFIG",
    "value":"0x00000181",
    "addr":"0x000000A4"
    },
    {
    "idx":1,
    "id":"DEVICE_CONFIG1",
    "value":"0x00101471",
    "addr":"0x000000A6"
    },
    {
    "idx":2,
    "id":"DEVICE_CONFIG2",
    "value":"0xC000F00F",
    "addr":"0x000000A8"
    },
    {
    "idx":3,
    "id":"PERI_CONFIG1",
    "value":"0xC1C01D00",
    "addr":"0x000000AA"
    },
    {
    "idx":4,
    "id":"GD_CONFIG1",
    "value":"0x9C450100",
    "addr":"0x000000AC"
    },
    {
    "idx":5,
    "id":"GD_CONFIG2",
    "value":"0x80A00000",
    "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":"0x00008004",
    "addr":"0x000000E4"
    },
    {
    "idx":1,
    "id":"MTR_PARAMS",
    "value":"0x00000000",
    "addr":"0x000000E6"
    },
    {
    "idx":2,
    "id":"ALGO_STATUS_MPET",
    "value":"0x03000000",
    "addr":"0x000000E8"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_CTRL1",
    "value":"0x8A500000",
    "addr":"0x000000EA"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGO_DEBUG1",
    "value":"0x00000000",
    "addr":"0x000000EC"
    },
    {
    "idx":1,
    "id":"ALGO_DEBUG2",
    "value":"0x0000003E",
    "addr":"0x000000EE"
    },
    {
    "idx":2,
    "id":"CURRENT_PI",
    "value":"0x02C20297",
    "addr":"0x000000F0"
    },
    {
    "idx":3,
    "id":"SPEED_PI",
    "value":"0x0223012E",
    "addr":"0x000000F2"
    },
    {
    "idx":4,
    "id":"DAC_1",
    "value":"0x00000000",
    "addr":"0x000000F4"
    },
    {
    "idx":5,
    "id":"DAC_2",
    "value":"0x00000410",
    "addr":"0x000000F6"
    }
    ],
    [
    {
    "idx":0,
    "id":"ALGORITHM_STATE",
    "value":"0x00000000",
    "addr":"0x00000190"
    },
    {
    "idx":1,
    "id":"FG_SPEED_FDBK",
    "value":"0x00FF8559",
    "addr":"0x00000196"
    },
    {
    "idx":2,
    "id":"BUS_CURRENT",
    "value":"0x00000000",
    "addr":"0x00000410"
    },
    {
    "idx":3,
    "id":"PHASE_CURRENT_A",
    "value":"0x00070000",
    "addr":"0x00000440"
    },
    {
    "idx":4,
    "id":"PHASE_CURRENT_B",
    "value":"0x00000000",
    "addr":"0x00000442"
    },
    {
    "idx":5,
    "id":"PHASE_CURRENT_C",
    "value":"0x00000000",
    "addr":"0x00000444"
    },
    {
    "idx":6,
    "id":"CSA_GAIN_FEEDBACK",
    "value":"0x00010003",
    "addr":"0x00000468"
    },
    {
    "idx":7,
    "id":"VOLTAGE_GAIN_FEEDBACK",
    "value":"0x00000001",
    "addr":"0x00000472"
    },
    {
    "idx":8,
    "id":"VM_VOLTAGE",
    "value":"0x033BC000",
    "addr":"0x00000476"
    },
    {
    "idx":9,
    "id":"PHASE_VOLTAGE_VA",
    "value":"0x00045483",
    "addr":"0x0000047A"
    },
    {
    "idx":10,
    "id":"PHASE_VOLTAGE_VB",
    "value":"0x0003E5A9",
    "addr":"0x0000047C"
    },
    {
    "idx":11,
    "id":"PHASE_VOLTAGE_VC",
    "value":"0x0003E5A9",
    "addr":"0x0000047E"
    },
    {
    "idx":12,
    "id":"SIN_COMMUTATION_ANGLE",
    "value":"0x00000000",
    "addr":"0x000004B6"
    },
    {
    "idx":13,
    "id":"COS_COMMUTATION_ANGLE",
    "value":"0x00000000",
    "addr":"0x000004B8"
    },
    {
    "idx":14,
    "id":"IALPHA",
    "value":"0x00000000",
    "addr":"0x000004D2"
    },
    {
    "idx":15,
    "id":"IBETA",
    "value":"0x00000000",
    "addr":"0x000004D4"
    },
    {
    "idx":16,
    "id":"VALPHA",
    "value":"0x00000000",
    "addr":"0x000004D6"
    },
    {
    "idx":17,
    "id":"VBETA",
    "value":"0x00000000",
    "addr":"0x000004D8"
    },
    {
    "idx":18,
    "id":"ID",
    "value":"0x00000000",
    "addr":"0x000004E2"
    },
    {
    "idx":19,
    "id":"IQ",
    "value":"0x00000000",
    "addr":"0x000004E4"
    },
    {
    "idx":20,
    "id":"VD",
    "value":"0x00000000",
    "addr":"0x000004E6"
    },
    {
    "idx":21,
    "id":"VQ",
    "value":"0x00000000",
    "addr":"0x000004E8"
    },
    {
    "idx":22,
    "id":"IQ_REF_ROTOR_ALIGN",
    "value":"0x00000000",
    "addr":"0x00000524"
    },
    {
    "idx":23,
    "id":"SPEED_REF_OPEN_LOOP",
    "value":"0x00000000",
    "addr":"0x0000053C"
    },
    {
    "idx":24,
    "id":"IQ_REF_OPEN_LOOP",
    "value":"0x00000000",
    "addr":"0x0000054C"
    },
    {
    "idx":25,
    "id":"SPEED_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x000005D4"
    },
    {
    "idx":26,
    "id":"ID_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x00000606"
    },
    {
    "idx":27,
    "id":"IQ_REF_CLOSED_LOOP",
    "value":"0x00000000",
    "addr":"0x00000608"
    },
    {
    "idx":28,
    "id":"ISD_STATE",
    "value":"0x00000000",
    "addr":"0x00000682"
    },
    {
    "idx":29,
    "id":"ISD_SPEED",
    "value":"0x00000000",
    "addr":"0x0000068C"
    },
    {
    "idx":30,
    "id":"IPD_STATE",
    "value":"0x00000000",
    "addr":"0x000006C0"
    },
    {
    "idx":31,
    "id":"IPD_ANGLE",
    "value":"0x00000000",
    "addr":"0x00000704"
    },
    {
    "idx":32,
    "id":"ED",
    "value":"0x00000000",
    "addr":"0x0000074A"
    },
    {
    "idx":33,
    "id":"EQ",
    "value":"0xFFFFFFFF",
    "addr":"0x0000074C"
    },
    {
    "idx":34,
    "id":"SPEED_FDBK",
    "value":"0x00000000",
    "addr":"0x0000075A"
    },
    {
    "idx":35,
    "id":"THETA_EST",
    "value":"0x00000000",
    "addr":"0x0000075E"
    }
    ]
    ]
    }

  • Hi KAIYU,

    I will provide reply early next week, thanks for sharing the details.

    Thanks and Best Regards

    Venkatadri S

  • Hi Venkatadri, I was wondering whether you have any updates to share? Thanks

  • Hi KAIYU,

    I will provide update by tomorrow .

    Thanks and Best Regards

    Venkatadri S

  • Hi KAIYU,

    I was unwell last week, I will respond to you by tomorrow.

    Thanks and Best Regards

    Venkatadri S

  • Hi KAIYU,

    I looked at motor data sheet (Maxon 449464), as per this max speed of motor is 15000 rpm and 7 pole pair, this will be 1750 electrical Hz.

    Can you confirm about the JSON you shared is appropriate for the motor?

    You have selected startup as slow 1st cycle, startup speed as 2% which is 14Hz as 1st cycle hope motor inertia can support it.

    You have also set very high closed loop acceleration 2000Hz/s, if Speed KP, KI gain is not adequate we may not be able to achieve this high acceleration.

    Regarding startup you can try IPD if you need fast startup or ALIGN/DOUBLE Align as beginning until you get control about spinning the motor.

    Just for your information:

    MCF8316C can be used maximum 1500Hz , for this MCF8329A can be used which can drive up to 1800Hz and also support current above 5A as MCF8329A uses external MOSFET.

    Please confirm motor and start up time requirement?

    Thanks and Best Regards

    Venkatadri S

  • Hi Venkatadri, thanks for the feedback. The application requires max 6000 rpm which works out to be 700 Hz, but now that you mention it, do you need to use application max or motor max when running the MPET?

    Closed loop acceleration is indeed high, but application has lower ramp rates.

    In the meantime, I've worked out a configuration that seems to be more reliable.

    The MCF8316C is already baked too deep in the project to look at something else, besides the MCF8329 was also considered but rated overegged for the application.

    I am now having thermal issues. Is there some functionalities that can reduce the IC power dissipation? The only one that I manage to find is the continuous space vector PWM modulation schemes, disabling it improves cooling but I can't accept the added noise. Any suggestion?

  • Hi KAIYU,

    About MPET question: No need to configure max speed, we need to consider some aspects like when MPET is measuring KE, it needs to be sufficient speed at which BEMF is properly measurable.  BEMF generated by the motor also indicates motor speed range capability for the applied voltage.

    About thermal

    1. PWM modulation: You have tried Discontinuous SVM

    2. Reduce switching frequency to 15KHz

    Can you use multimeter for  R, L measurement to re check if the values are proper as per data sheet?

    The data sheet says R is 0.5 ohm phase to phase but the JSON file is 0.375 ohm, the R, L error can impact sensor less efficiency.

    Are you testing on EVM? What is the temperature which you are seeing and what phase current?

    Thanks and Best Regards

    Venkatadri S

  • Thanks! I've tried Discontinuous SVM but it's noisier and this is not acceptable, I've also tried reducing the switching freq but this has negligible effect on power consumption. I am reluctant to change R and L as these seem to affect reliability and I've now reached a configuration that I am kind of happy with. I am testing on custom designed PCB, silicon is rated 150 deg C but we have much lower safety levels and I have reached a compromise solution to tackle the thermal issue.

    Lastly, I have noticed that speed accuracy is not exceptional. I am using the internal clock, and when asking for 100% duty cycle, RPM goes up to 6040. Is this related to running it with the internal clock?

    Thanks

  • Hi KAIYU,

    Can you help me with more information about custom PCB and what is the configuration ?

    And RPM of 6040 for 6000 ROM is aprox 0.7% which is within 2.5% spec we specify.

    Can you also test by disabling speed loop, run only in Torque mode and try to set torque command close to the speed.

    Measure the thermal and performance.

    Show me phase current waveform , this is to check how good sinusoidal?

    Thanks and Best Regards

    Venkatadri S