Example program for EVAL-TempSense-ARDZ boards.
Dependencies: platform_drivers
app/adt7xxx_support.h@7:3e5f6cca357e, 2021-09-24 (annotated)
- 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?
User | Revision | Line number | New 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 |