I have a question regarding page programming when the data, sent along with PP command, exceeds the buffer size.
Here is the text from Cypress specification:
If more data is sent to the device than the space between the starting address and the page aligned end boundary, the data loading
sequence will wrap from the last byte in the page to the zero byte location of the same page and begin overwriting any data
in the page. The last page worth of data is programmed in the page. This is a result of the device being equipped
with a page program buffer that is only page size in length. If less than a page of data is sent to the device, these data bytes will be
programmed in sequence, starting at the provided address within the page, without having any affect on the other bytes of the same
The buffer size is 256 bytes
Address is 0x0
Data received are 258 bytes (byte 0 is 0x00, byte 1 is 0x01, byte 2 is 0x02, …….. byte 255 is 0xFF, byte 256 is 0xAA, byte 257 is 0xBB)
After the receiving 256 bytes, the page buffer will contain: 0x00, 0x01, 0x02, ………, 0xFF
The new data (exceeding 256 bytes will overwrite the first byte): so the page buffer will contain at the end: 0xAA, 0xBB, 0x02, ………. 0xFF.
Now what data do you expect to be written to the memory?
Option A: Last 256 received bytes will be written to memory starting from the given program address which is 0x0 in this example
@address 0x0 à 0x02
@address 0x1 à 0x03
@address 0x2 à 0x04
@address 0xFE à 0xAA
@address0xFF à 0xBB
Option B: The page program buffer is written to the corresponding memory’s page (page 0 in this example)
@address 0x0 à 0xAA
@address 0x1 à 0xBB
@address 0x2 à 0x02
@address 0xFE à 0xFE
@address0xFF à 0xFF
As per the example that you mentioned, the content of memory will be as in Option B after program operation.
Thanks and Regards,