SMU Alive Alarm test

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User19909
Level 3
Level 3
First like received
I am implementing the SMU alive alarm test, by sending the alive alarm command from the core smu to the smu standby, after sending the command I wait till the command is accepted then I check PMS_AG_STDBY1.B.SF16 if the stay smu set this bit and then I claim that the alive alarm test has succeeded, but the test fails just after flashing, however after cold power-on reset the test passes and is fine, why would it fail only after flashing and pass after a cold power on, is there something I am doing wrong or what could cause such problem if my logic is correct?
9 Replies
NeMa_4793301
Level 6
Level 6
10 likes received 10 solutions authored 5 solutions authored
Is the SMU in START state? Check SMU_DBG - the alive test can only be executed when the SMU is in the start state, per Table 534 - SMU_core commands and valid conditions.
0 Likes
User19909
Level 3
Level 3
First like received
after reflashing a new SW, shouldn't the SMU state be START state at the beginning of the SW?
0 Likes
User19909
Level 3
Level 3
First like received
and the last question,for alive test to pass PMS_AG_STDBY1.B.SF16 this bit should be set, correct?
0 Likes
NeMa_4793301
Level 6
Level 6
10 likes received 10 solutions authored 5 solutions authored
TC37xx wrote:
after reflashing a new SW, shouldn't the SMU state be START state at the beginning of the SW?

It depends what you mean by "reflashing". If you used a bootloader, the bootloader is probably just doing a software reset (SWRSTREQ).

Only a cold power-on reset (power restored) or warm power-on reset (PORST asserted) will reset the SMU. A software reset does not reset the SMU.
0 Likes
NeMa_4793301
Level 6
Level 6
10 likes received 10 solutions authored 5 solutions authored
TC37xx wrote:
and the last question,for alive test to pass PMS_AG_STDBY1.B.SF16 this bit should be set, correct?

SMU_STS.B.RES=0 indicates the test passed.
0 Likes
User19909
Level 3
Level 3
First like received
UC_wrangler wrote:
SMU_STS.B.RES=0 indicates the test passed.


I understand that the SMU_STS.B.RES indicates that the command was received and successful, but is that enough to indicate the alive test passed? in the aurix user manual indicates " sending the SMU_AliveTest command will trigger the SCAM to inject a fault and to forward the
smu_core_alive alarm to the SMU_stdby. The smu_core_alive alarm flag can be read in the AG2i_STDBY (i=1)"

and in table 427 SMU_CORE Alarm Table ,

Description SMU Targets
SMU.SMU_CORE - SMU_core Alive Alarm ALM21[16]

that's why I am checking that alarm to check if it's set after the command is received successfully.
0 Likes
NeMa_4793301
Level 6
Level 6
10 likes received 10 solutions authored 5 solutions authored
Ah, sorry, my mistake - you're right with PMS_AG_STDBY1. Here's some example code that does part of the test:
function_execution_status SMU_core_alive_test_clear(void)
{
IfxSmu_stopAliveTest();
//clear the ALM21[16] which is triggered by the Core alive test
IfxSmuStdby_setSmuStdbyAlarmStatusFlag(21,16,IfxSmuStdby_AlarmStatusFlag_faultExist);

//check if the last command (alive test stop) has been executed properly
// and if the alarm flag has been cleared
if((SMU_STS.B.RES==0)&(PMS_AG_STDBY1.B.SF16==0))
return pass;
else
return fail;

}
0 Likes
User19909
Level 3
Level 3
First like received
would you recommend checking the SMU state before running the command? as the test would fail in case the SMU is in run or fault state.
0 Likes
NeMa_4793301
Level 6
Level 6
10 likes received 10 solutions authored 5 solutions authored
Depends how your software is set up, but checking SMU_DBG.SSM=0 (START state) doesn't add much overhead.
0 Likes