- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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, .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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