123 Main Street, New York, NY 10001

Linear LED Current Sink Array Design Guide

← Back to: Lighting & LED Drivers

Core idea: A linear LED current sink array is the simplest way to drive many LED strings with tight channel-to-channel matching and rich diagnostics—but it only works well when headroom and thermal dissipation are budgeted correctly, because saturation (dropout) and heat are the main causes of dim channels, banding, and false fault trips.

What it is & where it fits (Linear sink array in the LED chain)

Definition (extractable): A linear LED current sink array is a multi-channel constant-current (CC) “pull-down” device that regulates each LED string current by sinking it to the return node, enabling tight channel matching, per-channel trimming, and built-in open/short diagnostics.

Where it sits: The sink array typically sits at the low end of each LED string. An upstream rail (often a constant-voltage LED supply) feeds the LED strings; each channel then regulates current by adjusting its internal linear element. The key design boundary is headroom (compliance voltage) and heat (power dissipation in the linear path).

  • What it solves: multi-string current regulation, channel-to-channel matching, per-channel brightness trim, and fault visibility (open-string / short conditions).
  • What it does not solve: high-efficiency power conversion (switching topologies) or building-control ecosystem details (those are separate topics).
  • Success constraint (one line): accuracy comes from linear regulation, but efficiency is limited by voltage headroom; reliability depends on thermal sharing and derating behavior.
Measure: ILED per channel Measure: Vsink (headroom) Measure: board/IC temperature (NTC/Tj) Read: fault flags & counters

Evidence-first mindset: Most “matching problems” seen in the field are actually headroom or thermal problems. If a channel enters dropout/saturation (insufficient Vsink), current collapses first on the highest-Vf string; if a package region overheats, thermal foldback can reduce current unevenly across neighboring channels. These failure modes are distinguishable using Vsink + ILED + temperature (three signals that are quick to capture).

Linear LED current sink array system placement Block diagram showing LED strings fed by a supply, individual sink channels regulating constant current, ISET/trim control, diagnostics for open/short, thermal sharing, and a host interface. F1 — LED strings → sink channels → trim → diagnostics → host LED Strings VLED_SUP (CV rail) Each string current is set by its sink channel Linear Sink Array (Multi-Channel CC) CH1 CH2 CH3 CH4 Vsink (headroom) + ILED define regulation health ISET / TRIM Diagnostics Open / Short Window detect Thermal Sharing / Foldback Host I/F I²C / SPI / INT
Diagram focus: system placement, evidence nodes (Vsink/ILED/T), and built-in diagnostics blocks.
Cite this figure: Copy citation

When to choose this topology (Decision checklist vs alternatives)

Goal of this chapter: decide “go / no-go” for a sink array using only measurable inputs. The decision is dominated by headroom and thermal budget; matching and diagnostics are the payoffs once the hard constraints are satisfied.

  • Best fit: many channels, low-to-mid current per channel, strong uniformity requirements, per-channel trim, and a need to detect open/short conditions.
  • Poor fit: tight headroom (supply barely above LED Vf), high current per channel with limited heat sinking, or strict system efficiency KPIs.

The 3 hard gates (go/no-go):

  • Gate 1 — Headroom margin: ensure the lowest supply condition still covers worst-case LED Vf (cold / high bin) plus wiring drops and sink dropout. If Vsink collapses, current regulation cannot be maintained.
  • Gate 2 — Dissipation budget: worst-case channel power scales with (Vsupply − Vf_total) × ILED. If total heat cannot be removed, thermal foldback will reduce current and break uniformity.
  • Gate 3 — Thermal path: confirm a credible heat path (copper area, vias, thermal pad contact, airflow). Without it, “matching drift” will appear after warm-up.
Input you must know Why it matters Evidence to capture Fail symptom if ignored
VLED_SUP (min/typ/max) Defines worst-case headroom ceiling Supply rail at cold start + brownout Some channels dim first under low VIN
LED Vf range per string (min/max vs temperature) Sets the headroom floor (highest Vf string is limiting) Vf at cold / hot or vendor bin envelope Channel-to-channel brightness “mismatch”
Target ILED and channel count Directly scales heat and droop risk Per-channel ILED and total IOUT Package hot spots, foldback, instability
Ambient (Tamb) and allowable junction temperature Sets thermal margin for steady-state operation NTC/board temp vs time to steady-state Drift after warm-up, repeated faults
Diagnostics requirement (open/short, flags, counters) Determines whether the extra complexity is valuable Fault flags, debounce, retry/latch policy Hard-to-debug field returns
Uniformity requirement (matching/trim) Determines need for per-channel trim table Min/max/σ of ILED across channels Banding, color/brightness inconsistency

Fast rule of thumb (engineering, not marketing): if the design can guarantee headroom under worst-case Vf and can dissipate the resulting heat without entering thermal foldback, a sink array is often the fastest way to achieve multi-string uniformity with robust fault visibility.

Three-gate go/no-go chooser for sink arrays A three-step decision flow: check headroom, then dissipation, then matching/diagnostics need. Includes minimal required inputs and outcomes. F2 — 3-step go/no-go: Headroom → Heat → Value Step 1 Headroom OK? Inputs: VLED_SUP(min), Vf(max), dropout, wiring drop, margin Step 2 Dissipation OK? Inputs: (Vsupply−Vf)×I×Nch, Tamb, heatsink/copper/airflow Step 3 Need value? Matching, per-channel trim, open/short diagnostics, telemetry Outcomes GO Proceed to matching + fault design NO-GO (Headroom) Current drops first on highest-Vf string NO-GO (Heat) Thermal foldback breaks uniformity Minimal evidence set: Vsink + ILED + temperature + fault flags
Diagram focus: the 3 hard gates that decide success before matching/diagnostics details.
Cite this figure: Copy citation

Architecture deep dive (Current regulation loop + per-channel trims)

What stabilizes constant current: a sink array closes a local loop that compares a per-channel current-sense signal to a programmable target, then adjusts the linear sink element so ILED converges to the setpoint. This page focuses on the signal path and the practical “knobs” used to reach uniform brightness across many channels.

Setpoint path (what defines ILED): most devices implement a global current reference (IREF / ISET code) that defines the nominal channel current, then apply a per-channel trim (gain/offset trim code) to correct residual mismatch. The trim is intended to remove static channel-to-channel error; it cannot “fix” dropout caused by insufficient headroom (covered in H2-4).

  • Global set (ISET / DAC code): controls overall current scale (coarse brightness, system power).
  • Per-channel trim (TRIM code): corrects channel mismatch for uniformity (fine alignment).
  • Sense + compare: converts ILED to a comparable signal (mirror / internal sense / Rsense method depends on device).
  • Error amp + linear pass: moves the channel operating point until sensed current matches target.

Why channels differ: even with the same setpoint, channel currents can spread due to mirror mismatch, sense offset, DAC/trim quantization, and temperature coefficients. In the field, “mismatch” is often exaggerated by thermal gradients or by one channel entering saturation (dropout), so logs should always capture ISET code + TRIM codes + Vsink + temperature.

ISET code TRIM code per channel LSB step (quantization) Tempco / drift spec
Practical interpretation: If all channels show healthy headroom (Vsink not near dropout) but ILED still spreads, focus on TRIM/quantization/tempco. If the “dim” channel also has the lowest Vsink, treat it as a headroom problem first (H2-4).
Global ISET plus per-channel trim signal chain Block diagram showing MCU configuration to global current reference, per-channel trim knobs, sense and compare, error amplifier, linear pass elements, and resulting ILED per channel. Also highlights mismatch sources. F3 — Global ISET + per-channel TRIM → sensed ILED → regulation MCU / Config I²C / SPI ISET, TRIM Global ISET DAC / code IREF reference Per-Channel TRIM gain / offset micro-adjust for uniformity CH1 TRIM CH2 TRIM CH3 TRIM CH4 TRIM Sense mirror / Rsense offset Compare error amp stability Linear Pass sink element sets ILED Mismatch Sources mirror mismatch sense offset DAC / LSB quantization temp drift thermal gradient Log together: ISET + TRIM Vsink + Temp
Diagram focus: what sets current, what trims uniformity, and which error sources to log and verify.
Cite this figure: Copy citation

Headroom & dropout budgeting (Compliance voltage, saturation, dimming margin)

Core concept: a linear sink channel can regulate current only while it has enough headroom (also called compliance margin). When headroom collapses, the channel enters dropout/saturation and the current can no longer track the target. The first visible symptom is usually “one string gets dimmer,” which is often misdiagnosed as channel mismatch.

  • Vsink: the sink-node voltage (or equivalent headroom indicator) that shows how much margin the channel has to regulate.
  • Vdropout: the minimum headroom required for the channel to hold the set current at the given ILED and temperature.
  • Compliance window: the safe operating region where Vsink stays above dropout with margin for tolerances and dimming dynamics.

Budgeting steps (review-ready checklist):

  • Start from the worst supply: use VLED_SUP(min) including cold-start dip, brownout, and harness/connector drops.
  • Use worst-case LED Vf: take the highest-Vf string at cold temperature and worst bin (plus aging margin if required).
  • Add distribution losses: copper/trace drops, connector resistance, and any series elements in the string path.
  • Reserve sink dropout: keep Vsink above Vdropout(min) at the target ILED and temperature.
  • Leave margin: keep extra headroom for PWM edges, dimming transitions, and temperature drift so regulation never grazes saturation.
Key failure pattern: If the dim channel also shows the lowest Vsink and it approaches the dropout boundary, treat it as a headroom issue first. Only evaluate “matching” after all channels stay inside the compliance window.
Vsink per channel Vf spread (string-to-string) Headroom margin Saturation flag (if available)

What dropout looks like: channels do not fail equally. The string with the highest Vf (or the largest wiring drop) consumes more supply voltage, leaving less Vsink margin. That channel reaches dropout first, its ILED falls, and the system appears to have “poor matching.” Under deep dimming, the margin can be even tighter due to timing windows and transient behavior, making flicker or intermittent faults more likely.

Supply versus Vf spread with a shaded headroom window Chart-style diagram: a supply level line, four string Vf bars with spread, a shaded headroom margin region, and a dropout threshold boundary. Highlights OK and risk zones. F4 — VLED_SUP vs Vf spread: headroom window and dropout boundary Voltage Strings VLED_SUP(min) Dropout boundary Headroom window S1 S2 S3 S4 Risk string highest Vf lowest Vsink hits dropout first OK zone Vsink margin > dropout + margin
Diagram focus: supply limit, string Vf spread, and how the highest-Vf string loses headroom first and enters dropout.
Cite this figure: Copy citation

Power dissipation & thermal sharing (Why matching fails when hot)

Why heat dominates uniformity: a linear sink array converts headroom into heat. Even if room-temperature matching is excellent, channel currents and brightness can diverge after warm-up because device parameters drift with temperature and protection policies (derating/OTP) can change channel setpoints unevenly.

Per-channel power (channel view): a practical estimate is:

PCH ≈ VSINK × ILED, where VSINK = VLED_SUP − VF,string − wiring drop. This highlights the key risk: the channel tied to the lowest-Vf string (or highest supply) can run the hottest because it burns the most headroom at the same current.

  • Worst-case dissipation: often occurs at high supply and hot LEDs (Vf decreases with temperature), which increases VSINK and therefore PCH.
  • Thermal gradients: copper spread, via farms, and the thermal pad path decide whether heat is shared evenly or concentrated into a hotspot.
  • Thermal coupling: adjacent channels can “move together” because the local PCB region warms as a group; edge channels may stay cooler due to better heat spreading.

Derating policy and its visual impact:

  • Global derating: reduces all channels together, often preserving relative uniformity but sacrificing total brightness due to one hotspot.
  • Per-channel derating: protects the hottest channel first and preserves overall output, but can create visible banding or “one string dim” patterns.
Field discriminator: if uniformity degrades after a predictable warm-up time and coincides with a derating threshold (Tj/NTC), treat it as a thermal + policy issue, not a trim issue.
Tj / channel temp (if any) Board NTC Derating / OTP threshold Thermal time constant
Minimal capture set: log Vsink per channel, ILED per channel, and NTC/Tj versus time from cold start to steady state. Matching analysis only makes sense once the system reaches thermal steady state and is not grazing protection boundaries.
F5 – Thermal map + derating loop (hotspot -> sense -> reduce current) Thermal Map (board view) PCB copper spread CH1 CH2 CH3 CH4 CH5 CH6 CH7 CH8 HOT zone higher V_SINK or weak copper COOL edge Derating Loop (cause -> sense -> action) Heat source PCH = Vsink * I Thermal path pad -> copper -> air Temp sense NTC / Tj flag Derating global / per-CH Action down ILED Global: more uniform Per-CH: possible banding
Diagram focus: heat is a closed loop (dissipation → temperature → derating → ILED change). Policy choice directly affects visual uniformity.
Cite this figure: Copy citation

Channel matching & uniformity calibration (From % mismatch to visual banding)

What “matching” really means: matching is not a single number. For multi-channel lighting, it typically includes (1) channel-to-channel current spread at steady state, (2) how evenly channels drift with temperature, and (3) how linear each channel remains at low current (deep dimming). Visual banding emerges when errors are spatially correlated and exceed what the optics can diffuse.

  • Static spread: compare ILED across channels at a fixed temperature (min/max/σ).
  • Drift consistency: re-check after warm-up; uneven drift creates “gets worse when hot” banding.
  • Low-current behavior: offset/quantization dominates at deep dimming and can create step-like non-uniformity.

Calibration strategy: a common and robust approach is a factory trim table: measure each channel, compute the correction, and store a per-channel trim code. Runtime self-calibration should be used carefully because it adds feedback dependencies and can interact with thermal derating, supply variation, or protection behavior.

ILED stats (min/max/σ) Trim table (CH→code) Optical metric (gray/luma) Hot re-verify
Important boundary: “same current” does not guarantee “same brightness.” LED binning, optical stack, and local temperature can change luminous output even with identical ILED. Use electrical + optical measurements when uniformity is a product KPI.
Per-channel trim table and measurement loop Flow diagram: fixture sets supply and ISET, DUT sink array outputs channels, measurement captures electrical and optical metrics, compute generates trim table, program writes codes, verify repeats including hot check. F6 — Measure → compute → trim table → write → verify (including hot check) Fixture VLED, ISET cold / hot DUT sink array CH1..CHn Measure ILED / Vsink Gray / Luma Compute error vs target min/max/σ Trim Table & Programming Loop Trim table CH → code CH10x.. CH20x.. CH30x.. CH40x.. Program write TRIM lock / store Verify re-measure hot check Output: σ(ILED), min/max Output: σ(Luma), banding risk
Diagram focus: uniformity is a data loop. Electrical matching plus optical verification produces a trim table that must be re-validated (including hot conditions).
Cite this figure: Copy citation

Open/short detection fundamentals (What you can detect and what you can’t)

Core boundary: most “open/short” features in linear sink arrays are Vsink window decisions (high/low/out-of-window) combined with timed sampling and debounce. Many fault types look similar on Vsink, especially during deep dimming or when headroom is tight, so the output should be treated as a fault class rather than a perfect root-cause label.

Primary observable: Vsink per channel (sink node). Detection quality is dominated by (1) VOPEN/VSHORT thresholds, (2) when sampling occurs relative to PWM, and (3) debounce + latch policy.

Common fault classes and typical Vsink signatures (exact behavior depends on the bias/injection network and wiring):

Fault class Typical Vsink behavior Most common confusion Extra evidence that helps
Open string Vsink stays above VOPEN (or drifts high) after settle time. Short-to-supply; pin open. Channel ID repeats; ILED flag reads zero (if available); injection makes node behavior deterministic.
Shorted LED String Vf drops → Vsink increases; often hotter, may remain “in-window”. Supply rises; calibration mismatch; thermal drift. Power/thermal: faster warm-up on that channel; Vsink trend correlates with temperature.
Short-to-GND Vsink pinned low / below VSHORT. Dropout from insufficient headroom. Raising VLED_SUP or lowering ILED restores regulation when it is headroom-limited (not a hard short).
Short-to-supply Vsink pinned high / above VOPEN (often very stable). Open string. High is “stiff” across PWM phases; persists even when injection is disabled/enabled.
Pin open Vsink may float and then land high/low depending on bias path; can mimic open. Open string. Changing injection/bias changes the node behavior more than a true open string.

Detection methods (three building blocks):

  • Vsink window comparator: two thresholds define a “normal” band. Out-of-band triggers a candidate fault event.
  • Dynamic injection / biasing: a weak pull or pulse makes Vsink predictable during PWM-off or deep dimming so the comparator does not read noise.
  • Time-gated sampling: sample only after current settles (t_settle) and away from PWM edges; confirm with N-hit debounce.

Why false trips happen:

  • Deep dimming: on-time is too short; Vsink has not settled when sampled → transient out-of-window.
  • Insufficient headroom: channel leaves regulation and Vsink collapses toward the low threshold → looks like a short-to-GND.
  • Cable transients: plug/EMI/surge events cause momentary excursions → must be filtered by debounce and rate limits.
Fast discriminator: if the “fault” disappears when (a) sampling is delayed within PWM-on time, or (b) headroom margin is increased, treat it as a measurement/timing/headroom boundary issue, not a hard short/open.
VOPEN threshold VSHORT threshold t_sample (PWM phase) Debounce time / N-hit Fault latch policy
F7 Fault detect pipeline: Vsink to window comparator to debounce to fault flag Block diagram showing Vsink sensing, window comparator with VOPEN/VSHORT, PWM-gated sampling with t_settle, debounce/N-hit, latch policy, and outputs fault flag/INT/code/counter. Includes false-trip entry points. F7 – Fault detect comparators (Vsink -> window -> debounce -> flag) Vsink sense per channel CH1..CHn Window VOPEN / VSHORT VOPEN VSHORT ABOVE IN BELOW Digital qualification PWM gate t_sample + t_settle Debounce N-hit / ms Latch sticky / auto Outputs and evidence fields Fault outputs fault_flag INT fault_code counter timestamp Evidence fields VOPEN / VSHORT t_sample, t_settle debounce (N/ms) latch policy channel id False-trip entry deep dim / PWM edge Boundary low headroom / cable
Diagram focus: “open/short” is a pipeline. Window thresholds alone are not enough; PWM-aware sampling and debounce/latch rules decide stability and false-trip rate.
Cite this figure: Copy citation

Fault response design (Latch, retry, graceful degradation)

Why response policy matters: detection only helps when the post-detect actions are explicit, rate-limited, and observable. A weak policy leads to oscillation (nuisance trips) or silent hazards (fault persists without usable logs).

Response options (choose by risk + user experience):

  • Per-channel shutdown: safest localized action; may create visible dark bands or partial black-out.
  • Derate and continue: maintains lighting continuity; must be paired with counters and time limits to avoid prolonged overheating.
  • Group bypass / graceful degradation: keeps fixture alive with reduced uniformity; must be reported as a degraded state.
  • Global shutdown: maximum safety for severe/ambiguous faults; worst user experience.

Retry mechanism:

  • Timed retry: simple periodic retry; can cause periodic flicker if faults are persistent.
  • Conditional retry: retry only when temperature and supply/headroom return to safe regions; typically more stable.
  • Rate limit: retry interval + max attempts; convert to LATCH when exhausted.

Logs and diagnosability: store events as a compact record so the field can reconstruct “what happened” without guesswork. At minimum, include fault code, channel/group ID, first/last timestamp, count, and action taken. INT triggering should align with latch/clear policies to prevent interrupt storms.

Fault state machine Retry interval Counters (per fault) INT trigger rules Timestamp + action
Practical rule: treat “severe or ambiguous” faults as global-protect candidates. Use per-channel or derate paths only when the fault scope is known and thermal risk is bounded by timers and thresholds.
F8 Fault response state machine: NORMAL to FAULT to RETRY to LATCH State diagram with nodes NORMAL, FAULT_CONFIRMED, RETRY_WAIT, DEGRADED_RUN, and LATCHED. Transitions include confirm N-hit, choose action, conditional retry (temp_ok and v_ok), retry counter max, and clear conditions. Outputs include fault code, counter, timestamp, and INT. F8 – Fault state machine (NORMAL -> FAULT -> RETRY -> LATCH) NORMAL run + monitor FAULT confirmed action select RETRY wait / cool DEGRADED derate / bypass log + report LATCHED stop or hold needs clear confirm N-hit retry start choose: derate/bypass retry max temp_ok v_ok clear: auto-recover or service reset (policy) Log / report payload fault_code timestamp count INT
Diagram focus: response is a state machine with rate limits. Retries should be gated by temperature and supply/headroom, and every transition must emit a diagnosable log record.
Cite this figure: Copy citation

Dimming methods for sink arrays (PWM gating vs analog vs hybrid)

Scope: dimming behavior is defined by how the sink array modulates ILED(t) and how the system preserves stable sensing (Vsink sampling) and predictable visibility (ripple/flicker). The key trade is not “PWM vs analog”, but settling time vs minimum controllable current vs false-detect risk vs EMI edges.

PWM gating (hard on/off): excellent proportionality because current amplitude stays near the regulated setpoint during the “ON” window. The real risks show up at deep dimming:

  • Timing boundary: if Ton is comparable to t_settle, the current and Vsink have not stabilized when sampled → visible instability and false open/short flags.
  • Sampling alignment: open/short comparators and ADC reads must avoid PWM edges; sampling must be time-gated inside the steady portion of the ON window.
  • EMI edges: fast PWM edges can inject noise into ground/return paths, degrading measurement repeatability and increasing nuisance trips.

Analog dimming (change current setpoint): reduces low-frequency ripple and avoids hard edges, but becomes difficult at very low currents:

  • Low-current nonlinearity: quantization steps, mirror bias error, and temperature drift become a larger fraction of ILED.
  • Color / uniformity impact: LED chromaticity shifts with current, and channel mismatch is more visible at low levels (banding, tint shift).

Hybrid dimming (recommended in many systems): use analog dimming at mid/high brightness for smoothness and low EMI, then switch to PWM below a defined boundary to avoid the “too-small-current” region. The switch point should include hysteresis to prevent mode chatter.

Practical selection rule: keep PWM “ON” time comfortably longer than the settle + sampling window, and keep analog dimming above the minimum current where monotonicity, step size, and channel matching remain stable.
PWM freq / duty Ton_min vs t_settle Min controllable current Waveform ripple False-detect rate
F9 Waveform comparison: Analog vs PWM vs Hybrid dimming with sampling window Three rows show ILED waveforms for analog dimming, PWM gating, and hybrid dimming. Each row highlights a sampling window placed after a settle time. PWM row shows deep dimming risk when Ton is too short. F9 – Dimming waveforms (Analog / PWM / Hybrid) + sample window ILED Sampling window t_settle region ANALOG PWM HYBRID t_settle sample smooth, low ripple; watch min-current linearity t_settle sample Ton too short risk great proportionality; align sampling away from edges; EMI edges matter switch threshold sample t_settle sample analog above I_min; PWM below; add hysteresis time ->
Diagram focus: sampling must be inside a settled region. PWM deep dimming can violate Ton_min > t_settle + t_sample, raising ripple and false-detect risk. Hybrid uses analog above a safe minimum current and PWM below it.
Cite this figure: Copy citation

Interfaces & telemetry (I²C/SPI, daisy chain, fault pins)

System goal: integrate the sink array as a reliable “actuator + sensor” node. Control must be deterministic (global/group/per-channel), and diagnostics must be actionable (fault bits + counters + timestamps + clear reasons). This chapter focuses on robust MCU integration, not external lighting ecosystems.

Control model (three layers):

  • Global: overall current target, enable/disable, derating limits, safe-mode.
  • Group: zone-level dimming (panels/regions), synchronized updates, shared policies.
  • Per-channel: trim codes, channel enable, fault mask, per-channel state.

Telemetry that actually helps in the field:

  • Status/fault registers: present faults vs latched faults (what happened vs what is happening now).
  • Event counters: counts per fault class to separate “single transient” from “repeating issue”.
  • Optional readings: temperature / Vsink / supply monitors (if exposed), used as discriminators for headroom/thermal boundaries.

Reliability and maintainability:

  • Addressing & chain management: predictable device IDs (address straps, enumerations, or chain order) and service-friendly mapping (device_id → zone).
  • Bus robustness: retries and safe fallbacks if reads/writes fail; avoid leaving channels in an undefined on-state.
  • Power-on safe default: a known safe state before configuration; fault visibility at startup; consistent latch/clear behavior after reset.
Minimum useful log record (MCU-side): {device_id, channel/group_id, fault_code, t_first, t_last, count, action_taken, clear_reason}. This converts “mystery flicker” into a debuggable history.
Control layers Fault bits Counters INT policy Power-on defaults
F10 System integration: MCU bus to sink array to LEDs with INT and log storage Block diagram showing MCU/firmware policy connected over I2C/SPI to sink array device(s) with global/group/per-channel control, fault registers, counters, and optional monitors. Includes INT line to MCU and a log storage block for timestamps and counts. F10 – MCU integration (bus + INT + logs) for a sink array node MCU / SoC policy + scheduler Update window safe commit Log storage timestamp fault_code counter action_taken I²C / SPI Sink Array IC(s) addr / daisy chain / mapping Global ISET safe mode Group zones sync update Per-CH trim enable Telemetry fault regs latched regs counters Optional monitors Temp Vsink readback Supply status LED strings CH1..CHn sinks S1 S2 S3 INT / fault pin event log
Diagram focus: treat the sink array as an actuator + sensor node. Use bus control (global/group/per-CH), INT for immediate attention, and MCU-side logs (timestamps + counters) to turn faults into a debuggable history.
Cite this figure: Copy citation

Validation & field debug playbook (Symptom → evidence → isolate → first fix)

Intent: a minimum-tools SOP that converts “visual symptoms” into two measurements, a hard discriminator, and a first fix. The same evidence format should work on the bench and in the field (service mode).

Minimum tool kit (repeatable)

  • 2-channel scope (or 1-channel + DMM): capture Vsink and ILED (or shunt voltage) with a trigger on PWM/EN or FAULT/INT.
  • DMM: steady-state checks for VLED_SUP, Vsink, and basic continuity.
  • Optional service logging: fault bits + counters + timestamps stored by MCU.

Concrete MPN examples (common, swappable; verify datasheets)

Function What it enables in this SOP Example MPNs (choose per voltage/current/temp/bus)
Multi-channel constant-current sink IC (class examples) Per-channel current sink with PWM/grayscale and/or dot correction; channel diagnostics vary by device TI TLC5940, TI TLC59711; NXP PCA9955/PCA9956; ST STP16CP05 (family class); Macroblock MBI5026 (family class)
Current sense amplifier (if external ILED sense is used) Clean measurement of shunt voltage for ILED validation and drift tracking TI INA180, TI INA181 (family); ADI LT6106 (family)
ADC (if MCU ADC is not enough) Quantify ILED ripple / Vsink margin and correlate to faults TI ADS1115 (I2C), TI ADS1015 (I2C)
Temperature sensing Confirm thermal derating vs mismatch; build a stable derating discriminator Digital: TI TMP117; NTC example: Murata NCP18WF104F03RC (100k class)
Event log storage (service diagnostics) Store fault_code + counters + timestamps for “intermittent” cases FRAM: Fujitsu MB85RS64V (SPI/I2C family); EEPROM class: Microchip 24LCxx
Hot-swap / eFuse (supply transient control) Reduce inrush/overshoot and prevent false trips at plug-in / power-up TI TPS25947 (family), TI TPS2660 (family)
Reset / supervisor (safe start sequencing) Hold MCU/enable in a safe default until bus configuration completes TI TPS3839 (family), Microchip MCP1316 (family)
Logic conditioning for FAULT/INT (optional) Debounce/clean edges for reliable timestamping and interrupt capture TI SN74LVC1G17 (Schmitt buffer class)
Evidence record format (MCU-side, minimal): {device_id, channel_id/group_id, ISET, trim_code, fault_code_now, fault_code_latched, counter, t_first, t_last, action_taken}.

Symptom 1: One channel is dimmer or runs hotter

First 2 measurements:

  • Vsink (bad channel vs a known-good channel), captured during a steady “ON” window.
  • ILED (or shunt voltage at Rsense) for the same channel pair.

Discriminator (isolate the root cause):

  • Headroom / saturation: Vsink collapses toward the device’s compliance/dropout boundary and ILED droops. This often masquerades as “poor matching” but is actually voltage margin.
  • Static mismatch / calibration: Vsink stays healthy but ILED is consistently off by a stable percentage. Suspect trim table, dot correction, or channel mapping.
  • Thermal derating: ILED decreases over time (warm-up) and correlates with temperature (NTC or temp flag). Neighboring channels may shift if thermal coupling is strong.

First fix (fast → structural):

  • Restore margin: raise the LED rail or reduce string voltage (e.g., bin/stack choices) so the worst-case channel has margin. If a separate rail stage exists, validate its transient behavior first.
  • Re-balance heat: redistribute “high Vsink” strings across non-adjacent channels; enforce global derating earlier to avoid localized banding.
  • Thermal path: increase copper spreading, add thermal vias, improve pad contact. Confirm with a before/after Vsink + ILED capture at steady thermal state.

Symptom 2: Deep dimming flicker or ghosting

First 2 measurements:

  • PWM/EN (or dimming control input): capture duty, period, and edge timing.
  • ILED(t) (preferred) or Vsink(t): verify settle time and plateau stability within the ON window.

Discriminator:

  • Ton too short: ON time is not long enough for settle + sampling → current never reaches a stable plateau; flicker increases and diagnostics may misfire.
  • Analog low-current nonlinearity: step-like brightness jumps or non-monotonic behavior while PWM is not the limiter; suspect quantization, mirror bias limits, or poor low-current matching.
  • Nuisance fault gating: flicker aligns with FAULT/INT events and counters increase; detection logic is interacting with dimming edges.

First fix:

  • Hybrid dimming: analog in mid/high region; PWM below a defined minimum stable current; add hysteresis to avoid mode chatter.
  • Sampling window discipline: time-gate any Vsink sampling/comparator decisions away from PWM edges; delay sampling until after settle.
  • Edge hygiene: reduce ringing/ground bounce on control lines (series damping resistor near the driver input is a common first step) and re-check ILED ripple.

Symptom 3: Frequent open/short alarms

First 2 measurements:

  • Vsink captured with a trigger on FAULT/INT (or on the comparator output if exposed).
  • FAULT/INT timing vs PWM/EN edges (same capture if possible).

Discriminator:

  • True fault: Vsink stays beyond the open/short window for longer than debounce time; fault persists across dimming levels.
  • Deep PWM false alarm: alarms appear only at low duty or near edges; Vsink violates the window only briefly during transitions.
  • Headroom edge-case: near-saturation Vsink behavior is misinterpreted as open string; correlate to VLED_SUP and temperature conditions.

First fix:

  • Debounce & window tuning: increase debounce time or adjust thresholds to match the real settle dynamics (do not “mask” real faults).
  • Event counters + timestamps: log fault_code + counter + t_first/t_last to separate “single transient” from “repeat offender”. Example log storage: FRAM MB85RS64V.
  • INT conditioning (optional): clean FAULT/INT edges for reliable capture (e.g., Schmitt buffer class SN74LVC1G17 + minimal RC).

Symptom 4: Power-up overshoot or false protection at startup

First 2 measurements:

  • VLED_SUP at power-up (trigger on the rising edge): check overshoot, droop, and settling.
  • Vsink or ILED during initialization: confirm whether channels are driven before configuration is stable.

Discriminator:

  • Supply transient first: VLED_SUP overshoots/dips before enable; fault occurs with no meaningful PWM activity → rail management is the primary suspect.
  • Enable sequencing first: EN/PWM asserts early; ILED spikes before the bus configuration settles → sequencing and default state are the suspect.
  • Bus config incomplete: inconsistent behavior across resets; device comes up in a non-safe default output mode → configuration timing and reset policy are the suspect.

First fix:

  • Constrain the rail transient: add inrush/overshoot control (eFuse/hot-swap class examples: TPS25947, TPS2660) and validate with VLED_SUP captures.
  • Enforce safe default: keep outputs disabled until config completes; apply a supervisor to guarantee sequencing (example families: TPS3839, MCP1316).
  • Commit policy: update channel settings only inside a known safe window (avoid edge updates at PWM boundaries); log startup faults to confirm the improvement.
Field rule: never debug “matching” before verifying margin and thermal state. Headroom and heat can create symptoms that look like calibration errors.
Vsink ILED / Rsense VLED_SUP PWM/EN FAULT/INT Temp/NTC fault_code counter timestamp
F11 Decision tree: symptom to two measurements to discriminator to first fix A compact decision tree showing four symptom entries. Each routes to two core measurements (Vsink and ILED or rail and control) then to three discriminator branches and practical first fixes. F11 – Field debug decision tree (symptom → 2 measurements → isolate → first fix) S1 Dim / Hot CH one channel off S2 Deep flicker ghosting / shimmer S3 Alarms open / short flags S4 Startup trip overshoot / false M1: Vsink M2: ILED / shunt M1: PWM / EN M2: ILED(t) M1: VLED_SUP M2: Vsink / ILED D1 margin? F1: restore headroom D2 Ton ok? F2: hybrid + gated sample D3 true? F3: debounce + logging D4 seq? F4: eFuse + safe default Capture set: Vsink, ILED, VLED_SUP, PWM/EN, FAULT/INT, Temp + (fault_code, counter, timestamp)
Diagram focus: every field issue should collapse to two measurements, a discriminator, and a first fix. Use timestamps + counters to turn “intermittent” faults into a reproducible story.
Cite this figure: Copy citation

Request a Quote

Accepted Formats

pdf, csv, xls, xlsx, zip

Attachment

Drag & drop files here or use the button below.

FAQs (evidence-based; mapped to chapters)

Each answer is short by design: one likely root cause, two measurements to confirm, one discriminator, and one first fix. All terms and evidence fields stay inside this page’s boundary (Vsink/ILED/headroom/thermal/fault logic/bus telemetry).

Q1A few channels are always dim—should matching or headroom be blamed first?

Start with headroom, not matching. Compare Vsink and ILED on a dim channel vs a good channel. If Vsink is near the compliance/dropout boundary and ILED droops, the channel is saturating (margin issue). If Vsink is healthy but ILED shows a stable offset, then trim/mismatch is likely. First fix: restore margin (raise rail or reduce string Vf), then re-trim.

Mapped: H2-4, H2-6
Q2Why does uniformity worsen when the board warms up, but looks fine at room temperature?

Heat changes both dissipation and control behavior. As temperature rises, hotspot channels may see higher loss and trigger derating earlier, widening ILED spread. Log temperature/NTC plus ILED vs time, and compare adjacent channels to expose thermal coupling. If ILED divergence grows with temperature, it is a thermal/derating problem, not static mismatch. First fix: improve copper spreading and choose a derating policy that preserves perceived uniformity.

Mapped: H2-5, H2-6
Q3At very low current the response is not linear—is it DAC quantization or a loop limitation?

Sweep ISET codes and record ILED across multiple channels. Stair-step behavior with uniform step size across channels usually indicates quantization/LSB limits. Channel-dependent curvature, strong temperature sensitivity, or non-monotonic segments point to bias/mirror limits or low-current control range. First fix: define a minimum stable analog current and use hybrid dimming below it; if supported, apply per-channel trim focused on the low-end region.

Mapped: H2-3, H2-9
Q4Open-string false trips during PWM—should sampling time or thresholds/debounce be changed?

Fix timing before touching thresholds. Capture Vsink with a trigger on PWM/EN and log the exact fault timestamp. If open-string flags occur only near edges or at low duty, the comparator is sampling during settle/ringing. First fix: add blanking, delay sampling into the ON plateau, and increase debounce to reject edge glitches. Adjust Vopen thresholds only after timing no longer correlates with edges.

Mapped: H2-7, H2-9
Q5An occasional short alarm appears but no real short is found—transient or ESD/cable coupling?

Use timing to separate “real” from “event-driven.” Trigger a scope capture on FAULT/INT and observe Vsink during the event. A narrow dip aligned with cable movement, PWM edges, or ESD activity suggests transient coupling. A sustained low Vsink with abnormal ILED indicates a true short. First fix: strengthen debounce and edge blanking, improve return routing/shielding, and keep a counter+timestamp log to confirm the pattern repeats only with disturbances.

Mapped: H2-7, H2-11
Q6The supply voltage seems high, yet some channels’ current collapses—where does the drop usually happen?

Most “mystery collapses” come from distribution loss, not the source. Measure VLED_SUP at the supply output and at the LED/load entry under the same current step; connector/trace resistance can steal headroom. Also compare Vsink across channels to see which strings are margin-limited. First fix: reduce distribution impedance (shorter/wider copper, better connectors), add local decoupling near the strings, and clean up return paths to avoid ground bounce.

Mapped: H2-4, H2-11
Q7What is the minimum measurement set to confirm a channel has entered dropout (saturation)?

Two points are enough: Vsink and ILED, compared against a known-good channel. In dropout, Vsink approaches the device’s minimum compliance window and ILED droops or becomes strongly dependent on small rail changes. A quick discriminator is to slightly vary VLED_SUP (or load) and watch whether ILED changes immediately; a regulated channel stays stable, a saturated channel does not. First fix: restore headroom margin for worst-case Vf and temperature.

Mapped: H2-4
Q8After thermal derating, why do some ICs reduce all channels while others reduce only hot channels—which looks less noticeable?

Global derating preserves relative matching, so the scene stays uniform but overall brightness drops. Per-channel derating preserves average brightness but can create visible banding if only a subset of channels are reduced. Choose based on what the human eye notices in the application: backlight/panel typically prefers global or zoned derate; decorative or spot applications may accept local reduction. Validate by logging the post-derate ILED spread and correlating with temperature and hotspot location.

Mapped: H2-5
Q9After building the trim table, stripes remain—LED binning or a current measurement method issue?

First check if electrical uniformity was actually achieved. Compute per-channel ILED min/max/σ under a fixed thermal state; if ILED is tight but stripes remain, LED bin/thermal gradient/optics dominate. If ILED statistics change when probes or sampling method changes, the measurement path is contaminating results. First fix: standardize the measurement method (same shunt sense, sampling window, and thermal soak), then rebuild trims using the same conditions the product will see.

Mapped: H2-6, H2-11
Q10I²C/SPI configuration occasionally drops—how should a safe power-up default be designed to avoid “all-on/all-off” events?

Assume the bus can fail and design a safe default state. Keep outputs disabled (or at a safe minimum current) until configuration is confirmed, and implement readback with a shadow copy so unexpected register changes are detected. Log bus error counters and the last valid config snapshot. First fix: enforce reset/supervisor sequencing, use robust pull-ups/termination per bus, and define a fail-safe policy: on config loss, revert to a known safe state rather than an uncontrolled output.

Mapped: H2-10
Q11Can open/short detection distinguish “one LED shorted” from “the whole string shorted to ground”?

Often not with Vsink windowing alone. A single shorted LED and a string short-to-ground can both force Vsink into the same “short” region, so the flag indicates an abnormal condition but not the exact topology. To distinguish, add an extra observable: a string voltage tap, rail current sense, or a controlled test pulse when the channel is off and compare Vsink recovery. First fix: implement a diagnostic mode that injects a small test stimulus and logs the response rather than relying on one static threshold.

Mapped: H2-7
Q12Which log fields are most valuable in the field to separate false trips from real faults?

Store timestamped snapshots, not just a fault bit. Minimum set: fault now/latched, event counter, timestamp, PWM state (duty/freq), ISET/trim snapshot, and if available Vsink sample, VLED_SUP, and temperature. False trips cluster around edges and clear quickly; real faults persist across retries and do not correlate tightly with PWM timing. First fix: tighten sampling gating, debounce, and condition-based retry policies.

Mapped: H2-8, H2-10, H2-11