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: After power on sometime the first start cause a LOCK_ILIMIT

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

Tool/software:


We move from MCF8316A typ to MCF8316C-Q1 becasue of the I2C hang issue.

now all works fine in the most cases. Change speed via I2C and reading status messages.
All stable. But sometimes only the first start after power on fails with a loud noise in the motor.

The problem happen at Tick 00839 ...

but only in 1 of 10 time I power up the device.
After that it works perfect!

Log attached.

xxxxx TICK  = 10ms

00254 bldc_init 0x07D0(2000)
00255 bldc_loop download  0x0000(0)
00255 bldc_WriteConfigToEEPROM start:  0x0001(1)
00255 ti_init len: 0x001B(27)
00255 TI_I2C_bus_write reg_:  Register 0080 -> 00638C20
00265 TI_I2C_bus_write reg_:  Register 0082 -> 283AF064
00275 TI_I2C_bus_write reg_:  Register 0084 -> 26640044
00285 TI_I2C_bus_write reg_:  Register 0086 -> 13BD2116
00295 TI_I2C_bus_write reg_:  Register 0088 -> 145C01B4
00305 TI_I2C_bus_write reg_:  Register 008A -> 280FAD22
00315 TI_I2C_bus_write reg_:  Register 008C -> 24800002
00325 TI_I2C_bus_write reg_:  Register 008E -> 63991068
00335 TI_I2C_bus_write reg_:  Register 0094 -> 00000000
00345 TI_I2C_bus_write reg_:  Register 0096 -> 00000000
00355 TI_I2C_bus_write reg_:  Register 0098 -> 00000000
00365 TI_I2C_bus_write reg_:  Register 009A -> 00000000
00375 TI_I2C_bus_write reg_:  Register 009C -> 00000000
00385 TI_I2C_bus_write reg_:  Register 009E -> 00000000
00395 TI_I2C_bus_write reg_:  Register 0090 -> 5FF00206
00405 TI_I2C_bus_write reg_:  Register 0092 -> 54000000
00415 TI_I2C_bus_write reg_:  Register 00A4 -> 00000003
00425 TI_I2C_bus_write reg_:  Register 00A6 -> 10100002
00435 TI_I2C_bus_write reg_:  Register 00A8 -> 1FFFB000
00445 TI_I2C_bus_write reg_:  Register 00AA -> 00000000
00455 TI_I2C_bus_write reg_:  Register 00AC -> 0C013500
00465 TI_I2C_bus_write reg_:  Register 00AE -> 00400000
00475 TI_I2C_bus_write reg_:  Register 00A0 -> 00B5407D
00485 TI_I2C_bus_write reg_:  Register 00A2 -> 00000160
00495 TI_I2C_bus_write reg_:  Register 00E6 -> 00000000
00505 TI_I2C_bus_write reg_:  Register 00F0 -> 016B0236
00515 TI_I2C_bus_write reg_:  Register 00F2 -> 00000000
00525 TI_I2C_bus_write reg_:  Register 00EA -> 30000000
00535 ti_ClearFault: 0x0000(0)
00535 bldc_stop hardBreak: 0x0001(1)
00535 bldc_setSpeed percent:  0.00
00535 bldc_setSpeed newSpeed:  0x00000000(0)
00535 bldc_setSpeed percent:  0.00
00535 TI_I2C_bus_write reg_:  Register 00EC -> 80000000
00839 bldc_start 0x0001(1)
00859 tiMaxSpeed(Hz):  0x000002BC(700)
00864 TI F_RPM:     0 V:24 I:0.00 SM:0D MOTOR_BRAKE_ON_STOP
00864 bldc_start errorCode:  0x0000(0)
00864 bldc_start errValue:  0x0000(0)
00864 TI_I2C_bus_write reg_:  Register 00EA -> 30000000
00874 ti_ClearFault: 0x0000(0)
00874 bldc_setSpeed x 0x00000FA0(4000)
00874 bldc_setSpeed percent:  9.52
00874 bldc_setSpeed newSpeed:  0x00000FA0(4000)
00874 bldc_setSpeed percent:  9.52
00874 TI_I2C_bus_write reg_:  Register 00EC -> 8C300000
00906 tiPauseCnt  0x0002(2)
01008 tiPauseCnt  0x0001(1)

  • Hi Andreas,

    If it's failing during the Double Align, could you try lowering the ALIGN_OR_SLOW_CURRENT_ILIMIT or ALIGN_SLOW_RAMP_RATE. It could be triggering LOCK_ILIMIT due to the high inrush current.

    If it's failing after the double align and at the beginning of open loop, could you please try increasing the PWM_FREQ_OUT and see if it helps? It looks like you are using a fairly low inductance motor.

    Regards,
    Eric C.

  • Hi Andreas,

    Also, just to double check, I see that your register settings configure motor phase resistance as 1.15Ohm and phase inductance as 0.058mH.

    If these values were not measured, could you please help verify these values by hand measuring using a digital multimeter and LCR meter? Please refer to this E2E FAQ.

    Thanks,
    Eric C.


  • Hi Eric C.

    >If it's failing during the Double Align, could you try lowering the ALIGN_OR_SLOW_CURRENT_ILIMIT or ALIGN_SLOW_RAMP_RATE. It could be triggering LOCK_ILIMIT due to the high inrush current.

    lower... I'm at the lowest value ( current limit 0.25A)
    also the slow rate is reduced.

    But I try to increase align time... and reduce slew rate... ( but I think it will not change)

    It also happens with IPD, Align and slow cycle.
    But only 1 out of 10 time after the power on, and only the first start,
    It it was started you can start >100 times without any problem.


    >If it's failing after the double align and at the beginning of open loop, could you please try increasing the PWM_FREQ_OUT and see if it helps? It looks like you are using a fairly low inductance motor.
    The double aling time is 300ms... ( 2 time) the device is unter 100ms in the current limit.
    It look like sometime it does not align.

    I can also send you the EVAL board Json files it that helps.

    >Also, just to double check, I see that your register settings configure motor phase resistance as 1.15Ohm and phase inductance as 0.058mH.
    I uses the MPET to messure it.
    Also the are according the data sheet... it's a 50W motor diameter about 12mm length 50mm

    >If these values were not measured, could you please help verify these values by hand measuring using a digital multimeter and LCR meter? Please refer to this E2E FAQ.
    They are measured.

    Shall I try to reproduces with the EVAL board?


    BR

    Andreas


  • Hi
    I change to 5 sec align time and lowest current.

    start BLDC at TICK 819 via I2C.



    00819 bldc_start 0x0001(1)

    8190 ms after power on.

    01222 CFS: 0x80080000(-2146959360)

    under 12 sec the device has current limit. ( I hear also a noise like overpower)

    That works 95% of the time I power up... only the < 5% are cause the error.

    Speed ist set to 4000 RPM... but the error happen before the first 5 sec are over?!


    00255 bldc_WriteConfigToEEPROM start:  0x0001(1)
    00255 ti_init len: 0x001B(27)
    00255 TI_I2C_bus_write reg_:  Register 0080 -> 00638C20
    00265 TI_I2C_bus_write reg_:  Register 0082 -> 283AF064
    00275 TI_I2C_bus_write reg_:  Register 0084 -> 21A00044
    00285 TI_I2C_bus_write reg_:  Register 0086 -> 13BD2116
    00295 TI_I2C_bus_write reg_:  Register 0088 -> 145C01B4
    00305 TI_I2C_bus_write reg_:  Register 008A -> 280FAD22
    00315 TI_I2C_bus_write reg_:  Register 008C -> 24800002
    00325 TI_I2C_bus_write reg_:  Register 008E -> 63991068
    00335 TI_I2C_bus_write reg_:  Register 0094 -> 00000000
    00345 TI_I2C_bus_write reg_:  Register 0096 -> 00000000
    00355 TI_I2C_bus_write reg_:  Register 0098 -> 00000000
    00365 TI_I2C_bus_write reg_:  Register 009A -> 00000000
    00375 TI_I2C_bus_write reg_:  Register 009C -> 00000000
    00385 TI_I2C_bus_write reg_:  Register 009E -> 00000000
    00395 TI_I2C_bus_write reg_:  Register 0090 -> 5FF00206
    00405 TI_I2C_bus_write reg_:  Register 0092 -> 54000000
    00415 TI_I2C_bus_write reg_:  Register 00A4 -> 00000003
    00425 TI_I2C_bus_write reg_:  Register 00A6 -> 10100002
    00435 TI_I2C_bus_write reg_:  Register 00A8 -> 1FFFB000
    00445 TI_I2C_bus_write reg_:  Register 00AA -> 00000000
    00455 TI_I2C_bus_write reg_:  Register 00AC -> 0C013500
    00465 TI_I2C_bus_write reg_:  Register 00AE -> 00400000
    00475 TI_I2C_bus_write reg_:  Register 00A0 -> 00B5407D
    00485 TI_I2C_bus_write reg_:  Register 00A2 -> 00000160
    00495 TI_I2C_bus_write reg_:  Register 00E6 -> 00000000

    00505 TI_I2C_bus_write reg_:  Register 00F0 -> 0159022D
    00515 TI_I2C_bus_write reg_:  Register 00F2 -> 00000000
    00525 TI_I2C_bus_write reg_:  Register 00EA -> 30000000
    00535 ti_ClearFault: 0x0000(0)
    00535 bldc_stop hardBreak: 0x0001(1)
    00535 bldc_setSpeed percent:  0.00
    00535 bldc_setSpeed newSpeed:  0x00000000(0)
    00535 bldc_setSpeed percent:  0.00
    00535 TI_I2C_bus_write reg_:  Register 00EC -> 80000000
    00819 bldc_start 0x0001(1)
    00839 tiMaxSpeed(Hz):  0x000002BC(700)
    00844 TI F_RPM:     0 V:24 I:0.00 SM:0D MOTOR_BRAKE_ON_STOP
    00844 bldc_start errorCode:  0x0000(0)
    00844 bldc_start errValue:  0x0000(0)
    00844 TI_I2C_bus_write reg_:  Register 00EA -> 30000000
    00854 ti_ClearFault: 0x0000(0)
    00854 bldc_setSpeed x 0x00000FA0(4000)
    00854 bldc_setSpeed percent:  9.52
    00854 bldc_setSpeed newSpeed:  0x00000FA0(4000)
    00854 bldc_setSpeed percent:  9.52
    00854 TI_I2C_bus_write reg_:  Register 00EC -> 8C300000
    01212 I_NFAULT:  0x00000000(0)
    01222 GFS: 0x00000000(0)
    01222 CFS: 0x80080000(-2146959360)
    01222 ERROR CONTROLLER_FAULT
    01222 ERROR LOCK_ILIMIT
    01222 SubErrorCode: 0x0000002C(44)
    01222 I_NFAULT:  0x0000002C(44)

  • Hi Andreas,

    Eric is out of office, our team will respond to your question by end of this week.

    We need to read this thread and understand the problem and status, kindly provide a daytime.

    Thanks and Best Regards,

    Venkatadri S

  • Hi Andreas,

    Motor may be stalling here, can you give delay after power on and then start the motor?

    If power supply ramp is slow and by them device starts running the motor  due to saturation device may apply large duty.

    I am suspecting it because after first instance everything is normal.

    MCF8316C also has MIN_VM and MAX_VM configuration, we can set MIN_VM threshold so that device will not start driving motor until minimum voltage is available. The max MIN_VM value is 12.5V, please enable MIN_VM and also MAX_VM as say 35V .

    Thanks and Best Regards,

    Venkatadri S

  • Hi, no the voltage is complete there.

    We do not start on power on.

    I start with a button write the value 5000 RPM to the I2C bus.
    I can wait a minite after power on. Or only 1..2 sec. no change.
    But it is allways only the first start after power on.
    Is there a eval board with MCD8316C availabel. I would test if I can reporduce there.

    Also I extended the first align time to 2x5 sec.

    The overcurrent happens under 1 sec after write the I2C register. long bevore the 2x5 sec double align is over.

    Only 1 out of 10 power on! But still reproducabel.

    BR

    Andreas

  • Hi Andreas,

    Venkatadri is out of office for the rest of the week. Please anticipate a delay in response.

    Is there a eval board with MCD8316C availabel. I would test if I can reporduce there.

    The MCF8316AEVM, despite its name, has an MCF8316C installed on the board. 

    Regards,

    Joshua

  • Hi Andreas,

    Can you please share details about Hardware which you are using? Is it EVM or your own schematics?

    Thanks and Best Regards,

    Venkatadri S

  • Hi

    >Can you please share details about Hardware which you are using?

    Basicly the same as the EVAL board... but attached.

    Only A type in the shematic... but changed to C type.

    With the A all was working... only with the I2C problem...

    >Is it EVM or your own schematics?

    attached.

    I also ordered a new EVAL board. but this seems not to work.

    I can connect... but can't reach the MCD8136C.

    see picture left side ( or top with USB connector) is the new board.... ( the red led only light continus)

    I tried with the I2C Adr 0,1,2 ... also find... just 0 then nothing happens.

    Also if I activated read status .... no values.

    I also attached the DC later on. but nothing chages.

    .

    Also LED is flashing after connect

    If I use the old board. A - Type... alls works.

    I see the voltage from the board.

    For me it looks that the MCU on the USB side does not work?

    When shall the red LED ( start blinking?)

    Do you changed other things?

    I use this URL is this correct?

    dev.ti.com/.../

    When I try to load the download the paramter if started from 0....

    -> there will be a strange error mesage?

    -> did you tried that?

    BR

    Andreas

  • Hi Andreas,

    Thanks for sharing the details. Let me read through the information and reply to you by tomorrow.

    Thanks and Best Regards,

    Venkatadri S

  • Hi

    there is only one special thing...
    we are 48V powered and habe a TI step down inside.
    I attach the schematic.

    It's maybe to fast ? the on switch?

  • Hi Andreas,

    Few things I want to highlight and need some more information

    I looked at the EEPROM configuration you have used for the motor.

    The tuning values does not look proper for me.

    Example:

    1. Motor stop mode is Low side brake this is fine but stop time is 100ms only ->Suppose if we are running at 700Hz and when stop command is provided, device breaks the motor from 700 Hz at the rate of 200HZ/s which is very huge and may cause DC bus jump

    2. Motor startup setting -  Align current is 0.125A and Ramp is 0.1A/s , both current threshold and ramp rate are low. Is this sufficient to align the motor?

    I don't see issue with the schematics.

    I need following information; I will then create JSON file and share you along with instructions

    1. Motor rated current

    2. Motor rated Voltage

    3. Speed ramp rate from stand still to max and ramp down time

    I will send you a basic JSON file , you can test it.

    Thanks and Best Regards,

    Venkatadri S

  • Hi Andreas,

    Another question about I2C interface.

    I recommend using GUI (MOTOR STUDIO 0.1.18) available for downloading on TI.COM

    Tune with GUI, test motor spinning and then change to custom host.

    I2C communication need to consider Inter byte delay, inter frame delay etc.

    You can verify if the data is properly transmitted to device by connecting GUI, after the host has completed writing data without power cycling.

    Thanks and Best Regards,

    Venkatadri S

  • Hi,

    I missed your response but was also on vacation.

    So I removed the DC/DC converter and supply 24V from DC Poersupply ( Adjustabel)

    -> so when I plug in. in 15 cases all went perfekt.
    -> I changed the alling to 4 sec... so see what happens.
    -> sometime when I start the device via I2C the a strange sound happens. An error.
    -> before the align was over!

    I will try it with

    >>I recommend using GUI (MOTOR STUDIO 0.1.18) available for downloading on TI.COM

    >You can verify if the data is properly transmitted to device by connecting GUI,

    >after the host has completed writing data without power cycling

    But after the first start I can repeat 100 time without any problem!
    Only after the first power off. And the only 1 of 20 power off.

    Is there a chance to reset the device?

    An I2C command?

    I did not find a hardware wire to reset.
    For me it look like the internal state is not correct! in 2% of poweron.

    BR

    andreas

  • Hi Andreas,

    There is no reset pin, I will need to read this thread again.

    I am out of office this week,  I will reply to you by early next week,

    Thanks and Best Regards,

    Venkatadri S

  • Hi Andreas,

    Since you see issue in the first start after power up, EEPROM may not be having the configuration to run your motor.

    Hence, I asked to use GUI, program to EEPROM (permanent) and the test with your host controller.

    Thanks and Best Regards,

    Venkatadri S