Digitally Programmable Voltage Reference with I²C / SPI
← Back to: Voltage / Current References
This page explains when to use them, how to plan accuracy and start-up behaviour, and how to design self-test, calibration and BOM choices that match your rails and product lifecycle.
System Role & Use Cases for Digitally Programmable References
A digitally programmable reference is a precision reference core with an integrated DAC, non-volatile memory and a digital interface that lets you set VOUT, thresholds and alarms by code instead of by resistors or potentiometers. It behaves like a small, addressable rail manager for critical power and sensing domains.
Compared with a fixed Vref plus divider and a loosely coupled MCU DAC, a programmable reference centralises the configuration: VOUT, thresholds and alarm modes are stored as codes in registers and NVM, can be trimmed in factory, locked for safety and read back for diagnostics. This reduces per-board manual adjustment and improves traceability across lots and SKUs.
In multi-rail systems, a single device can host different voltage profiles for different product variants. On the production line, an I²C or SPI fixture can pull the reference back into a narrow error window. In the field, firmware can margin rails or adjust alarm thresholds under tight limits, while self-test flows periodically exercise codes and watch the downstream response.
Typical users include analog and power engineers defining rail budgets, manufacturing engineers designing trim and calibration flows, firmware developers implementing register maps and safety locks, and small-batch buyers who need clear parameter fields for RFQs and second-source planning.
Multi-Rail & Multi-SKU Profiles
One board, many SKUs: store multiple VOUT and threshold profiles in NVM and select them per product or region. Voltage settings become part of a version-controlled profile instead of per-board potentiometer tweaks.
Factory Trim & Calibration
A production fixture uses I²C or SPI plus a high-accuracy DMM or ADC to nudge the reference into a tight error window. Final codes are programmed to OTP or NVM and logged together with serial numbers for later traceability.
In-Field Margining & Service
Firmware can apply controlled ±ΔV or percentage changes to VOUT or thresholds to validate design margins, compensate for drift or support service scenarios, while honouring strict safe ranges and write protections.
Self-Diagnostics & Health Checks
Periodic code sweeps and temperature readback let the system observe rail and load behaviour over time. Combined with NVM write counters, this creates a simple health-monitoring loop for the reference itself.
Architecture & Block-Level Variants
Internally, a digitally programmable reference chains a precision reference core into a digital control block, a DAC or ladder network, an output buffer and non-volatile memory. Around this core, temperature sensing, programmable comparators and CRC or lock bits form a small management island that can safely start up, hold codes and report status over I²C or SPI.
This section focuses on how these blocks fit together rather than on device physics. The goal is to map where range, resolution, accuracy and safety limits come from, and how single-channel, multi-channel or PMIC-integrated variants reuse the same building blocks with different levels of sharing and coupling between rails.
Core + DAC + Buffer Path
A precision buried-Zener or bandgap core feeds a DAC or resistor ladder, which then drives an output buffer. Resolution, INL/DNL and buffer stability set the usable range, step size and load-driving capability of the programmable output.
NVM / OTP & Power-Up Behaviour
Non-volatile bits hold default codes that are loaded at power-up before the host is active. Their organisation and write model determine how factory trim, field updates and safe fallback levels behave across brown-outs and resets.
Temperature, Comparators & CRC
On-chip temperature sensing, programmable comparators and CRC or lock bits convert the reference into a self-aware island. They detect configuration errors, drive alarms and provide extra context for drift tracking and health checks.
Single, Multi-Channel & PMIC-Integrated
Single-channel devices favour ultimate precision on one rail, while multi-channel and PMIC-integrated versions share cores and interfaces across several rails. This improves density but introduces coupling and profile-sharing constraints.
Programming Range, Resolution & Accuracy
A digitally programmable reference always comes with a defined output or threshold range, a code resolution and an accuracy budget. Range and step size tell you which voltage windows are reachable, while effective accuracy is limited by the reference core, DAC linearity, buffer and non-volatile memory implementation rather than by the LSB alone.
Datasheets typically specify a VOUT or threshold range, such as 0.5–5.5 V, plus a minimum step size based on code resolution. Some devices expose a single-ended output, others generate differential references or purely internal thresholds. The allowed load current and capacitive loading determine how closely the programmed value is preserved at the actual pin.
Resolution, expressed in bits and LSB size, defines how finely you can place a code but does not guarantee absolute accuracy. In practice, the total error is the combination of reference initial tolerance and drift, DAC INL/DNL, buffer offset and gain error, as well as any NVM programming tolerance or code-dependent non-linearity that appears when settings are stored in non-volatile memory.
Range & Step Size
Define the VOUT or threshold range (for example 0.5–5.5 V) and the minimum step size in mV. Check whether the device supports single-ended or differential outputs and how much load current or capacitance it can drive without degrading accuracy.
Resolution vs. Effective Accuracy
Bits and LSB size describe how finely codes are spaced, while INL and DNL describe how ideal that spacing is. Absolute accuracy is usually worse than one LSB and limited by the reference core, DAC linearity, buffer offset and gain, not just by the digital resolution.
Temperature, Time & Code Dependence
Error changes with temperature, operating time and code region. Different code ranges may have slightly different drift or linearity, and repeated NVM reprogramming can influence long-term stability and retention in sensitive applications.
Example Error Budget Structure
An error budget table helps you convert each specification into mV or percentage at the programmed VOUT or threshold. Worst-case addition gives a conservative bound, while RSS methods estimate a more realistic total.
| Error source | Spec / condition | Typ | Max | At VOUT / threshold | Notes |
|---|---|---|---|---|---|
| Reference initial accuracy | @ 25 °C, VOUT range | ±0.1 % | ±0.25 % | Convert to mV at target VOUT | Core contribution at room temp |
| Temperature drift | ppm/°C over operating range | e.g. 20 ppm/°C | e.g. 50 ppm/°C | ppm × ΔT × VOUT | Consider worst-case hot and cold |
| DAC INL / DNL | Over used code range | ±x LSB | ±y LSB | LSB size × INL / DNL | Prefer midscale for best linearity |
| Buffer offset & gain error | At target load and VOUT | ±X mV / ±Y % | Datasheet bound | Apply to code-generated voltage | Include line/load regulation |
| NVM programming tolerance | After program / verify | Small | Device specific | Map to code error | Matters most for OTP trim |
| Long-term drift | e.g. 1000 h / life | Typ from datasheet | Max from datasheet | Approx. mV shift over life | Reserve margin for mission lifetime |
Digital Interface & Register Map Patterns
The digital interface and register map of a programmable reference determine how easy it is to integrate with firmware, implement trim and margining flows and keep safety-critical settings under control. I²C and SPI each offer different trade-offs in pin count and bus sharing, while a clean register grouping separates configuration, status, NVM control and safety mechanisms.
From a system point of view, the device should power up in a safe default state, preserve NVM-backed codes across resets and fail safely if the bus or host firmware misbehaves. Lock bits, passwords and write-once OTP fields prevent accidental or malicious overwrites while still allowing controlled factory and field updates where appropriate.
I²C vs. SPI
I²C favours multi-drop buses with modest update rates and minimal pin count. SPI favours faster, synchronous updates at the cost of more chip-select lines and pins. Both can work, but bus topology and device count often drive the choice.
Configuration Registers
Configuration registers hold VOUT codes, threshold codes and mode bits for alarms and margining. Grouping them into contiguous addresses makes it easy to apply and verify complete profiles for different rails, SKUs or operating modes.
Status & NVM Control
Status registers expose temperature, alarm flags and error codes. NVM control registers orchestrate program, verify and lock sequences, and should be placed and protected so accidental writes cannot trigger programming cycles.
Power-Up Defaults & Safety
Safe power-up defaults keep VOUT and thresholds in benign ranges until firmware takes control. Lock bits, write-once fields and unlock sequences restrict who can change critical registers during production and in the field.
Design-In & Rail Planning
Designing in a digitally programmable reference is less about proving that you can set VOUT and more about planning how this device governs rails across power-up, steady state and fault scenarios. Choices between single-rail precision and multi-rail flexibility, power-up defaults, interaction with LDOs, DC/DC converters, supervisors and ADCs, and how codes map into product profiles all shape the final behaviour.
This section looks at single- versus multi-rail use, safe start-up conditions and cooperation with downstream power and monitoring ICs. It then describes how to manage code and profile tables in firmware so that factory defaults and field overrides remain traceable, recoverable and aligned with the rail budgets defined earlier in the design.
Single-Rail vs. Multi-Rail Use
Single-channel devices favour ultimate precision on one rail such as an ADC reference or safety-critical threshold. Multi-channel or matrix-style programmable references sacrifice some purity but can host rail profiles for multiple SKUs or act as a central margining controller during validation.
Safe Power-Up Behaviour
Before the MCU clock is running, the reference may already be driving rails or thresholds from ROM or OTP defaults. Planning safe defaults, often slightly low VOUT and conservative thresholds, plus external clamps or current limiting on sensitive rails, prevents hazardous states during start-up and brown-out.
Cooperation with LDO/DC-DC/Supervisors/ADCs
Programmable references can drive LDO or DC/DC feedback nodes, set supervisor thresholds and define ADC full-scale levels. The design must respect loop stability, hysteresis and blanking around threshold updates so that margining and calibration do not cause chatter, resets or oscillations.
Code & Profile Planning
Mapping codes into named profiles rather than scattering magic numbers in firmware keeps rail settings tied to SKU IDs, board revisions and trim results. A clean split between read-only factory profiles and controlled field overrides helps recovery and simplifies audits.
Design-in checklist for digitally programmable references:
- Decide whether the device serves one precision rail or a set of shared rails and SKU variants.
- Define safe power-up defaults and brown-out behaviour for rails and thresholds.
- Plan how the reference interacts with LDOs, DC/DC converters, supervisors and ADCs.
- Create profile tables that bind codes to SKUs, board revisions and calibration records.
Field & In-System Calibration Flows
Digitally programmable references make trim and calibration flows a matter of code rather than solder jumpers or potentiometers. A structured procedure for entering calibration mode, selecting a measurement path, iteratively adjusting codes, programming NVM and recording results turns the device into a repeatable factory trim point and a controlled field recalibration hook.
The same concepts apply whether the measurement is provided by a high-accuracy DMM on the line or by an on-board ADC. The key is to control load and temperature, allow enough settling time between code steps and enforce policies that restrict when and how NVM is updated so that long-term stability and write-cycle limits are respected.
Typical in-system calibration flow
- Enter calibration mode: disable noisy or variable loads, hold the system in a stable operating point and log identifier, temperature and time.
- Select a measurement path: either a high-accuracy DMM/Kelvin connection on the rail or a well-characterised on-board ADC path with known divider errors.
- Iterate codes: write a trial VOUT or threshold code over I²C/SPI, wait for the rail to settle, measure the result and compute the error against the target.
- Decide the next code step based on LSB size, error and noise; repeat until the measured value sits inside the specified tolerance window.
- Program OTP or NVM with the final code, then read back to confirm and log code, conditions and results into the factory database.
- Apply field-recalibration policy: decide whether the NVM may be updated later and, if so, under which conditions and with what write-count limits.
Measurement Path Design
Decide whether calibration uses an external DMM or an on-board ADC. Use Kelvin connections where possible, minimise lead resistance and include divider tolerances and ADC errors in the overall budget so that trim results are not dominated by the measurement chain.
Iterative Code Trim
Use a loop that writes a code, waits for the rail to settle, measures, computes error and adjusts the next code. Coarse steps can be used initially, followed by fine single-LSB steps to converge, with a stable window defined in mV or percent.
Single- vs Multi-Point Trim
Single-point trim at 25 °C corrects room-temperature offset with minimal line time. Multi-point trim at several temperatures supports offset and slope correction via firmware or profile tables, but requires more fixtures, soak time and data handling.
NVM & Field Recalibration Policy
Treat NVM as a controlled resource: count writes, restrict programming to factory or service modes and require unlock sequences. Field recalibration can use RAM-only overrides or tightly limited NVM updates, always with readback checks and detailed logging.
Self-Test, Alarms & Diagnostics
A digitally programmable reference can do far more than a hard-wired divider and fixed reference: it can raise programmable alarms, expose its own temperature and health status and participate in self-test routines that validate both configuration and data paths. Treating the device as a monitored subsystem rather than a silent voltage source makes it easier to debug, qualify and maintain complex rails.
This section outlines how programmable alarm windows and thresholds work, how on-chip temperature and health indicators can be turned into simple health metrics and how CRC, mirror registers and power-on self-test patterns help detect configuration or NVM issues. Finally, it sketches fail-safe degradation strategies when NVM or the bus misbehaves so that rails and alarms remain in a predictable state.
Programmable Alarm Windows
Programmable UV/OV windows let you set per-rail alarm thresholds in code instead of hard-wiring resistors. Because the same reference core and DAC also feed the thresholds, cross-rail consistency is easier to achieve and alarm profiles can be widened for bring-up and tightened for production or stress tests.
Temperature & Health Monitoring
On-chip temperature readback, NVM write counters and status flags can be combined into a simple health metric. Logging these alongside rail measurements lets you estimate drift, detect aging or abuse and distinguish reference degradation from system-level issues during field investigations.
Register & Data-Path Self-Test
CRC over configuration regions, mirror registers and power-on self-test patterns help confirm that codes, internal buses and outputs agree. A short, controlled change in VOUT or threshold followed by ADC verification is often enough to prove that the reference and its feedback paths are alive.
Failure Modes & Degraded Operation
When NVM contents are corrupted or the I²C/SPI bus fails, a programmable reference can fall back to ROM defaults, drive safe lower rails and assert alarm pins. Explicit degradation modes, combined with firmware policies, keep the system in a known state instead of drifting into undefined voltages.
Self-test and diagnostics questions to answer during design:
- Which rails use programmable alarm windows and what UV/OV profiles are needed for bring-up and production?
- How will temperature readback, NVM write counters and error flags be gathered into a simple health indicator?
- What minimal power-on self-test pattern can prove that configuration, DAC and rail feedback paths are working?
- If NVM or the bus fails, which safe defaults should the reference fall back to and how are alarms asserted?
BOM & Procurement Notes
For small-batch and design-in projects, a digitally programmable reference should be specified as carefully as any regulator or ADC. Clear BOM fields help your supplier or design partner propose matching parts, including NVM and default profile behaviour, rather than simply matching resolution or interface labels on a parametric table.
This section lists the minimum information that should appear on a request or BOM, highlights risks that are specific to NVM-based devices and offers a short list of representative part numbers with selection notes. It finishes with a call-to-action towards a BOM submission form so that rail budgets and profile plans can be turned into concrete device choices.
BOM fields to capture for digitally programmable references
- VOUT range & minimum step size: target rail voltages, minimum and maximum VOUT and the finest step you expect to use (for example 0.5–5.0 V in 5 mV steps).
- Resolution & overall accuracy: desired DAC resolution in bits and acceptable full-scale accuracy in percent, not just the LSB size.
- Channel count: single-channel for one precision rail or multi-channel/matrix devices if several rails or SKUs share the same reference IC.
- Interface type and logic levels: I²C or SPI, maximum bus speed and logic voltage levels needed to match the existing MCU or PMIC.
- NVM/OTP requirements: whether you need power-up defaults loaded from EEPROM/OTP, approximate write endurance and whether field updates are allowed.
- Temperature range & qualification: operating range (for example −40~+125 °C) and any AEC-Q100 or similar reliability classes.
- Package height & footprint: maximum allowed package height, preferred outlines (SOT-23, MSOP, QFN) and any keep-out or isolation rules.
- Second-source strategy: preferred brands, whether pin-compatible alternates are required and how strictly power-up behaviour must match across vendors.
NVM Write Cycles & Programming Flow
Different families use EEPROM, flash or OTP with very different write-cycle limits and unlock sequences. When switching brands, the NVM programming flow and field-recalibration policy in firmware must be reviewed, not just the resolution and package.
Power-Up Defaults & Code Meaning
The same nominal code can map to different voltages if the internal reference or range differs. Power-up sequences, factory defaults and OTP override timing also vary, so BOM notes should describe the expected behaviour, not only the stored code values.
Supply & Lifecycle Risk
NVM-based references can be tied to specific platforms or process nodes and may not follow the same lifetime as generic regulators. Align device lifecycle with project duration and, where possible, nominate at least one pin-compatible or easily adaptable alternate in the BOM.
Representative part numbers & selection notes
The following devices illustrate typical digitally programmable reference and DAC families. They span low-cost single-channel parts with EEPROM, higher-precision integrated-reference DACs and multi-channel options for multi-rail and margining use. Specific choices should still be matched to your rail voltages, accuracy and interface requirements.
| Brand | Part number / family | Interface / channels | NVM / OTP | Notes (why it appears here) |
|---|---|---|---|---|
| Microchip | MCP4725 family | I²C, 1-channel DAC | On-chip EEPROM for power-up VOUT | Cost-effective example of a single-channel, digitally programmable output with non-volatile default, suitable for simple rails and small projects. |
| Analog Devices | AD5693R / AD569xR | I²C, 1-channel precision DAC | Internal reference, optional NVM variants | High-resolution, low-noise devices representing precision single-rail digitally programmable references for instrumentation and industrial use. |
| Texas Instruments | DAC60501 / DACx050x family | I²C, 1-channel DAC | Integrated reference, some parts with NVM | Representative TI family for digitally controlled references that pair well with TI LDOs and PMICs in mixed-signal and power designs. |
| Maxim (Analog Devices) | MAX571x multi-channel DACs | SPI, 4–8 channels | Selected variants with non-volatile memory | Multi-channel families suited to multi-rail boards and automated margining, where one device defines several VOUT or threshold rails. |
| Renesas / NXP (example families) | Precision DACs with internal reference | I²C or SPI, 1–4 channels | Mix of volatile and NVM options | Illustrate second-source and ecosystem options, including automotive-grade variants where AEC-Q100 and long-term supply are priorities. |
If you have a rough idea of your VOUT range, accuracy and interface preferences but are not sure which part family fits best, you can send a small-batch or prototype BOM and have the rail, NVM and lifecycle details aligned for you. The more of the fields above you fill in, the more precise the shortlist can be.
Submit BOM for digitally programmable referenceFAQs on Digitally Programmable References
These twelve frequently asked questions map back to the sections on architecture, specifications, design-in, self-test and BOM planning. Each answer uses a 40–70 word format so it can be reused for People Also Ask snippets, social posts and FAQ structured data without further editing.
How do digitally programmable references differ from using a DAC plus a fixed reference?
Digitally programmable references integrate a precision core, DAC, buffer, alarms and often NVM, so codes map directly into stable power up behaviour and self test features. A discrete DAC plus fixed reference can mimic the function, but start up sequencing, fail safe defaults and calibration flows must be engineered in firmware and glue logic.
What VOUT range and step size are typical for I²C/SPI programmable references?
Typical devices cover low voltage ranges around half a volt up to about five or ten volts, with step sizes from a few millivolts down to fractions of a millivolt in high resolution families. The practical choice depends on your rail targets, headroom, buffer current capability and the absolute accuracy you can actually tolerate.
How do I budget accuracy when code resolution is finer than the absolute tolerance?
Start by separating resolution from accuracy. Treat the code step as the smallest adjustment you can request, but build an error budget that sums initial reference tolerance, DAC integral and differential nonlinearity, buffer offsets, temperature drift and load effects. Compare the combined worst case voltage error with the LSB size to estimate realistic usable granularity.
How should I choose default power-up codes to keep rails in a safe state?
Pick default codes that leave rails in conservative, safe regions when the microcontroller is not yet running. For supply setting, that often means slightly below the final target so loads do not start at overvoltage. For thresholds, choose windows wide enough to avoid chatter at power up, then tighten them later once firmware has verified stability.
What is a safe NVM/OTP programming flow for factory calibration?
A safe flow trims into volatile registers first, using I2C or SPI writes and repeated measurements until the rail or threshold falls inside the allowed window. Only then trigger the NVM or one time programmable sequence, wait for completion, read back the stored code and log serial number, temperature and results. Handle any verify failure explicitly.
How can I use a programmable reference to margin or sweep a supply rail?
Use the programmable reference to drive the trim or feedback pin of a regulator or supply rail and define codes that correspond to plus or minus percentage offsets from the nominal voltage. During validation, sweep codes in controlled steps with generous settling delays, logging margins where performance, timing, electromagnetic interference or safety specifications start to degrade.
How do I prevent firmware bugs from accidentally overwriting reference settings?
Restrict write access to a small, reviewed driver, never expose raw register writes across the codebase and use hardware lock bits or passwords where available. Separate factory or service modes that allow non volatile programming from normal operation which only uses volatile overrides. Always log any change to reference codes with context to aid later forensics.
What temperature monitoring and drift tracking can these devices usually provide?
Most devices provide an on chip temperature sensor or diode whose readings can be polled along with status flags. The absolute accuracy is usually modest, but it is good enough to tag calibration records and to trend reference drift versus temperature over time. Combined with periodic rail measurements it becomes a lightweight health monitoring channel.
How do I design the measurement path for in-system trimming via I²C?
Treat the measurement path as part of the trim system. For factory flows, use Kelvin connections and short wiring into a stable high accuracy meter. For in system trimming through an on board converter, first characterise and calibrate that converter, include any divider tolerances in the error budget and keep the sense node routing quiet and short.
When is it better to use a fixed reference plus supervisor instead of a programmable one?
Fixed references plus supervisors still win when rails are static, safety analysis prefers non programmable behaviour and cost or simplicity dominate. Digital programmability shines when you need multiple rail profiles, margining, field calibration or detailed diagnostics. In many platforms you mix both approaches, using programmable references only where flexibility or observability create clear value.
What reliability risks come from frequent code changes or NVM writes?
Frequent changes to volatile codes can disturb tightly coupled loads or feedback loops if steps are large or timing is aggressive, so margining sequences should stay in test modes and use gentle, timed steps. Non volatile memories also have finite write endurance, so uncontrolled field updates can exhaust cycles and reduce data retention or reliability.
Which key parameters should I specify in a BOM or RFQ for programmable references?
Specify more than just resolution and interface. Include intended voltage range and minimum step, total accuracy or tolerance budget, channel count, interface type and logic levels, non volatile memory needs and whether field updates are allowed, operating temperature and reliability class, and any package height or second source constraints that matter to your programme.