no-OS
Classes | Macros | Functions
adt75.h File Reference

Header file of ADT75 Driver. More...

#include <stdint.h>
#include "no_os_i2c.h"
Include dependency graph for adt75.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  adt75_init_param
 Initialization parameter for the device descriptor. More...
 
struct  adt75_desc
 ADT75 device descriptor. More...
 

Macros

#define ADT75_ADDR(x)   (0x48 + (x))
 
#define ADT75_CONV_DELAY_MS   40
 
#define ADT75_FRAME_SIZE   3
 
#define ADT75_TEMP_VALUE_REG   0x0
 
#define ADT75_CONF_REG   0x1
 
#define ADT75_HYST_REG   0x2
 
#define ADT75_OS_REG   0x3
 
#define ADT75_ONE_SHOT_REG   0x4
 
#define ADT75_DATA_REG_MASK   NO_OS_GENMASK(2, 0)
 
#define ADT75_CONFIG_REG_MASK   NO_OS_GENMASK(7, 0)
 
#define ADT75_TEMP_MASK   NO_OS_GENMASK(15, 4)
 
#define ADT75_SIGN_BIT   11
 
#define ADT75_SHUTDOWN_MASK   NO_OS_BIT(0)
 
#define ADT75_COMP_INT_MASK   NO_OS_BIT(1)
 
#define ADT75_ALERT_POL_MASK   NO_OS_BIT(2)
 
#define ADT75_FAULT_QUEUE_MASK   NO_OS_GENMASK(4, 3)
 
#define ADT75_ONESHOT_MASK   NO_OS_BIT(5)
 
#define ADT75_HYST_MASK   NO_OS_GENMASK(15, 4)
 
#define ADT75_OVER_TEMP_MASK   NO_OS_GENMASK(15, 4)
 
#define ADT75_TEMP_DIV   16
 

Functions

int adt75_get_single_temp (struct adt75_desc *, int32_t *)
 Read the current temperature sample (in milliCelsius) More...
 
int adt75_reg_read (struct adt75_desc *, uint32_t, uint16_t *)
 Read the raw value of a register. More...
 
int adt75_reg_write (struct adt75_desc *, uint32_t, uint16_t)
 Write a raw value to a register. More...
 
int adt75_init (struct adt75_desc **, struct adt75_init_param *)
 Initialize the device structure. More...
 
int adt75_remove (struct adt75_desc *)
 Free the device descriptor. More...
 

Detailed Description

Header file of ADT75 Driver.

Author
Ciprian Regus (cipri.nosp@m.an.r.nosp@m.egus@.nosp@m.anal.nosp@m.og.co.nosp@m.m)

Copyright 2023(c) Analog Devices, Inc.

All rights reserved.

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 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, 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.

Macro Definition Documentation

◆ ADT75_ADDR

#define ADT75_ADDR (   x)    (0x48 + (x))

x is set based on the value of A2, A1, A0 pins

◆ ADT75_ALERT_POL_MASK

#define ADT75_ALERT_POL_MASK   NO_OS_BIT(2)

◆ ADT75_COMP_INT_MASK

#define ADT75_COMP_INT_MASK   NO_OS_BIT(1)

◆ ADT75_CONF_REG

#define ADT75_CONF_REG   0x1

◆ ADT75_CONFIG_REG_MASK

#define ADT75_CONFIG_REG_MASK   NO_OS_GENMASK(7, 0)

◆ ADT75_CONV_DELAY_MS

#define ADT75_CONV_DELAY_MS   40

◆ ADT75_DATA_REG_MASK

#define ADT75_DATA_REG_MASK   NO_OS_GENMASK(2, 0)

◆ ADT75_FAULT_QUEUE_MASK

#define ADT75_FAULT_QUEUE_MASK   NO_OS_GENMASK(4, 3)

◆ ADT75_FRAME_SIZE

#define ADT75_FRAME_SIZE   3

◆ ADT75_HYST_MASK

#define ADT75_HYST_MASK   NO_OS_GENMASK(15, 4)

◆ ADT75_HYST_REG

#define ADT75_HYST_REG   0x2

◆ ADT75_ONE_SHOT_REG

#define ADT75_ONE_SHOT_REG   0x4

◆ ADT75_ONESHOT_MASK

#define ADT75_ONESHOT_MASK   NO_OS_BIT(5)

◆ ADT75_OS_REG

#define ADT75_OS_REG   0x3

◆ ADT75_OVER_TEMP_MASK

#define ADT75_OVER_TEMP_MASK   NO_OS_GENMASK(15, 4)

◆ ADT75_SHUTDOWN_MASK

#define ADT75_SHUTDOWN_MASK   NO_OS_BIT(0)

Configuration register fields

◆ ADT75_SIGN_BIT

#define ADT75_SIGN_BIT   11

◆ ADT75_TEMP_DIV

#define ADT75_TEMP_DIV   16

1 LSB = 0.0625 C

◆ ADT75_TEMP_MASK

#define ADT75_TEMP_MASK   NO_OS_GENMASK(15, 4)

◆ ADT75_TEMP_VALUE_REG

#define ADT75_TEMP_VALUE_REG   0x0

Function Documentation

◆ adt75_get_single_temp()

int adt75_get_single_temp ( struct adt75_desc desc,
int32_t *  val 
)

Read the current temperature sample (in milliCelsius)

Get a single temperature sample and convert it to milli C

Parameters
desc- The device structure.
val- The temperature value.
Returns
0 in case of success, -EINVAL otherwise

Wait for a new conversion to finish

Here is the caller graph for this function:

◆ adt75_init()

int adt75_init ( struct adt75_desc **  desc,
struct adt75_init_param init_param 
)

Initialize the device structure.

Initialize the device structure

Parameters
desc- The device structure to be initialized.
init_param- Initialization parameter for the device descriptor.
Returns
0 in case of success, negative error code otherwise.
Here is the caller graph for this function:

◆ adt75_reg_read()

int adt75_reg_read ( struct adt75_desc desc,
uint32_t  addr,
uint16_t *  val 
)

Read the raw value of a register.

Read a register value

Parameters
desc- The device structure.
addr- The register's address.
val- The value to be read.
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ adt75_reg_write()

int adt75_reg_write ( struct adt75_desc desc,
uint32_t  addr,
uint16_t  val 
)

Write a raw value to a register.

Write a register values

Parameters
desc- The device structure.
addr- The register's address.
val- The value to be written.
Returns
0 in case of success, -EINVAL otherwise

◆ adt75_remove()

int adt75_remove ( struct adt75_desc desc)

Free the device descriptor.

Free the device descriptor

Parameters
desc- The device structure.
Returns
0 in case of success, -EINVAL otherwise.
Here is the caller graph for this function: