Expand description
Async no_std driver for ISSI IS25LP128F 128 Mbit SPI NOR flash.
§Implemented instructions (Table 6.3 and companion reads)
| Opcode | Mnemonic | Method |
|---|---|---|
| 01h | WRSR | write_status, write_status_volatile |
| 02h | PP | write_page |
| 03h | READ | read |
| 04h | WRDI | disable_write_latch |
| 05h | RDSR | read_status |
| 06h | WREN | enable_write_latch |
| 0Bh | Fast Read | read_fast, read_fast_with_dummy |
| 3Bh | Fast Read Dual Output | read_fast_dual_output |
| 6Bh | Fast Read Quad Output | read_fast_quad_output |
| BBh | Fast Read Dual I/O | read_fast_dual_io |
| EBh | Fast Read Quad I/O | read_fast_quad_io |
| 0Fh | Read Read Reg | read_read_register (opcode per datasheet) |
| 12h | 4PP | write_page_4byte |
| 14h | RDABR | read_autoboot_register |
| 15h | WRABR | write_autoboot_register |
| 16h | RDBR | read_bank_register |
| 17h | WRBRV (no WREN) | write_bank_register_volatile_no_wren |
| 18h | WRBRNV | write_bank_register_nv |
| 21h | 4SER | erase_4byte (4K) |
| 29h | EX4B | exit_4byte_address_mode |
| 32h | PPQ | write_page_quad |
| 34h | 4PPQ | write_page_4byte_quad |
| 42h | WRFR | write_function_register |
| 48h | RDFR | read_function_register |
| 4Bh | RDUID | read_unique_id |
| 4Fh | Read Extended Read Reg | read_extended_read_register (opcode per datasheet) |
| 50h | VSRWE | (used by write_status_volatile) |
| 52h | BER32 | erase (32K) |
| 5Ah | Read SFDP | read_sfdp |
| 5Ch | 4BER32 | erase_4byte (32K) |
| 62h | IRP | program_information_row |
| 63h | SRPV | set_read_parameters_volatile |
| 64h | IRER | erase_information_row |
| 65h | SRPNV | set_read_parameters_nv |
| 66h/99h | Reset | software_reset |
| 75h | Suspend | suspend |
| 7Ah | Resume | resume |
| 7Eh | GBLK | gang_lock |
| 83h | SERPV | set_extended_read_parameters_volatile |
| 85h | SERPNV | set_extended_read_parameters_nv |
| 91h | SFRZ | set_freeze |
| 98h | GBUN | gang_unlock |
| 9Fh | RDID | read_jedec_id |
| A6h | WRPLB | write_ppb_lock |
| A7h | RDPLB | read_ppb_lock |
| ABh | Release DP | exit_deep_power_down |
| B7h | EN4B | enter_4byte_address_mode |
| B9h | Enter DP | enter_deep_power_down |
| C5h | WRBRV | write_bank_register_volatile |
| C7h | CER | full_erase |
| D7h | SER | erase (4K) |
| D8h | BER64 | erase (64K) |
| DCh | 4BER64 | erase_4byte (64K) |
| E0h | 4RDDYB | read_dyb_4byte |
| E1h | 4WRDYB | write_dyb_4byte |
| E2h | 4RDPPB | read_ppb_4byte |
| E3h | 4PGPPB | program_ppb_4byte |
| E4h | ERPPB | erase_ppb |
| E7h | RDPWD | read_password |
| E8h | PGPWD | program_password |
| E9h | UNPWD | unlock_password |
| FAh | RDDYB | read_dyb |
| FBh | WRDYB | write_dyb |
| FCh | RDPPB | read_ppb |
| FDh | PGPPB | program_ppb |
| 2Bh | RDASP | read_asp |
| 2Fh | PGASP | program_asp |
| 13h | Read 4-byte | read_4byte |
Modules§
- prelude
- Prelude for convenient imports.
Structs§
- Extended
Read Status - Extended Read Register contents (opcode 4Fh). Table 6.12–6.13.
- Is25lp128f
- ISSI IS25LP128F driver.
- JedecId
- JEDEC manufacturer and device identification (RDID 9Fh response).
- Operation
Errors - Operation error bits from the Extended Read Register (EB3:1). Read-only; set by failed erase/program or protection violations.
Use
read_operation_errorsto read after an operation. - Status
- Status register (Read Status opcode 0x05)
- Status
Write - Writable status register bits (WRSR 01h). WIP and WEL are read-only; BP0–BP3, QE, SRWD are writable. Datasheet Table 6.1–6.2.
Enums§
- Address
Mode - Addressing mode for legacy commands. 3-byte is sufficient for 128 Mbit.
- Block
Protection Level - Block protection level (BP3–BP0) per datasheet Table 6.4. Standard table; TBS selects top vs bottom.
- Driver
Strength - Output driver strength (ODS) for read modes. Extended Read Register bits EB7, EB6, EB5. Datasheet Table 6.14. SERPNV/SERPV set only these bits; EB4:0 are read-only and not affected.
- Error
- Flash
Erase Size
Constants§
- CHIP_
SIZE - The total chip size in bytes; Datasheet pp. 2.3
- PAGE_
SIZE - Flash page size in bytes; Datasheet p. 77
- SECTOR_
SIZE - START_
ADDRESS - Memory map specified starting address; Datasheet p. 14
- WRITE_
MAX_ TIME_ MSEC - Max internal write page cycle time is 0.8ms; Datasheet p. 171 Add additional time for robustness