← AXS-026

Circuit review & bench-test guide

AXS-026 — Sound trigger PMOD module

Design-stage — board not yet fabricated

Document purpose#

This document explains the axs-026-sound-trigger PMOD module 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), the module README, the shared PMOD conventions in ../../pmod-common/PMOD-SPEC-NOTES.md, and the manufacturer datasheets cited in section 6.

This board is a schematic-complete prototype. It has NOT been laid out, fabricated, assembled, or bench-verified. Repository status: schematic generated, ERC clean (0 errors / 0 warnings), netlist reviewed; PCB layout not started. Every voltage, gain, timing, and threshold figure below is a design target computed from the schematic and the datasheets — it is evidence to verify on the first article, not proof that a board works.

1. What the board does#

An electret capsule feeds a MAX9814 microphone amplifier with automatic gain control (AGC) and a built-in low-noise microphone bias. The amplifier output is AC-coupled, re-biased to half-rail, and compared against a trimmer-set threshold by an LMV7219 push-pull comparator. The PMOD host sees a clean 3.3 V digital SOUND pulse on pin 1 (a GPIO edge-detect lesson, level L1) and the raw analog amplifier output on pin 2 (SOUND_RAW) for scope probing.

It has no ADC and no digital interface — the contract is a single GPIO edge plus one analog test signal. It does not measure loudness; it detects transients that cross the set threshold.

Functional block diagram#

 acoustic          MICBIAS (2.0 V)
 pressure               ^
    |                   | R1 2.2k
    v                   |
 MK1 electret ──MIC_P──┬── C1 100n ──> MICIN                     3V3
 capsule               |                  |                       |
                      GND          U1 MAX9814                R2 100k
                            (12 dB LNA + VGA + 8/18/28 dB)        |
                 JP1 gain strap ──> GAIN          AMP_OUT ── C6 ──┬── CMP_IN
                 C3 470n ─────────> CT  (attack/release)    1uF   |    |
                 A/R = GND (1:500)               (1.23 V bias) R3 100k |
                 TH = 3V3 (see 6.2!)                              |    v
                                                                 GND  U2 LMV7219 +in
                                                                       |
                 RV1 10k trimmer ── THRESH ──────────────> U2 -in      |
                                                            CMP_OUT ───┘
                                                               |
                              AMP_OUT ── R5 100R ──> J1 pin 2 (SOUND_RAW)
                              CMP_OUT ── R4 100R ──> J1 pin 1 (SOUND)

2. Safety and scope boundaries#

3. Power and signal path#

  1. 3V3 arrives on J1 pins 6/12, GND on pins 5/11. C7 (1 uF) + C8 (100 nF) bypass U1; C9 (100 nF) bypasses U2. U1 SHDN is tied to 3V3, so the amplifier is always enabled (datasheet: do not float SHDN).
  2. U1's internal MICBIAS regulator (2.0 V typical, 1.84–2.18 V) feeds the electret capsule through R1 (2.2 kΩ), the datasheet-recommended value. C2 (470 nF) bypasses MICBIAS.
  3. The capsule's audio signal on MIC_P is AC-coupled by C1 (100 nF) into MICIN (input impedance 100 kΩ typical), giving an input high-pass corner of about 15.9 Hz.
  4. U1 amplifies in three stages: fixed 12 dB LNA, AGC-controlled VGA (+20 dB down to 0 dB), and an output stage strapped by JP1/GAIN. Default JP1 1-2 bridged puts GAIN at GND = 50 dB overall (no compression). MICOUT sits at a 1.23 V DC bias (1.14–1.32 V).
  5. C3 (470 nF) on CT sets the AGC attack time (about 1.1 ms); A/R strapped to GND selects the 1:500 attack:release ratio (release about 550 ms); hold is fixed at 30 ms. TH is strapped to 3V3 — see the finding in section 6.2: this most likely disables the AGC entirely.
  6. C6 (1 uF) AC-couples AMP_OUT into CMP_IN, which R2/R3 (100 kΩ each) re-bias to half-rail (1.65 V nominal). The coupling corner into the 50 kΩ Thevenin bias impedance is about 3.2 Hz.
  7. U2 compares CMP_IN (+in) against THRESH (-in), the wiper of RV1 (10 kΩ trimmer across 3V3/GND). Push-pull output: SOUND is high while the audio instantaneously exceeds the threshold, with about 7 mV internal hysteresis. No pull-up is needed.
  8. R4 and R5 (100 Ω each) are series protection on both module-driven lines.

Why the comparator polarity matters#

+in is the signal and -in is the threshold, so with RV1 set above 1.65 V the idle SOUND state is LOW and sound transients produce HIGH pulses. If the trimmer is set below the 1.65 V bias point the output idles HIGH and pulses low — a legitimate configuration, but the HDL edge detector must know which polarity was chosen. Bench setup should record the wiper voltage explicitly.

4. Interfaces#

PMOD Type 1 (GPIO) per Digilent Pmod spec 1.2.0; pin 1 is the upper-row rightmost pin viewed from the module top with the connector toward you (see ../../pmod-common/PMOD-SPEC-NOTES.md).

PMOD pin123456789101112
NetSOUNDSOUND_RAWNCNCGND3V3NCNCNCNCGND3V3
Probe point (net)Expected role
MIC_PCapsule terminal: MICBIAS minus the drop across R1; audio millivolts ride on it
MICBIASU1 regulated 2.0 V microphone bias
AMP_OUTAmplifier output, 1.23 V DC bias plus amplified audio
CMP_INRe-biased audio at 1.65 V nominal half-rail
THRESHRV1 wiper, DC threshold
SOUNDDigital trigger output (via R4)
SOUND_RAWAnalog amplifier output (via R5)
GAINJP1 common: GND (default), 3V3, or floating

No dedicated test points exist yet — the PCB is not laid out. Add TPs for AMP_OUT, CMP_IN, THRESH, and GND during layout; until then probe the component pads above.

5. Component-by-component review#

5.1 Actives and the acoustic front end#

Ref.Part / datasheet summaryFunction and why neededIf absent/openIf shorted, wrong, or misassembled
MK1CUI CMC-4013-SMT-TR electret capsule: sensitivity -42 dB (1 V/Pa) typ, Vs 2.0 V standard (10 V max), Zout 2.2 kΩ, IDSS 0.5 mA max, 100 Hz–20 kHz, S/N 58 dBA. Datasheet is watermarked DISCONTINUEDConverts sound to an electrical signal; its internal JFET needs the R1/MICBIAS feedNo audio at all; AMP_OUT shows only noise at the 1.23 V biasReversed terminals ground the JFET drain — no output; a wrong capsule changes sensitivity and bias current. Procurement must find stock or a substitute before layout
U1MAX9814 (MAX9814ETD+T, TDFN-14): mic amp with AGC, 2.7–5.5 V, 3.1 mA typ, gain 40/50/60 dB, output bias 1.23 V, MICBIAS 2.0 V, attack = 2400 x C_CT, A/R ratio 1:500/1:2000/1:4000The entire analog gain chain plus the capsule bias supplyNo amplification and no MICBIAS — board deadWrong orientation on the TDFN is fatal; unsoldered EP degrades thermal/ground; a floating SHDN is forbidden by the datasheet (here it is tied to 3V3)
U2LMV7219 (LMV7219M5X, SOT-23-5): 7 ns comparator, 2.7–5 V, push-pull rail-to-rail output, about 7 mV internal hysteresis, V_OS 1 mV typ / 6 mV max, input CM range -0.2 V to VCC-1.2 VConverts analog transients into clean 3.3 V pulses; push-pull output needs no pull-upNo digital SOUND output (SOUND_RAW still works)Pin-1 rotation swaps OUT/V+; note the input common-mode ceiling: at 3.3 V supply the guaranteed range ends at about 2.1 V — see section 6.3

5.2 Bias, coupling, and AGC timing passives#

Refs.ValueFunctionIf omitted or wrong
R12.2 kΩCapsule bias feed from MICBIAS; the datasheet calls 2.2 kΩ "usually sufficient" and the CUI capsule is specified with RL = 2.2 kΩOpen: no capsule bias, no audio. Too small: less isolation of bias noise; too large: starves the JFET
C1100 nFAC-couples the capsule into MICIN; with Z_IN = 100 kΩ forms a 15.9 Hz high-passOpen: no signal path. Too small raises the audio low corner
C2470 nFMICBIAS bypass (datasheet typical application)More bias noise injected into the capsule, worse S/N
C3470 nFAGC attack/release timing on CT: attack about 1.1 ms, release about 550 ms at A/R = 1:500Open: fastest/undefined AGC timing; wrong value shifts both attack and release proportionally
C42.2 uFCG amplifier DC-offset capacitor ("connect 2.2 uF to ensure zero offset at the output")Output DC offset errors, distortion at low frequencies
C5470 nFBIAS pin bypass (internally buffered low-noise bias)Increased amplifier noise
C61 uFAC-couples AMP_OUT (1.23 V bias) to the comparator's 1.65 V bias point; 3.2 Hz corner into R2 parallel R3Open: comparator sees only the static 1.65 V — no trigger ever
R2, R3100 kΩ eachHalf-rail re-bias of the comparator +input (1.65 V nominal)Either open shifts the idle point to a rail and the comparator saturates; mismatched values shift the idle margin against RV1
C71 uFU1 V_DD bypass (datasheet typical application)Supply-coupled artifacts; datasheet requires bypassing
C8100 nFU1 V_DD high-frequency decouplingHF noise on the supply reaches the amplifier
C9100 nFU2 supply decouplingComparator output chatter/oscillation on transitions

5.3 Threshold, gain strap, protection, and connector#

Refs.Value / partFunctionIf omitted or wrong
RV1Bourns TC33X-2-103E 10 kΩ trimmerThreshold set: wiper 0–3.3 V to U2 -in. Wiper source impedance up to 2.5 kΩ against 500 nA bias current gives at most about 2 mV threshold errorOpen wiper floats -in — undefined trigger; end-stop settings park SOUND permanently high or low
JP13-pad solder jumper (DNP-class, not in BOM/POS)GAIN strap: 1-2 bridged = GND = 50 dB (default), 2-3 = VDD = 40 dB, open = 60 dB — matches the datasheet trilevel GAIN pin exactlyBoth sides bridged shorts 3V3 to GND through the jumper — inspect before power; open (60 dB) raises noise and trigger sensitivity
R4100 ΩSeries protection on module-driven SOUND (line-rule for all module-driven PMOD pins)Open: no digital output; short: loses miswiring protection only
R5100 ΩSeries protection on module-driven SOUND_RAWOpen: no analog monitor output
J112-pin right-angle PMOD plug 2x6Host interface, 3.3 V onlyMis-keyed insertion swaps power and signals — verify pin-1 orientation against PMOD-SPEC-NOTES before first power
#FLG01/02power flagsERC bookkeeping only, no physical partn/a

6. Datasheet summary and design interpretation#

Datasheets actually fetched and read for this review (retrieved 2026-07-14):

6.1 Verified key figures used in this guide#

DeviceManufacturer figure (verified in the fetched datasheet)Board interpretation
MAX9814Amplifier output bias 1.23 V typ (1.14–1.32 V); MICBIAS 2.0 V typ (1.84–2.18 V), sources up to 20 mAAMP_OUT DC and MICBIAS DC are the two first-power checks
MAX9814GAIN = GND -> 50 dB (49.5–50.6), = VDD -> 40 dB, unconnected -> 60 dB; VGA range +20 to 0 dB (max AGC attenuation 20 dB)JP1 default 1-2 = 50 dB; compression, when enabled, spans at most 20 dB
MAX9814Attack time constant 2400 x C_CT; Table 2: C_CT = 470 nF -> t_ATTACK 1.1 ms, t_RELEASE 550 ms (A/R = GND, 1:500); hold fixed 30 msC3 = 470 nF and A/R = GND are exactly this table row
MAX9814Regulated output level 1.40 Vp-p typ with V_TH = 0.7 V (spec row); AGC clamps output to 2 x V_TH; "To disable AGC, connect TH to MICBIAS"See finding 6.2 — the board's TH strap does not match any datasheet configuration
MAX9814Max output 0.707 V_RMS (about 2 Vp-p) at 1% THD; Z_IN 100 kΩ; min load 5 kΩ; max capacitive drive 200 pF; e_n 30 nV/rtHzSets the expected clipping ceiling on SOUND_RAW and the probe-loading rule
LMV72197 ns t_PD; push-pull output; V_HYST about 7 mV; V_OS 1 mV typ / 6 mV max; rise/fall 1.3/2.5 ns (5 V figures)Expect very fast SOUND edges; hysteresis alone will not stop pulse bursts on audio
LMV7219Input common-mode range -0.2 V to V_CC - 1.2 V guaranteed (CMRR > 50 dB)At 3.3 V, guaranteed CM ends at 2.1 V — see 6.3
CMC-4013Sensitivity -42 dB re 1 V/Pa; standard Vs 2.0 V with RL 2.2 kΩ; IDSS 0.5 mA maxThe MICBIAS/R1 feed matches the capsule's specified measurement circuit

6.2 FINDING — TH strapped to 3V3 probably disables the AGC#

The schematic ties TH to 3V3. Per the datasheet, the AGC engages when the output exceeds 2 x V_TH peak-to-peak, and V_TH is meant to be set by a resistive divider from MICBIAS (typical application: 150 kΩ/100 kΩ from the 2 V MICBIAS gives V_TH = 0.8 V, clamping at 1.6 Vp-p). With V_TH = 3.3 V the clamp level would be 6.6 Vp-p — unreachable on a 3.3 V supply where the output can swing at most about 2 Vp-p (and V_OH is 2.45 V typical). The documented way to disable AGC is TH = MICBIAS; TH = VDD is not a documented configuration. Expected consequence: no compression at all — the board would behave as a fixed 50 dB amplifier that clips on loud input, which contradicts the README's stated operating principle ("AGC keeps the audio level roughly constant"). Bench step D below tests exactly this. If no compression is observed, rework TH to a divider from MICBIAS (e.g., the datasheet's 150 kΩ/100 kΩ) and update generate_design.py before layout.

6.3 Secondary review notes#

7. Expected values before bench testing#

All values are design targets computed from the schematic and datasheets.

QuantityDesign target / calculated rangeWhere to measure
Supply current at 3.3 V, quietabout 4–5.5 mA (U1 3.1 typ/6 max mA + U2 0.9 typ/1.6 max mA + capsule <=0.5 mA)Bench supply readout
MICBIAS2.0 V typ, 1.84–2.18 VMICBIAS net vs GND
MIC_P DCMICBIAS minus IDSS x 2.2 kΩ: roughly 0.9–1.9 V depending on capsule current (unverified — capsule IDSS is spec'd only as <=0.5 mA)MIC_P vs GND
AMP_OUT DC bias1.23 V typ, 1.14–1.32 VAMP_OUT (or J1 pin 2 through R5)
CMP_IN DC bias1.65 V nominal (3V3/2), +/- resistor tolerance and 3V3 accuracyCMP_IN
Voice-band gain, JP1 default50 dB (49.5–50.6 dB) with AGC inactiveCalibrated tone into a reference SPL, or relative electrical injection
Clipping ceiling on AMP_OUTabout 2 Vp-p (0.707 V_RMS at 1% THD)Scope on SOUND_RAW with loud input
AGC attack / release / hold1.1 ms / 550 ms / 30 ms — ONLY if TH is reworked per 6.2Scope envelope on SOUND_RAW
Comparator tripSOUND rises when CMP_IN > THRESH; e.g. wiper at 1.95 V trips at +300 mV audio peak (= 1.95 - 1.65)THRESH DC + scope on CMP_IN/SOUND
Hysteresisabout 7 mV at the comparator inputSlow ramp test if disputed
SOUND logic levelsV_OL < 0.2 V, V_OH > 3.0 V into a light load (rail-to-rail push-pull minus R4/host 200 Ω drop at logic loads is negligible)DMM/scope on J1 pin 1
Idle SOUND stateLOW with THRESH set above 1.65 V + noise floorJ1 pin 1

8. Manual schematic and assembly review checklist#

9. Ordered bench-test procedure#

Bench context: either (a) a PMOD host — AruviX ECP5 rev-A or any 3.3 V Digilent-compatible PMOD socket — with a scope/logic analyzer on pins 1–2, or (b) a bench 3.3 V current-limited supply wired to J1 pins 6/12 (3V3) and 5/11 (GND) plus DMM and 2-channel scope. Stop at the first abnormal result and record everything with board serial, equipment IDs, and operator.

A. Unpowered inspection and resistance#

  1. Complete the checklist in section 8.
  2. Measure 3V3-to-GND resistance in both meter polarities; investigate anything under about 10 kΩ before power.
  3. Verify RV1 end-to-end reads about 10 kΩ and the wiper sweeps smoothly.

B. First power and DC bias survey (quiet room)#

  1. Apply 3.3 V with a 50 mA current limit (bench supply first if available).
  2. Record supply current: expect about 4–5.5 mA; investigate above 10 mA.
  3. DMM survey against the section 7 table: MICBIAS (1.84–2.18 V), MIC_P (roughly 0.9–1.9 V), AMP_OUT DC (1.14–1.32 V — this is the datasheet's exact 1.23 V typical output-bias check), CMP_IN (about 1.65 V), THRESH (wiper position).
  4. Scope SOUND_RAW: quiet-room trace is the 1.23 V bias with millivolt noise/room pickup. Speaking should visibly modulate it.

C. Threshold setup and static trigger check#

  1. Set RV1 so THRESH reads 1.90–1.95 V (about 250–300 mV above the CMP_IN bias — comfortably above noise, inside the 2.1 V CM ceiling).
  2. Confirm SOUND (J1 pin 1) idles LOW and is glitch-free in a quiet room for at least 60 s.
  3. Speak loudly near the capsule: SOUND must emit pulse bursts. Measure V_OL/V_OH at the pin.
  4. Sweep RV1 downward until room noise just triggers, note that wiper voltage, then set the operating point above it with margin. Record both.

D. MAX9814 AGC verification (output amplitude vs input level)#

This step doubles as the test of finding 6.2. The AGC, if active, holds the output envelope near a clamp level; if inactive, output scales linearly with input until clipping near 2 Vp-p.

  1. Scope SOUND_RAW, AC-coupled, 200 ms/div to see envelopes.
  2. Speak softly at a fixed distance (about 30 cm); record the envelope amplitude. Speak loudly at the same distance; record again.
  3. Interpretation: a level difference much smaller than the obvious acoustic difference (compression) means the AGC is engaging — unexpected with TH = 3V3. A proportional level difference ending in visible clipping at about 2 Vp-p means the AGC is NOT engaging — the predicted outcome, which confirms finding 6.2 and requires the TH rework before the module's stated behavior is true.
  4. AGC attack/release timing (run after the TH rework, with a divider from MICBIAS setting V_TH): play a sudden loud tone burst on top of a quiet background. Expect the datasheet strapping values for C_CT = 470 nF and A/R = GND: gain reduction settling in about 1.1 ms (attack), output held for the fixed 30 ms hold, then gain recovering over about 550 ms (release, 1:500 ratio). Capture one envelope showing all three phases.
  5. Repeat step 2 after the rework and verify the loud/soft envelope difference is now compressed (up to 20 dB of VGA range).

E. Clap test (transient trigger, two-channel capture)#

  1. Scope CH1 on SOUND_RAW (or CMP_IN), CH2 on SOUND (J1 pin 1). Single-shot trigger on CH2 rising edge, 10 ms/div, threshold from step C (wiper about 1.9 V, i.e. trip at about +250 mV audio peak).
  2. Clap once about 1 m from the capsule. Expected capture: CH1 shows a sharp transient reaching or clipping at the about 2 Vp-p ceiling and ringing down over tens of ms; CH2 shows a BURST of fast pulses — one pulse per positive threshold crossing, individual pulses tens of microseconds to a few milliseconds wide, the burst lasting roughly as long as CH1 stays above threshold (typically 5–50 ms). A single clean wide pulse is NOT the raw behavior; debouncing/pulse-stretching is the FPGA lesson.
  3. Verify pulse edges are clean (LMV7219 rise/fall is nanoseconds; expect some ringing on an unmatched probe — use short ground springs).
  4. Repeat at 3 m and with soft finger snaps to bound the practical range at the chosen threshold. Record trip margin vs distance.
  5. If the TH rework was applied: clap twice 100 ms apart and observe the second response reduced by AGC gain reduction (release is 550 ms), a useful demonstration of why AGC changes re-trigger behavior.

F. Host integration (PMOD)#

  1. Move the module to the ECP5 host socket. Confirm pin-1 orientation before insertion.
  2. Run a GPIO edge-count design; verify clap bursts are counted and that a fabric debounce/stretch (for example 50 ms) yields one event per clap.
  3. Confirm SOUND_RAW on pin 2 still scopes correctly through the host socket's 200 Ω series resistor (expect negligible attenuation into a high-impedance probe).

10. Troubleshooting map#

SymptomFirst measurementsLikely areas
Supply current near zero3V3 at U1 pin 5, SHDN levelJ1 power pins, open 3V3 route, SHDN low/floating
Supply current way highthermal check U1/U2, JP1 padsJP1 double-bridge, solder short, reversed MK1
MICBIAS missing/lowMICBIAS pin direct, C2 short?U1 damaged/rotated, C2 short, R1 short to GND
AMP_OUT bias wrong (not 1.14–1.32 V)CG cap C4, output loadC4 wrong/missing, U1 EP unsoldered, load below 5 kΩ
Bias OK but no audio on SOUND_RAWMIC_P DC, wiggle test at capsuleMK1 dead/reversed, C1 open, R1 open
Audio on AMP_OUT but SOUND never firesCMP_IN DC, THRESH DC, C6C6 open, R2/R3 open (CMP_IN railed), RV1 wiper open, THRESH set above CMP_IN max swing
SOUND stuck highTHRESH below 1.65 V, U2 orientationRV1 setting, R3 open (CMP_IN pulled to 3V3), U2 rotated
SOUND chatters in silenceTHRESH margin vs noise floorThreshold too close to bias; C9 missing (comparator supply chatter); C7/C8 missing
No compression on loud inputTH strapExpected with TH = 3V3 — finding 6.2, rework required for AGC operation
Distorted/asymmetric audioAMP_OUT swing vs 2 Vp-p ceilingNormal clipping if AGC inactive; excessive gain (JP1 open = 60 dB); C4 wrong

11. Bench record template#

FieldRecord
Board revision / serial
JP1 strap state (1-2 / 2-3 / open) and TH configuration (as-drawn 3V3 or reworked divider)
Supply, DMM, scope IDs and calibration
Supply current at 3.3 V
MICBIAS / MIC_P / AMP_OUT / CMP_IN DC values
THRESH setting(s) used and noise-trigger floor
AGC test result (compression observed? attack/release captures)
Clap-test captures (file paths), pulse-burst duration, range bound
SOUND V_OL/V_OH
Host integration result (edge counts, debounce demo)
Deviations, photos, raw-file paths
Reviewer / date / disposition

12. Review conclusion#

The signal chain is coherent and closely follows the MAX9814 typical application: correct capsule bias (2 V through 2.2 kΩ), all five datasheet support capacitors present with the right values, a proper trilevel GAIN strap, a half-rail re-bias into a fast push-pull comparator, and series protection on both module-driven pins. Two findings gate release: (1) TH is strapped to 3V3, which is not a documented MAX9814 configuration and almost certainly disables the AGC that the module's concept depends on — rework TH to a divider from MICBIAS and re-verify compression on the bench; (2) the CUI CMC-4013-SMT capsule is discontinued, so a substitute must be qualified before layout. Secondary notes: keep the trimmer threshold at or below about 2.0 V to respect the LMV7219 common-mode ceiling at 3.3 V, and expect pulse bursts (not single pulses) on transients — the digital cleanup belongs in the FPGA. Nothing here is bench-verified yet; every number above is a target for the first article.