HF-ADS7952 Driver 0.1.0-dev
HF-ADS7952 C++ Driver
Loading...
Searching...
No Matches
ads7952_registers.hpp File Reference

Register definitions and SPI frame constants for the ADS7952. More...

#include <cstdint>

Go to the source code of this file.

Namespaces

namespace  ads7952
 
namespace  ads7952::reg
 
namespace  ads7952::reg::Mode
 
namespace  ads7952::reg::GPIO
 
namespace  ads7952::reg::GPIOProg
 
namespace  ads7952::reg::Alarm
 
namespace  ads7952::reg::Response
 

Functions

constexpr uint16_t ads7952::reg::ChannelSelect (uint8_t ch) noexcept
 Encode manual-mode channel selection bits DI[10:7].
 
constexpr uint16_t ads7952::reg::Auto1ChannelBit (uint8_t ch) noexcept
 Build the Auto-1 enable bit for a channel.
 
constexpr uint16_t ads7952::reg::Auto2LastChannel (uint8_t ch) noexcept
 Encode Auto-2 last-channel field DI[9:6].
 
constexpr uint16_t ads7952::reg::Alarm::ChannelInGroup (uint8_t ch_in_group) noexcept
 Encode alarm channel index within a 4-channel group.
 
constexpr uint16_t ads7952::reg::Alarm::Threshold12To10 (uint16_t adc_12bit) noexcept
 Convert 12-bit ADC threshold to 10-bit alarm register format.
 
constexpr uint16_t ads7952::reg::Alarm::GroupMode (uint8_t channel) noexcept
 Resolve alarm programming mode code for a global channel.
 
constexpr uint8_t ads7952::reg::Response::GetChannel (uint16_t frame) noexcept
 Extract channel descriptor from response frame DO[15:12].
 
constexpr uint16_t ads7952::reg::Response::GetData (uint16_t frame) noexcept
 Extract conversion data from response frame DO[11:0].
 

Variables

constexpr uint16_t ads7952::reg::Mode::CONTINUE = 0x0000
 
constexpr uint16_t ads7952::reg::Mode::MANUAL = 0x1000
 
constexpr uint16_t ads7952::reg::Mode::AUTO_1 = 0x2000
 
constexpr uint16_t ads7952::reg::Mode::AUTO_2 = 0x3000
 
constexpr uint16_t ads7952::reg::Mode::GPIO_PROG = 0x4000
 
constexpr uint16_t ads7952::reg::Mode::AUTO_1_PROG = 0x8000
 
constexpr uint16_t ads7952::reg::Mode::AUTO_2_PROG = 0x9000
 
constexpr uint16_t ads7952::reg::Mode::ALARM_GROUP_0 = 0xC000
 
constexpr uint16_t ads7952::reg::Mode::ALARM_GROUP_1 = 0xD000
 
constexpr uint16_t ads7952::reg::Mode::ALARM_GROUP_2 = 0xE000
 
constexpr uint16_t ads7952::reg::Mode::ALARM_GROUP_3 = 0xF000
 
constexpr uint16_t ads7952::reg::Mode::MASK = 0xF000
 
constexpr uint16_t ads7952::reg::PROGRAM_ENABLE = 0x0800
 
constexpr uint16_t ads7952::reg::PROGRAM_RETAIN = 0x0000
 
constexpr uint16_t ads7952::reg::RESET_COUNTER = 0x0400
 
constexpr uint16_t ads7952::reg::NO_RESET_COUNTER = 0x0000
 
constexpr uint16_t ads7952::reg::RANGE_VREF = 0x0000
 
constexpr uint16_t ads7952::reg::RANGE_2VREF = 0x0040
 
constexpr uint16_t ads7952::reg::POWER_NORMAL = 0x0000
 
constexpr uint16_t ads7952::reg::POWER_DOWN = 0x0020
 
constexpr uint16_t ads7952::reg::OUTPUT_CHAN_ADDR = 0x0000
 
constexpr uint16_t ads7952::reg::OUTPUT_GPIO_DATA = 0x0010
 
constexpr uint16_t ads7952::reg::GPIO::PIN0_HIGH = 0x0001
 
constexpr uint16_t ads7952::reg::GPIO::PIN1_HIGH = 0x0002
 
constexpr uint16_t ads7952::reg::GPIO::PIN2_HIGH = 0x0004
 
constexpr uint16_t ads7952::reg::GPIO::PIN3_HIGH = 0x0008
 
constexpr uint16_t ads7952::reg::GPIO::ALL_LOW = 0x0000
 
constexpr uint16_t ads7952::reg::GPIOProg::RESET_ALL_REGS = 0x0200
 
constexpr uint16_t ads7952::reg::GPIOProg::NORMAL_OPERATION = 0x0000
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO3_PWRDOWN_IN = 0x0100
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO3_AS_GPIO = 0x0000
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO2_RANGE_IN = 0x0080
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO2_AS_GPIO = 0x0000
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO01_GPIO = 0x0000
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO0_HI_LO_ALARM = 0x0010
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO0_HI_ALARM = 0x0020
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO1_HI_ALARM = 0x0040
 
constexpr uint16_t ads7952::reg::GPIOProg::GPIO1_LO_GPIO0_HI_ALARM = 0x0060
 
constexpr uint16_t ads7952::reg::GPIOProg::DIR_GPIO0_OUT = 0x0001
 
constexpr uint16_t ads7952::reg::GPIOProg::DIR_GPIO1_OUT = 0x0002
 
constexpr uint16_t ads7952::reg::GPIOProg::DIR_GPIO2_OUT = 0x0004
 
constexpr uint16_t ads7952::reg::GPIOProg::DIR_GPIO3_OUT = 0x0008
 
constexpr uint16_t ads7952::reg::Alarm::HIGH_REGISTER = 0x2000
 
constexpr uint16_t ads7952::reg::Alarm::LOW_REGISTER = 0x0000
 
constexpr uint16_t ads7952::reg::Alarm::EXIT_NEXT_FRAME = 0x1000
 
constexpr uint16_t ads7952::reg::Alarm::CONTINUE_PROG = 0x0000
 
constexpr uint8_t ads7952::reg::NUM_CHANNELS = 12
 Number of ADC input channels.
 
constexpr uint8_t ads7952::reg::RESOLUTION_BITS = 12
 ADC resolution in bits.
 
constexpr uint16_t ads7952::reg::MAX_COUNT = 4095
 Maximum 12-bit conversion value.
 
constexpr uint8_t ads7952::reg::NUM_GPIO_PINS = 4
 Number of GPIO pins on ADS7952.
 
constexpr uint8_t ads7952::reg::CHANNELS_PER_ALARM_GROUP = 4
 Channels per alarm group.
 
constexpr uint8_t ads7952::reg::NUM_ALARM_GROUPS = 3
 Valid alarm groups for CH0..CH11.
 
constexpr uint8_t ads7952::reg::INVALID_CONVERSIONS_AFTER_POWERUP = 1
 Frames to discard after power-up.
 

Detailed Description

Register definitions and SPI frame constants for the ADS7952.

Complete register map derived from TI ADS79xx datasheet SLAS605C. The ADS7952 uses 16-bit full-duplex SPI frames:

  • DI[15:12] mode select, DI[11] program enable, DI[10:7] channel/reset, DI[6] range, DI[5] power-down, DI[4] data descriptor, DI[3:0] GPIO
  • DO[15:12] channel address, DO[11:0] 12-bit ADC data

Definition in file ads7952_registers.hpp.