F-RAM reliability in light of current address bit error

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

cross mob
Anonymous
Not applicable

Hi I seem to have come across a design issue.

It seems to be impossible with either the FM25W256 or FM24W256 to verify the memory counter or address currently in use to be sure of the location which will be written (every write includes the address with no confirmation step). Coupled with the overflow of the address this means that any bit corruption in the I2C or SPI transmission of the address to write to could (although unlikely with short tracks) cause the write to occur to an arbitrary location. A loopback could be used but a read back would be much more reliable.

Whilst you can check where you are with filesystem type or canary bytes by reading you seem to be required to send the address to write to immediately before writing, every time. Sending a START after reading and switching to writing at the current location does not appear to

work. Can anyone confirm whether reading and then switching to writing from the current location without sending a new write address is possible? Any other method to avoid this issue would also be welcome.

Thankyou.

0 Likes
1 Solution
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hi,

As you mentioned, it is not possible to perform write operation to our devices FM25W256 or FM24W256 without mentioning the address.

Thanks and Regards,

Sudheesh

View solution in original post

0 Likes
4 Replies
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hi Kevin,

I am not clear about your query. Could you please clarify what do you mean by "confirmation step after write operation"?

Thanks and Regards,

Sudheesh

0 Likes
Anonymous
Not applicable

Thankyou for responding.

AFAIK the only way to conduct a write is to send

Slave address with write bit

Send address MSB

Send address LSB

Send bytes to write

There is no way to send

Slave address with write bit

Send bytes to write at current location (MSB/LSB)

If you send address to write to as the last address e.g. 32000

A bit flip may occur in MSB/LSB during transmission meaning perhaps 32004 is received rather than 32000. The address written to would be 4 due to overflow.

To guarantee data integrity upon a write/read difference (comparison/readback failure), this means that large areas of the F-RAM need to be checked, atleast all critical sections . This is not a major issue but is not ideal especially when the F-RAM is more reliable than RAM.

I am assuming there can't be but wondering if there is a way to determine the address that will be written (i.e. current address LSB/MSB) without writing any bytes and then write without sending the address (MSB/LSB) to write to (i.e. current address write cmd).

0 Likes
Anonymous
Not applicable

If you send address to write to as the last address e.g. 32000

A bit flip may occur in MSB/LSB during transmission meaning perhaps 32004 is received rather than 32000. The address written to would be 4 due to overflow.

It may be 32768 and not have an off by one, but I hope you are more forgiving than C, .

0 Likes
SudheeshK
Moderator
Moderator
Moderator
250 sign-ins First question asked 750 replies posted

Hi,

As you mentioned, it is not possible to perform write operation to our devices FM25W256 or FM24W256 without mentioning the address.

Thanks and Regards,

Sudheesh

0 Likes