no-OS
Loading...
Searching...
No Matches
adt7420.c File Reference

Implementation of ADT7420 Driver. More...

#include <stdint.h>
#include <stdlib.h>
#include "no_os_error.h"
#include "no_os_alloc.h"
#include "no_os_delay.h"
#include "adt7420.h"
Include dependency graph for adt7420.c:

Functions

int adt7420_reg_read (struct adt7420_dev *dev, uint16_t register_address, uint16_t *data)
 Reads the value of a register.
 
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.
 
int adt7420_spi_reg_write (struct adt7420_dev *dev, uint16_t register_address, uint32_t data)
 Write a value of a register via SPI.
 
int adt7420_i2c_reg_write (struct adt7420_dev *dev, uint16_t register_address, uint32_t data)
 Write a value of a register via I2C.
 
int adt7420_reg_write (struct adt7420_dev *dev, uint16_t register_address, uint32_t data)
 Sets the value of a register SPI/I2C.
 
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.
 
int32_t adt7420_remove (struct adt7420_dev *dev)
 Free the resources allocated by adt7420_init().
 
int adt7420_set_operation_mode (struct adt7420_dev *dev, uint8_t mode)
 Sets the operational mode for ADT7420/ADT7320.
 
int adt7420_set_resolution (struct adt7420_dev *dev, uint8_t resolution)
 Sets the resolution for ADT7420/ADT7320.
 
int32_t adt7420_reset (struct adt7420_dev *dev)
 Resets the SPI or I2C inteface for the ADT7420/ADT7320.
 
float adt7420_get_temperature (struct adt7420_dev *dev)
 Reads the temperature data and converts it to Celsius degrees.
 
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.
 
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.
 
bool adt7420_is_spi (struct adt7420_dev *dev)
 Check if the interface of the selected device is SPI.
 

Variables

const struct adt7420_chip_info chip_info []
 

Detailed Description

Implementation of ADT7420 Driver.

Author
DBogdan (drago.nosp@m.s.bo.nosp@m.gdan@.nosp@m.anal.nosp@m.og.co.nosp@m.m)

Copyright 2012, 2019, 2021(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Function Documentation

◆ adt7420_get_temperature()

float adt7420_get_temperature ( struct adt7420_dev * dev)

Reads the temperature data and converts it to Celsius degrees.

Parameters
dev- The device structure.
Returns
temperature - Temperature in degrees Celsius.

Negative temperature

Positive temperature

Negative temperature

Positive temperature

◆ adt7420_i2c_reg_read()

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.

Parameters
dev- The device structure.
register_address- Address of the register.
data- Pointer to the register value
Returns
register_value - Value of the register.

◆ adt7420_i2c_reg_write()

int adt7420_i2c_reg_write ( struct adt7420_dev * dev,
uint16_t register_address,
uint32_t data )

Write a value of a register via I2C.

Parameters
dev- The device structure.
register_address- Address of the register.
data- Pointer to the register value
Returns
0 in case of success, -1 otherwise.

◆ adt7420_init()

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.

Parameters
device- The device structure.
init_param- The structure that contains the device initial parameters.
Returns
status - The result of the initialization procedure. Example: -1 - I2C peripheral was not initialized or the device is not present. 0 - I2C peripheral was initialized and the device is present.

◆ adt7420_is_spi()

bool adt7420_is_spi ( struct adt7420_dev * dev)

Check if the interface of the selected device is SPI.

Parameters
dev- The device structure.
Returns
True in case of an SPI interface, False Otherwise

◆ adt7420_reg_read()

int adt7420_reg_read ( struct adt7420_dev * dev,
uint16_t register_address,
uint16_t * data )

Reads the value of a register.

Parameters
dev- The device structure.
register_address- Address of the register.
data- Pointer to the register value
Returns
register_value - Value of the register.

◆ adt7420_reg_update_bits()

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.

Parameters
dev- The device structure.
register_address- Address of the register.
mask- Bit Mask of the bit to be written
value- Value of the bit
Returns
0 in case of success, -1 otherwise.

◆ adt7420_reg_write()

int adt7420_reg_write ( struct adt7420_dev * dev,
uint16_t register_address,
uint32_t data )

Sets the value of a register SPI/I2C.

Parameters
dev- The device structure.
register_address- Address of the register.
data- Data to be written in input register.
Returns
0 in case of success, -1 otherwise.

◆ adt7420_remove()

int32_t adt7420_remove ( struct adt7420_dev * dev)

Free the resources allocated by adt7420_init().

Parameters
dev- The device structure.
Returns
ret - The result of the remove procedure.

◆ adt7420_reset()

int32_t adt7420_reset ( struct adt7420_dev * dev)

Resets the SPI or I2C inteface for the ADT7420/ADT7320.

Parameters
dev- The device structure.
Returns
0 in case of Success, -1 otherwise.

◆ adt7420_set_operation_mode()

int adt7420_set_operation_mode ( struct adt7420_dev * dev,
uint8_t mode )

Sets the operational mode for ADT7420/ADT7320.

Parameters
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.

◆ adt7420_set_resolution()

int adt7420_set_resolution ( struct adt7420_dev * dev,
uint8_t resolution )

Sets the resolution for ADT7420/ADT7320.

Parameters
dev- The device structure.
resolution- Resolution. Example: 0 - 13-bit resolution; 1 - 16-bit resolution.

◆ adt7420_spi_reg_read()

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.

Parameters
dev- The device structure.
register_address- Address of the register.
data- Pointer to the register value
Returns
register_value - Value of the register.

◆ adt7420_spi_reg_write()

int adt7420_spi_reg_write ( struct adt7420_dev * dev,
uint16_t register_address,
uint32_t data )

Write a value of a register via SPI.

Parameters
dev- The device structure.
register_address- Address of the register.
data- Pointer to the register value
Returns
0 in case of success, -1 otherwise.

Variable Documentation

◆ chip_info

const struct adt7420_chip_info chip_info[]
Initial value:
= {
[ID_ADT7410] = {
.resolution = 16,
.communication = I2C,
},
[ID_ADT7420] = {
.resolution = 16,
.communication = I2C,
},
[ID_ADT7422] = {
.resolution = 16,
.communication = I2C,
},
[ID_ADT7310] = {
.resolution = 16,
.communication = SPI,
},
[ID_ADT7320] = {
.resolution = 16,
.communication = SPI,
}
}
@ ID_ADT7310
Definition adt7420.h:98
@ ID_ADT7320
Definition adt7420.h:101
@ ID_ADT7422
Definition adt7420.h:97
@ ID_ADT7410
Definition adt7420.h:95
@ ID_ADT7420
Definition adt7420.h:96
@ I2C
Definition adxl372.h:288
@ SPI
Definition adxl372.h:287