no-OS
|
Header file of ADT7420 Driver. More...
Go to the source code of this file.
Classes | |
struct | adt7420_chip_info |
struct | adt7420_dev |
struct | adt7420_init_param |
union | adt7420_init_param::interface_type |
Enumerations | |
enum | dev_interface { SPI, I2C } |
enum | adt7420_type { ID_ADT7410, ID_ADT7420, ID_ADT7422, ID_ADT7310, ID_ADT7311, ID_ADT7312, ID_ADT7320 } |
Functions | |
int | adt7420_reg_read (struct adt7420_dev *dev, uint16_t register_address, uint16_t *data) |
Reads the value of a register. More... | |
int | adt7420_reg_update_bits (struct adt7420_dev *dev, uint16_t register_address, uint8_t mask, uint8_t value) |
Sets the value of a register SPI/I2C. More... | |
int | adt7420_spi_reg_write (struct adt7420_dev *dev, uint16_t register_address, uint32_t data) |
Write a value of a register via SPI. More... | |
int | adt7420_i2c_reg_write (struct adt7420_dev *dev, uint16_t register_address, uint32_t data) |
Write a value of a register via I2C. More... | |
int | adt7420_reg_write (struct adt7420_dev *dev, uint16_t register_address, uint32_t data) |
Sets the value of a register SPI/I2C. More... | |
int32_t | adt7420_init (struct adt7420_dev **device, struct adt7420_init_param init_param) |
Initializes the communication peripheral and checks if the device is present. More... | |
int32_t | adt7420_remove (struct adt7420_dev *dev) |
Free the resources allocated by adt7420_init(). More... | |
int | adt7420_set_operation_mode (struct adt7420_dev *dev, uint8_t mode) |
Sets the operational mode for ADT7420/ADT7320. More... | |
int | adt7420_set_resolution (struct adt7420_dev *dev, uint8_t resolution) |
Sets the resolution for ADT7420/ADT7320. More... | |
int32_t | adt7420_reset (struct adt7420_dev *dev) |
Resets the SPI or I2C inteface for the ADT7420/ADT7320. More... | |
float | adt7420_get_temperature (struct adt7420_dev *dev) |
Reads the temperature data and converts it to Celsius degrees. More... | |
int | adt7420_i2c_reg_read (struct adt7420_dev *dev, uint16_t register_address, uint16_t *data) |
Reads the value of a register I2C interface device. More... | |
int | adt7420_spi_reg_read (struct adt7420_dev *dev, uint16_t register_address, uint16_t *data) |
Reads the value of a register SPI interface device. More... | |
bool | adt7420_is_spi (struct adt7420_dev *dev) |
Check if the interface of the selected device is SPI. More... | |
Variables | |
const struct adt7420_chip_info | chip_info [] |
Header file of ADT7420 Driver.
Copyright 2012, 2019, 2021(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ADT7320_ADDR_MSK NO_OS_GENMASK(7,0) |
#define ADT7320_L16 NO_OS_BIT(8) |
#define ADT7320_READ_CMD 0b01000000 |
#define ADT7320_REG_CONFIG 0x01 |
#define ADT7320_REG_HIST 0x05 |
#define ADT7320_REG_ID 0x03 |
#define ADT7320_REG_STATUS 0x00 |
#define ADT7320_REG_T_CRIT (ADT7320_L16 | 0x04) |
#define ADT7320_REG_T_HIGH (ADT7320_L16 | 0x06) |
#define ADT7320_REG_T_LOW (ADT7320_L16 | 0x07) |
#define ADT7320_REG_TEMP (ADT7320_L16 | 0x02) |
#define ADT7320_WRITE_MASK_CMD 0b00111000 |
#define ADT7420_13BIT_DIV 16 |
#define ADT7420_13BIT_NEG NO_OS_BIT(13) |
#define ADT7420_13BIT_SIGN 0x1000 |
#define ADT7420_16BIT_DIV 128 |
#define ADT7420_16BIT_NEG NO_OS_BIT(16) |
#define ADT7420_16BIT_SIGN 0x8000 |
#define ADT7420_A0_PIN | ( | x | ) | (((x) & 0x1) << 0) |
#define ADT7420_A1_PIN | ( | x | ) | (((x) & 0x1) << 1) |
#define ADT7420_ADDRESS | ( | x, | |
y | |||
) | (0x48 + ADT7420_A1_PIN(x) + ADT7420_A0_PIN(y)) |
#define ADT7420_CONFIG_OP_MODE | ( | x | ) | ((x) << 5) & (NO_OS_GENMASK(6,5)) |
#define ADT7420_CONFIG_RESOLUTION NO_OS_BIT(7) |
#define ADT7420_OP_MODE_1_SPS 2 |
#define ADT7420_OP_MODE_CONT_CONV 0 |
#define ADT7420_OP_MODE_ONE_SHOT 1 |
#define ADT7420_OP_MODE_SHUTDOWN 3 |
#define ADT7420_REG_CONFIG 0x03 |
#define ADT7420_REG_HIST 0x0A |
#define ADT7420_REG_ID 0x0B |
#define ADT7420_REG_RESET 0x2F |
#define ADT7420_REG_STATUS 0x02 |
#define ADT7420_REG_T_CRIT_LSB 0x09 |
#define ADT7420_REG_T_CRIT_MSB (ADT7320_L16 |0x08) |
#define ADT7420_REG_T_HIGH_LSB 0x05 |
#define ADT7420_REG_T_HIGH_MSB (ADT7320_L16 |0x04 ) |
#define ADT7420_REG_T_LOW_LSB 0x07 |
#define ADT7420_REG_T_LOW_MSB (ADT7320_L16 |0x06) |
#define ADT7420_REG_TEMP_LSB 0x01 |
#define ADT7420_REG_TEMP_MSB (ADT7320_L16 |0x00) |
#define ADT7420_RESET_DELAY 1 |
#define ADT7420_STATUS_RDY NO_OS_BIT(7) |
#define ADT7420_STATUS_T_CRIT NO_OS_BIT(6) |
#define ADT7420_STATUS_T_HIGH NO_OS_BIT(5) |
#define ADT7420_STATUS_T_LOW NO_OS_BIT(4) |
#define ADT7xxx_ID 0xC |
enum adt7420_type |
enum dev_interface |
float adt7420_get_temperature | ( | struct adt7420_dev * | dev | ) |
Reads the temperature data and converts it to Celsius degrees.
Reads the temperature data and converts it to Celsius degrees.
dev | - The device structure. |
Negative temperature
Positive temperature
Negative temperature
Positive temperature
int adt7420_i2c_reg_read | ( | struct adt7420_dev * | dev, |
uint16_t | register_address, | ||
uint16_t * | data | ||
) |
Reads the value of a register I2C interface device.
Read the register value for I2C interface devices
dev | - The device structure. |
register_address | - Address of the register. |
data | - Pointer to the register value |
int adt7420_i2c_reg_write | ( | struct adt7420_dev * | dev, |
uint16_t | register_address, | ||
uint32_t | data | ||
) |
Write a value of a register via I2C.
dev | - The device structure. |
register_address | - Address of the register. |
data | - Pointer to the register value |
int32_t adt7420_init | ( | struct adt7420_dev ** | device, |
struct adt7420_init_param | init_param | ||
) |
Initializes the communication peripheral and checks if the device is present.
Initializes the comm. peripheral and checks if the device is present.
device | - The device structure. |
init_param | - The structure that contains the device initial parameters. |
bool adt7420_is_spi | ( | struct adt7420_dev * | dev | ) |
Check if the interface of the selected device is SPI.
Check if the interface of the selected device is SPI
dev | - The device structure. |
int adt7420_reg_read | ( | struct adt7420_dev * | dev, |
uint16_t | register_address, | ||
uint16_t * | data | ||
) |
Reads the value of a register.
Reads the value of a register
dev | - The device structure. |
register_address | - Address of the register. |
data | - Pointer to the register value |
int adt7420_reg_update_bits | ( | struct adt7420_dev * | dev, |
uint16_t | register_address, | ||
uint8_t | mask, | ||
uint8_t | value | ||
) |
Sets the value of a register SPI/I2C.
dev | - The device structure. |
register_address | - Address of the register. |
mask | - Bit Mask of the bit to be written |
value | - Value of the bit |
int adt7420_reg_write | ( | struct adt7420_dev * | dev, |
uint16_t | register_address, | ||
uint32_t | data | ||
) |
Sets the value of a register SPI/I2C.
dev | - The device structure. |
register_address | - Address of the register. |
data | - Data to be written in input register. |
int32_t adt7420_remove | ( | struct adt7420_dev * | dev | ) |
Free the resources allocated by adt7420_init().
dev | - The device structure. |
int32_t adt7420_reset | ( | struct adt7420_dev * | dev | ) |
Resets the SPI or I2C inteface for the ADT7420/ADT7320.
Resets the SPI or I2C inteface for the ADT7420/ADT7320
dev | - The device structure. |
int adt7420_set_operation_mode | ( | struct adt7420_dev * | dev, |
uint8_t | mode | ||
) |
Sets the operational mode for ADT7420/ADT7320.
Sets the operational mode for ADT7420.
dev | - The device structure. |
mode | - Operation mode. Example: ADT7420_OP_MODE_CONT_CONV - continuous conversion; ADT7420_OP_MODE_ONE_SHOT - one shot; ADT7420_OP_MODE_1_SPS - 1 SPS mode; ADT7420_OP_MODE_SHUTDOWN - shutdown. |
int adt7420_set_resolution | ( | struct adt7420_dev * | dev, |
uint8_t | resolution | ||
) |
Sets the resolution for ADT7420/ADT7320.
Sets the resolution for ADT7420.
dev | - The device structure. |
resolution | - Resolution. Example: 0 - 13-bit resolution; 1 - 16-bit resolution. |
int adt7420_spi_reg_read | ( | struct adt7420_dev * | dev, |
uint16_t | register_address, | ||
uint16_t * | data | ||
) |
Reads the value of a register SPI interface device.
Read the register value for SPI interface devices
dev | - The device structure. |
register_address | - Address of the register. |
data | - Pointer to the register value |
int adt7420_spi_reg_write | ( | struct adt7420_dev * | dev, |
uint16_t | register_address, | ||
uint32_t | data | ||
) |
Write a value of a register via SPI.
dev | - The device structure. |
register_address | - Address of the register. |
data | - Pointer to the register value |
const struct adt7420_chip_info chip_info[] |