FS6500 LFSR do not refresh

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

FS6500 LFSR do not refresh

1,326 Views
Ada_Lovelace
Contributor IV

Hi,All

I meet a problem, I use the FS6500 watchdog.

LFSR first seed is 0xb2, it returns 0x4d,but it  gives it to 0x49DB,I think  it send the wrong seed.

I debug the FS6500 demo, it returns the right seed and answer.

How could it make it right?

 

 

Ada_Lovelace_0-1635411616280.png

Snipaste_2021-09-29_11-35-56.png

0 Kudos
3 Replies

1,154 Views
jnaulet
Contributor I

Hello, i have a similar problem... I'm computing what seems to be the right values but on the 3rd or 4th refresh, the FS6500 doesn't want them anymore and stops :

1st : LFSR 0xb2 -> WD_ANSWER 0x4d OK

2nd : LFSR 0x64 -> WD_ANSWER 0x9b OK

3rd : LFSR 0xc8 -> WD_ANSWER 0x37 OK

4th: LFSR 0x91 -> WD_ANSWER 0x6e NOK

And then it stops, of course.

Here's my function :

static uint8_t computeWdAnswer7_0(uint8_t lfsr)
{
unsigned int answer = (unsigned int) lfsr;

answer = ~(((answer * 4u) + 6u) - 4u) / 4u;
return (uint8_t) answer;
}

0 Kudos

1,138 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hello Joachim,

The values are correct.

Please double check your timing, most likely you send the right watchdog answer during the closed window.

After closing the initialization phase of the FS65 by the first good watchdog refresh, the watchdog window is running and your MCU must refresh the watchdog in the open window of the watchdog window period.

Capture.JPG

 

Best regards,

Tomas

0 Kudos

1,317 Views
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi,

0x4D is the correct value based on the default LFSR value (0xB2), that needs to be send to the WD_ANSWER register during the 256ms open window (INIT_FS phase). 

Then you have to implement generic way to periodically refresh the WD based on WD_LFSR and calculation provided in our documentation.

Untitled.png

You can find an example illustrating that in the FS65/45 SW Driver.

I hope it helps!

Best regards,

Tomas

0 Kudos