no-OS
Functions | Variables
max31827.c File Reference

Implementation of MAX31827 Driver. More...

#include "max31827.h"
#include "no_os_alloc.h"
#include "no_os_delay.h"
#include "no_os_error.h"
#include "no_os_i2c.h"
#include "no_os_print_log.h"
#include "no_os_units.h"
#include "no_os_util.h"
Include dependency graph for max31827.c:

Functions

int max31827_reg_read (struct max31827_device *dev, uint8_t addr, uint16_t *val)
 Read a register value. More...
 
int max31827_reg_write (struct max31827_device *dev, uint8_t addr, uint16_t val)
 Write a register value. More...
 
int max31827_reg_update_bits (struct max31827_device *dev, uint8_t addr, uint16_t mask, uint16_t val)
 Read-modify-write operation. More...
 
int max31827_init (struct max31827_device **dev, struct max31827_init_param *init_param)
 Device and comm init function. More...
 
int max31827_remove (struct max31827_device *dev)
 Free resources allocated by the init function. More...
 
int max31827_init_client (struct max31827_device *dev, struct max31827_init_param *init_param)
 Initialize MAX31827 device setup. More...
 
int max31827_read_temp (struct max31827_device *dev, uint8_t addr, int32_t *val)
 Read a temperature from a register. More...
 
int max31827_read_temp_input (struct max31827_device *dev, int32_t *val)
 Read input temperature. More...
 
int max31827_shutdown_write (struct max31827_device *dev, uint8_t reg, uint16_t mask, uint16_t val)
 Shutdown then write register value. More...
 
int max31827_write_alarm_val (struct max31827_device *dev, unsigned int reg, int32_t val)
 Write the alarm value to the specified register. More...
 

Variables

const uint16_t max31827_conversions []
 MAX31827 conversion period in ms. More...
 
const uint16_t max31827_resolutions []
 MAX31827 temperature resolution. More...
 
const int max31827_conv_times []
 MAX31827 temperature conversion times in us. More...
 

Detailed Description

Implementation of MAX31827 Driver.

Author
John Erasmus Mari Geronimo (johne.nosp@m.rasm.nosp@m.usmar.nosp@m.i.ge.nosp@m.ronim.nosp@m.o@an.nosp@m.alog..nosp@m.com)

Copyright 2024(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:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

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.

Function Documentation

◆ max31827_init()

int max31827_init ( struct max31827_device **  dev,
struct max31827_init_param init_param 
)

Device and comm init function.

Parameters
dev- MAX31827 descriptor to be initialized
init_param- Init parameter for descriptor
Returns
0 in case of success, errno errors otherwise
Here is the caller graph for this function:

◆ max31827_init_client()

int max31827_init_client ( struct max31827_device dev,
struct max31827_init_param init_param 
)

Initialize MAX31827 device setup.

Parameters
dev- MAX31827 descriptor to be initialized
init_param- Init parameter for descriptor
Returns
0 in case of success, errno errors otherwise
Here is the caller graph for this function:

◆ max31827_read_temp()

int max31827_read_temp ( struct max31827_device dev,
uint8_t  addr,
int32_t *  val 
)

Read a temperature from a register.

Parameters
dev- MAX31827 descriptor
addr- register address
val- temperature value
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ max31827_read_temp_input()

int max31827_read_temp_input ( struct max31827_device dev,
int32_t *  val 
)

Read input temperature.

Parameters
dev- MAX31827 descriptor
val- temperature value
Returns
0 in case of success, negative error code otherwise

For 12-bit resolution the conversion time is 140 ms, thus an additional 15 ms is needed to complete the conversion: 125 ms + 15 ms = 140 ms

Here is the caller graph for this function:

◆ max31827_reg_read()

int max31827_reg_read ( struct max31827_device dev,
uint8_t  addr,
uint16_t *  val 
)

Read a register value.

Parameters
dev- MAX31827 descriptor
addr- register address
val- register value
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ max31827_reg_update_bits()

int max31827_reg_update_bits ( struct max31827_device dev,
uint8_t  addr,
uint16_t  mask,
uint16_t  val 
)

Read-modify-write operation.

Parameters
dev- MAX31827 descriptor
addr- register address
mask- Mask for specific register bits to be updated
val- register value
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ max31827_reg_write()

int max31827_reg_write ( struct max31827_device dev,
uint8_t  addr,
uint16_t  val 
)

Write a register value.

Parameters
dev- MAX31827 descriptor
addr- register address
val- register value
Returns
0 in case of success, negative error code otherwise
Here is the caller graph for this function:

◆ max31827_remove()

int max31827_remove ( struct max31827_device dev)

Free resources allocated by the init function.

Parameters
dev- MAX31827 descriptor
Returns
0 in case of success, errno errors otherwise
Here is the caller graph for this function:

◆ max31827_shutdown_write()

int max31827_shutdown_write ( struct max31827_device dev,
uint8_t  reg,
uint16_t  mask,
uint16_t  val 
)

Shutdown then write register value.

Parameters
dev- MAX31827 descriptor
reg- register address
mask- Mask for specific register bits to be updated
val- register value (requires prior bit shifting)
Returns
0 in case of success, negative error code otherwise

Before the Temperature Threshold Alarm, Alarm Hysteresis Threshold and Resolution bits from Configuration register are changed over I2C, the part must be in shutdown mode.

Here is the caller graph for this function:

◆ max31827_write_alarm_val()

int max31827_write_alarm_val ( struct max31827_device dev,
unsigned int  reg,
int32_t  val 
)

Write the alarm value to the specified register.

Parameters
dev- MAX31827 descriptor
reg- register address
val- temperature value
Returns
0 in case of success, negative error code otherwise

Variable Documentation

◆ max31827_conv_times

const int max31827_conv_times[]
Initial value:
= {
[MAX31827_RES_9_BIT] = 17500,
[MAX31827_RES_12_BIT] = 140000,
}

MAX31827 temperature conversion times in us.

◆ max31827_conversions

const uint16_t max31827_conversions[]
Initial value:

MAX31827 conversion period in ms.

◆ max31827_resolutions

const uint16_t max31827_resolutions[]
Initial value:

MAX31827 temperature resolution.

MAX31827_RES_12_BIT
@ MAX31827_RES_12_BIT
Definition: max31827.h:95
MAX31827_RES_10_BIT
@ MAX31827_RES_10_BIT
Definition: max31827.h:94
MAX31827_RES_9_BIT
@ MAX31827_RES_9_BIT
Definition: max31827.h:93
MAX31827_CNV_1_DIV_16_HZ
@ MAX31827_CNV_1_DIV_16_HZ
Definition: max31827.h:81
MAX31827_CNV_1_DIV_64_HZ
@ MAX31827_CNV_1_DIV_64_HZ
Definition: max31827.h:79
MAX31827_CNV_1_HZ
@ MAX31827_CNV_1_HZ
Definition: max31827.h:83
MAX31827_CNV_4_HZ
@ MAX31827_CNV_4_HZ
Definition: max31827.h:84
MAX31827_RES_8_BIT
@ MAX31827_RES_8_BIT
Definition: max31827.h:92
MAX31827_CNV_1_DIV_32_HZ
@ MAX31827_CNV_1_DIV_32_HZ
Definition: max31827.h:80
MAX31827_CNV_8_HZ
@ MAX31827_CNV_8_HZ
Definition: max31827.h:85
MAX31827_CNV_1_DIV_4_HZ
@ MAX31827_CNV_1_DIV_4_HZ
Definition: max31827.h:82