← AXO-019

Circuit review & bench-test guide

AXO-019 — Memory sampler PMOD module (I2C EEPROM + SPI NOR flash)

Design-stage — board not yet fabricated

Document purpose#

Component-level explanation and bench-test plan for axo-019-memory, from generate_design.py, the module README.md, and the Microchip 24LC256 and Winbond W25Q128JV datasheets. Never fabricated; values are verification targets.

1. What the board does#

Contrasts the two nonvolatile-memory archetypes on one board: a byte-writable I2C EEPROM (24LC256, 32 KB) and a page/sector NOR flash (W25Q128, 16 MB) on SPI — the same family as the ECP5 boot flash. Hybrid PMOD map: SPI on 1/2/3/4, I2C on 9/10.

PMOD J1  ~CS/MOSI/MISO/SCK (1/2/3/4) ─> U2 W25Q128 (SPI NOR)
         SCL/SDA (9/10, JP1/JP2 pull-ups) ─> U1 24LC256 (I2C EEPROM)

2. Safety and scope boundaries#

4. Interfaces#

5. Component-by-component review#

6. Datasheet summary#

7. Expected values before bench testing#

8. Manual review checklist#

9. Ordered bench-test procedure#

A. Unpowered: verify the split map, all straps/pull-ups, WP jumper; no rail short.

B. Power, idle: 3.3 V. I2C idle-high; SPI ~CS high.

C. EEPROM alive: I2C scan → ACK 0x50. Read a byte (random-read: dummy write-address then read).

D. EEPROM write: with JP4 = writable, write a known byte at address 0x0000; poll-for-ACK until the ~5 ms cycle completes; read back and compare. Then set JP4 = protected and confirm a write is rejected (read-back unchanged) — the WP lesson.

E. Flash alive: send JEDEC ID (0x9F) → expect EF 40 18. If not, recheck ~CS/~HOLD/~WP pull-ups and SPI mode.

F. Flash erase/program: Write-Enable (0x06), Sector-Erase (0x20) address 0; poll status BUSY until clear; read the sector → all 0xFF. Write-Enable, Page-Program (0x02) 256 bytes; read back and compare. Demonstrate that programming without erasing first can only clear bits (the NOR contrast).

10. Troubleshooting map#

11. Bench record template#

Board: axo-019  EEPROM ACK 0x50: [ ]  JEDEC ID: __ __ __ (exp EF 40 18)
EEPROM write/read-back: [ ]  WP blocks write: [ ]
Flash sector-erase->FF: [ ]  page-program read-back: [ ]
Notes:

12. Review conclusion#

The board's teaching content is the erase-before-write contrast: the EEPROM takes arbitrary byte writes (poll-for-ACK), the NOR flash needs Write-Enable + sector-erase then page-program. The two must-verify hardware items are the WP jumper (writes silently fail if protected) and the W25Q ~HOLD/~WP/~CS pull-ups (the flash misbehaves if any float). JEDEC ID EF 40 18 is the flash go/no-go.