A collection of Analog Devices drivers for the mbed platform
AD7791 Class Reference
Analog Devices AD7791 SPI 16-bit Buffered Sigma-Delta ADC. More...
#include <AD7791.h>
Public Types | |
enum | AD7791Register_t { COMMUNICATION_REG = 0, STATUS_REG = 0, MODE_REG, FILTER_REG, DATA_REG } |
AD7791 registers. More... | |
enum | AD7791Channel_t { DIFFERENTIAL = 0, RESERVED, SHORT, VDDMONITOR } |
AD7791 channel configuration. More... | |
enum | ModeRegisterBits_t { MD1 = 0x80, MD0 = 0x40, BO = 0x08, UB = 0x04, BUF = 0x02 } |
enum | FilterRegisterBits_t { CLKDIV1 = 0x40, CLKDIV0 = 0x20, FS2 = 0x04, FS1 = 0x02, FS0 = 0x01 } |
Public Member Functions | |
AD7791 (float reference_voltage, PinName CS=SPI_CS, PinName MOSI=SPI_MOSI, PinName MISO=SPI_MISO, PinName SCK=SPI_SCK) | |
SPI configuration & constructor. | |
void | frequency (int hz) |
Set AD7791 SPI frequency. | |
void | reset (void) |
Low level SPI bus comm methods. | |
void | set_channel (AD7791Channel_t channel) |
Register access methods. | |
void | set_conversion_mode (AD7791Mode_t mode) |
Enables/disables continous_conversion mode In Single Conversion mode, read_u16 method will read the MODE register of the ADC, then write the Start single conversion bit and wait for the DOUT/RDY pin to go low, When the pin is driven low, data register is read back from the ADC. | |
uint32_t | read_data_reg () |
Reads the data register and returns its value. | |
uint8_t | read_status_reg (void) |
Reads the status register of the ADC and returns its value. | |
void | write_filter_reg (uint8_t regVal) |
Writes the filter register. | |
uint8_t | read_filter_reg (void) |
Reads the filter register and returns its value. | |
void | write_mode_reg (uint8_t regVal) |
Sets the mode register. | |
uint8_t | read_mode_reg (void) |
Reads the mode register and returns its value. | |
void | set_reference_voltage (float ref) |
Reference voltage methods. | |
float | get_reference_voltage (void) |
Gets the reference voltage of the AD7790. | |
float | read_voltage (void) |
Voltage read methods. | |
float | data_to_voltage (uint32_t data) |
Converts an uint16_t to voltage. | |
uint32_t | voltage_to_data (float voltage) |
Converts voltage to an uint16_t. | |
float | read (void) |
AnalogIn API. | |
uint32_t | read_u32 (void) |
| |
operator float () | |
|
Detailed Description
Analog Devices AD7791 SPI 16-bit Buffered Sigma-Delta ADC.
Definition at line 63 of file AD7791.h.
Member Enumeration Documentation
enum AD7791Channel_t |
enum AD7791Register_t |
enum FilterRegisterBits_t |
enum ModeRegisterBits_t |
Constructor & Destructor Documentation
AD7791 | ( | float | reference_voltage, |
PinName | CS = SPI_CS , |
||
PinName | MOSI = SPI_MOSI , |
||
PinName | MISO = SPI_MISO , |
||
PinName | SCK = SPI_SCK |
||
) |
SPI configuration & constructor.
AD7791 constructor, sets CS pin and SPI format.
- Parameters:
-
reference_voltage - the reference voltage to be used in computation CS - (optional)chip select of the AD7791 MOSI - (optional)pin of the SPI interface MISO - (optional)pin of the SPI interface SCK - (optional)pin of the SPI interface
Definition at line 60 of file AD7791.cpp.
Member Function Documentation
float data_to_voltage | ( | uint32_t | data ) |
Converts an uint16_t to voltage.
Gain needs to be correctly set using set_gain in order to get accurate results
- Parameters:
-
data in uint16_t format
- Returns:
- float value of voltage (in V)
Definition at line 340 of file AD7791.cpp.
void frequency | ( | int | hz ) |
Set AD7791 SPI frequency.
- Parameters:
-
hz - SPI bus frequency in hz
- Returns:
- none
Definition at line 78 of file AD7791.cpp.
float get_reference_voltage | ( | void | ) |
Gets the reference voltage of the AD7790.
- Returns:
- reference voltage
Definition at line 319 of file AD7791.cpp.
operator float | ( | ) |
- From mbed AnalogIn API - An operator shorthand for read() The float() operator can be used as a shorthand for read() to simplify common code sequences
Definition at line 387 of file AD7791.cpp.
float read | ( | void | ) |
AnalogIn API.
- From mbed AnalogIn API - Read the input voltage, represented as a float in the range [0.0, 1.0] - uses the read_u16 method
- Returns:
- A floating-point value representing the current input voltage, measured as a percentage returns 1.0 along with a debug message if the conversion failed
Definition at line 371 of file AD7791.cpp.
uint32_t read_data_reg | ( | ) |
Reads the data register and returns its value.
- Returns:
- value of the data register
Definition at line 151 of file AD7791.cpp.
uint8_t read_filter_reg | ( | void | ) |
Reads the filter register and returns its value.
- Returns:
- the value of the filter register
Definition at line 142 of file AD7791.cpp.
uint8_t read_mode_reg | ( | void | ) |
Reads the mode register and returns its value.
- Returns:
- value of the mode register
Definition at line 124 of file AD7791.cpp.
uint8_t read_status_reg | ( | void | ) |
Reads the status register of the ADC and returns its value.
- Returns:
- value of the status reg
Definition at line 168 of file AD7791.cpp.
uint32_t read_u32 | ( | void | ) |
- From mbed AnalogIn API -
Read the input voltage, represented as an unsigned short in the range [0x0, 0xFFFF] Depending on the conversion mode, this method will have different behavior. Conversion mode is set using set_continous_conversion_mode(bool).
In Single Conversion mode, read_u16 method will read the MODE register of the ADC, then write the Start single conversion bit and wait for the DOUT/RDY pin to go low, When the pin is driven low, data register is read back from the ADC.
In Continous conversion mode, read_u16 method will poll the DOUT/RDY pin, if it is low, the data register is read back from the ADC.
- Returns:
- 16-bit unsigned short representing the current input voltage, normalised to a 16-bit value returns -1 (0xFFFF) along with a debug message if conversion failed.
Definition at line 211 of file AD7791.cpp.
float read_voltage | ( | void | ) |
Voltage read methods.
Reads the data register of the ADC and converts the result to volts Gain needs to be correctly set using set_gain in order to get accurate results.
- Returns:
- voltage of the ADC input
Definition at line 329 of file AD7791.cpp.
void reset | ( | void | ) |
Low level SPI bus comm methods.
Resets the AD7791.
- Returns:
- none
Definition at line 87 of file AD7791.cpp.
void set_channel | ( | AD7791Channel_t | channel ) |
Register access methods.
Sets the conversion channel.
- Parameters:
-
channel
Definition at line 360 of file AD7791.cpp.
void set_conversion_mode | ( | AD7791Mode_t | mode ) |
Enables/disables continous_conversion mode In Single Conversion mode, read_u16 method will read the MODE register of the ADC, then write the Start single conversion bit and wait for the DOUT/RDY pin to go low, When the pin is driven low, data register is read back from the ADC.
In Continous conversion mode, read_u16 method will poll the DOUT/RDY pin, if it is low, the data register is read back from the ADC.
- Parameters:
-
mode true - continous conversion mode enabled false - single conversion mode enabled
Definition at line 187 of file AD7791.cpp.
void set_reference_voltage | ( | float | ref ) |
Reference voltage methods.
Sets the reference voltage of the AD7790.
- Parameters:
-
ref reference voltage to be set
Definition at line 310 of file AD7791.cpp.
uint32_t voltage_to_data | ( | float | voltage ) |
Converts voltage to an uint16_t.
Gain needs to be correctly set using set_gain in order to get accurate results
- Parameters:
-
voltage to be converted
- Returns:
- data in uint16_t format
Definition at line 351 of file AD7791.cpp.
void write_filter_reg | ( | uint8_t | reg_val ) |
Writes the filter register.
- Parameters:
-
regValue value to be written.
Definition at line 133 of file AD7791.cpp.
void write_mode_reg | ( | uint8_t | reg_val ) |
Sets the mode register.
Also sets continous mode and range based on the value written in reg_val
- Parameters:
-
reg_val
Definition at line 106 of file AD7791.cpp.
Generated on Tue Jul 12 2022 17:59:52 by 1.7.2