There is board with SoC Zynq-7000, i'm working with qspi flash memory S25FL256S. There is no problem when i program memory with bytecount 4, 8, 12 - amount multiple of 4.
What have i do to program memory with 1, 2 or 3 byte?
There is board with SoC Zynq-7000, i'm working with qspi flash memory S25FL256S. There is no problem when i program memory with bytecount 4, 8, 12 - amount multiple of 4.
What have i do to program memory with 1, 2 or 3 byte?
The problem was solved. You can not write 1,2,3 bytes in automatic CS management mode. You need to set manual CS, and make next sequence. For example, we use command PP=0x02 with 3 bytes address, and we want to write 1 byte 0xAB at address = 0x01
1. Set flash WriteEnable, after execution of WE-command CS must be at 1
2. Set CS to 0
3. XQspiPs_WriteReg(QSPI_BASEADDR, XQSPIPS_TXD_01_OFFSET, 0x02);
4. Execute ManualStart();
5. Wait for TX FIFO empty
6. XQspiPs_WriteReg(QSPI_BASEADDR, XQSPIPS_TXD_00_OFFSET, 0xAA010000);
7. Execute ManualStart();
8. Wait for TX FIFO empty
9. Set CS to 1
10. Life is good
Thank's everybody for help :)