Pri doplnení flash pamäte K SOCZ80 som narazil na zaujímavy problém. Aj keď pamäte poznajú rovnaké príkazy nemusia ich rovnako realizovať. V mojom prípade je problematický „Page program 0x02“. Ktorý niektoré pamäte realizujú ako zápis jedného Bytu. Iné ako sekvenčný zápis bez obmedzenia veľkosti a ďalšie len z obmedzením na 256. Prikladám tabuľku z môjho čítania datashetou. Vybral som len príkazy ktoré sú „použiteľné“ v bežnej praxi.
Command | code | addres | dummy | data | M25P40 | W25Q32 | SST25VF-16 | MX25L6445 | SOCZ80 |
---|---|---|---|---|---|---|---|---|---|
Write Enable | 0x06 | 0 | 0 | 0 | O | O | O | O | O |
Write Disable | 0x04 | 0 | 0 | 0 | O | O | O | O | X |
Read ID | 0x9f | 0 | 0 | 1-20 | O | O | O | O | O |
read status | 0x05 | 0 | 0 | 1-nekonecno | O | O | O | O | O |
write status | 0x01 | 0 | 0 | 1 | O | O (data 2) | O | O | X |
read data | 0x03 | 3 | 0 | 1-nekonecno | O | O | O | O | X |
read data (high speed) | 0x0b | 3 | 1 | 1-nekonecno | O | O | O | O | O |
Page program | 0x02 | 3 | 0 | 1-256 | O | ? (data len 1) | ? (data len 1) | ? (Data len 256) | O |
Sector Erase (64kB) | 0xd8 | 3 | 0 | 0 | O | O | O | O | X |
Bulk Erase | 0xc7 | 0 | 0 | 0 | O | O | O | O | X |
Sector Erase (4kB) | 0x20 | 3 | 0 | 0 | X | O | O | O | O |
Sector Erase (32kB) | 0x52 | 3 | 0 | 0 | X | O | O | O | X |
Auto Increment Programing | 0xAD | 3 | 0 | 2-nekonecno | X | X | O | O | X |