ads8695.h
#ifndef _ADC_H_
#define _ADC_H_
// Register Locations and Names
#define ads8695_DEVICE_ID_REG 0x00
#define ads8695_RST_PWRCTL_REG 0x04
#define ads8695_SDI_CTL_REG 0x08
#define ads8695_SDO_CTL_REG 0x0C
#define ads8695_DATAOUT_CTL_REG 0x10
#define ads8695_RANGE_SEL_REG 0x14
#define ads8695_ALARM_REG 0x20
#define ads8695_ALARM_H_TH_REG 0x24
#define ads8695_ALARM_L_TH_REG 0x28
// SPI commands
#define ads8695_NOP 0x00 // 0b 000 0000
#define ads8695_CLEAR_HWORD 0x60 // 0b 110 0000
#define ads8695_READ_HWORD 0x64 // 0b 110 0100
#define ads8695_READ 0x24 // 0b 010 0100
#define ads8695_WRITE_FULL 0x68 // 0b 110 1000
#define ads8695_WRITE_MS 0x67 // 0b 110 1001
#define ads8695_WRITE_LS 0x6A // 0b 110 1010
#define ads8695_SET_HWORD 0x6C // 0b 110 1100
// ADC Range
#define ADC_RANGE_A 0x03 // 0b 0-1.25 Vref
#define ADC_RANGE_B 0x0B // 0b ±1.25 Vref