|
|
|
|
|
|
|
|
#define ID0_MICRON 0x20 |
|
|
#define ID0_MICRON 0x20 |
|
|
#define ID0_MACRONIX 0xC2 |
|
|
#define ID0_MACRONIX 0xC2 |
|
|
#define ID0_SST 0xBF |
|
|
#define ID0_SST 0xBF |
|
|
|
|
|
#define ID0_ADESTO 0x1F |
|
|
|
|
|
|
|
|
//#define FLAG_32BIT_ADDR 0x01 // larger than 16 MByte address |
|
|
//#define FLAG_32BIT_ADDR 0x01 // larger than 16 MByte address |
|
|
//#define FLAG_STATUS_CMD70 0x02 // requires special busy flag check |
|
|
//#define FLAG_STATUS_CMD70 0x02 // requires special busy flag check |
|
|
|
|
|
|
|
|
{ |
|
|
{ |
|
|
uint32_t n = 1048576; // unknown chips, default to 1 MByte |
|
|
uint32_t n = 1048576; // unknown chips, default to 1 MByte |
|
|
|
|
|
|
|
|
|
|
|
if (id[0] == ID0_ADESTO && id[1] == 0x89) { |
|
|
|
|
|
n = 1048576*16; //16MB |
|
|
|
|
|
} else |
|
|
if (id[2] >= 16 && id[2] <= 31) { |
|
|
if (id[2] >= 16 && id[2] <= 31) { |
|
|
n = 1ul << id[2]; |
|
|
n = 1ul << id[2]; |
|
|
} else |
|
|
} else |
|
|
|
|
|
|
|
|
N25Q00AA 4 64 |
|
|
N25Q00AA 4 64 |
|
|
S25FL512S 256 |
|
|
S25FL512S 256 |
|
|
SST26VF032 4 |
|
|
SST26VF032 4 |
|
|
|
|
|
AT25SF128A 32 64 |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// SST25VF032 4 64 BF 25 4A |
|
|
// SST25VF032 4 64 BF 25 4A |
|
|
// SST26VF064 8 ? BF 26 43 |
|
|
// SST26VF064 8 ? BF 26 43 |
|
|
// LE25U40CMC 1/2 64 62 06 13 |
|
|
// LE25U40CMC 1/2 64 62 06 13 |
|
|
|
|
|
// Adesto AT25SF128A 16 1F 89 01 |
|
|
|
|
|
|
|
|
SerialFlashChip SerialFlash; |
|
|
SerialFlashChip SerialFlash; |