Circuit review & bench-test guide
AXL-001 — 8-channel logic analyzer pod PMOD module
Document purpose#
This document explains the axl-001-la-pod prototype at component level and turns the design evidence into a practical manual-review and bench-test plan. It is based on the generated schematic (generate_design.py, rev 0.1-schematic, 2026-07-12), the README, the TI SN74LVC245A datasheet, and the Digilent Pmod Interface Specification.
The board is a design-stage prototype. The schematic is generated and ERC clean (reports/erc.rpt, 2026-07-12: 0 errors / 0 warnings, with KiCad's single-global-label, four-way-junction, SPICE, and footprint-filter checks excluded) and the netlist has been reviewed, but PCB layout has not started and no board has been fabricated or assembled. There is no first-article bench result of any kind, no BOM export, and the companion HDL (la_capture, sump_uart) does not exist yet. Every expected value below is a design target to verify, not proof that an assembled board works.
1. What the board does#
The board is a 12-pin PMOD module carrying a TI SN74LVC245A octal bus transceiver used as a one-way probe buffer: eight logic-analyzer probe tips enter header J2, pass a 100 kΩ idle pull-down and a 1 kΩ series fault-current-limit resistor per channel into the transceiver's B port (VCC = 3.3 V), and leave the A port through 100 Ω series resistors onto PMOD pins 1–4 and 7–10. DIR is hardwired low (B-to-A only) and ~OE is hardwired low (always enabled), so the pod is a fixed unidirectional buffer.
The deciding part-selection fact (per the lab-line README review) is that LVC inputs accept up to 5.5 V regardless of VCC, so the pod can probe 5 V DUTs while presenting clean 3.3 V CMOS levels to the FPGA host. The pod itself contains no sampling, triggering, or memory: it is a buffer, not a sampler. Capture is done by the FPGA host running the (not yet written) la_capture core, dumped over UART in SUMP protocol so PulseView connects directly — that entire instrument claim currently rests on unwritten HDL.
Functional block diagram#
J2 PROBE POD (2x05) U1 SN74LVC245A (TSSOP-20, VCC = 3V3)
1-8 PROBE0..7 ──┬── R1-R8 100k ── GND (idle pull-down at the tip)
└── R9-R16 1k ──> CHx_IN ──> B port (5 V-tolerant inputs)
9/10 GND (probe grounds) │ DIR = GND (B->A)
│ ~OE = GND (always on)
J1 PMOD (Type 1A GPIO) v
1-4 CH0-CH3 <── R17-R20 100R <── CHx_BUF <── A port (3.3 V CMOS out)
7-10 CH4-CH7 <── R21-R24 100R <──┘
5/11 GND, 6/12 3V3 ── C1 100n + C2 1u ── decoupling
2. Safety and scope boundaries#
- Probe inputs are safe to 5.5 V, hard-limited at 6.5 V absolute maximum (datasheet Section 7.1: V_I range −0.5 to 6.5 V; recommended V_I 0 to 5.5 V regardless of VCC). 3.3 V and 5 V logic DUTs are in scope. 12 V, 24 V, automotive, or mains-adjacent nodes are out of scope: LVC 5 V tolerance works by omitting the positive input clamp diode, so the 1 kΩ series resistor does not save the input above 6.5 V — there is nothing to clamp into.
- Negative excursions are clamped by the input diode to GND; abs max input clamp current I_IK is −50 mA at V_I < 0. The 1 kΩ series resistor keeps a −5 V miswire to roughly (5 − 0.5)/1 k ≈ 4.5 mA — safe, but not a license to probe negative rails deliberately.
- 1.8 V and 2.5 V DUT logic is not reliably captured: V_IH min is 2.0 V at VCC 2.7–3.6 V, so a 1.8 V high never registers and a worst-case 2.5 V CMOS high (V_OH min ≈ 2.0 V) sits exactly on the threshold.
- The FPGA host must never drive the CH0–CH7 PMOD pins. ~OE is tied low, so the A port is always driven; abs max on a driven output is VCC + 0.5 V and contention through the 100 Ω resistors (~33 mA at 3.3 V) approaches the ±50 mA continuous-output abs max. The capture HDL must configure all eight pins as inputs before the pod is attached.
- Probe grounds (J2 pins 9/10) connect to board GND, which connects to host GND. Earth-referenced oscilloscope grounds and DUT grounds must be common — a DUT floating at an offset from host ground will pass current through the probe ground leads.
- The datasheet requires input transition rates of 10 ns/V or faster and the LVC245A has no Schmitt-trigger inputs: very slow or noisy DUT edges can cause output oscillation or multiple transitions, and an input held near threshold draws up to 500 µA extra supply current (ΔI_CC). This is a data-quality boundary, not a damage boundary.
- Standalone bench work uses a current-limited 3.3 V supply (limit ~50 mA; worst realistic dynamic draw is under ~20 mA, static under 0.5 mA).
- A clean capture of one known signal is not a timing certification; skew and bandwidth numbers below are calculated, and the module is unverified.
3. Power and control sequence#
There is no sequencing logic; the pod is combinational from power-up.
- 3V3 and GND arrive on PMOD pins 6/12 and 5/11. C1 (100 nF) decouples U1 and C2 (1 µF) provides module bulk at the plug. The PMOD spec budgets roughly 100 mA per module — this pod uses a small fraction of it.
- DIR (tied to GND) selects B-to-A propagation; ~OE (tied to GND) enables the A-port outputs. Both are hardwired: the pod has no control inputs.
- With no probes attached, R1–R8 (100 kΩ) hold every PROBEx tip at GND, so every buffer input is at a legal static level (the datasheet requires unused inputs held at VCC or GND) and every CHx PMOD pin idles low.
- Any level applied to a probe tip propagates through the 1 kΩ series resistor, the transceiver (t_pd ≤ 6.1 ns at 3.3 V, 25 °C), and the 100 Ω output resistor to the PMOD pin as a 3.3 V CMOS level.
- Because I_off supports partial-power-down, a powered 5 V DUT connected to an unpowered pod leaks only ±1 µA typical into the inputs — a hot DUT does not back-power the pod.
4. Interfaces and pin maps#
| PMOD pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Net | CH0 | CH1 | CH2 | CH3 | GND | 3V3 | CH4 | CH5 | CH6 | CH7 | GND | 3V3 |
All eight signal pins are module-driven (pod-to-host). The README and script label this "PMOD Type 1 (GPIO)"; in Digilent Pmod Interface Specification 1.2.0 the 12-pin 8-signal GPIO interface is formally Type 1A (Expanded GPIO) — Type 1 is the 6-pin variant. Functionally identical here, but the documentation should adopt the spec's name (discrepancy flagged in Section 12).
| J2 pin | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| Net | PROBE0 | PROBE1 | PROBE2 | PROBE3 | PROBE4 | PROBE5 | PROBE6 | PROBE7 | GND | GND |
Per-channel resistor mapping (channel i = 0–7):
| Channel | Pull-down 100 kΩ | Series 1 kΩ | Output 100 Ω | Nets |
|---|---|---|---|---|
| CHi | R(i+1) | R(i+9) | R(i+17) | PROBEi → CHi_IN → U1 B → CHi_BUF → CHi |
| CH0 | R1 | R9 | R17 | example row |
| CH7 | R8 | R16 | R24 | example row |
5. Component-by-component review#
Every reference designator in generate_design.py appears below. There are no DNP parts and no jumpers in this design. #FLG01 and #FLG02 are ERC power-flag pseudo-components on 3V3 and GND; they have no physical footprint and are listed only for completeness.
| Ref. | Part / value | Function and why needed | If absent/open | If shorted, wrong, or misassembled |
|---|---|---|---|---|
| J1 | 12-pin PMOD plug (Type 1A GPIO, all module-driven) | Host power and the eight buffered channel outputs | No power, no capture | Offset insertion puts 3V3 on channel pins; the 100 Ω output resistors limit the resulting contention current |
| J2 | 2x05 vertical 2.54 mm pin header (MPN TBD, shrouded preferred) | Probe pod: pins 1–8 = CH0–CH7 tips, 9/10 = probe grounds | No probe access | Miscounting pins lands a signal on a ground pin (dead channel, DUT sees a short to pod GND through the probe lead) |
| U1 | TI SN74LVC245APWR, TSSOP-20 (PW) | Octal transceiver, DIR = GND (B→A), ~OE = GND (enabled) — the entire module function | No outputs | Rotated package scrambles all nets; a solder open on DIR or ~OE leaves a floating CMOS control input — direction or enable becomes erratic (both pins must be verified tied to GND) |
| R1–R8 | 100 kΩ 0603 (Yageo RC0603FR-07100KL) | Per-channel idle pull-down at the probe tip: defined low when floating, satisfies the "unused inputs at VCC or GND" datasheet rule | Floating input: oscillation, ΔI_CC up to 500 µA/input, phantom edges in captures | Too small loads the DUT (Section 7: 100 k draws 33–50 µA); a short grounds the probe tip and the DUT node behind it |
| R9–R16 | 1 kΩ 0603 (Yageo RC0603FR-071KL) | Per-channel series fault-current limit from hot/miswired DUTs into the 5 V-tolerant input; limits negative clamp current to ~4.5 mA at −5 V | Direct tip-to-pin connection: negative faults hit the −50 mA I_IK limit sooner | Too large degrades bandwidth (Section 7: 1 k × ~8 pF already sets ~20 MHz); a short is the absent case |
| R17–R24 | 100 Ω 0603 (Yageo RC0603FR-07100RL) | Series protection on each module-driven CH line (lab-line rule); limits contention current if the host misconfigures a pin as output (~33 mA at 3.3 V) and damps the trace | Direct output-to-host connection; contention stresses U1 (±50 mA abs max) | Too large forms a divider with host loading and slows edges; 100 Ω into ~10 pF is negligible (~1 ns) |
| C1 | 100 nF 16 V X7R 0603 (Murata GRM188R71C104KA01D) | U1 supply decoupling for simultaneous-switching transients (8 outputs, C_pd = 45 pF/transceiver) | Ground bounce and output glitching when several channels switch together | Short kills the rail (bench current limit should catch it) |
| C2 | 1 µF 10 V X7R 0603 (Murata GRM188R71A105KA61D) | Module bulk decoupling at the PMOD plug | More rail droop on bursts; marginal, not fatal | Same as C1 |
| #FLG01/#FLG02 | ERC power flags (3V3, GND) | Schematic ERC bookkeeping only | ERC warnings | Not applicable; no physical part |
6. Datasheet summary and design interpretation#
Consulted: TI SN74LVC245A datasheet SCAS218X (January 1993 – revised January 2015), <https://www.ti.com/lit/ds/symlink/sn74lvc245a.pdf>, product page <https://www.ti.com/product/SN74LVC245A>; Digilent Pmod Interface Specification 1.2.0 (revised October 5, 2017), <https://digilent.com/reference/_media/reference/pmod/pmod-interface-specification-1_2_0.pdf>. Both documents were fetched and read directly for this review.
| Manufacturer fact (SCAS218X) | Board-specific interpretation |
|---|---|
| VCC 1.65–3.6 V; "Inputs Accept Voltages to 5.5 V"; recommended V_I 0–5.5 V at every VCC row; abs max V_I = 6.5 V | The load-bearing selection fact: at VCC = 3.3 V the B-port probe inputs legally sit at 5 V DUT levels. 5.5 V is the recommended ceiling, 6.5 V the absolute one — no PGA-style escape hatch exists above that |
| Abs max V_O = 6.5 V only in the high-impedance or power-off state; a driven output is limited to VCC + 0.5 V; I_O ±50 mA; ±100 mA through VCC/GND | Because ~OE is tied low the A port is never high-impedance: the host must never drive CH0–CH7 above 3.8 V or at all. The 100 Ω resistors cap contention at ~33 mA — survivable, not sanctioned |
| I_IK = −50 mA (V_I < 0); inputs have a GND clamp but no clamp to VCC (that is how 5 V tolerance works) | The 1 kΩ series resistors are sized for negative faults (~4.5 mA at −5 V); above +6.5 V they limit current into breakdown, which is damage mitigation, not protection |
| V_IH min 2.0 V, V_IL max 0.8 V at VCC 2.7–3.6 V | 3.3 V CMOS, 5 V CMOS, and 5 V TTL DUTs all satisfy V_IH; 1.8 V logic never does and 2.5 V CMOS is marginal — documented as out of scope |
| t_pd (A/B to B/A) at 3.3 V ± 0.3 V: 3.8 ns typ, 6.1 ns max (25 °C); 6.3 ns max −40–85 °C; t_sk(o) ≤ 1.5 ns; test load 50 pF/500 Ω | Channel-to-channel skew of the pod silicon is ≤ 1.5 ns; absolute delay cancels in single-pod captures. See Section 7 for the capture-rate derivation |
| Δt/Δv input transition rate ≤ 10 ns/V; no Schmitt inputs; ΔI_CC = 500 µA max per input at V_I = VCC − 0.6 V | Slow DUT edges (> ~33 ns for a 3.3 V swing) are out of spec: expect chatter in captures, not damage. The 100 k pull-downs keep idle inputs at a rail, which is the case the rule most often catches |
| I_CC ≤ 10 µA (−40–85 °C); I_off ≤ ±1 µA typ at V_I/V_O = 5.5 V, VCC = 0; C_i = 4 pF (control), C_io = 5.5 pF (A/B ports); C_pd = 45 pF per transceiver at 3.3 V, outputs enabled | Static draw is microamps; dynamic draw is C_pd- and load-dominated (Section 7). I_off means a hot 5 V DUT on an unpowered pod leaks ~1 µA — safe attach order either way |
| I_OH/I_OL ±24 mA at VCC = 3 V; V_OH ≥ VCC − 0.2 V at ±100 µA, ≥ 2.3 V at −24 mA; V_OL ≤ 0.1 V at 100 µA, ≤ 0.55 V at 24 mA | Into an FPGA input (CMOS, ~µA) through 100 Ω the outputs swing rail-to-rail: a 5 V input high emerges as a ~3.3 V high, which is the whole point of the pod |
| DIR: high = A→B, low = B→A; ~OE low = enabled (Pin Functions table); PW pinout: 1 DIR, 2–9 A1–A8, 10 GND, 11–18 B8–B1, 19 ~OE, 20 VCC | Script ties DIR and ~OE to GND, probes on B, PMOD on A — direction sense confirmed against the datasheet table |
| ESD: HBM 2000 V, CDM 1000 V; latch-up > 250 mA per JESD 17 | Probe tips are human-handled by design; HBM 2 kV plus the 1 kΩ series resistor is the entire ESD story — no external TVS is fitted (open risk, Section 12) |
Pmod Interface Specification 1.2.0 facts used: host supplies 3.3 V on pins 6/12 with GND on 5/11; module budget ~100 mA; signals are LVCMOS/LVTTL 3.3 V; standard host ports typically add their own 200 Ω series resistors and ESD diodes (in series with this pod's 100 Ω — harmless at FPGA input currents); the 12-pin 8-signal GPIO assignment is Type 1A. Check the latest revisions of both documents before procurement.
7. Expected values before bench testing#
Targets assume VCC = 3.300 V and 1% resistors. All are design targets, not measured results.
DC probe loading on the DUT. The tip network is 100 kΩ to GND in parallel with (1 kΩ + input leakage). Input leakage is ±1 µA typ (±5 µA at 85 °C), so the DC load is the pull-down: I = V/100 k = 33 µA at 3.3 V, 50 µA at 5 V per channel. A DUT source impedance R_s droops the high level by R_s/(R_s + 100 k): 1% (33 mV) at R_s = 1 kΩ — negligible for logic. Leakage through the 1 kΩ series resistor offsets the buffer input by at most 1 k × 5 µA = 5 mV.
Input RC bandwidth. The 1 kΩ series resistor drives the buffer input node: C_io = 5.5 pF plus an estimated ~2.5 pF pad/trace = ~8 pF, so τ = 1 k × 8 p = 8 ns, f−3dB = 1/(2πRC) = 1/(2π × 1 k × 8 p) ≈ 20 MHz, and 10–90% rise ≈ 2.2τ ≈ 18 ns. Probe-lead capacitance (~50–100 pF/m of flying lead) sits on the DUT side of the 1 kΩ and is charged by the DUT itself: a DUT with R_s = 100 Ω into a 50 pF lead adds τ ≈ 5 ns. The output side (100 Ω × ~10 pF FPGA pin + trace = 1 ns, ~160 MHz) is negligible.
Maximum capture rate. The pod is a buffer; the FPGA host is the sampler. The pod's silicon contributes t_pd ≤ 6.1 ns absolute delay (cancels within one pod) and t_sk(o) ≤ 1.5 ns channel-to-channel skew; the input RC adds ~18 ns rise plus a skew contribution from component tolerance (1% resistors, ±1 pF capacitance spread ≈ ±1 ns), so plan on ±2–3 ns channel-to-channel timing uncertainty. Fidelity is set by the ~20 MHz input pole: requiring a pulse to reach ≥ 90% amplitude means pulse widths ≥ ~2 × 18 ns ≈ 40 ns, i.e. signals with toggle rates up to roughly 10–12 MHz (square-wave fundamental) pass with clean levels; treat ~20 MHz as the hard fidelity ceiling. An FPGA sample clock of 100 MHz (10 ns resolution) comfortably oversamples everything the analog path can deliver; sampling faster than ~200 MHz buys nothing through this front end.
| Quantity | Design target / calculated | What to measure |
|---|---|---|
| Static supply current, probes idle | ≤ 10 µA device; < 0.1 mA module | Bench supply, standalone context |
| Dynamic supply current, 8 ch at 10 MHz | ~(45 p + 10 p) × 3.3 × 10 M × 8 ≈ 15 mA | Same, worst-case burst |
| Idle level, every PROBEx and CHx | 0 V (100 k pull-down) | DMM, no probes attached |
| Probe tip to GND resistance | 100 kΩ ± 1% per channel | Ohmmeter at J2 |
| Probe tip to U1 B-pin resistance | 1 kΩ ± 1% per channel | Ohmmeter |
| U1 A-pin to PMOD pin resistance | 100 Ω ± 1% per channel | Ohmmeter |
| DC load on a 3.3 V DUT node | 33 µA per channel | µA meter in series with tip |
| DC load on a 5 V DUT node | 50 µA per channel | Same |
| CHx high with 3.3 V on the tip | ≥ 3.1 V (V_OH ≥ VCC − 0.2 at light load) | DMM at PMOD pin |
| CHx high with 5.0 V on the tip | ≥ 3.1 V — a 3.3 V CMOS high, never 5 V | DMM; the central 5 V-tolerance check (9.C) |
| CHx low with tip grounded | ≤ 0.1 V | DMM |
| Input threshold walk | Output flips between 0.8 V (V_IL max) and 2.0 V (V_IH min) | Bench supply sweep on one tip |
| Propagation delay, tip to PMOD pin | ~4–10 ns (3.8 ns typ silicon + RC) | Two-channel scope |
| 10–90% rise at PMOD pin, fast source | ~18–20 ns (input-RC dominated) | Scope, ≥ 200 MHz |
| Channel-to-channel skew | ≤ ~3 ns (1.5 ns silicon + RC spread) | Same edge into two tips |
| 3V3-to-GND resistance, unpowered | > 10 kΩ after C1/C2 settle | Ohmmeter |
8. Manual schematic and assembly review checklist#
- Confirm U1 orientation (pin 1 = DIR at the pin-1 marker) and the PWR suffix (TSSOP-20/PW, 0.65 mm pitch).
- Verify DIR (pin 1) and ~OE (pin 19) both read 0 Ω to GND — a solder open on either leaves a floating control input and erratic behavior.
- Verify VCC (pin 20) to 3V3 and GND (pin 10) to GND.
- Per channel: buzz J2 pin (i+1) → 100 kΩ to GND, 1 kΩ to U1 B-pin (B1–B8 = pins 18 down to 11), and U1 A-pin (A1–A8 = pins 2–9) → 100 Ω → PMOD pin (CH0–CH3 = 1–4, CH4–CH7 = 7–10). Confirm no channel swap: the three-resistor chain and the PMOD pin must agree on the channel number.
- Confirm J2 pins 9 and 10 are grounds, not channels.
- Check C1 placement close to U1 pin 20 during layout review (layout not yet started — carry forward), and matched-length probe/channel routing if the ±3 ns skew budget matters to the lab exercises.
- Confirm no solder bridges on the 0.65 mm TSSOP, especially adjacent channel pins (a bridge shows as two channels always reading identically).
- Confirm the PMOD plug is the right-angle 2x06 male per Pmod spec 1.2.0 and that the pin-1 end matches the host port keying.
9. Ordered bench-test procedure#
Stop at the first abnormal result. Record board serial, host identity, measured VCC, and the source equipment used for the known-signal tests.
Two bench contexts are used throughout: (a) PMOD host — plugged into a 3.3 V PMOD port on the ECP5 host (ULX3S-class), FPGA configured with all eight CHx pins as inputs (or left unconfigured for the early steps); (b) standalone — 3V3/GND wired from a current-limited bench supply (3.3 V, limit 50 mA) to PMOD pins 6/12 and 5/11, with a function generator on the probe tips and a scope on the CHx pins.
A. Unpowered inspection and resistance tests#
- Complete the checklist above under magnification.
- Measure 3V3-to-GND resistance in both polarities; investigate < 10 kΩ.
- Walk all eight channels with an ohmmeter: 100 k tip-to-GND, 1 k tip-to-B-pin, 100 Ω A-pin-to-PMOD-pin (Section 7 table).
- Confirm DIR and ~OE at 0 Ω to GND.
B. First power, no signals#
Standalone context (b) first: current limit 50 mA.
- Supply current < 0.5 mA with all probes floating.
- Every PROBEx tip and every CHx PMOD pin reads ~0 V (pull-downs working, no channel stuck high, no floating-input chatter on a scope).
- Measure VCC at U1 pin 20.
- Repeat the idle check in PMOD-host context (a) with the FPGA unconfigured, powered from the host port.
C. Static channel walk and the 5 V-tolerance check#
Standalone context. Drive one tip at a time from a bench supply through a DMM-verified source; scope or DMM the corresponding CHx pin.
- 3.3 V walk. Apply 3.3 V to each tip in turn: that CHx reads ≥ 3.1 V, all other channels stay at 0 V (crosstalk/bridge check). Ground the tip: CHx ≤ 0.1 V.
- 5 V tolerance (the design's central claim). Set the bench supply to 5.00 V with its current limit at 10 mA and apply it to one tip at VCC = 3.3 V:
- Source current ≈ 50 µA (the 100 k pull-down) — microamps, not milliamps, proving no input clamp to VCC is conducting.
- The CHx output reads ≥ 3.1 V — a 3.3 V CMOS high. It must never approach 5 V; 5 V on a CHx pin means a tip-to-output solder bridge and an FPGA-endangering fault. Stop immediately if seen.
- Supply current on the 3V3 rail stays in the static band (no ΔI_CC, since the input is above V_IH, not near threshold).
- Repeat on all eight channels. What is not demonstrated and must not be tried: tips above 5.5 V, negative supplies on tips, or driving the CHx outputs from outside.
- Threshold walk. Sweep one tip 0 → 3.3 V slowly (supply, not a slow ramp generator — see the transition-rate caveat): the output must be low at 0.8 V and high at 2.0 V. Record the actual toggle point (typ ~1.5 V). Note that a 1.8 V "high" correctly fails to register.
D. Dynamic single-channel tests#
Standalone context, function generator (50 Ω source) on one tip, ≥ 200 MHz scope on tip and CHx pin.
- 1 MHz square, 0–3.3 V: clean square out, t_pd ~4–10 ns, rise ~18–20 ns at the CHx pin (Section 7 math).
- Walk frequency to 10 MHz and 20 MHz: expect visible edge rounding by 20 MHz (the 1 k × 8 pF pole) but full-amplitude levels through ~10 MHz. Record the frequency where the output no longer reaches 90% amplitude — this is the pod's measured fidelity ceiling versus the ~20 MHz estimate.
- 0–5 V square at 1 MHz: output still swings 0–3.3 V (dynamic repeat of the tolerance check).
- Same edge into two tips (power splitter or short stubs): skew between the two CHx pins ≤ ~3 ns; repeat across channel pairs.
E. Instrument validation against a known source#
This is an instrument board: before the pod is trusted to debug anything, it must reproduce signals whose truth is established independently of the pod. PMOD-host context (a), with the la_capture + sump_uart bitstream (once written) and PulseView connected over the UART; until that HDL exists, a minimal FPGA design routing CHx to SignalTap-style capture or even to LEDs/counters is an acceptable interim stand-in — record which was used.
- Known-frequency square wave. Feed a calibrated generator (or a crystal-derived MCU clock output, frequency verified with a counter or scope first) at exactly 1.000 MHz into CH0. Capture at 100 MHz sample rate: period must read 1.000 µs ± 1 sample (10 ns), duty ~50%. Repeat at 100 kHz and 10 MHz.
- Known UART. Feed 115200-baud UART (8N1) from a crystal-derived MCU or calibrated generator into CH1, with a known repeating byte (e.g. 0x55, which toggles every bit). Verify with a scope first that the source bit time is 8.68 µs. In the capture: bit time 8.68 µs ± 1 sample, and PulseView's UART decoder (or manual decode) recovers the exact byte stream. Repeat at 9600 baud.
- Multi-channel coherence. Feed the same square wave into two channels and confirm the capture shows them edge-aligned within one sample.
- Only after 1–3 pass may the pod be used on unknown signals; a capture disagreeing with its source by more than one sample interval is an instrument failure, not a DUT observation.
F. Host-integration and soak tests#
- Probe a real 5 V DUT (e.g. a classic 5 V AVR SPI bus at ≤ 4 MHz) in PMOD-host context and verify a clean decode — the end-to-end use case.
- All-channel burst: 8 channels toggling at 10 MHz; module supply current ≈ 15 mA estimate (Section 7), no capture corruption.
- Hot-attach order checks: pod powered with hot 5 V DUT attached, and DUT hot with pod unpowered (I_off case) — both must be uneventful (< 10 µA leakage into the unpowered pod).
- Long-lead susceptibility (1 m flying leads, noisy DUT) and temperature are out of scope for the first article; note the ESD story is HBM 2 kV plus 1 kΩ only.
10. Troubleshooting map#
| Symptom | First measurements | Likely areas |
|---|---|---|
| One channel always low | Tip-to-B-pin resistance (1 k), B-pin voltage with tip driven | R(i+9) open, TSSOP solder open, wrong J2 pin counted |
| One channel always high | Tip voltage floating? 100 k to GND present? | R(i+1) open (floating input), bridge to a neighbor |
| Two channels read identically | Drive them separately | TSSOP solder bridge on adjacent A or B pins |
| All channels dead | VCC pin 20, ~OE pin 19, DIR pin 1 voltages | Power, ~OE not at GND (outputs tri-stated), U1 orientation |
| Channels swapped vs probe numbers | Ohm-walk the three-resistor chain | J2 numbering vs odd/even header convention, PMOD pin map |
| Output ~5 V with 5 V input | Stop. Tip-to-CHx resistance | Tip-to-output bridge bypassing U1 — FPGA hazard |
| Chatter/multiple edges in captures | Scope the tip: slow or noisy edge? | Δt/Δv violation (no Schmitt inputs), long unshielded lead, floating probe mid-capture |
| Elevated supply current, idle | Which input sits mid-rail? | ΔI_CC from an input near threshold: broken pull-down or slow DUT node |
| Rounded edges above ~10 MHz | Compare tip vs CHx rise times | Expected: 1 k × ~8 pF input pole (Section 7), not a fault |
| Capture timing disagrees with known source | Repeat 9.E.1 with a counter-verified source | FPGA sample-clock constraint/PLL error before suspecting the pod |
| Hot 5 V DUT back-powers rail | Current into unpowered pod | Should be ~µA (I_off); more indicates a bridge or wrong part |
11. Bench record template#
| Field | Record |
|---|---|
| Board revision / serial | |
| Host context (PMOD FPGA / standalone) and IDs | |
| Capture design used (la_capture+sump_uart / interim) | |
| Measured VCC | |
| Per-channel resistance walk (8 x 3 values) | |
| Idle levels and static supply current | |
| 5 V-tolerance check: source current, CHx level, all 8 ch | |
| Threshold toggle point | |
| t_pd / rise / skew measurements | |
| Fidelity ceiling frequency (90% amplitude) | |
| Known-source validation: 1 MHz period, UART bit time, decode | |
| 5 V DUT end-to-end decode result | |
| Deviations, captures, raw-file paths | |
| Reviewer / date / disposition |
12. Review conclusion#
The design is a clean minimal buffer pod that puts its one important part-selection fact — LVC inputs accept 5.5 V regardless of VCC, verified here against SCAS218X — exactly where it belongs, and the three-resistor channel network is coherent: the 100 k pull-down satisfies the datasheet's unused-input rule and defines floating probes, the 1 k series resistor matches the negative-clamp current math, and the 100 Ω output resistors implement the lab line's module-driven rule while capping host-contention current. Direction and enable are hardwired to the only configuration the pod can meaningfully use, and everything in the README traces to the script except two items flagged here: the interface is formally PMOD Type 1A, not Type 1, in Digilent spec 1.2.0, and the PulseView/SUMP instrument claim depends on la_capture/sump_uart HDL that does not yet exist (the README own checklist concedes this). The principal open risks are that no PCB exists (layout, skew matching, and decoupling placement unverified), the J2 probe-header MPN is still TBD, the ~20 MHz input pole and ±3 ns skew budget are calculated rather than measured, ESD protection on human-handled probe tips is limited to the device's own HBM 2 kV rating plus 1 kΩ, inputs above 6.5 V or below −0.5 V remain genuinely destructive, 1.8 V logic is silently out of scope, and every number in this guide is derived from the datasheet rather than measured on hardware.