The TMP435 is a remote temperature sensor monitor with a built-in local temperature sensor. Signed-off-by: Jaakko Rautiainen <jaakko.rautiainen@bittium.com>
44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
/*
|
||
* Copyright (c) 2024 Bittium Corporation
|
||
*
|
||
* SPDX-License-Identifier: Apache-2.0
|
||
*/
|
||
|
||
#ifndef ZEPHYR_DRIVERS_SENSOR_TMP435_H_
|
||
#define ZEPHYR_DRIVERS_SENSOR_TMP435_H_
|
||
|
||
#define TMP435_CONF_REG_1 0x03
|
||
#define TMP435_CONF_REG_1_DATA 0xc4
|
||
/* [7]=1 ALERT Masked, [6]=1 Shut Down (one shot mode), [2]=1 −55 C to +150 C */
|
||
#define TMP435_CONF_REG_2 0x1a
|
||
#define TMP435_CONF_REG_2_REN 0x10 /* [4]=1 External channel 1 enabled */
|
||
#define TMP435_CONF_REG_2_RC 0x04 /* [2]=1 Resistance correction enabled */
|
||
#define TMP435_CONF_REG_2_DATA 0x08 /* [3]=1 Local channel enabled */
|
||
#define TMP435_BETA_RANGE_REG 0x25
|
||
#define TMP435_STATUS_REG 0x02
|
||
#define TMP435_STATUS_REG_BUSY 0x80 /* conv not ready */
|
||
#define TMP435_SOFTWARE_RESET_REG 0xfc
|
||
#define TMP435_ONE_SHOT_START_REG 0x0f
|
||
#define TMP435_LOCAL_TEMP_H_REG 0x00
|
||
#define TMP435_LOCAL_TEMP_L_REG 0x15
|
||
#define TMP435_REMOTE_TEMP_H_REG 0x01
|
||
#define TMP435_REMOTE_TEMP_L_REG 0x10
|
||
|
||
#define TMP435_CONV_LOOP_LIMIT 50 /* max 50*10 ms */
|
||
#define TMP435_FRACTION_INC 0x80 /* 0.5000 */
|
||
|
||
static const int32_t tmp435_temp_offset = -64;
|
||
|
||
struct tmp435_data {
|
||
int32_t temp_die; /* Celsius degrees */
|
||
int32_t temp_ambient; /* Celsius degrees */
|
||
};
|
||
|
||
struct tmp435_config {
|
||
struct i2c_dt_spec i2c;
|
||
bool external_channel;
|
||
bool resistance_correction;
|
||
uint8_t beta_compensation;
|
||
};
|
||
|
||
#endif /* ZEPHYR_DRIVERS_SENSOR_TMP435_H_ */
|