← AXC-007

Circuit review & bench-test guide

AXC-007 — CP2102N USB-UART console PMOD module

Design-stage — board not yet fabricated

Document purpose#

This document explains the axc-007-console PMOD module at component level and turns the design evidence into a practical manual-review and bench-test plan. It is based on generate_design.py, README.md, and the ERC report in reports/.

This board has never been fabricated. Repository status is schematic generated, ERC clean (0 errors / 0 warnings), netlist reviewed; PCB layout not started; not released. There is no PCB, no BOM export, no DRC record, and no first-article bench result. Every number below is a target to verify against real hardware, not a proven result.

1. What the board does#

The board is the kit console: a Silicon Labs CP2102N USB 2.0 full-speed-to-UART bridge behind a USB-C receptacle, presenting the AruviOS shell over USB at up to 3 Mbaud with RTS/CTS flow control. It is a PMOD Type 3 (UART + flow control) module. Its defining design property is a deliberate no-back-feed architecture: the CP2102N is bus-powered from USB VBUS, its internal regulator produces a 3.3 V VDD that runs the chip and its I/O, and that VDD is isolated from the PMOD 3V3 rail — so no USB 5 V can back-feed the host and no 5 V exists anywhere near the PMOD.

A package subtlety matters: the QFN28 CP2102N has no separate VIO pin (VIO exists only on the QFN32 part). In the datasheet's bus-powered configuration for this package the I/O simply runs at VDD = 3.3 V, which satisfies the module spec's "VIO must be 3.3 V" requirement by construction.

Functional block diagram#

USB-C host                        Module
┌──────────┐  VBUS  ┌──────────────────────────────────────────────┐
│ J2 USB-C ├───┬────│ U1 VREGIN + VBUS-sense  (C1 100n + C2 10µ)    │
│ (UFP)    │   │    │ U1 internal LDO ─> CP_VDD 3.3V (C3 100n+C4 10µ)│
│ CC1 R1   │   │    │           (VDD runs the QFN28 I/O — no VIO pin)│
│ CC2 R2   │   └────│ ── NOT connected to PMOD 3V3 (no back-feed) ──│
│ D+ D- ───┼──> U2 USBLC6-2SC6 ESD ──> U1 D+/D-                     │
│ SHIELD─GND│        │ CP TXD ─R4 100R─> PMOD 3 RXD                 │
└──────────┘        │ CP ~RTS ─R5 100R─> PMOD 1 CTS                 │
                    │ PMOD 2 TXD ─> CP RXD ;  PMOD 4 RTS ─> CP ~CTS │
   PMOD host 3V3 ───┼──> pins 6/12 (host-supplied, UNUSED on-module)│
   PMOD host GND ───┼──> pins 5/11 (common reference)               │
                    │ CP ~RST ─ R3 10k PU to CP_VDD                 │
                    └──────────────────────────────────────────────┘

2. Safety and scope boundaries#

3. Power and data sequence#

  1. A USB-C cable brings VBUS (5 V) to U1's VREGIN and VBUS-sense pins. The CC1/CC2 5.1 k pull-downs (R1/R2) advertise the UFP so the host applies VBUS. C1/C2 decouple VREGIN.
  2. U1's internal LDO produces CP_VDD = 3.3 V (C3/C4 decouple it). On the QFN28 there is no VIO pin, so the UART I/O runs at CP_VDD 3.3 V. CP_VDD connects to nothing but U1's own decoupling and the R3 reset pull-up — it does not touch PMOD 3V3.
  3. ~RST idles high via R3 (10 k to CP_VDD), belt-and-braces over the internal pull-up; the device completes reset and enumerates.
  4. USB enumeration: the host sees the CP2102N as VID 0x10C4, PID 0xEA60 (Silicon Labs, CP210x), the default identity. A COM/tty port appears; default framing for the console is 115200-8N1.
  5. Data direction (host FPGA = DTE): CP2102N TXD carries data toward the FPGA → PMOD pin 3 RXD through R4 (100 Ω). FPGA TXD (PMOD pin 2) drives CP2102N RXD directly. ~RTS (CP) → R5 (100 Ω) → PMOD pin 1 CTS; FPGA RTS (pin 4) → CP2102N ~CTS. Module-driven lines (CP TXD, CP ~RTS) carry the 100 Ω.

4. Interfaces#

ReferencePins/signalsIntended use
J112-pin PMOD plug, Type 31 CTS (from CP ~RTS via R5), 2 TXD (host→CP RXD), 3 RXD (from CP TXD via R4), 4 RTS (host→CP ~CTS), 5/11 GND, 6/12 3V3 (host-supplied, unused on-module), 7–10 NC
J2GCT USB4105-GF-A-120 USB-C receptacle (UFP)USB 2.0 console connection; VBUS, D±, CC1/CC2; SBU open, shield to GND

There are no dedicated test points; bench probing is at J1 pins, U1 pins, the 100 Ω resistors, and the USB-C shell. CP_VDD-to-3V3 isolation is measured between the CP_VDD decoupling and the PMOD 3V3 pins.

5. Component-by-component review#

5.1 Bridge and USB front end#

Ref.PartFunction and why neededIf absent/openIf shorted, wrong, or misassembled
U1Silicon Labs CP2102N-A02-GQFN28USB-FS-to-UART bridge; internal LDO makes CP_VDD; no VIO pin — I/O runs at VDD 3.3 VNo consoleD+/D− swapped = no enumeration; VREGIN/VBUS miswired = no power or over-voltage; a solder path from CP_VDD to PMOD 3V3 breaks the no-back-feed guarantee; wrong OTP config could change VID/PID or default baud
J2GCT USB4105-GF-A-120 USB-C receptacleReversible USB device connection (UFP)No USBVBUS–GND short trips the host port; CC pads mis-wired break one orientation; shield-to-GND bond matters for ESD/EMC
U2ST USBLC6-2SC6 ESD array (SOT-23-6)ESD clamp on D+/D− (and VBUS) near the connectorD± unprotected against ESDOrientation-critical: the SOT-23-6 pinout must be correct (I/O1/I/O2 on the D lines, VBUS/GND on the rails) — a rotated part clamps the wrong nodes and can load or short the data lines. Verify pin 1

5.2 CC pull-downs and reset#

Refs.ValueFunctionIf omitted or wrong
R15.1 kΩ, CC1→GNDUFP advertisement (default USB power sink), orientation AMissing = host may not apply VBUS in one orientation
R25.1 kΩ, CC2→GNDUFP advertisement, orientation BMissing = the other orientation fails; both missing = no reliable attach
R310 kΩ, CP_VDD→~RST~RST idle pull-up (over the internal pull-up)Missing usually still works (internal pull-up) but reset can be marginal/noisy

5.3 Flow-control series and decoupling#

Refs.ValueFunctionIf omitted or wrong
R4100 ΩSeries protection on CP TXD → host RXD (module-driven data line)Open = host RXD sees nothing: console looks dead though the port enumerates
R5100 ΩSeries protection on CP ~RTS → host CTS (module-driven flow line)Open = flow control never asserts on the host side; possible overrun at high baud
C1100 nF 16 V X7RVREGIN/VBUS HF decouplingVBUS noise into the regulator
C210 µF 10 V X5RVREGIN bulk (≥ 4.7 µF per datasheet)Regulator instability / brown-out on inrush
C3100 nF 16 V X7RCP_VDD HF decouplingNoisy 3.3 V rail; unreliable I/O
C410 µF 10 V X5RCP_VDD bulk (≥ 4.7 µF per datasheet)LDO instability, enumeration glitches
#FLG01–04ERC power flags (3V3, GND, VBUS, CP_VDD)Bookkeeping only

Every ref-des is covered: U1, U2, J1, J2, R1–R5, C1–C4.

6. Datasheet summary and design interpretation#

DeviceKey manufacturer facts used hereBoard-specific interpretation
Silicon Labs CP2102N (datasheet)USB-FS-to-UART bridge; default USB identity VID 0x10C4 / PID 0xEA60; bus-powered config ties VREGIN + VBUS-sense to VBUS, internal LDO → VDD 3.3 V; QFN28 has NO VIO pin (I/O at VDD); VREGIN/VDD each want ≥ 4.7 µF; up to 3 Mbaud; RTS/CTS hardware flow controlThe no-VIO note is why the design is safe at 3.3 V by construction. The VDD/3V3 isolation is the no-back-feed guarantee. VID/PID is the enumeration gate
GCT USB4105 USB-CUFP with 5.1 k CC pull-downs; reversibleSame stock pair proven on usb-c-5v-breakout; UFP, not a PD sink
ST USBLC6-2SC6 (datasheet)Low-cap D+/D− ESD array, SOT-23-6, defined pinoutOrientation-critical; protects the D lines without loading FS signalling

Official references: CP2102N datasheet, USBLC6-2 datasheet, USB4105 drawing. Confirm the default OTP config (VID/PID/baud) is acceptable before procurement — the README flags this as an open item.

7. Expected values before bench testing#

All values are design targets for a board that does not yet exist.

QuantityTargetHow to measure
VBUS-to-GND, unpoweredHigh, both polarities (no hard short)DMM
CP_VDD-to-PMOD-3V3Open (no continuity) — the no-back-feed checkDMM, both polarities — the single most important pre-power measurement
CC1/CC2 to GND~5.1 kDMM
RXD / CTS series~100 Ω to the respective PMOD pinDMM at R4/R5
~RST idle≈CP_VDD (3.3 V) via R3DMM/scope after power
CP_VDD after USB attach~3.3 VDMM at C3/C4
PMOD 3V3 during USB-only operation~0 V (host rail unpowered) — proves no back-feedDMM/scope at PMOD pin 6 with USB attached but no host
USB enumerationVID 0x10C4, PID 0xEA60, a CP210x COM/tty appearsHost device manager / lsusb / dmesg
Idle supply current from VBUStens of mA classUSB power meter / inline shunt
LoopbackCharacters typed appear back (TX→RX jumpered)Terminal

8. Manual schematic and assembly review checklist#

9. Ordered bench-test procedure#

Stop at the first abnormal result. Record board serial, chip marking, and host identity.

A. Unpowered inspection and resistance tests#

  1. Visual: U1/U2 orientation, USB-C solder, passive bank.
  2. DMM: VBUS-to-GND (no short); CC1/CC2 to GND ≈ 5.1 k; RXD/CTS series ≈ 100 Ω.
  3. No-back-feed measurement: CP_VDD-to-PMOD-3V3 must read open. If there is any continuity, stop — do not power and do not attach to a host.

B. USB attach and enumeration (no FPGA)#

  1. Attach a USB-C cable from a PC. Watch the port: expect enumeration as VID 0x10C4 / PID 0xEA60, a CP210x COM/tty device. Try both cable orientations.
  2. Measure CP_VDD ≈ 3.3 V at C3/C4. Confirm no heating.
  3. With USB attached but no FPGA host connected, measure PMOD pin 6 (3V3): it must read ~0 V — proving VBUS does not back-feed the host rail. This is the live confirmation of the 8-section no-back-feed audit.

C. Loopback and framing (no FPGA)#

  1. Open the CP210x port at 115200-8N1. Jumper PMOD pin 2 (TXD) to pin 3 (RXD) through the module (i.e. loop the host-side data). Type characters and confirm they echo back — proving CP RXD/TXD, R4, and the framing.
  2. Sweep baud (e.g. 9600 → 3 Mbaud) and confirm clean loopback; note the highest reliable rate.

D. Flow-control verification#

  1. Jumper RTS↔CTS appropriately and drive a flow-control-enabled transfer from the host. Confirm ~RTS/~CTS assert (scope at R5 / CP ~RTS and CP ~CTS) and that the host holds off when flow control is de-asserted.
  2. Optionally overrun-test at high baud with and without flow control to show it prevents dropped bytes.

E. ESD-array sanity#

  1. Confirm D+/D− idle levels are correct (FS device pulls D+ high through U1's internal pull-up) and that U2 is not loading the lines (enumeration working is the practical proof; a rotated U2 typically breaks it).

F. Host (PMOD) bring-up#

  1. Only after the no-back-feed checks pass, plug the module into the FPGA PMOD host. Bring up the AruviOS console: FPGA TXD (pin 2) → CP RXD, CP TXD → R4 → pin 3 RXD. Confirm the shell over USB at 115200.
  2. Exercise RTS/CTS from gateware under load.
  3. Confirm grounds are common via the PMOD and that the host rail (3V3) and CP_VDD remain independent under all conditions.

10. Troubleshooting map#

SymptomFirst measurementsLikely areas
No enumerationVBUS present, D± continuity/swap, CP_VDDJ2 solder, D± swapped, U2 rotated, U1 power, wrong OTP
Enumerates, wrong VID/PIDDevice descriptorReprogrammed/wrong OTP config — reflash to default
Port opens, no RX at hostRXD path at R4R4 open, CP TXD not driving, wrong baud
No flow control effect~RTS/~CTS at R5R5 open, flow-control not enabled, wiring
One cable orientation failsCC1 vs CC2 pull-downsR1/R2 open, CC pad/trace
Any voltage on PMOD 3V3 with USB-onlyCP_VDD-to-3V3 continuityBroken isolation — back-feed path; do not deploy
Enumeration flaky / resetsVREGIN/VDD ripple at C2/C4Decoupling < 4.7 µF, marginal reset (R3)

11. Bench record template#

FieldRecord
Board revision / serial; chip marking
Host OS / USB port; cable identity
CP_VDD↔3V3 isolation (open? Y/N)
PMOD 3V3 with USB-only (≈0 V? Y/N)
Enumeration VID/PID observed
Both-orientation enumeration
Loopback max reliable baud
Flow-control verification result
CP_VDD voltage; VBUS current
Host console bring-up result
Deviations, photos, raw-file paths
Reviewer / date / disposition

12. Review conclusion#

The console is a well-worn design — CP2102N + USB-C UFP + ESD array — but its defining decision is architectural: CP_VDD is isolated from PMOD 3V3, so USB 5 V never back-feeds the host and no 5 V exists near the PMOD. The QFN28's missing VIO pin is not a limitation here; it is what makes the I/O 3.3 V by construction. The two must-do verifications are the meter check that CP_VDD and PMOD 3V3 are truly open (both on the schematic audit and live with USB attached) and the enumeration at VID 0x10C4 / PID 0xEA60, followed by loopback and flow-control. U2's orientation is the easy assembly mistake to catch. Open risks: no PCB exists (D± matching and the VDD/3V3 isolation are layout promises), and the default OTP config (VID/PID/baud) is an unconfirmed README item that must be verified before a board is trusted as the kit console.