I am trying to adapt the library for 256Kbit FRAM for the newer 1Mbit version. This uses 17bit fram address space. Just wondering if anyone has done this and got it working. I appear to be missing something in the device address word calculation - bit 0 is the R/W flag 1 - Read, 0 - Write yet looking at the libraries I can find they do not appear to set this bit for a Read.
The Wiring API uses I2C addresses in the range of 0x00 - 0x7F. In other words, the R/W bit is not included in the address you pass to
The R/W bit is automatically set in the LSB based on whether you are doing a read or write request.
Rick, Thanks, understood, I was confused by what the datasheet was saying - versus the implied read or write. Will
@rickkas7 Quick question about the speed of access. If I do a fram.erase() - write 0 to 131,072 bytes this is taking about 16 seconds. Is there a way to speed this up or is this just a limitation of using the I2C version operating at 100KHz. I haven’t had the opportunity to look into the exact timings of read and write operations but this does appear on the slow side.
I haven’t timed it recently, but that sounds about right. There is no bulk erase feature like on flash memory. The best option is to just not erase the whole thing. As long as you choose your format carefully you should only have to clear a small number of bytes and just overwrite the bytes as you add data.
Thanks - maybe I should have got the SPI version which is also available in 2Mbits!
Fujitsu has also announced 8Mbits but I haven’t seen that in the electronics vendors