Skip to content

ADS1256

TI ADS1256 24-bit, 8-channel delta-sigma ADC with SPI interface: register map, PGA, MUX, RDATA and DRDY.

Live catalog

Prefer labwired_describe with the catalog id over guessing pins or addresses.

Status at a glance

Aspect Status
Catalog id ads1256
Bus SPI (mode 1)
Address — (CS via cs_pin)
Datasheet TI ADS1255/ADS1256 SBAS288K: Table 23 register map, Table 24 commands, Table 16 output codes, Table 13 settling time
Source configs/devices/ads1256.yaml (declarative, no Rust model)
Tier smoke-proven (register-level tests: crates/core/tests/parts_batch5.rs)

Pins / attachment

Pin / net Role
SCLK / DIN / DOUT SPI
CS cs_pin
DRDY Driven (active low, drdy_pin)
AIN0..AIN7, AINCOM Stimulus ain0_uv..ain7_uv, aincom_uv
VREF Stimulus vref_uv
SYNC/PDWN, RESET pin, D0..D3 Not modelled

Support matrix

Behavior Status Notes
RREG (1rh 0nh) / WREG (5rh 0nh), wrap past 0Ah ✅ STATUS ID/DRDY and ADCON bit 7 read-only
RDATA (01h): 24-bit two's complement, clipped ✅ (AINP−AINN)·PGA·(2^23−1)/(2·VREF)
MUX AIN0..7 / AINCOM, PGA 1..64 ✅
DRDY pin + STATUS.DRDY ⚠️ t18 and data period at the 30 kSPS default only
RESET, SELFCAL/SYNC (DRDY re-settles) ⚠️ Calibration words stored, not applied
RDATAC, STANDBY, ORDER=1, GPIO pins ❌

Stimulus

Host inputs: ain0_uv … ain7_uv, aincom_uv, vref_uv (microvolts).

How to run

  1. Place the part and an MCU in Playground, or add it to a system YAML:
    external_devices:
      - id: "ads1256"
        type: "ads1256"
        connection: "spi1"
        config:
          cs_pin: "PA4"
          drdy_pin: "PB0"
    
  2. Agent: labwired_list → labwired_describe id=ads1256 → wire → labwired_validate → labwired_run / labwired_verify.
  3. Register-level smoke: cargo test -p labwired-core --test parts_batch5 — RREG of STATUS..IO after t18 and RDATA on the default input pair; ads1256_wreg_mux_pga_and_drdy_follow_the_datasheet covers WREG, MUX/PGA, clipping, read-only bits, the wrap, RESET and the DRDY pin. The same file's negative control proves the check fails against a stand-in that answers only 0x00 or only 0xFF.

Limitations

  • The ID nibble is printed x in Table 23; the twin answers ID = 3.
  • OFC/FSC ("depends on calibration results") read 000000h and are not applied: the converter is ideal.
  • Timing does not follow DRATE.

See the YAML header for the full datasheet trace and every named approximation.