← AXO-017

Circuit review & bench-test guide

AXO-017 — microSD card PMOD module

Design-stage — board not yet fabricated

Document purpose#

Component-level explanation and bench-test plan for axo-017-microsd, from generate_design.py, the module README.md, and the Hirose DM3AT socket + SD Physical Layer (SPI mode) specifications. Never fabricated; values are verification targets. This is a storage keystone for the standalone-computer path (SPI-mode SD → FAT reader → AruviOS block driver).

1. What the board does#

Exposes a microSD card in SPI mode on the PMOD: ~CS, MOSI(CMD), MISO(DAT0), SCK(CLK), plus a card-detect switch. All SD lines carry the pull-ups the SD spec requires in SPI mode.

PMOD J1  ~CS/MOSI/MISO/SCK (1/2/3/4) ─> J2 microSD (DM3AT)
         CD (7, 10k PU + 100R) <── card-detect switch
         DAT1/DAT2 idle-high 10k pull-ups ; all SD lines 10k to 3V3

2. Safety and scope boundaries#

4. Interfaces#

5. Component-by-component review#

6. Datasheet / spec summary (SD SPI mode)#

7. Expected values before bench testing#

8. Manual review checklist#

9. Ordered bench-test procedure#

A. Unpowered: buzz J2 pads to J1; confirm pull-ups on all SD lines; verify CD switch continuity when a card is inserted; no rail short.

B. Power, empty: 3.3 V. Confirm bus idle-high; CD reads "empty."

C. Insert card: confirm CD flips to "present."

D. Init at low clock: clock ≥74 cycles with ~CS high (400 kHz), then CMD0 → expect R1 = 0x01. If not, recheck power, pull-ups (esp. DAT1/DAT2), and MISO continuity.

E. Full init: CMD8 (expect 0x1AA), ACMD41 loop to 0x00, CMD58 for SDHC/SDXC. Then raise SCK to full speed.

F. Block I/O: CMD17 read block 0 (partition/boot sector), verify 512 bytes + start token 0xFE. Optionally CMD24 write a scratch block on a disposable card and read it back; watch the 10 µF hold the rail during the write.

10. Troubleshooting map#

11. Bench record template#

Board: axo-017  Card P/N:____
CD empty/present toggles: [ ]
CMD0 R1: 0x____ (exp 01)  CMD8 echo 0x1AA: [ ]  ACMD41->00: [ ]
Card type (CCS): SDSC/SDHC   Block-0 read OK: [ ]
Notes:

12. Review conclusion#

The subtle, must-verify detail is pull-ups on every SD line including the unused DAT1/DAT2 — omitting them is the classic reason a card refuses SPI init. After that it's the standard warm-up-clocks → CMD0(0x01) → CMD8 → ACMD41 → CMD58 sequence, then full-speed block I/O with the 10 µF holding the rail through writes.