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
- Place the part and an MCU in Playground, or add it to a system YAML:
- Agent:
labwired_list→labwired_describe id=ads1256→ wire →labwired_validate→labwired_run/labwired_verify. - 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_datasheetcovers 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
xin 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.