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;
}