The ADS131M02 is a 2-channel, 24-bit simultaneous-sampling delta-sigma ADC with a PGA per channel, accessed over a full-duplex 4-wire SPI port. Its register space is a single flat 6-bit linear map, addresses 00h–3Fh, with no bank or page switching; every address not listed in the register map (Table 8-12) is RESERVED. Implemented registers fall into three banks: system/status and configuration (00h–06h), a per-channel calibration block (09h–12h), and the register-map CRC (3Eh). Conversion data is not in the register map at all — channel samples are clocked out on DOUT as part of the SPI data frame.
Identity and status registers: ID (00h), STATUS (01h)
ID — address 00h, read-only, reset = 22xxh.
| Bits | Field | Type | Reset | Meaning |
|---|---|---|---|---|
| 15:12 | RESERVED | R | 0010b | Always reads 0010b |
| 11:8 | CHANCNT[3:0] | R | 0010b | Channel count = 2 |
| 7:0 | RESERVED | R | xxxxxxxxb | Chip revision; values subject to change without notice |
Use as a device-ID check by verifying the upper byte reads 0x22; treat only the low byte as revision-dependent.
STATUS — address 01h, read-only, reset = 0500h.
| Bit | Field | Meaning |
|---|---|---|
| 15 | LOCK | SPI interface lock indicator (1 when locked) |
| 14 | F_RESYNC | ADC resynchronization indicator |
| 13 | REG_MAP | Register-map CRC fault indicator |
| 12 | CRC_ERR | SPI input CRC error indicator |
| 11 | CRC_TYPE | CRC type (0 = CCITT, 1 = ANSI) |
| 10 | RESET | Reset occurred indicator (reads 1 by default after reset) |
| 9:8 | WLENGTH | Data word length (16/24/32-bit) |
| 7:2 | RESERVED | Always reads 00000b |
| 1 | DRDY1 | Channel-1 ADC data available |
| 0 | DRDY0 | Channel-0 ADC data available |
STATUS contents are also returned automatically as the response/status word at the start of each output frame.
Mode, clock, gain and configuration registers: MODE (02h), CLOCK (03h), GAIN1 (04h), CFG (06h)
MODE — address 02h, reset = 0510h.
| Bits | Field | Reset | Meaning |
|---|---|---|---|
| 13 | REG_CRC_EN | 0b | Register-map CRC enable |
| 12 | RX_CRC_EN | 0b | SPI input CRC enable |
| 11 | CRC_TYPE | 0b | CRC type: 0 = 16-bit CCITT, 1 = 16-bit ANSI |
| 9:8 | WLENGTH[1:0] | 01b | Output word length: 00 = 16-bit, 01 = 24-bit (default), 10 = 32-bit zero-padded, 11 = 32-bit sign-extended |
| 4 | TIMEOUT | 1b | SPI timeout enable |
| 3:2 | DRDY_SEL[1:0] | 00b | DRDY source selection |
| 1 | DRDY_HiZ | 0b | DRDY state when data unavailable |
| 0 | DRDY_FMT | 0b | DRDY output format |
CLOCK — address 03h, reset = 030Eh. Note: despite the name, this register holds the power-mode selection; MODE has no power bits.
| Bits | Field | Reset | Meaning |
|---|---|---|---|
| 9 | CH1_EN | 1b | Channel 1 ADC block enable: 0 = disabled, 1 = enabled |
| 8 | CH0_EN | 1b | Channel 0 ADC block enable: 0 = disabled, 1 = enabled |
| 5 | TBM | 0b | Turbo mode: 0 = OSR from OSR[2:0], 1 = force OSR 64 |
| 4:2 | OSR[2:0] | 011b | Oversampling ratio: 000 = 128, 001 = 256, 010 = 512, 011 = 1024 (default), 100 = 2048, 101 = 4096, 110 = 8192, 111 = 16256 |
| 1:0 | PWR[1:0] | 10b | Power mode: 00 = Very-low-power, 01 = Low-power, 10 = High-resolution (default), 11 = High-resolution |
Output data rate: fDATA = fCLKIN / (2 × OSR). At the default OSR = 1024 with an 8.192 MHz clock, fDATA = 4 kSPS.
GAIN1 — address 04h, reset = 0000h. PGA gain for both channels lives here centrally, not per channel.
| Bits | Field | Reset | Meaning |
|---|---|---|---|
| 6:4 | PGAGAIN1[2:0] | 000b | Channel-1 PGA gain: 000 = 1, 001 = 2, 010 = 4, 011 = 8, 100 = 16, 101 = 32, 110 = 64, 111 = 128 |
| 2:0 | PGAGAIN0[2:0] | 000b | Channel-0 PGA gain, same coding |
Full-scale range follows the internal 1.2 V reference divided by gain: gain 1 = ±1.2 V down to gain 128 = ±9.375 mV.
CFG — address 06h, reset = 0600h.
| Bits | Field | Reset | Meaning |
|---|---|---|---|
| 12:9 | GC_DLY[3:0] | 1111b (16) | Global-chop delay, in modulator clock periods |
| 8 | GC_EN | 0b | Global-chop enable: 0 = disabled, 1 = enabled |
| 7 | CD_ALLCH | 0b | Current-detect: 0 = any one channel triggers, 1 = all channels must trigger |
Lower bits of CFG enable the DC-block filter and comms-CRC functions; the notes do not give their individual field names or positions.
Per-channel registers: CH0_CFG (09h), CH0_OCAL_MSB (0Ah), CH0_OCAL_LSB (0Bh), CH0_GCAL_MSB (0Ch), CH0_GCAL_LSB (0Dh), CH1_CFG (0Eh), ...
Identical block repeated for CH0 and CH1 (CH1 block: CH1_CFG 0Eh, CH1_OCAL_MSB 0Fh, CH1_OCAL_LSB 10h, CH1_GCAL_MSB 11h, CH1_GCAL_LSB 12h).
| Register | Address | Purpose |
|---|---|---|
| CH0_CFG | 09h | CH0 offset-removal and test-signal control; reset = 0000h |
| CH0_OCAL_MSB | 0Ah | CH0 offset calibration value (MSB) |
| CH0_OCAL_LSB | 0Bh | CH0 offset calibration value (LSB) |
| CH0_GCAL_MSB | 0Ch | CH0 gain calibration value (MSB) |
| CH0_GCAL_LSB | 0Dh | CH0 gain calibration value (LSB) |
| CH1_CFG | 0Eh | CH1 offset-removal and test-signal control |
| CH1_OCAL_MSB / _LSB | 0Fh / 10h | CH1 offset calibration |
| CH1_GCAL_MSB / _LSB | 11h / 12h | CH1 gain calibration |
CHx_CFG bit fields (reset = 0000h):
| Bits | Field | Meaning |
|---|---|---|
| 2 | DCBLK0_DIS0 | Disable channel-0 DC-block filter (0 = governed by CFG DCBLOCK setting, 1 = disabled for this channel) |
| 1:0 | MUX0[1:0] | Channel-0 input select: 00 = AIN0P/AIN0N (default), 01 = inputs shorted, 10 = positive DC test signal, 11 = negative DC test signal |
CH1_CFG mirrors this with MUX1[1:0] and its own DC-block disable bit.
Register-map CRC: REGMAP_CRC (3Eh)
| Register | Address | Field | Type | Reset | Meaning |
|---|---|---|---|---|---|
| REGMAP_CRC | 3Eh | REG_CRC[15:0] | R | 0000h | CRC of register-map contents (addresses 02h–12h), computed continuously at one register-map bit per CLKIN period |
Computation: enable with MODE.REG_CRC_EN = 1; polynomial selected by MODE.CRC_TYPE (0 = 16-bit CCITT, 1 = 16-bit ANSI); seed FFFFh; coverage is addresses 02h through 12h, processed MSB of 02h first through LSB of 12h. The host verifies by reading registers 02h–12h, recomputing the CRC with the same polynomial/seed/order, and comparing against REGMAP_CRC. STATUS.REG_MAP (bit 13) sets whenever the CRC value changes — including changes caused by normal register writes — so expect it after any configuration write to a covered register. Clear by reading STATUS. REGMAP_CRC reads 0000h until REG_CRC_EN is set, so no faults are flagged before the feature is enabled.
Reserved registers and warned-against values: RESERVED (05h), RESERVED (3Fh)
Two entire addresses are dedicated RESERVED registers, both R/W with reset = 0000h:
| Address | Field | Rule |
|---|---|---|
| 05h | RESERVED [15:0] | Always write 0000_0000_0000_0000b |
| 3Fh | RESERVED [15:0] | Always write 0000h |
Reserved fields inside implemented registers (e.g. ID bits 15:12 and 7:0, STATUS bits 7:2) are read-only and read fixed values; they cannot be written and must not be treated as writable. Every address in 00h–3Fh not listed in the register map (Table 8-12) is RESERVED.
Additional traps the datasheet calls out:
- WREG latches as it shifts in. Registers are written as they shift in on DIN, so an input-CRC error does not prevent an erroneous value from being written — a CRC error during WREG only sets STATUS.CRC_ERR; the bad value is already latched.
- WREG framing. Command word is 011a aaaa annn nnnn (address + count−1); each register's data must be MSB-aligned in its own word. If input CRC is enabled, write the input CRC after the register data.
- RESET command (0011h) requires a full frame. It is not latched until the whole frame completes; terminating early discards it. After reset, wait t_REGACQ (≤ 5 µs) before communicating again. There is no register write that triggers a reset. Note that the SPI RESET command is not the only reset path: the device also resets via the dual-function active-low SYNC/RESET pin (held in reset while the pin is low longer than t_w(RSL), released when it returns high) and via power-on reset (POR) when a valid supply is first applied.
- LOCK interface. Once locked, only NULL, RREG, and UNLOCK commands are accepted; WREG and all other state-changing commands are ignored. STATUS.LOCK (bit 15) reads 1 while locked.
- Read-only registers. ID (00h) and STATUS (01h) are entirely R.
- No explicit register write-ordering requirements beyond the frame and CRC rules above are documented.
Accessing the registers: RREG, WREG, NULL, RESET
Registers sit in one flat 6-bit address space (00h–3Fh) addressed via SPI command words on a 4-wire full-duplex slave port (CS, SCLK, DIN, DOUT). There is no bank/page select register.
| Command | Word pattern | Action |
|---|---|---|
| RREG | 101a aaaa annn nnnn | Read nnn nnnn + 1 registers starting at aaaaaa |
| WREG | 011a aaaa annn nnnn | Write nnn nnnn + 1 contiguous registers |
| NULL | 0000h | No-op; causes the normal frame response |
| RESET | 0011h | Software reset (full frame required) |
| LOCK / UNLOCK | special words | Lock/unlock the interface |
- Single-register access uses count = 000 0000b.
- RREG burst: the device shifts out all requested registers MSB-aligned, ascending address order. ADC conversion data is NOT output in the frame following a multi-register RREG — keep toggling SCLK to drain the register stream.
- WREG burst: data words follow the command word immediately, MSB-aligned; registers latch as they shift in (see the CRC caveat above).
- Conversion data is not a register read: each frame on DOUT carries the status/response word, CH0 data, CH1 data, and a data CRC word. Word width is set by MODE.WLENGTH (default 24-bit); in 16-bit word mode the 8 fine LSBs are truncated.
Key timing constraints: SCLK period ≥ 40 ns (≤ ~25 MHz; ≥ 64 ns when DVDD is 1.65–2.0 V), DIN setup/hold 5/8 ns, SPI timeout 32768 · tCLKIN, t_REGACQ ≤ 5 µs after reset, tPOR typ 250 µs to first DRDY rising.
Part page: ADS131M02.