This page shows how comparators with built-in references/DACs turn power-on and protection thresholds into programmable, production-testable “numbers,” not guesswork.
It explains how to map codes to trip points, budget worst-case error (Vref + DAC + offset + leakage), and design the front-end/output so thresholds stay stable from bring-up to temperature and mass production.
What this page solves
Built-in reference/DAC comparators turn “a fixed threshold” into a programmable limit:
power-on windows, UVLO/OVP points, multi-level alarms, and field-adjustable thresholds—without adding an external precision reference and threshold generator.
This page focuses on when to choose this class, what it replaces, and what it cannot replace.
Three solution paths (and what they optimize)
External reference + comparator:
maximum control over accuracy and filtering, but higher BOM/area and more sources of drift/leakage.
Supervisor:
simplest “good-enough” fixed (or limited) thresholds with reset/PG timing, but limited flexibility and fewer programmable levels.
Built-in reference + DAC comparator:
thresholds become firmware/strap-configurable; best for multi-SKU products, field tuning, and compact window/limit functions.
Choose this class when…
Thresholds must be programmable (CODE/strap/OTP) across product variants or field updates.
More than one alarm level is needed (multi-level battery, staged fault response, multi-point compliance).
A real window is required (valid-power band, brown-in/out with hysteresis).
BOM/area must drop versus “external Vref + ladder/DAC + comparator,” while keeping thresholds repeatable.
Production/bring-up benefits from fast “code sweep → measured trip curve → binning” workflows.
Not a fit (avoid wrong expectations)
Ultra-low edge jitter / ns-class timing pick-off:
use high-speed/latched comparator families (this page does not cover that path).
Absolute threshold accuracy dominated by external physics (very high source impedance, leakage, contamination):
the front-end network becomes the limit unless redesigned.
Reading tip:
Built-in reference/DAC comparators reduce external parts while keeping thresholds configurable; accuracy then depends on the internal reference/DAC plus the front-end divider network and leakage control.
Definition & taxonomy: what “built-in reference” really means
“Built-in reference” can mean two very different products. The practical difference is whether the device provides
a programmable threshold generator (internal DAC/ladder) or only a stable reference that still requires an external threshold network.
Use the checks below to avoid selecting the wrong class.
Two “built-in reference” forms
Type A: Precision Vref only
A reference is provided (sometimes on a pin), but the threshold is still set by an external divider/network.
Datasheets often lack a CODE → VTH table or programmable threshold registers.
Best when a stable reference is needed elsewhere and the comparator threshold is fixed or rarely changed.
Type B: Vref + internal DAC / ladder (programmable thresholds)
Thresholds are created internally and applied directly to the comparator input path.
Datasheets provide tap/code mapping, resolution, INL/DNL, and sometimes window/multi-level modes.
Best for multi-SKU limits, field tuning, multi-point alarms, and windowed power qualification.
Quick datasheet checks (to classify the device in minutes)
Is there a CODE/tap table? Look for “threshold code,” “ladder taps,” or “DAC output step.”
Is INL/DNL specified? If yes, a DAC/ladder likely exists in the threshold path.
Are window or multi-level modes described? That usually implies two thresholds or a programmable limit engine.
Is Vref exposed as a pin or internal-only? A Vref pin is helpful but does not guarantee programmable thresholds.
Terminology map (each spec “lands” on a different part of the threshold chain)
Vref accuracy / TC / long-term drift: sets absolute threshold stability across temperature and life.
DAC resolution: sets the smallest programmable step (does not guarantee linearity).
INL/DNL: governs monotonicity and code-to-threshold linear behavior (critical for consistent windows and multi-level alarms).
Comparator offset / drift: shifts the effective trip point even with a perfect reference and DAC.
Hysteresis (VHYS): trades noise immunity against usable accuracy and window tightness.
Practical takeaway:
A “Vref pin” does not automatically mean programmable thresholds. Look for code/tap mapping and INL/DNL to confirm that the threshold path is internally generated.
Internal architecture map (block-level)
Built-in reference/DAC comparators add a threshold engine inside the IC. Knowing the internal blocks makes it clear
where threshold error, noise/chatter, and startup settling actually come from.
Edge/noise toggling near threshold → hysteresis/filtering insufficient or supply/ground bounce at comparator core.
Design reading:
Vref and the threshold engine set the programmable trip-point; comparator offset/drift and the external divider/leakage determine how closely the real trip follows the programmed value.
Threshold programming modes & math (single / window / multi-level)
Threshold programming is usually one of two templates: internal DAC/ladder (CODE → VTH) or
Vref + external divider (R ratio sets the trip). The same building blocks can implement a single limit, a window, or multiple alarm levels.
Validate quickly: sweep code/taps and measure actual trip points to confirm monotonicity and drift.
Mode organization (single / window / multi-level)
Single threshold: UVLO/OVP trip; add VHYS or time qualification to prevent chatter near the limit.
Window: independent VL and VH codes/taps; output is “IN_WINDOW” (logic AND of above-VL and below-VH).
VWINDOW = VH − VL
Multi-level: multiple thresholds create staged alarms (ALARM1/2/3) or a level code (LEVEL[ ]); ensure spacing exceeds error + VHYS.
Integration note:
Window and multi-level designs stay stable only when level spacing (or window width) is larger than expected threshold error, noise, and hysteresis.
Accuracy model: worst-case threshold error budget
A programmable threshold is only useful if the worst-case trip point is predictable. The budget below turns datasheet fields
into a single number: the guardband that must be reserved around every threshold or window.
Worst-case workflow (repeatable and production-friendly)
Define the target: VTH, window [VL, VH], or level spacing ΔV.
Choose the mapping: internal DAC/ladder (CODE → VTH) or Vref + divider (R ratio).
Convert each spec to an equivalent ΔVTH: Vref, DAC, offset, leakage, noise.
Sum for worst-case: Guardband ≈ |ΔVref| + |ΔVdac| + |ΔVos| + |ΔVleak| + Vjitter_margin.
Program with margin: VTH_programmed = VTH_target ± Guardband (or widen the window/spacing).
Equivalent: ΔVTH_os ≈ VOS_equiv (as seen at the comparator inputs).
Quick check: if offset changes with temperature similarly at all codes, offset/drift is a prime candidate.
4) Bias/leakage × source/divider resistance
Equivalent: ΔV ≈ I_bias_or_leak × R_source_equiv (then mapped by the divider topology).
Quick check: scale divider resistors 10×; if the trip shifts, leakage/bias is dominating.
5) Noise / ripple → threshold jitter (effective)
Equivalent: Vjitter_eq ≈ Vnoise_rms mapped to the threshold node (plus supply/ground bounce).
Quick check: if Vpp ripple near threshold rivals VHYS or guardband, toggling is expected.
When external precision reference or calibration becomes mandatory
Very tight relative tolerance:
when the target requires sub-percent threshold error across temperature and life, and the summed worst-case budget cannot fit.
High-impedance front ends:
if divider/source resistance must be high (MΩ-class) and contamination/leakage cannot be guaranteed, I×R drift dominates unless guarded or recalibrated.
Narrow windows / dense levels:
if VWINDOW or ΔV_level cannot exceed 2×Guardband + VHYS + ripple margin, widen spacing or add calibration/external reference.
How to use the chart:
identify the largest contributors first; reducing one dominant term often improves accuracy more than “optimizing everything a little.”
Hysteresis, noise immunity, and slow-ramp chatter control
The most common field failure mode is repeated toggling near the threshold: slow ramps plus noise and ripple.
Stabilizing the decision requires an explicit choice: hysteresis, RC shaping, or time qualification.
Built-in hysteresis vs external hysteresis (control vs accuracy)
Built-in VHYS
Simple and repeatable; no extra resistor network.
VHYS range is fixed/limited; may conflict with a narrow window.
Best for: general anti-chatter, BOM/area sensitive thresholds.
External hysteresis (feedback)
VHYS can be sized to the real ripple/noise environment.
Adds resistor tolerance/TC and couples source impedance and leakage into the trip point.
Best for: noisy rails, long cables, or slow ramps with strict “one clean edge” requirements.
Decision rules (thresholds → actions)
If Vpp ripple near the trip ≳ VHYS:
increase VHYS or reduce ripple; otherwise multi-toggling is expected.
If the input is a slow ramp (ms–s across the trip):
add VHYS or time qualification (debounce/one-shot) to guarantee one transition.
If response time is safety-critical:
avoid large RC at the input; prefer modest VHYS and digital time qualification.
If the window is narrow:
keep VHYS small and enforce stability with debounce; ensure VWINDOW ≥ 2×Guardband + VHYS + ripple margin.
Common pitfalls (fast checks)
VHYS too large:
the effective trip shifts and the usable accuracy/window tightness collapses.
Action: verify spacing/window is still larger than 2×Guardband + VHYS + ripple margin.
RC too large:
the input is slowed and the comparator reacts late to real faults.
Action: compare the RC time constant to the allowed fault reaction time; move filtering to time qualification when needed.
Practical rule:
set VHYS (or time qualification) so that ripple and noise near the trip cannot re-cross the opposite threshold during the ramp.
Startup & power behavior: brown-in/out, reference settling, nano-power modes
The most common “it worked on the bench” failures happen in the first second after power-up and near brown-out.
Threshold engines need time to become valid: POR → Vref settle → code active → comparator valid.
Power-up sequence (when the threshold is actually valid)
Before POR release: registers may not be initialized; output state can be undefined.
Action: gate alarms with PG/supervisor or ignore interrupts until initialization is complete.
After POR, before Vref settles: the effective trip point can drift as Vref ramps.
Action: wait for “Vref ready / tSETTLE” or add a blanking time window.
Code write vs code active: a new code may require an update trigger and DAC settling time.
Action: follow the datasheet update sequence: write → update → wait tDAC_settle.
Brown-in/brown-out behavior (avoid reset loops and false trips)
VICR near undervoltage: input common-mode behavior can change close to the rails.
Action: keep comparisons away from VICR edges or add margin around brown-out thresholds.
Output predictability during VDD collapse: OD outputs depend on external pull-ups and may back-power without protection.
Action: verify the “power-off output state” and prevent back-power paths (see output section).
Chatter near UV thresholds: slow VDD ramps + ripple cause repeated toggles.
Action: use separate brown-in/brown-out thresholds (hysteresis) or time qualification.
Nano-power and duty-cycled compare (sampling window model)
Dynamic bias / intermittent sampling means the comparator decision is not continuous.
The event is detected only inside a sampling window.
Added detection latency: a fault can wait up to one duty-cycle period before being seen.
Action: avoid duty-cycled modes for fast protection cutoffs.
Pulse miss risk: short pulses can fall between windows.
Action: keep duty-cycled modes for wake-up/slow thresholds, not for transient fault capture.
Rule of thumb:
treat OUT as invalid until Vref is settled and the programmed code is active; gate alarms or add blanking time to prevent false trips.
Output types & logic-domain integration (OD vs push-pull + cross-voltage)
Output choice determines whether a threshold can be aggregated, level-shifted, or safely routed into a logic domain.
The key integration questions are wired-OR, pull-up sizing, and
power-off behavior.
OD vs push-pull (selection map)
Open-drain (OD): best for wired-OR alarms and cross-voltage logic domains using an external pull-up.
Watch: pull-up sets rise time and low-state power.
Push-pull (PP): clean edges and no pull-up; stronger drive for direct logic inputs.
Watch: ground bounce/EMI and domain compatibility.
Pull-up sizing for OD (speed vs power)
Rise time driver: Rpullup × (Ctrace + Cin + Cload).
Low-state power: OD low draws about Vlogic / Rpullup.
Workflow: pick the required rise time → estimate capacitance → choose Rpullup → verify interrupt sampling margin.
Fail-safe checks (power-off, high-Z, and back-power paths)
Power-off state: confirm whether OUT becomes high-Z or clamps when VDD collapses.
Back-power risk: an external pull-up can feed VDD through internal clamps if not designed for fail-safe IO.
Action: use series resistance, dedicated level shifting, or keep pull-ups in the same domain as the receiver.
Integration rule:
use OD for wired-OR and cross-voltage domains (pull up to the receiver logic rail), and verify power-off behavior to prevent back-powering.
Threshold accuracy is often limited by the external network rather than by the internal DAC or reference.
The front end must be designed so that I×R errors, leakage paths, and protection parts do not dominate the error budget.
Divider sizing (accuracy vs standby power)
Convert leakage/bias into trip-point shift
Thevenin resistance: RTH = Rtop || Rbot.
Node shift: ΔVnode ≈ Ileak_total × RTH.
Input-side impact: map ΔVnode back to the monitored VIN using the divider ratio (same topology used for VTH math).
Practical sizing rules (thresholds → actions)
Accuracy rule: keep Ileak_total × RTH well below the allowed guardband (reserve margin for temperature and humidity).
Power rule: divider current Idiv ≈ VIN / (Rtop + Rbot) must fit the standby budget.
Workflow: set the maximum standby current → get Rsum; set the maximum I×R shift → get RTH; then solve R ratio for the target trip.
Source impedance, series R, and RC shaping (DC shift vs reaction time)
DC shift channel
Template: ΔV ≈ Ibias_or_leak × (Rsource + RTH).
Action: if the trip moves when Rsum is scaled (e.g., 10×), leakage/bias is dominating.
Dynamic reaction channel
Time constant: τ ≈ Rseries × Cnode (Cnode includes input, TVS/ESD, and trace capacitance).
Action: if protection is time-critical, keep τ below the allowed reaction time; move noise control to hysteresis or time qualification first.
Leakage from protection parts and PCB contamination (MΩ paths can dominate)
Protection leakage: TVS/clamps can inject or sink current that shifts the divider node, especially at high temperature.
Action: include worst-case leakage in the error budget.
Moisture/flux residue: surface leakage creates an unknown parallel resistance to the sense node.
Action: compare trip points before/after cleaning; repeat under humidity or a controlled wetting test.
Stabilization actions: guard ring around the sense node, conformal coating, and spacing improvements.
Protection priority rules (do not break threshold accuracy)
Control leakage first: pick clamps/TVS with acceptable leakage across temperature and voltage.
Series R is dual-use: limits clamp current and forms RC with Cnode; size it by fault current and reaction time.
RC must have one goal: if used for noise, prefer hysteresis/time qualification before increasing τ.
Design focus:
treat the sense node as a precision node—budget leakage and I×R shifts first, then add protection without exceeding the allowed reaction time.
Engineering checklist & verification plan (bring-up → temp → production)
The fastest path to a robust threshold system is a repeatable test plan with a small, consistent dataset.
The checklist below turns measurements into pass/fail decisions and root-cause mapping.
Bring-up checklist (day-1 measurements)
Stimulus: programmable supply and ramp generator (slow ramp + fast step).
Log fields: VIN, VDD, code, Vref state (ready), OUT state, timestamp.
Extract: VTH+ / VTH− (up/down trips) and any false toggles during the first second.
Action: if slow-ramp toggling is seen, fix VHYS/time qualification before increasing RC.
Temperature sweep (slope, spread, and soak stability)
Slope: extract ΔVTH/ΔT (mV/°C) for each threshold and for each unit.
Spread: record max–min trip variation across units/boards at each temperature.
Soak rule: start measuring only after the trip drift rate |ΔVTH|/Δt becomes small relative to the required guardband margin.
Direction check: compare heating vs cooling to detect hysteresis-like behavior in the system.
Production tests (minimal set)
Code sweep: sweep codes and measure trip points to verify monotonic behavior and step consistency.
Window consistency: measure VL and VH; verify window width and centering stay inside guardband rules.
VHYS measurement: measure VTH+ and VTH− under the same conditions; confirm hysteresis matches expectations.
Failure analysis (reverse map the budget: fast root-cause order)
Vref first: if all codes shift together, suspect reference behavior or divider ratio.
DAC/ladder next: if code sweep shows curvature or irregular steps, suspect INL/tap mapping.
Offset/drift: if temperature tracking is strong and code dependence is weak, suspect input offset/drift.
Bias/leakage last: scale resistor values or clean/coat; large change indicates I×R or contamination leakage dominance.
Execution tip:
keep the dataset consistent across bring-up, temperature, and production so failures can be mapped back to the same budget terms.
Application recipes (only those enabled by built-in Vref/DAC)
These recipes focus on the unique value of comparators that include an internal precision reference and/or an internal programmable threshold path
(DAC or ladder). Each recipe is written as Goal → Implementation → Pitfalls + thresholds/actions, so the design can be copied into
bring-up and production without expanding into unrelated power-stage or protection pages.
Goal: Define a configurable “power-valid” window (UV + OV) instead of a single fixed reset point, with guardband control for
different SKUs, field calibration, or multi-rail systems.
Implementation:
Use the internal Vref as the only accuracy anchor; set UV/OV using external dividers (window device or dual comparators).
If a programmable threshold path exists (DAC/ladder), store POR codes that define the default window after reset.
Use open-drain outputs when multiple faults must be wired-OR into a single PG/FAULT_N line.
Pitfalls + thresholds/actions:
Chatter on slow ramps: if OUT toggles more than once during a monotonic ramp, add hysteresis (preferred) before adding large RC.
Validation: run a slow ramp + injected ripple test to confirm stable state transitions across temperature.
Example parts
ADI LTC2936 / LTC2933 — treat different channels as different “battery level” thresholds.
TI DAC53001 / DAC63001 (DACx300x family) — smart DACs that include an internal reference and a programmable comparator mode (use codes for adjustable thresholds and report via comparator output).
Recipe 4 — Valid-power qualifier (“stable-first, then enable”)
Goal: Avoid enabling downstream blocks on a noisy or still-settling rail. Release enable only after a programmable threshold is met and remains stable long enough.
Implementation:
Use built-in reference/DAC to define VTH_VALID (and optionally a release threshold for hysteresis).
Implement qualifier timing as: compare true → timer runs → assert EN/PG. Timer can be MCU-based or device-based when available.
Prefer OD outputs into a single FAULT_N tree when multiple validity conditions must be combined.
Over-filtering: if real faults must be caught quickly, avoid large RC; use hysteresis + deglitch where possible.
Production test: apply controlled ripple; verify EN does not release until ripple stays within the defined band for the full qualify window.
Example parts
ADI LTC2936 — programmable thresholds; use comparator outputs + external/MCU qualify logic for stable-release policies.
TI TPS3700 — window monitor with internal reference; use OUTA/OUTB to gate an enable (qualify in firmware or with simple logic).
IC selection logic (fields → risk mapping → vendor questions)
Selection for built-in reference/DAC comparators is primarily a risk-control process. The goal is not to “collect specs,” but to
map each spec to a failure mode, then define the exact questions and verification steps that close the risk before layout freeze and production.
TI TLV3011 (OD) / TLV3012 (push-pull) — on-chip reference; use external divider for adjustable thresholds.
ADI LTC1540 — nanopower comparator with built-in reference for minimal BOM threshold detection.
ADI LTC1440 (family) — ultralow power comparator with built-in reference and programmable hysteresis options (shape example for “stability-first” thresholds).
Shape 2: Window / dual monitoring with internal reference
TI TPS3700 — dual comparators + internal reference for UV/OV window or independent monitors (OD outputs).
FAQs: troubleshooting and production-ready checks (built-in Vref/DAC)
Each answer follows a repeatable structure: Symptom → Likely causes → Quick checks → Decision thresholds → Actions.
The scope stays within built-in reference / threshold-programming comparators and their front-end + output integration.
Why is the measured trip voltage always higher/lower than the threshold code? What 3 items should be checked first?
Symptom: Trip point shows a consistent offset vs the expected CODE→VTH mapping.
Likely causes (check in this order):
Reference shift: Vref initial accuracy/TC/settling moves all thresholds together.
Mapping/range mismatch: wrong formula, wrong range, clipping, or rounding behavior.
Input network shift:I_bias/I_leak × R_TH and divider tolerance move the sensed node.
Quick checks:
Run a small code sweep (≥5 codes). If the curve is a near-parallel shift, suspect Vref/divider ratio; if it bends, suspect DAC INL/DNL or range mapping.
Repeat the same trip test with a 10× lower divider resistance (same ratio). If the trip moves significantly, suspect leakage/bias dominance.
Read back configuration (range bits + code) and verify no silent clipping/rounding at endpoints.
Decision thresholds:
Leakage-dominant indicator: if ΔV_trip scales ~proportionally with R_TH (within ~±20%), then I×R is a primary term.
Linearity indicator: if max residual to a best-fit line across codes > (planned guardband)/4, then INL/mapping is too large for the window.
Actions:
Lock down the exact datasheet mapping (range + equation) and add a software clamp/rounding model that matches the device.
If I×R dominates, reduce divider impedance, add guarding/cleaning/conformal coat, or buffer the node.
If a constant shift remains, treat it as an offset term and apply a calibration code (only if stable across temperature and time).
The threshold chatters in the first 100 ms after power-up. How to tell Vref-not-settled vs slow-ramp chatter?
Symptom: OUT toggles multiple times shortly after power is applied, even when the input should be “on one side” of the threshold.
Likely causes:
Vref/DAC settling: internal reference ramps/settles; effective threshold moves during the first 10–100 ms.
Slow-ramp chatter: VIN crosses a narrow/noisy region without enough hysteresis or debounce.
POR default mismatch: default code/output state differs from expected safe state.
Quick checks:
Hold VIN at a fixed DC level (well away from threshold) and power-cycle VDD. If OUT still chatters, suspect Vref/POR timing.
Hold VDD stable, then apply a controlled VIN slow ramp. If chatter appears only near crossing, suspect insufficient hysteresis/RC/debounce.
Compare “write code → OUT behavior” with a scope/logic capture: look for a distinct “code effective” moment.
Decision thresholds:
Vref-settling indicator: chatter occurs with VIN fixed and disappears after a repeatable time window.
Chatter indicator: chatter appears only when VIN passes through the threshold region; adding hysteresis reduces toggles immediately.
Actions:
Add a “blanking/qualify” window after power-up: ignore OUT until Vref/code is guaranteed effective.
Increase hysteresis or add a small input RC only as needed to limit toggles during slow ramps.
Ensure POR default code/output matches the system safe-state assumptions (hardware straps or firmware early init).
Using megaohm dividers causes large threshold drift. How to quantify bias/leakage error?
Symptom: Trip voltage varies with time, humidity, temperature, or board cleanliness when divider values are in the MΩ range.
Likely causes:
Input leakage/bias: total input current (device + clamps + contamination) times R_TH.
Surface leakage: flux residue/moisture creates effective MΩ paths across nodes.
Define the requirement in terms of two thresholds (assert and deassert), not a single number.
Recompute feedback using real output levels; redesign resistor ratios to meet both VHYS and mid-point accuracy.
If loading is the limiter, lower divider impedance or buffer the sense node.
Adding TVS/clamps shifts the threshold. How to tell leakage vs clamp conduction?
Symptom: Trip voltage changes after adding protection parts (TVS, clamp diodes, input protect networks).
Likely causes:
Leakage current: protection leakage adds to I_total and shifts the divider node via I×R_TH.
Clamp conduction/knee: the clamp starts conducting near a knee voltage and distorts the node nonlinearly.
Board contamination: added parts and routing increase surface leakage paths.
Quick checks:
Sweep the input and log trip voltage vs input amplitude. Look for a “knee” (nonlinear bend) indicating conduction.
Repeat with 10× lower divider impedance. If shift reduces ~10×, leakage is dominant.
Repeat at temperature corners. Strong temperature dependence is a leakage signature.
Decision thresholds:
Leakage signature: trip shift ∝ R_TH and increases strongly with temperature/humidity.
Conduction signature: trip behavior shows a repeatable knee/curve change near a clamp-related voltage region.
Actions:
If leakage dominates: use lower-leakage TVS/clamps, reduce impedance, and improve cleanliness/guarding.
If conduction dominates: move the clamp to a different node, add series resistance, or raise clamp knee relative to the sense range.
Validate protection choices with the same production sweep used for threshold characterization.
Window detection is required, but upper and lower thresholds are asymmetric. What are the common root causes?
Symptom: Upper threshold error differs from lower threshold error; window width or center shifts unexpectedly.
Likely causes:
Different mapping paths: upper/lower use different ranges, references, or rounding rules.
Hysteresis applied unevenly: only one comparator path has deglitch/hysteresis or output feedback differs.
Leakage polarity effects: input leakage/bias interacts differently depending on which node (high/low) is being compared.
Quick checks:
Verify both thresholds use the same reference/range configuration (read-back and log all config fields).
Measure rising and falling trip points separately for both upper and lower comparators (capture VTH+/VTH−).
Repeat with lower divider impedance to test leakage/bias sensitivity.
Decision thresholds:
Config mismatch indicator: asymmetry disappears when both thresholds are forced into the same range/mapping mode.
Leakage indicator: asymmetry changes noticeably when divider impedance is altered.
Actions:
Standardize configuration: enforce a single mapping mode and consistent rounding policy for both thresholds.
Account for hysteresis explicitly: define and validate VTH+/VTH− for both edges and both thresholds.
If leakage contributes, reduce impedance and improve the front-end protection/cleanliness strategy.
I²C writes do not take effect or occasionally revert to default. How to validate POR and latch timing?
Symptom: Code updates appear ignored, intermittently revert, or only work after repeated writes.
Likely causes:
POR/brown-out reset: undervoltage events reset code registers to POR defaults.
Write-to-effective latency: the threshold updates only after an internal timing event or state transition.
Bus integrity: marginal I²C timing, pull-ups, or noise causes missed writes or partial configuration.
Quick checks:
Always read back registers after write; log (timestamp, VDD, code, range bits, status flags) for every update.
Capture VDD and SDA/SCL with a logic analyzer through the failure event; look for brown-out dips and repeated start/stop anomalies.
Test a forced “safe update” sequence: write code → wait fixed settle window → verify OUT change → re-read code.
Decision thresholds:
POR signature: code reads back as the documented POR default immediately after a VDD dip or restart.
Latch/timing signature: code reads back correctly but OUT changes only after a repeatable delay or event (internal update timing).
Actions:
Guarantee supply headroom during configuration; add a qualify window if code updates must be glitch-free.
Enforce read-back verification and retry policy; treat any mismatch as a fault condition.
If brown-out resets are unavoidable, store intended codes and re-apply after restart in a deterministic state.
How can production test quickly sweep INL / threshold linearity error and bin parts?
Symptom: Need a fast screen for “nonlinear threshold response” without running a full exhaustive code sweep.
Likely causes of bin spread:
DAC INL/DNL or ladder nonuniformity across code ranges.
Reference variation that shifts the entire curve (separate from INL).
Test uncertainty (ramp method, timing, noise) that masquerades as nonlinearity.
Quick checks (fast method):
Select 7–9 codes spaced across the used range (avoid endpoints where clipping may occur).
For each code, ramp the stimulus through the threshold and record the trip voltage (use the same ramp rate and settle policy).
Fit a straight line to (code, Vtrip) and compute residuals: res_i = Vtrip_i − Vfit_i.
Decision thresholds (bin rules):
Linearity bin:max(|res_i|) ≤ (planned guardband)/4 for “tight linearity” bin.
Uncertainty control: repeat one mid-code 3×; if repeatability (peak-to-peak) > (guardband)/6, improve test noise/timing before tightening bins.
Actions:
Use two-stage screening: first a coarse 7–9 point residual test, then a deeper sweep only for borderline units.
Log both “curve shift” (intercept) and “curve bend” (residual peak) as separate bin features.
If bend is large only in a code segment, avoid that code span in system configuration when possible.
What is the minimum set of test points to separate Vref error, DAC INL, divider error, and input leakage?
Symptom: Need a minimal diagnostic plan that identifies the dominant error source with as few measurements as possible.
Likely causes to separate:
Vref error: shifts all thresholds proportionally (global gain/offset in CODE→VTH).
DAC INL: causes code-dependent curvature (bend) rather than a simple shift.
Divider error: wrong ratio shifts node scaling (can look like gain error).
Leakage/bias:I×R_TH term that scales with impedance and environment.
Quick checks (minimum plan):
Measure two codes far apart (e.g., low and high within the used range): get Vtrip(code1) and Vtrip(code2).
Repeat the same two-code test with a 10× lower divider impedance (same ratio): get Vtrip_lowR.
Repeat one code at a temperature corner (or a hot plate spot check) to see temperature signature.
Decision thresholds (diagnosis logic):
Leakage dominates: if Vtrip changes noticeably with divider impedance (≈ proportional scaling), suspect I×R_TH.
INL dominates: if the “slope” between two codes differs from expected and changes with code span, add a third mid-code to confirm curvature.
Vref/divider ratio dominates: if all codes shift together (parallel shift) and do not change with impedance, suspect reference or ratio tolerance.
Offset drift dominates: if temperature moves trip points by a similar voltage amount at different codes (not proportional), suspect offset drift.
Actions:
If leakage is identified, reduce impedance and harden the node (cleaning/guarding/coating and low-leakage protection).
If INL is identified, avoid problematic code ranges or add a per-code correction table only if repeatable and test uncertainty is well below the target.
If Vref/ratio is identified, tighten the reference/ratio components or apply a single-point calibration if stability allows.
The trip point differs between rising and falling ramps. Is this “error” or expected hysteresis behavior?
Symptom: Measured trip voltage is different on an upward ramp vs a downward ramp.
Likely causes:
Built-in/external hysteresis: two thresholds are intentionally defined (VTH+, VTH−).
Deglitch/blanking: internal filtering delays recognition and shifts the observed trip vs ramp direction.
Output loading feedback: OD pull-up and feedback networks alter effective thresholds.
Quick checks:
Measure both VTH+ and VTH− explicitly and compute VHYS = VTH+ − VTH−.
Repeat with two ramp rates. If the measured trip changes with ramp rate, filtering/RC is involved.
Verify whether hysteresis is enabled/configured by default (register/strap) and whether it is code-dependent.
Decision thresholds:
Expected behavior: if VHYS is stable and matches the intended noise margin, the difference is not an accuracy failure.
Unexpected behavior: if VHYS varies significantly with code or load, re-check feedback and output swing conditions.
Actions:
Define requirements using two thresholds (assert/deassert), then validate both in bring-up and production.
If filtering causes excessive shift, reduce RC or adjust deglitch policy while maintaining chatter immunity.
If OD feedback affects thresholds, stabilize pull-up and loading (and account for VOL/VOH in calculations).
The trip voltage depends on ramp rate. What is the fastest way to identify the culprit?
Symptom: A faster stimulus ramp trips at a different voltage than a slow ramp.
Likely causes:
Input RC + source impedance: the sensed node lags the stimulus; observed trip moves with ramp rate.
Sampled/low-power compare mode: periodic sampling creates an effective time quantization of trip detection.
Output deglitch: internal filtering delays output assertion and makes trip appear later on fast ramps.
Quick checks:
Compare node voltage vs stimulus voltage (probe at the comparator input node) to confirm lag.
Repeat the test with RC removed (or reduced) and/or with low-power mode disabled (if configurable).
Measure detection latency: time from threshold crossing at the node to OUT transition.
Decision thresholds:
RC-dominant: if node lag explains the observed shift: ΔV ≈ (dVIN/dt)×τ, where τ = R_source×C_in (or added RC).
Sampled-compare dominant: trip time quantizes in steps of the sampling period; voltage shift scales with ramp slope.
Actions:
Set RC and ramp policies so the worst-case lag stays within the planned guardband.
If sampled compare is required for power, include its latency in the protection timing budget.
Avoid characterizing thresholds with a ramp method that differs from real system dynamics without compensating for lag/latency.
The trip point changes when probing or changing the measurement setup. Why?
Symptom: Trip voltage shifts between test benches, probes, or measurement instruments.
Likely causes:
Probe loading: probe input resistance/capacitance loads a high-impedance sense node and changes effective R_TH or RC.
Grounding differences: ground offsets and injected noise shift the apparent crossing point.
Stimulus uncertainty: ramp rate, settling, and noise floor differ between instruments.
Quick checks:
Measure with two probe types (higher impedance / lower capacitance). Note whether the trip shifts with probe characteristics.
Probe the node and the stimulus simultaneously; confirm whether the node is being loaded (droop or delayed edge).
Repeat with reduced node impedance (temporary parallel resistor) to see if sensitivity disappears.
Decision thresholds:
Loading indicator: if trip shifts significantly with probe capacitance or input resistance, the node impedance is too high for repeatable measurement.
Noise indicator: if the trip distribution width approaches the guardband fraction (e.g., > guardband/6), measurement noise dominates.
Actions:
Standardize measurement loading and grounding; document the probe model and connection method in the test plan.
Reduce sense-node impedance (or buffer) when repeatability is required across benches and production stations.
Characterize uncertainty first, then tighten bins/guardbands only after the stimulus and capture chain are stable.
How to choose input RC/protection without breaking threshold accuracy or response time?
Symptom: Adding RC/protection improves robustness but shifts thresholds or slows detection too much.
Likely causes:
Leakage injection: added parts increase I_total and create I×R_TH threshold shifts.
Excessive time constant: RC delays the node; fast faults are detected late.
Clamp interaction: protection conduction or capacitance distorts the node near the threshold region.
Quick checks:
Separate requirements: define max allowed detection delay and max allowed threshold shift (guardband consumption).
Estimate worst-case shift: ΔVnode ≈ I_total×R_TH including protection leakage at temperature corners.
Estimate detection lag for a ramp or transient: ΔV ≈ (dVIN/dt)×τ; validate with a fast step test.