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.

TPS65381 State change after WR_CAN_STBY

Hello,

Please answer following question from customer.

 

Customer checked following procedure using their board.

(They are using CANWU and MCU EMS monitor.)

 

1. Change sate from ACTIVE to SAFE by MCU EMS error(ERROR_PIN_FAIL=1)

2. Keep CANWU=1 and send WR_CAN_STBY.

     (This procedure assumes that CANWU and WR_CAN_STBY occur at the same time.)

3. Above situation transitions the state to STANDBY without register initialization and transition to RESET and DIADNOSTICS to restart.

4. MCU clear the ERROR_PIN_FAIL in DIAGNOSTIC state and set DIAG_EXIT=1 and DIAG_EXIT_MASK=0, but TPS65381 doesn’t go to ACTIVE state and transition to SAFE state.

     And LOCLK=1 is observed from MCU during 100ms.

 

I did the same Operation using EVM and confirmed same phenomenon.

(Please see the attached GUI capture.)

 Click here to play this video

 

Please advise the reason of LOCLK and change the state to SAFE(not ACVTIVE) in spite of clear the ERROR_PIN_FAIL.

 

Best Regards.

  • We'll look into this over the next few days - Scott

  • Hello,

    Following is details of EVM result.

     5482.WR_CAN_STBY & ERROR_PIN_FAIL.xlsx

    Best Regards.

  • Hello  Ushikubo-san,

    We have repeated the test and confirm the behavior.  The device error counter is incremented on each sending of the CAN STBY command while the safe lock threshold is not initialized and still at 0 which causes the transition to safe state. 

    Our tests show the following:

    Test 1:   Device went to safe state first, error counter incremented with MCU error pin going low.  Then CAN standby command. VDD5 and VDD3/5 discharged, VDD6 remained on.  NRES went low for 11mS.  VDD5 and VDD3/5 restarted.  VDD6 remained at 6V the entire test.  Device error counter increased to 2 with the CAN STB command. The device ended up in safe state. 

    -->   Device goes to safe state because:   the device the device error count is not initialized due to lack of power on reset event, thus on a new start up the condition to remain locked in a safe state is already met and the device transitions to safe state. 

     Test 2:  Device went to safe state first, error counter incremented with MCU error pin.  Then CAN standby command. VDD5 and VDD3/5 discharged, VDD6 remained on.  NRES went low for 11mS.  VDD5 and VDD3/5 restarted.  VDD6 remained at 6V the entire test.  Device error counter increased to 2 with the CAN STB command. Repeated to send CAN STBY commands, each time VDD5 and VDD3/5 discharge and restart, NRES is de-asserted for 11ms, VDD6 remains on and device error counter increments with each time CAN STBY is sent.The device ended up in safe state.

    -->   Device goes to safe state because:  each time with CAN STBY is sent the condition to cause safe state is still met so we see the device error counter increment and we end up in safe state every time.   

    The CAN STBY command is written by the MCU, so to recover one option is to set power down threshold to 1 and make sure the MCU can set the diag exit mask in time or service the device. 

    -- Scott

  • Hello Scott-san,

    Thank you for your replay.

     

    1)     Please confirm if my following understandings are correct.

    -When TPS65381 transition to DIAGNOSTIC state and “DEV_ERR_CNT = SAFE_LOCK_TH + 1”, locked in a safe state is met and the device transitions to safe state Immediately.

    -When TPS65381 transition to DIAGNOSTIC state and “DEV_ERR_CNT > SAFE_LOCK_TH + 1”, DIAGNOSTIC timeout counter work usual and device stay DIAGNOSTIC state until expire.

     

    2)     LOCLK=1 is observed from MCU during 100ms as I posted on Sep 30 2014.

    And I observed same behavior using EVM that LOCLK changes to high after send WR_CAN_STBY only when “DEV_ERR_CNT = SAFE_LOCK_TH + 1”.(Please refer Excel file attached Oct 07 2014.)

    Please confirm the behavior and advice the reason why LOCLK change to “1” after WR_CAN_STBY.

     

    Best Regards.

  • A1) 

    - When TPS65381 transition to DIAGNOSTIC state and “DEV_ERR_CNT = SAFE_LOCK_TH + 1”, locked in a safe state is met and the device transitions to safe state Immediately.

    -->  Yes.

    -When TPS65381 transition to DIAGNOSTIC state and “DEV_ERR_CNT > SAFE_LOCK_TH + 1”, DIAGNOSTIC timeout counter work usual and device stay DIAGNOSTIC state until expire.

    -->  No.  We don't observed this behaviour unless the DEV_ERR_CNT = safe power down threshold.  As described in the response "The CAN STBY command is written by the MCU, so to recover one option is to set power down threshold to 1 and make sure the MCU can set the diag exit mask in time or service the device.", using the power down threshold could be a way to force the deviceinitialization and during new start up it would go through diagnostic state. 

    A2) Loss of clock is the outcome of running ABIST with every new start up (the bit will get set during active ABIST, and eventually is cleared when ABIST is compelted).  You observe this due to the way our GUI MCU works, it runs even when the TPS65381 is pulling RESET.  In the normal system the MCU would be in RESET while this is running and would be just booting up so it would not see the ABIST running or the bit toggling.  The bit must be toggled to check it during ABIST. 

  • Hello Scott-san,

    Thank you for your answer.

     

    Please answer following additional questions (written in blue) regarding your answer and new question of ERROR_PIN_FAIL behavior.

     

    -When TPS65381 transition to DIAGNOSTIC state and “DEV_ERR_CNT > SAFE_LOCK_TH + 1”, DIAGNOSTIC timeout counter work usual and device stay DIAGNOSTIC state until expire.

     -->  No.  We don't observed this behavior unless the DEV_ERR_CNT = safe power down threshold.  As described in the response "The CAN STBY command is written by the MCU, so to recover one option is to set power down threshold to 1 and make sure the MCU can set the diag exit mask in time or service the device.", using the power down threshold could be a way to force the device initialization and during new start up it would go through diagnostic state.

     

    Q1:

    I tested the behavior using EVM again and observed same behavior with GUI capture I posted on 2014/9/30.

    When transition to DIAG state with DEV_ERR_CNT(1)=SAFE_LOCK_THR(0)+1 by 1st WR_CAN_STBY, device transition to DIAG and SAFE immediately and LOCLK=1 is observed short period. But after 2nd and 3rd WR_CAN_STBY(DEV_ERR_CNT > SAFE_LOCK_THR(0)+1, device transition to DIAG and SAFE after 600ms timeout and LOCLK=1 is NOT observed.

     

    Could you please check the behavior again?

     

    I will propose the workaround of set PWD_THR=1 to customer and ask if this workaround fit their requirement.

     

    A2) Loss of clock is the outcome of running ABIST with every new start up (the bit will get set during active ABIST, and eventually is cleared when ABIST is compelted).  You observe this due to the way our GUI MCU works, it runs even when the TPS65381 is pulling RESET.  In the normal system the MCU would be in RESET while this is running and would be just booting up so it would not see the ABIST running or the bit toggling.  The bit must be toggled to check it during ABIST.

     

    Q2:

    Customer confirmed that LOCLK is asserted during 70ms monitoring from MCU using their board.

    MCU can monitor LOCLK flag after boot of DIAG state so behavior is different from your answer.

    Also from my EVM, LOCLK is asserted only after 1st WR_CAN_STBY(with DEV_ERR_CNT(1)=SAFE_LOCK_THR(0)+1 in DIAG state) and LOCLK is not asserted 2nd and 3rd WR_CAN_STBY. Also please refer EXCEL file I posted on 2014/10/7

     

    Could you check on EVM again with same procedure with GUI capture I posted 2014/9/30?

     

    New Question(Behavior of ERR_PIN_FAIL):

    When I send 1st WR_CAN_STBY(with DEV_ERR_CNT(1)=SAFE_LOCK_THR(0)+1 in DIAG state), ERROR_PIN_FAIL changed to “0” from “1” after return to SAFE state.

     

    Could you confirm the behavior and advice the reason why ERROR_PIN_FAIL is cleared?

     

    Best Regards.

  • Hello Scott-san,

    Please answer for my above question.

    Best Regards.

  • Ushikubo-san,

    Scott has been notified of your post, and is busy at the moment, but will be responding to you shortly. Thank you for your patience.

    Regards,

    Eric

  • Hello Scott-san,

    Please let me know your status for my question.

     

    Best Regards.

  • Hi Ushikobo-san,

    We have found and error in the TIger and GUI that significantly limits using it to comment and debug on this topic.  When using the GUI using the "Auto Set  DIAG EXIT MASK" function under several conditions it doesn't set the mask bit after the initial start up of the device.  In the video you sent you also see this issue happening where the device doesn't stay in diagnostic even with this bit set, instead when the diagnostic time out occurs the device goes to the safe state. 

    Can you please clarify what is happening real time with MCU and s/w that can keep up and either set the DIAG EXIT MASK in time to prevent a diagnostic state time out, or have the MCU set the appropriate conditions and enter active state within the diagnostic state time out time. 

    This issue is limiting and corrupting the results for these experiments when trying them on the GUI with TIger since it is not keeping up in real time with the TPS65381.

    - Scott

  • Hello Scott-san.

     

    Can you please clarify what is happening real time with MCU and s/w that can keep up and either set the DIAG EXIT MASK in time to prevent a diagnostic state time out, or have the MCU set the appropriate conditions and enter active state within the diagnostic state time out time.

     

    Ushikubo:

    Attached chart explain what is happening real time with MCU and s/w.

    MCU doesn’t set DIAG_EXIT_MASK because “DEV_ERR_CNT = SAFE_LOCK_THR + 1” is satisfied in DAGNOSTICS state and got to SAFE state immediately.

     7462.E2E_No.183c_20141118.pdf

    Please investigate the mechanism of why ERROR_PIN_FAIL cleared to “0” and LOCLK set “1” after WR_CAN_STBY.

     

    Best Regards.

  • Hello Scott-san,

    Please respond for my above post.

    Best Regards.

  • Hello Scott-san,

    Please answer for my question dated Nov 18 2014.

    Best Regards.
  • Hi Ushikubo-san,

    Your graph is missing several steps in the events after the Write CAN_STBY command. The device will go through power down, power up, reset including reset extension then BIST. Could you provide a graph showing timing relative to the falling edge of NRES and determine if the events you are seeing on the LOCLK is during the ABIST run which will change the bit and also the SPI may be inactive during BIST so you may see bad SPI communication while BIST is running.

    - Scott
  • Hello Scott-san,

     

    Following is graph showing timing relative to rising of NRES.

    No.183c_20150123.pdf

    BIST will finish around 21ms after rising edge of NRES, and around this timing MCU starts to read LOCLK and ERROR_PIN_FAIL continuously. So LOCLK is high around 60ms duration is seems to be no doubt.

     

    Please advise the reason of following behavior when “DEV_ERR_CNT = SAFE_LOCK_THR + 1” at DIAGNOSTIC state.

    1)     ERROR_PIN_FAIL is cleared to 0.

    2)     LOCLK is set 1 while 60ms duration.

     

    Best Regards.

  • Hello Scott-san,

    Please answer my question 1) and 2).

    Best Regards.

  • Hi Ushikubo-san,

     

    These are still outcomes of the BIST.  The BIST will reset covered registers after it is run, so the ERROR_PIN_FAIL is cleared because of the BIST run (1).  The LOCLK is also reset.  The delay you are seeing may be due to the GUI update cycles (2). 

     

    One way to test this would be to disable BIST run by setting AUTO_BIST_DIS to 1 (in SAFETY_BIST_CTRL register) before sending the WR_CAN_STBY and try the experiment again. 

     

    - Scott