In our product, the MK60FN1M0VMD12 MCU has been used with S29GL032N memory chip with works fine. As the S29GL032N memory is obsoleted, the S29GL064S memory chip has been replaced as alternate. But with S29GL064S memory chip, the write and read operation fails with same drivers.
We tried to tune the CSCR register with Wait status, Extended Address Latch, Address setup configuration which had not helped to resolve the problem.
As there is no acknowledge memory on the data availability from memory and the controller read/write data based the Auto Acknowledgement functionality, the read operation gives the address information as data value when the application reads the data from Flash.
Please review and provide the value inputs on how the resolve and sync the Auto acknowledge based integration mechanism with S29GL064S memory chip.
The same controller and drivers was working good with S29GL032N.
Below are the details on register configuration:
/* Enable external flash mapped on CS0 */
/* CS0 base address */
fb_ptr->CS[1].CSAR = base_address;
/* CS0 control (8bit data, 1 wait state) */
fb_ptr->CS[1].CSCR = FB_CSCR_AA_MASK |
FB_CSCR_WS(5) |
FB_CSCR_PS(2) |
FB_CSCR_BEM_MASK;
/* CS0 address mask and enable */
fb_ptr->CS[1].CSMR = FB_CSMR_BAM(0x3f) | FB_CSMR_V_MASK;
fb_ptr->CSPMCR = FB_CSPMCR_GROUP1(1);
Can someone please review and response with the details needs or steps to resolve the problem ASAP.
Thanks in advance.
Hello @KrishnaKumarOS
Please check the data sheets of the two chips to identify the differences. For example, in terms of access time, the S29GL064S may have different access times (such as read access time and write access time) compared with the S29GL032N. As a result, the MCU may not wait long enough for the S29GL064S to finish a read or write operation, which leads to incorrect data being read or written.
BR
Alice