Example program for EVAL-TempSense-ARDZ boards.

Dependencies:   platform_drivers

Committer:
Kjansen
Date:
Fri Sep 24 15:22:13 2021 +0100
Revision:
7:3e5f6cca357e
1.) Updated the project repository structure
2.) Made modifications in the code to align with the latest no-OS drivers and the platform drivers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kjansen 7:3e5f6cca357e 1 /*****************************************************************************
Kjansen 7:3e5f6cca357e 2 * @file adt7xxx_support.h
Kjansen 7:3e5f6cca357e 3 * @brief Support Header File for adt7xxx
Kjansen 7:3e5f6cca357e 4 ******************************************************************************
Kjansen 7:3e5f6cca357e 5 * Copyright (c) 2021 Analog Devices, Inc.
Kjansen 7:3e5f6cca357e 6 * All rights reserved.
Kjansen 7:3e5f6cca357e 7 *
Kjansen 7:3e5f6cca357e 8 * This software is proprietary to Analog Devices, Inc. and its licensors.
Kjansen 7:3e5f6cca357e 9 * By using this software you agree to the terms of the associated
Kjansen 7:3e5f6cca357e 10 * Analog Devices Software License Agreement.
Kjansen 7:3e5f6cca357e 11 *****************************************************************************/
Kjansen 7:3e5f6cca357e 12
Kjansen 7:3e5f6cca357e 13 #ifndef _ADT7XXX_SUPPORT_H
Kjansen 7:3e5f6cca357e 14 #define _ADT7XXX_SUPPORT_H
Kjansen 7:3e5f6cca357e 15
Kjansen 7:3e5f6cca357e 16 /* ADT7420 bit mask */
Kjansen 7:3e5f6cca357e 17 #define ADT7420_LSB_MASK 0x00FF
Kjansen 7:3e5f6cca357e 18 #define ADT7420_MSB_MASK 0xFF00
Kjansen 7:3e5f6cca357e 19 #define ADT7420_LSB_OFFSET 0
Kjansen 7:3e5f6cca357e 20 #define ADT7420_MSB_OFFSET 8
Kjansen 7:3e5f6cca357e 21 #define ADT7420_CONFIG_CT_POL BIT(2)
Kjansen 7:3e5f6cca357e 22 #define ADT7420_CONFIG_FAULT_QUEUE(x) ((x) & 0x3)
Kjansen 7:3e5f6cca357e 23 #define ADT7420_CONFIG_INT_POL BIT(3)
Kjansen 7:3e5f6cca357e 24 #define ADT7420_CONFIG_INT_CT_MODE BIT(4)
Kjansen 7:3e5f6cca357e 25 #define ADT7420_MASK_SET_PT_REGISTER 0x00
Kjansen 7:3e5f6cca357e 26
Kjansen 7:3e5f6cca357e 27 /* ADT7420_CONFIG_FAULT_QUEUE(x) options */
Kjansen 7:3e5f6cca357e 28 #define ADT7420_FAULT_QUEUE_1_FAULT 0
Kjansen 7:3e5f6cca357e 29 #define ADT7420_FAULT_QUEUE_2_FAULTS 1
Kjansen 7:3e5f6cca357e 30 #define ADT7420_FAULT_QUEUE_3_FAULTS 2
Kjansen 7:3e5f6cca357e 31 #define ADT7420_FAULT_QUEUE_4_FAULTS 3
Kjansen 7:3e5f6cca357e 32
Kjansen 7:3e5f6cca357e 33 /* ADT7xxx default ID */
Kjansen 7:3e5f6cca357e 34 #define ADT7320_DEFAULT_ID 0xC3
Kjansen 7:3e5f6cca357e 35 #define ADT7420_DEFAULT_ID 0xCB
Kjansen 7:3e5f6cca357e 36
Kjansen 7:3e5f6cca357e 37 typedef enum {
Kjansen 7:3e5f6cca357e 38 REG_TEMP, // Temperature value
Kjansen 7:3e5f6cca357e 39 REG_STATUS, // status info
Kjansen 7:3e5f6cca357e 40 REG_CONFIG, // Configuration
Kjansen 7:3e5f6cca357e 41 REG_T_CRIT, // Temperature CRIT setpoint (147'C)
Kjansen 7:3e5f6cca357e 42 REG_HIST, // Temperature HYST setpoint (5'C)
Kjansen 7:3e5f6cca357e 43 REG_T_HIGH, // Temperature HIGH setpoint (64'C)
Kjansen 7:3e5f6cca357e 44 REG_T_LOW, // Temperature LOW setpoint (10'C)
Kjansen 7:3e5f6cca357e 45 REG_ID, // ID value
Kjansen 7:3e5f6cca357e 46 REG_RESET
Kjansen 7:3e5f6cca357e 47 } registers_e;
Kjansen 7:3e5f6cca357e 48
Kjansen 7:3e5f6cca357e 49
Kjansen 7:3e5f6cca357e 50 /*! Sets the Fault Queue option for ADT7420/ADT7320.*/
Kjansen 7:3e5f6cca357e 51 void adt7420_set_fault_queue(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 52 uint8_t mode);
Kjansen 7:3e5f6cca357e 53
Kjansen 7:3e5f6cca357e 54 /*! Sets comparator/interrupt (CT/INT) mode for ADT7420/ADT7320.*/
Kjansen 7:3e5f6cca357e 55 void adt7420_set_ct_int_mode(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 56 uint8_t setting);
Kjansen 7:3e5f6cca357e 57
Kjansen 7:3e5f6cca357e 58 /*! Sets output polarity for the pins CT/INT (Critical Temp - Over/Under Temp).*/
Kjansen 7:3e5f6cca357e 59 void adt7420_set_ct_int_polarity(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 60 uint8_t polarity);
Kjansen 7:3e5f6cca357e 61
Kjansen 7:3e5f6cca357e 62 /*! Writes data to temperature registers*/
Kjansen 7:3e5f6cca357e 63 uint8_t adt7420_wr_setpoint_reg(struct adt7420_dev *device,
Kjansen 7:3e5f6cca357e 64 uint8_t register_value,
Kjansen 7:3e5f6cca357e 65 uint16_t data);
Kjansen 7:3e5f6cca357e 66
Kjansen 7:3e5f6cca357e 67 /*! Get the register address of write type registers */
Kjansen 7:3e5f6cca357e 68 uint16_t configure_write_type_registers(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 69 uint8_t register_address);
Kjansen 7:3e5f6cca357e 70
Kjansen 7:3e5f6cca357e 71 /*! Get the register address based on the register type enum- registers_e */
Kjansen 7:3e5f6cca357e 72 uint16_t adt7420_get_register_address_and_value(struct adt7420_dev *dev,
Kjansen 7:3e5f6cca357e 73 uint8_t register_address);
Kjansen 7:3e5f6cca357e 74 #endif // _ADT7XXX_SUPPORT_H