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

Implementation of CN0391 board support. More...

#include <stdlib.h>
#include "cn0391.h"
#include "no_os_thermocouple.h"
#include "no_os_rtd.h"
#include "no_os_alloc.h"
#include "no_os_error.h"
#include "no_os_print_log.h"
Include dependency graph for cn0391.c:

Functions

int cn0391_init (struct cn0391_dev **dev, struct cn0391_init_param *init_param)
 Initialize CN0391 device: set up AD7124 and configure IOUT.
 
int cn0391_remove (struct cn0391_dev *dev)
 Remove CN0391 device and free resources.
 
int cn0391_read_temperature (struct cn0391_dev *dev, uint8_t ch_idx, double *hot_junction_temp, double *cold_junction_temp, double *thermocouple_voltage, double *rtd_resistance)
 Perform a full temperature measurement cycle. Reads all 3 ADC channels (thermocouple, reference resistor, CJC RTD), computes cold junction temperature, cold junction compensation voltage, and hot junction temperature.
 

Detailed Description

Implementation of CN0391 board support.

Author
Mircea Vlasin (mirce.nosp@m.a.vl.nosp@m.asin@.nosp@m.anal.nosp@m.og.co.nosp@m.m)

Copyright 2026(c) Analog Devices, Inc.

SPDX-License-Identifier: BSD-3-Clause

Function Documentation

◆ cn0391_init()

int cn0391_init ( struct cn0391_dev ** dev,
struct cn0391_init_param * init_param )

Initialize CN0391 device: set up AD7124 and configure IOUT.

Parameters
dev- Pointer to pointer to CN0391 device descriptor.
init_param- Initialization parameters.
Returns
0 on success, negative error code otherwise.

◆ cn0391_read_temperature()

int cn0391_read_temperature ( struct cn0391_dev * dev,
uint8_t ch_idx,
double * hot_junction_temp,
double * cold_junction_temp,
double * thermocouple_voltage,
double * rtd_resistance )

Perform a full temperature measurement cycle. Reads all 3 ADC channels (thermocouple, reference resistor, CJC RTD), computes cold junction temperature, cold junction compensation voltage, and hot junction temperature.

Parameters
dev- CN0391 device descriptor.
ch_idx- IIO channel index (CN0391_CH0_ID..CN0391_CH3_ID).
hot_junction_temp- Pointer to store hot junction temperature (°C).
cold_junction_temp- Pointer to store cold junction temperature (°C).
thermocouple_voltage- Pointer to store thermocouple voltage (mV).
rtd_resistance- Pointer to store measured RTD resistance (Ohms).
Returns
0 on success, negative error code otherwise.

◆ cn0391_remove()

int cn0391_remove ( struct cn0391_dev * dev)

Remove CN0391 device and free resources.

Parameters
dev- CN0391 device descriptor.
Returns
0 on success, negative error code otherwise.