S32k358 eMcem fault injection Issue

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32k358 eMcem fault injection Issue

Jump to solution
736 Views
Konstanty
Contributor I

Hi, 

in our current project im trying to use the eMcem fault injection feature using eMcem_InjectFault(). Right now im only trying to inject a fault for EMCEM_DCM_NCF_5_FAULT_MONITOR0, EMCEM_DCM_NCF_5_FAULT_MONITOR1 & EMCEM_DCM_NCF_5_DBG_ACTIVATION. It seems that the fault injection is working properly. For every single fault injection, i also get the expected handler call. 

 

The problem, however, is that as soon as I inject even the first error, the system stops working properly. Using eMcem_GetErrors(), I can see that au32Faults[2] = 0xA00 (type eMcem_FaultContainerType). As far as I understand, these seem to be STCU_NCF (Fault 73) and STCU_BIST_USER_CF / LMBIST_USER_CF (Fault 75).

How are these all related?

What steps should be taken to ensure that the system functions properly without errors after fault injection?

 

Here is my code flow:

eMcem_InjectFault(nFaultId) // inject fault

FCCU_ALARM_ISR() // polls FCCU_ALARM_ISR until handler callback sets flag

- Check if handler has set expected flag

eMcem_ClearFaults(nFaultId)

 

Thank you in advance.

0 Kudos
Reply
1 Solution
445 Views
danielmartynek
NXP TechSupport
NXP TechSupport

Hello Konstanty,

It has to be cleared in FCCU, try this:

status = eMcem_Fccu_ClearFault( 5 ); // This line will clear STCU2 flag
status = eMcem_ClearFaults( EMCEM_DCM_NCF_5_STCU_NCF );
status = eMcem_ClearFaults( EMCEM_DCM_NCF_5_LMBIST_USER_CF );

 

BR, Daniel

Any support, information, and technology (“Materials”) provided by NXP are provided AS IS, without any warranty express or implied, and NXP disclaims all direct and indirect liability and damages in connection with the Material to the maximum extent permitted by the applicable law. 
NXP accepts no liability for any assistance with applications or product design. Materials may only be used in connection with NXP products. Any feedback provided to NXP regarding the Materials may be used by NXP without restriction.

View solution in original post

3 Replies
521 Views
Konstanty
Contributor I

Hello Daniel,

thank you for your quick response. Unfortunately, that only helps me understand why these errors occur. However, I still don't know how to clear these errors after fault injection.

Clearing individual faults, such as eMcem_ClearFaults(EMCEM_DCM_NCF_5_STCU_NCF), does not seem to have any effect. When I read the faults after clearing them, the same values are still there (au32Faults[2] = 0xA00).

How can I perform a fault injection in such a way that the system continues to function without any errors afterward?

 

Regards,

Konstanty

 

 

0 Kudos
Reply
446 Views
danielmartynek
NXP TechSupport
NXP TechSupport

Hello Konstanty,

It has to be cleared in FCCU, try this:

status = eMcem_Fccu_ClearFault( 5 ); // This line will clear STCU2 flag
status = eMcem_ClearFaults( EMCEM_DCM_NCF_5_STCU_NCF );
status = eMcem_ClearFaults( EMCEM_DCM_NCF_5_LMBIST_USER_CF );

 

BR, Daniel

Any support, information, and technology (“Materials”) provided by NXP are provided AS IS, without any warranty express or implied, and NXP disclaims all direct and indirect liability and damages in connection with the Material to the maximum extent permitted by the applicable law. 
NXP accepts no liability for any assistance with applications or product design. Materials may only be used in connection with NXP products. Any feedback provided to NXP regarding the Materials may be used by NXP without restriction.
717 Views
danielmartynek
NXP TechSupport
NXP TechSupport

Hi @Konstanty,

This is expected, refer to the eMCEM User Manual:

danielmartynek_0-1777898064105.png

 

Regards,

Daniel

 

0 Kudos
Reply