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.

DRV2624: DIAG_RESULT bit for calibration mode

Guru 29690 points
Part Number: DRV2624

Hi Team,

The datasheet shows that DIAG_RESULT bit is used to ensure the auto-calibration routine is complete without fails.
Could you tell me how DRV2624 determines whether "0" or "1" in auto-calibration routine?
The background of the question is my customer considers to do auto-calibration procedure in manufacturing process and wants to identify the cause and consider how to fix it when DIAG_RESULT = "1" (calibration failed).

Best Regards,
Yaita

  • Hi Yaita-san, 

    The main reason for a calibration fail would be the associated registers are not set correctly. If no register configuration will result in a passed calibration the back-emf from the motor might be too high, but this should not vary too much between motors of the same model. The sections under 8.3.2.5 Automatic Level Calibration and 8.6.2 Automatic-Level Calibration Programming in the datasheet share the parameters associated with the auto calibration routine.

    Regards,
    Sydney Northcutt 

  • Hi Sydney-san,

    Thank you for your reply.
    My customer did auto calibration and the result is the following.
    [Test condition]
    - Used same actuator and board.
    - Did 10 times each under calibration time is 250ms, 500ms and 1s.



    1) We believe 0x21, 0x22, and 0x23 parameters updates in auto calibration even if the calibration failed. Is it correct?

    2) Do you know why the calibration failed (1/10) when calibration time is 500ms? 

    3) Do you know why the calibration failed (10/10) when calibration time is 1s?

    Best Regards,
    Yaita

  • Hi Yaita-san, 

    I first want to clarify from my previous response that although calibration results should not vary much between actuators of the same model, we do recommend running a calibration at least once per actuator in production to ensure the performance is satisfactory. 

    1. This is correct.

    2. - 3. After calibration is passed at 250ms, are the results satisfactory when driving the actuator? In order for calibration to be passed with correct results, the actuator needs to be driven for enough time to reach steady state. There is a possibility that the back emf is high for this actuator so it fails once it reaches steady state, but it is passing before reaching steady state because the back emf is lower. Another possibility is that the other registers for calibration are not set correctly with different calibration times. If the results are unsatisfactory at 250ms, I recommend altering the registers associated with auto calibration. 

    Regards,
    Sydney Northcutt 

  • Hi Sydney-san,

    >After calibration is passed at 250ms, are the results satisfactory when driving the actuator?
    My customer sometimes saw chatter vibration which DRV2624 is assembled into the casing.
    In addition, he feels uncomfortable for the result because calibration failed at 500ms and especially 1s.
    Considering your comments, we believe if the calibration time is longer the more accurate the judgment results will be.

    If we assume the back emf of the actuator is high, which parameter should we adjust at first?
    ------------------------
    (a) LRA_ERM — selection will depend on desired actuator.
    (b) FB_BRAKE_FACTOR[2:0] — A value of 3 is valid for most actuators.
    (c) LOOP_GAIN[1:0] — A value of 2 is valid for most actuators.
    (d) RATED_VOLTAGE[7:0] — See the Rated Voltage Programming section for calculating the correct
    register value.
    (e) OD_CLAMP[7:0] — See the Overdrive Voltage-Clamp Programming section for calculating the correct register value.
    (f) AUTO_CAL_TIME[1:0] — A value of 3 is valid for most actuators.
    (g) DRIVE_TIME[3:0] — See the Drive-Time Programming for calculating the correct register value.
    (h) SAMPLE_TIME[1:0] — A value of 3 is valid for most actuators.
    (i) BLANKING_TIME[3:0] — A value of 1 is valid for most actuators.
    (j) IDISS_TIME[3:0] — A value of 1 is valid for most actuators.
    (k) ZC_DET_TIME[1:0] — A value of 0 is valid for most actuators.
    ------------------------
    Best Regards,
    Yaita

  • Hello,

    I recommend increasing IDISS_TIME[3:0], BLANKING_TIME[3:0], and ZC_DET_TIME[1:0]. Also please ensure DRIVE_TIME[4:0] is set to half the LRA resonance period and the rated and OD clamp voltages are set properly for your LRA. Also, could you share the datasheet of the actuator?

    Regards,
    Sydney Northcutt 

  • Hi Sydney-san,

    Thank you for your advice.
    My customer can't disclose the LRA datasheet, so we put the LRA specification as follows.
    ----------------------------
    [LRA specification]
    Operating Voltage: 0.1 - 1.25Vrms AC
    Rated voltage: 1.2±0.05Vrms AC, Sine wave
    Rated Current: Max 70mArms
    Frequency: 240±10Hz
    Resistance: 21±3Ω
    ----------------------------

    My customer's current setting is as follows.
    ----------------------------
    (b) FB_BRAKE_FACTOR[2:0] — A value of 3 is valid for most actuators.
      -> 0x03

    (c) LOOP_GAIN[1:0] — A value of 2 is valid for most actuators.
      -> 0x01

    (d) RATED_VOLTAGE[7:0] — See the Rated Voltage Programming section for calculating the correct register value.
      -> 0x2b ※This value is determined including the margin.

    (e) OD_CLAMP[7:0] — See the Overdrive Voltage-Clamp Programming section for calculating the correct register value.
      -> 0x4b ※This value is determined including the margin.

    (f) AUTO_CAL_TIME[1:0] — A value of 3 is valid for most actuators.
      -> 0x00

    (g) DRIVE_TIME[3:0] — See the Drive-Time Programming for calculating the correct register value.
      -> 0x10

    (h) SAMPLE_TIME[1:0] — A value of 3 is valid for most actuators.
      -> 0x03

    (i) BLANKING_TIME[3:0] — A value of 1 is valid for most actuators.
      -> 0x01 ※recommend increasing value

    (j) IDISS_TIME[3:0] — A value of 1 is valid for most actuators.
      -> 0x01 ※recommend increasing value

    (k) ZC_DET_TIME[1:0] — A value of 0 is valid for most actuators.
      -> 0x01 ※recommend increasing value
    ----------------------------
    If you need additional information or has something unclear, please let me know.

    Best Regards,
    Yaita

  • Hi Yaita-san,

    Thanks for sharing the LRA information. Could you also share the vibration force? 

    Please ensure the rated voltage and OD clamp voltage align with the equations on page 23 of the data sheet. Also, please keep me updated with the result after increasing the recommended registers. 

    Regards,
    Sydney Northcutt 

  • Hi Sydney-san,

    I appreciate for your continuous support.
    I added the red parameter.
    ----------------------------

    [LRA specification]
    Operating Voltage: 0.1 - 1.25Vrms AC
    Rated voltage: 1.2±0.05Vrms AC, Sine wave
    Rated Current: Max 70mArms
    Frequency: 240±10Hz
    Resistance: 21±3Ω
    Acceleration: 0.8Grms Min.
    ----------------------------

    >I recommend increasing IDISS_TIME[3:0], BLANKING_TIME[3:0], and ZC_DET_TIME[1:0]. 
    My customer tested and the result improved as you referred.
    Could you look into the following result?

    [Test condition]
    - Used same actuator and board.
    - Did 10 times each under calibration time is 250ms, 500ms and 1s.


    Best Regards,
    Yaita

  • Hi Yaita-san,

    Sydney is out of office today and maybe tomorrow so I'll be chiming in here. It looks like increasing the calibration parameters that Sydney gave resulted in reliable diagnostics. However sometimes the value can be too large as your data shows. You'll need to determine the right set of parameters that yield reliable results based on the actuator you're using. Do you have any remaining questions on the diagnostics procedure?

    Thank you,
    Jeff McPherson

  • Hi Jeff-san,

    >You'll need to determine the right set of parameters that yield reliable results based on the actuator you're using.
    Okay, we will consider and apply an appropriate value.

    -----------------------------------
    The datasheet shows that DIAG_RESULT bit is used to ensure the auto-calibration routine is complete without fails.
    Could you tell me how DRV2624 determines whether "0" or "1" in auto-calibration routine?
    -----------------------------------
    Regarding the first question above, my customer wants to know the detail how DRV2624 determines whether "0" or "1" in auto-calibration routine.
    According to Sydney-san’s reply, we believe DRV2624 monitors back-emf from the motor then determines. Is it correct?
    Is there detail information about the threshold?

    Best Regards,
    Yaita

  • Hi Yaita-san,

    Your understanding from Sydney-san is correct. The auto-calibration routine measures the back-EMF from the actuator to converge on sufficient calibration values. If these values can't converge then the result is a fail. 

    We don't have detail on the algorithm itself since that is proprietary, but section 8.6.1 in the datasheet details each parameter and what should be considered when it is being set. 

    Best regards,
    Jeff McPherson 

  • Hi Jeff-san,
    Thank you for your support.
    I would like to ask two questions as follows.

    1)
    Is there any way to confirm measured back-EMF value when auto calibration failed? (ex. read register etc.)
    Or can we confirm the back-EMF value by measuring OUT+/OUT- waveform?

    2)
    My customer sometimes saw auto calibration was failed when LRA isn't provided a solid connection. 
    Do you think it is the result of back-EMF value can't converge?

    Best Regards,
    Yaita

  • Hi Yaita-san, 

    1) No, we do not have a register to read the back-emf value and I do not believe there is a way to accurately measure it via a scope.

    2) I am not sure if you mean the LRA did not have a proper electrical connection to the device or it did not have a solid connection to a mass, but both could certainly be reasons for a failed calibration. 

    Regards,
    Sydney Northcutt 

  • Hi Sydney-san,

    My customer sometimes saw auto calibration was failed when LRA did not have a solid connection to a mass. 
    However, he found there are almost no difference of BEMF_GAIN[1:0], A_CAL_COMP[7:0] and A_CAL_BEMF[7:0] values regardless of  the result of DIAG_RESULT.
    Is it possible case?

    We believe it is recommended to apply BEMF_GAIN[1:0], A_CAL_COMP[7:0] and A_CAL_BEMF[7:0] values only when DIAG_RESULT=0 but would like to confirm just in case.

    Best Regards,
    Yaita

  • Hi Yaita-san, 

    Yes this is possible. As Jeff mentioned, it fails as the back-emf from the actuator is not converging. 

    Right, it is strongly recommended to pass calibration prior to driving the LRA for properly drive scaling based on the rated and overdrive voltage values.

    Regards,
    Sydney Northcutt 

  • Hi Sydney-san,

    Thank you for your answer.

    We believe the purpose of auto calibration process is to decide appropriate BEMF_GAIN[1:0], A_CAL_COMP[7:0] and A_CAL_BEMF[7:0] values.
    In other words, there is no difference in performance if BEMF_GAIN[1:0], A_CAL_COMP[7:0] and A_CAL_BEMF[7:0] values are the same regardless of DIAG_RESULT result when using same LRA sample.
    Is it correct?



    Best Regards,
    Yaita

  • Hi Yaita-san,

    Was a calibration passed before the fail? I ask because I believe a failed calibration does not update the output registers, so the values would read back the same value as they have not been updated since the passed calibration. 

    Regards,
    Sydney Northcutt 

  • Hi Sydney-san,

    We confirmed 0x21, 0x22, and 0x23 parameters updates in auto calibration even if the calibration failed.
    In addition, I got your reply as the following.
    ------------------------
    1) We believe 0x21, 0x22, and 0x23 parameters updates in auto calibration even if the calibration failed. Is it correct?
    [Sydney-san's reply] 1. This is correct.
    ------------------------

    Best Regards,
    Yaita

  • Hi Yaita-san,

    1) This is possible, but not typical. There is likely a unique calibration case where the registers are updated when there is a fail, but the DIAG_RESULT value is what you should base your proceedings on. It is strongly recommended to pass calibration before continuing.

    Regards,
    Sydney Northcutt