FCCU can't clear faults (NCF[0]) on S32K344EVB-Q257 board

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

FCCU can't clear faults (NCF[0]) on S32K344EVB-Q257 board

823 次查看
JRodrigues
Contributor II

Hello everyone,

 

I'm currently working with the S32K_SAF_1.0.4_EVAL_DS package to work on the FCCU module and i injected a fault (NCF[0]) with the function "eMcem_Fccu_InjectFault()" and now i can't clear it. I initialize my code by using the "eMcem_Fccu_Init()" function, which should clean all present faults before configuring FCCU, but by debugging the code, i see that it tries to clean the fault several times (the number of times present on the macro "FCCU_MAX_FAULT_CLEAR_COUNT_U8"), but since it can't, the function's return value is "E_NOT_OK", and the code "jumps" the configuration part.

I have tried to use "eMcem_Fccu_ClearFaults()" before the Init function, but it doesn't work either.

 

My question is, how can i clean the fault that is appearing on register NCF_S0? I left some images attached below where the fault clearance is done; the FCCU configuration; and the registers' content.

 

Best Regards,

JRodrigues

 

Edit: I would like to add that even though the content of some registers is correct (e.g CFG_TO = 5 as configured in the Peripherals tab), when i change the values it doesn't update on the registers table nor clears it!

 

Notes: I'm using the S32K344EVB-Q257 with RTD version 4.0.0 P04

 

S32K3

0 项奖励
回复
7 回复数

766 次查看
JRodrigues
Contributor II

Hello once again,

 

I would like to add to this topic that even though i injected the NCF[0] fault when i was testing its functionality, i have seen that the NCF_S0 register was already in an "Unrecovered fault" state before. With that being said, i am surprised that the first FCCU configuration went through when an unrecovered fault was present.

 

Best Regards,

JRodrigues

0 项奖励
回复

704 次查看
RadoslavB
NXP Employee
NXP Employee

Hello JRodrigues,

if the fault has been set before the SW injection, that implies there is a real HW issue which persists, so eMcem_Fccu_ClearFaults() can't clear it.

Please don't use any non-API functions e.g. "eMcem_Fccu_Init(), just eMcem_Init() is documented.

It looks like there is some lockstep error, maybe you have enabled some other core in startup but the core is not used/ no application flashed for that core.
Could you please provide screenshot for relevant DMCROD registers (identify more specifically the issue under NCF0 faults group)

RadoslavB_0-1717148343109.png

we need to identify one of these DCM faults related to NCF0 channel:

RadoslavB_1-1717148637653.png


Kind Regards,
Radoslav

 

0 项奖励
回复

697 次查看
JRodrigues
Contributor II

Hello RadoslavB,

 

First of all, thank you for your answer, i appreciate it.

 

Regarding the relevant DMCROD registers i took these two screenshots that you can find below:

2024-05-31_16h33_54.png2024-05-31_16h35_08.png

Are these sufficient to find and solve the problem or do you need more information?

 

Best Regards,

JRodrigues

0 项奖励
回复

692 次查看
RadoslavB
NXP Employee
NXP Employee

Hello JRodrigues,

yes, that's sufficient information for now.

Please look into the startup file where IVT table entries are defined, if you can see such a line (taken from SAF Demo):

RadoslavB_0-1717172241402.png

If so and you are executing application just from CM7_0 core, please try to remove highlighted part.
If that doesn't help, try to look into RTD MCU module configuration and disable unused McuPartition1 and McuPartition2.

RadoslavB_1-1717172730174.png

Kind Regards,
Radoslav

 

 

0 项奖励
回复

624 次查看
JRodrigues
Contributor II

Hello @RadoslavB,

 

I'm sorry for the late reply!

I have tried your solution to solve the problem but without success. I changed the eMcem's initialization function to "eMcem_Init()" as you suggested and ran a simple blinking led program but it gets stuck on the eMcem initialization and doesn't enter the while loop to blink the led. Nevertheless i tried the same with "eMcem_Fccu_Init()" and the program worked fine (both with and without the highlighted part of your solution).

 

Edit 1: I have debugged the program and i saw that it gets stuck on the "eMcem_Erm_Init()" function (although it says "target running" in Lauterbach) that is called inside "eMcem_Init_Int()" function that is present in "eMcem_Init()".

I left some images below highlighting the points.

 

Edit 2: With the debugger connected to the board i run the program and it initially says "Target Running" and rapidly changes to "Stopped by hard fault" (and doesn't blink the leds).

With the debugger disconnected and giving the board a power-cycle, it doesn't blink the leds either.

 

0 项奖励
回复

583 次查看
RadoslavB
NXP Employee
NXP Employee

Hello JRodrigues,

I can't simulate this issue on my side, please contact me over the email and let's arrange debug session.

Kind Regards,
Radoslav

0 项奖励
回复

509 次查看
JRodrigues
Contributor II

Hello @RadoslavB,

 

I have sent you a private message here on the website regarding your contact to arrange the debug session. Please check your inbox to see if you received it.

 

Best Regards,

JRodrigues

0 项奖励
回复