84PCE:OS:Serial Flash Commands

From WikiTI
Revision as of 00:02, 30 June 2019 by Jacobly (Talk | contribs)

Jump to: navigation, search

The Python Edition calculator contains a new serial flash chip with an entirely new interface. For pre-Python calculators see the old parallel interface.

For reference, pages are 256 bytes, sectors are 4KB, and blocks are 64KB.

Datasheet for the W25Q32JV is here.

Basic Flash Commands

You write a command to the range $E00800-$E0080F and then wait until $E00824 bit 0 is set at which point you acknowledge by setting the same bit.

Erasing

00000000 00000001 00000000 02000006
XXXXXXXX 03000001 00000000 020000D8
00000000 00000001 00000000 04000005

X is the address of the block to erase.

Writing

Writes can only happen within a single page at a time.

00000000 00000001 00000000 02000006
XXXXXXXX 03000001 YYYYYYYY 42000032

X is the address to write to.

Y is the number of bytes to write, at most the number of bytes remaining in the page.

Afterwards, write each byte to $E00900, followed by a normal wait.