← AXS-047

Circuit review & bench-test guide

AXS-047 — RC522 RFID carrier PMOD module

Design-stage — board not yet fabricated

Document purpose#

This document explains the axs-047-rfid carrier at component level and turns the design evidence into a manual-review and bench-test plan. It is based on generate_design.py, the generated schematic, the README, and the NXP MFRC522 datasheet.

The board is an unfabricated prototype: schematic generated, ERC clean (0/0), netlist reviewed, no PCB layout, no fabricated board, no BOM export, no bench results. Both connector MPNs are TBD:. The plug-in is the generic "RC522 blue board", which ships with an MFRC522 (or a clone of it) — carrier validation is only meaningful against the specific purchased breakout.

1. What the board does#

The carrier hosts the ubiquitous MFRC522 "blue board" 13.56 MHz RFID/NFC reader on a 1×8 socket and maps it to PMOD Type 2A (expanded SPI): ~CS, MOSI, MISO, SCK on pins 1–4, IRQ on pin 7, RST on pin 8. Everything is 3.3 V; the carrier adds series resistors on the two module-driven lines (MISO, IRQ), a 10 k pull-up on RST_N, and socket decoupling for RF transmit bursts. The blue board straps the MFRC522 into SPI mode; its "SDA" pin is the SPI ~SS.

Functional block diagram#

PMOD host (ECP5) J1                      RC522 blue board (plug-in, J2 1x8 socket)
  pin 1 CS_N ───────────────────────────> 1 SDA (SPI ~SS)
  pin 4 SCK ────────────────────────────> 2 SCK
  pin 2 MOSI ───────────────────────────> 3 MOSI
  pin 3 MISO <── R1 100 Ω ──────────────  4 MISO
  pin 7 RFID_IRQ <── R2 100 Ω ──────────  5 IRQ
  pins 5/11 GND ────────────────────────  6 GND
  pin 8 RST_N ──┬───────────────────────> 7 RST   (R3 10 k pull-up to 3V3)
  pins 6/12 3V3 ─┬─ C1 100 nF ─ C2 10 µF  8 3.3V

2. Safety and scope boundaries#

3. Power and control sequence (design intent)#

  1. Host powers the PMOD; 3V3 reaches J2 pin 8; C1/C2 buffer transmit bursts.
  2. R3 holds RST high, so the reader boots immediately; the host may hold RST_N low to keep it in hard power-down (NRSTPD low ⇒ ≤5 µA, per datasheet) until wanted.
  3. Host configures the MFRC522 over SPI mode 0 (CPOL=0, CPHA=0, MSB first, ≤10 Mbit/s per datasheet; start at ≤1 MHz on the bench).
  4. IRQ (module-driven, configurable polarity via the chip's DivIEn/ComIEn registers) returns through R2 for interrupt-driven designs.

4. Plug-in module verification (read before first power)#

Mandatory section. Blue-board clones occasionally deviate from the common pin order, and 3V3 landing on a signal pin — or SDA landing on the 3.3V pad — means no damage-free first power.

4.1 Pin-order check against the breakout silkscreen#

The carrier assumes the common blue-board order:

1 SDA(SS), 2 SCK, 3 MOSI, 4 MISO, 5 IRQ, 6 GND, 7 RST, 8 3.3V

Procedure, with the breakout unplugged and the carrier unpowered:

  1. Read the breakout's silkscreen; write the order down. If any name is unreadable, trace: pin 8's track goes to the LDO/3.3 V plane, pin 6 to the ground pour, SDA to MFRC522 pin 24 area (fine-pitch — use the plane checks instead: GND and 3.3V are easy to confirm with a DMM against the crystal can or C pads).
  2. On the carrier, buzz J2 position 8 to the PMOD 3V3 pins and position 6 to GND. Then confirm the breakout's own 3.3V and GND pins will land there in the actual insertion orientation.
  3. A 1×8 socket is unkeyed and can be plugged backwards: reversed, 3.3 V lands on SDA and SDA on 3.3 V, and SCK/RST cross. Mark the correct orientation on both boards with paint before first power.
  4. Confirm the breakout is the SPI-strapped variant (the standard blue board is; I2C/UART-strapped derivatives exist). If in doubt, the version register read in section 9.C settles it — a board that answers on SPI is strapped for SPI.

4.2 Plug-in key specifications (NXP MFRC522, Rev. 3.2 datasheet)#

ItemManufacturer valueBench relevance
Supply2.5–3.6 V (AVDD=DVDD=TVDD; "2.5–3.3 V power supply" feature bullet)PMOD 3V3 is in range; below 3 V reduces range
Digital + analog current~6.5 mA + ~7 mA typicalIdle budget
Transmitter current ITVDD60 mA typ / 100 mA max continuous wavePeak rail budget; C2's job
Hard power-downNRSTPD low, ≤5 µARST_N low from the host = lowest power
SPIUp to 10 Mbit/s; MSB first; address byte format per §8.1.2Start slow; the read address format ((addr<<1)0x80) is a common firmware bug, not a hardware fault
Frequency / standard13.56 MHz, ISO/IEC 14443 A / MIFARETest cards must be 14443A (MIFARE Classic/NTAG)
Operating distanceUp to 50 mm in read/write mode, antenna-dependentBlue-board antennas typically reach ~20–40 mm — do not chase 50 mm
VersionReg (0x37)Chip version: 0x91 = version 1.0, 0x92 = version 2.0First-contact test, section 9.C; clones return other values (commonly 0x88, 0x12, 0xB2) — record what you get
Self testBuilt-in digital self test per datasheet §16.1.1Optional deeper check
FIFO64 bytesRegister-map lesson content

5. Component-by-component review#

#FLG01/#FLG02 are ERC power flags, not physical parts.

Ref.Part / valueFunction and why neededIf absent/openIf shorted, wrong, or misassembled
J12×6 right-angle PMOD plug (MPN TBD:)Host interface, Type 2A expanded SPINo host linkMirrored assembly puts rails on signals — verify pin-1 orientation
J21×8 pin socket 2.54 mm (MPN TBD:)Blue-board socket, common order (section 4.1)No readerUnkeyed: reversed insertion swaps 3.3V onto SDA — see 4.1; a poor socket contact on SCK/MISO gives intermittent register reads
R1100 Ω 0603, Yageo RC0603FR-07100RLSeries protection on module-driven MISOLoses fault-current limiting; contention damping during CS transitionsOpen: MISO floats — reads 0x00/0xFF
R2100 Ω 0603, Yageo RC0603FR-07100RLSeries protection on module-driven IRQSame classOpen: no interrupts; polling still works — easy to miss, test IRQ explicitly
R310 kΩ 0603, Yageo RC0603FR-0710KLRST_N pull-up: reader out of reset (and out of hard power-down) by defaultBlue boards usually have their own RST pull-up, so the reader may still boot — the carrier-level default becomes undefined; fit itBridge to GND holds permanent power-down (the reader draws µA and never answers)
C1100 nF 16 V X7R, Murata GRM188R71C104KA01DHigh-frequency decoupling at the socketTransmit-burst noise on 3V3Short kills the rail
C210 µF 10 V X5R, Murata GRM21BR61A106KE19LBulk for 60–100 mA RF transmit burstsRail droop each transmit; flaky card detection at rangeShort kills the rail

Host-driven lines (CS_N, MOSI, SCK, RST_N drive) are wired directly, matching the family convention: series resistors only on module-driven lines.

6. Datasheet summary and design interpretation#

DeviceKey manufacturer factsBoard-specific interpretation
MFRC52213.56 MHz ISO14443A reader; 2.5–3.6 V; SPI ≤10 Mbit/s; ITVDD ≤100 mA; NRSTPD hard power-down; VersionReg 0x37 reads 0x91/0x92 on genuine v1/v2 silicon; up to 50 mm range antenna-dependentThe carrier's single-domain 3.3 V design is exactly right; range and IRQ behavior depend mostly on the blue board's antenna and strapping, not the carrier
RC522 blue boardUncontrolled BOM: MFRC522 or clone, printed antenna, 27.12 MHz crystal, strapped for SPIClone silicon changes VersionReg and sometimes analog behavior; record the version byte per unit
Yageo RC0603 / Murata GRMThick film 1 %; X7R/X5R ceramicsUncritical

Official references: MFRC522 datasheet (NXP) (mirror), NXP MFRC522 product page.

7. Expected values before bench testing#

QuantityDesign target / manufacturer valueWhat to measure
3V3 at J2 pin 83.3 VDMM
Idle current (RST high, RF off)~15–25 mA classHost rail delta
Transmit current+60 mA typ, ≤100 mA peaksShunt/current probe during card polling
RST_N idle3.3 V via R3DMM at PMOD pin 8
VersionReg (0x37)0x91 or 0x92 (genuine); other values indicate clone siliconFirst SPI read, section 9.C
SPI signalsMode 0, clean edges at ≤1 MHz initiallyLogic analyzer
Card detect range~20–40 mm with a typical blue-board antenna (≤50 mm per datasheet)Ruler test, section 9.E

8. Manual schematic and assembly review checklist#

9. Ordered bench-test procedure#

Stop at the first abnormal result.

A. Unpowered checks#

  1. Complete section 4.1 orientation check and mark it.
  2. Resistance 3V3-to-GND at the PMOD plug, socket empty, then fitted.
  3. Buzz each J2 position to its PMOD pin / net (eight checks).

B. First power, no SPI traffic#

  1. Host on. Measure 3V3 at J2 pin 8 and the idle current delta.
  2. RST_N reads 3.3 V; drive it low from the host: current drops to the hard-power-down floor (µA-class on the MFRC522 itself; the blue board's LDO/LED may dominate — record the actual number for this breakout).

C. SPI register-map contact — the version read#

  1. At ≤1 MHz, SPI mode 0, read VersionReg 0x37: send the read-format address byte (0x37<<1)|0x80 = 0xEE, clock a dummy byte, capture the response. Expect 0x91 (v1.0) or 0x92 (v2.0). Anything else and the board answers but carries clone silicon — record the value; most clones still work for the curriculum.
  2. If the read returns 0x00 or 0xFF: check CS framing, R1 path, and the address-byte format (the most common failure is firmware, not hardware).
  3. Write/readback test: write TxASKReg or a scratch-usable register (e.g., write 0x25 to ModWidthReg 0x24, read it back), then soft-reset (CommandReg 0x01 = 0x0F) and confirm defaults return.
  4. Optional: run the built-in self test (datasheet §16.1.1) and compare the 64-byte signature against the version-appropriate table.

D. RF on and IRQ path#

  1. Enable the transmitter (TxControlReg bits Tx1RFEn/Tx2RFEn); watch the supply current step (~+60 mA) — this proves the antenna drive and C2.
  2. Configure ComIEnReg for receive interrupts; present a card; confirm the IRQ edge arrives at PMOD pin 7 through R2 and matches the polling result.

E. Card detect range (ISO14443A REQA/anticollision)#

  1. Run REQA→ATQA: present a MIFARE Classic card face-parallel to the antenna. Record ATQA.
  2. Anticollision + SELECT: read the UID; verify it is stable across 10 presentations.
  3. Range: raise the card in 5 mm steps on a non-metallic jig; record the greatest distance with 10/10 successful UID reads. Expect ~20–40 mm; ≥50 mm would exceed the datasheet's own claim — recheck the setup. Metal under the antenna or the carrier's copper (layout keep-out) is the usual cause of gross range loss.
  4. Repeat with a keyfob (smaller coupling loop — shorter range is normal).

10. Troubleshooting map#

SymptomFirst measurementsLikely areas
Version read 0x00/0xFFCS/SCK/MISO on analyzer, R1 continuityAddress-byte format, reversed breakout, socket contact, R1 open
Version reads odd value (0x12/0x88/0xB2)Clone silicon; record and proceed
Registers read ok, cards never seenTxControlReg readback, current stepRF not enabled, antenna area over copper, damaged antenna
Very short rangeSupply droop during transmit, metal nearbyC2 missing, layout keep-out violated, small-loop tag
Polling works, no IRQIRQ at socket vs PMOD pin 7R2 open, IRQ polarity/enable registers
Reader never answers, µA currentRST_N levelR3 missing with host pin low, bridge to GND
Intermittent at SPI >1 MHzSignal integrity at analyzerSocket contacts, long wires; slow down and retest

11. Bench record template#

FieldRecord
Board serial / assembly variant
Breakout source, silkscreen order, orientation photos
VersionReg value (0x91/0x92/other)
Idle / RF-on current; power-down current
Register write/readback + soft-reset result
Self-test signature (if run)
UID read results, ATQA values
Range table (card and fob)
IRQ path result
Deviations, raw-file paths
Reviewer / date / disposition

12. Review conclusion#

This is the lowest-electrical-risk carrier in the group: one 3.3 V domain, series resistors on both module-driven lines, a sane reset default, and decoupling scaled to the documented 100 mA transmit peaks. The risks that remain are operational: an unkeyed 1×8 socket that accepts a reversed board (3.3 V onto SDA), uncontrolled clone silicon behind the "RC522" name — which the 0x37 version read exposes on first contact — the antenna keep-out that exists only as intent until layout is done, and the absence of any fabrication or bench evidence at this revision.