32 inline constexpr uint16_t
MANUAL = 0x1000;
33 inline constexpr uint16_t
AUTO_1 = 0x2000;
34 inline constexpr uint16_t
AUTO_2 = 0x3000;
42 inline constexpr uint16_t
MASK = 0xF000;
67 return static_cast<uint16_t
>((ch & 0xF) << 7);
97 inline constexpr uint16_t
ALL_LOW = 0x0000;
111 return static_cast<uint16_t
>(1U << (ch & 0xF));
125 return static_cast<uint16_t
>((ch & 0xF) << 6);
169 return static_cast<uint16_t
>((ch_in_group & 0x3) << 14);
184 return (adc_12bit >> 2) & 0x03FF;
193 inline constexpr uint16_t
GroupMode(uint8_t channel)
noexcept {
194 uint8_t group = channel / 4;
195 constexpr uint16_t modes[] = {
213 inline constexpr uint8_t
GetChannel(uint16_t frame)
noexcept {
214 return static_cast<uint8_t
>((frame >> 12) & 0x0F);
221 inline constexpr uint16_t
GetData(uint16_t frame)
noexcept {
222 return frame & 0x0FFF;
constexpr uint16_t ChannelSelect(uint8_t ch) noexcept
Encode manual-mode channel selection bits DI[10:7].
constexpr uint16_t Auto1ChannelBit(uint8_t ch) noexcept
Build the Auto-1 enable bit for a channel.
constexpr uint16_t Auto2LastChannel(uint8_t ch) noexcept
Encode Auto-2 last-channel field DI[9:6].
@ GPIO
Both as general-purpose I/O.
constexpr uint16_t LOW_REGISTER
constexpr uint16_t EXIT_NEXT_FRAME
constexpr uint16_t Threshold12To10(uint16_t adc_12bit) noexcept
Convert 12-bit ADC threshold to 10-bit alarm register format.
constexpr uint16_t HIGH_REGISTER
constexpr uint16_t CONTINUE_PROG
constexpr uint16_t ChannelInGroup(uint8_t ch_in_group) noexcept
Encode alarm channel index within a 4-channel group.
constexpr uint16_t GroupMode(uint8_t channel) noexcept
Resolve alarm programming mode code for a global channel.
constexpr uint16_t GPIO0_HI_ALARM
constexpr uint16_t RESET_ALL_REGS
constexpr uint16_t GPIO01_GPIO
constexpr uint16_t NORMAL_OPERATION
constexpr uint16_t DIR_GPIO1_OUT
constexpr uint16_t GPIO3_AS_GPIO
constexpr uint16_t DIR_GPIO2_OUT
constexpr uint16_t GPIO1_LO_GPIO0_HI_ALARM
constexpr uint16_t GPIO2_AS_GPIO
constexpr uint16_t GPIO3_PWRDOWN_IN
constexpr uint16_t DIR_GPIO0_OUT
constexpr uint16_t DIR_GPIO3_OUT
constexpr uint16_t GPIO0_HI_LO_ALARM
constexpr uint16_t GPIO1_HI_ALARM
constexpr uint16_t GPIO2_RANGE_IN
constexpr uint16_t PIN2_HIGH
constexpr uint16_t ALL_LOW
constexpr uint16_t PIN3_HIGH
constexpr uint16_t PIN1_HIGH
constexpr uint16_t PIN0_HIGH
constexpr uint16_t AUTO_1
constexpr uint16_t AUTO_1_PROG
constexpr uint16_t ALARM_GROUP_0
constexpr uint16_t ALARM_GROUP_1
constexpr uint16_t CONTINUE
constexpr uint16_t GPIO_PROG
constexpr uint16_t AUTO_2_PROG
constexpr uint16_t ALARM_GROUP_2
constexpr uint16_t ALARM_GROUP_3
constexpr uint16_t MANUAL
constexpr uint16_t AUTO_2
constexpr uint8_t GetChannel(uint16_t frame) noexcept
Extract channel descriptor from response frame DO[15:12].
constexpr uint16_t GetData(uint16_t frame) noexcept
Extract conversion data from response frame DO[11:0].
constexpr uint16_t POWER_NORMAL
constexpr uint16_t PROGRAM_RETAIN
constexpr uint16_t RANGE_2VREF
constexpr uint16_t NO_RESET_COUNTER
constexpr uint16_t PROGRAM_ENABLE
constexpr uint16_t RANGE_VREF
constexpr uint8_t NUM_CHANNELS
Number of ADC input channels.
constexpr uint16_t POWER_DOWN
constexpr uint16_t OUTPUT_GPIO_DATA
constexpr uint16_t OUTPUT_CHAN_ADDR
constexpr uint16_t MAX_COUNT
Maximum 12-bit conversion value.
constexpr uint8_t NUM_GPIO_PINS
Number of GPIO pins on ADS7952.
constexpr uint8_t INVALID_CONVERSIONS_AFTER_POWERUP
Frames to discard after power-up.
constexpr uint8_t NUM_ALARM_GROUPS
Valid alarm groups for CH0..CH11.
constexpr uint16_t RESET_COUNTER
constexpr uint8_t RESOLUTION_BITS
ADC resolution in bits.
constexpr uint8_t CHANNELS_PER_ALARM_GROUP
Channels per alarm group.