Judgment of w25q512
nopnop2002 opened this issue · comments
Hello.
W25qxx_ReadID() issues a 0x9f command to read the JEDEC ID.
The judgment of w25q512 is based on JEDEC ID.
case 0x401A: // w25q512
w25qxx.ID=W25Q512;
w25qxx.BlockCount=1024;
#if (_W25QXX_DEBUG==1)
printf("w25qxx Chip: w25q512\r\n");
#endif
break;
There is W25Q512JV datasheet.
https://www.winbond.com/resource-files/W25Q512JV%20SPI%20RevB%2006252019%20KMS.pdf
In page24, JEDEC ID of W25Q512JV is 4020h.
Is this a datasheet mistake?
Is it not necessary to issue B7H (Enter 4-byte address mode) for W25Q256 and W25Q512?
W25Q512 datasheet description:
Upon power up, the W25Q512JV can operate in either 3-Byte Address Mode or 4-Byte Address Mode, depending on the Non-Volatile Status Register Bit ADP (S17) setting.
If ADP=0, the device will operate in 3-Byte Address Mode; if ADP=1, the device will operate in 4-Byte Address Mode.
The factory default value for ADP is 0.
To switch between the 3-Byte or 4-Byte Address Modes, “Enter 4-Byte Mode (B7h)” or “Exit 4-Byte Mode (E9h)” instructions must be used.
The current address mode is indicated by the Status Register Bit ADS (S16).
I have same issue with w25q128. ID0-15 of w25q128 is 0x7018 in datasheet.
so I changed code like:
case 0x4018: // w25q128 --> case 0x7018: // w25q128
And it works properly.
Hello. thank you for mention it. I edited files.
W25 has several variations.
w25q128jv is 0x7018
https://datasheet.lcsc.com/szlcsc/Winbond-Elec-W25Q128JVFIQ_C111478.pdf
w25q128fv is 0x4018