How robtillaart/ad56x8 works
AD56X8 is a small Arduino runtime library for controlling eight-channel 12/14/16-bit DACs. An Arduino sketch instantiates a resolution-specific class, initializes it, then sets or prepares channel values and control modes. The library validates and caches values, frames device commands, and sends them through hardware or software SPI; optional LDAC GPIO pulses coordinate updates. The sampled implementation supports power, reset, clear-code, percentage, SPI-speed, and LDAC-mask operations. Hardware behavior itself was not inspected.
Components 11
DAC Control
- DAC Variants
AD56X8.h - Control API
AD56X8.h - Value Cache
AD56X8.cpp - LDAC Controls
AD56X8.cpp - Power Reset Controls
AD56X8.cpp
SPI Transport
- Command Framing
AD56X8.cpp - SPI Transfer
AD56X8.cpp - GPIO Transport
AD56X8.cpp
DAC Hardware
- Eight-Channel DAC
Other components
- Arduino Sketch
- SPI Peripheral
Connections 13
- Arduino Sketch → DAC Variants: instantiates
- Arduino Sketch → Control API: calls API
- Control API → Value Cache: reads writes
- Control API → Command Framing: dispatches commands
- LDAC Controls → Value Cache: reads mask
- LDAC Controls → Command Framing: dispatches latch
- Power Reset Controls → Command Framing: dispatches controls
- Command Framing → SPI Transfer: frames transfer
- SPI Transfer → SPI Peripheral: uses hardware SPI
- SPI Transfer → GPIO Transport: uses software SPI
- SPI Peripheral → Eight-Channel DAC: sends frames
- GPIO Transport → Eight-Channel DAC: sends frames
- LDAC Controls → GPIO Transport: pulses LDAC