ADT7310 temperature sensor driver
ADT7310.h@0:63996d24973b, 2016-11-07 (annotated)
- Committer:
- adisuciu
- Date:
- Mon Nov 07 15:46:14 2016 +0000
- Revision:
- 0:63996d24973b
Initial revision
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
adisuciu | 0:63996d24973b | 1 | |
adisuciu | 0:63996d24973b | 2 | #ifndef ADT7310_H |
adisuciu | 0:63996d24973b | 3 | #define ADT7310_H |
adisuciu | 0:63996d24973b | 4 | |
adisuciu | 0:63996d24973b | 5 | #include "mbed.h" |
adisuciu | 0:63996d24973b | 6 | |
adisuciu | 0:63996d24973b | 7 | /** |
adisuciu | 0:63996d24973b | 8 | * @brief Analog Devices ADT7310 temperature sensor |
adisuciu | 0:63996d24973b | 9 | */ |
adisuciu | 0:63996d24973b | 10 | class ADT7310 |
adisuciu | 0:63996d24973b | 11 | { |
adisuciu | 0:63996d24973b | 12 | public: |
adisuciu | 0:63996d24973b | 13 | |
adisuciu | 0:63996d24973b | 14 | |
adisuciu | 0:63996d24973b | 15 | #define ADT7310_READ (1<<6) |
adisuciu | 0:63996d24973b | 16 | #define ADT7310_WRITE (0) |
adisuciu | 0:63996d24973b | 17 | #define ADT7310_DUMMY (0) |
adisuciu | 0:63996d24973b | 18 | #define ADT7310_STATUS (0) |
adisuciu | 0:63996d24973b | 19 | #define ADT7310_CONFIG (1) |
adisuciu | 0:63996d24973b | 20 | #define ADT7310_TEMP (2) |
adisuciu | 0:63996d24973b | 21 | #define ADT7310_ID (3) |
adisuciu | 0:63996d24973b | 22 | #define ADT7310_TCRIT (4) |
adisuciu | 0:63996d24973b | 23 | #define ADT7310_THYST (5) |
adisuciu | 0:63996d24973b | 24 | #define ADT7310_THIGH (6) |
adisuciu | 0:63996d24973b | 25 | #define ADT7310_TLOW (7) |
adisuciu | 0:63996d24973b | 26 | |
adisuciu | 0:63996d24973b | 27 | |
adisuciu | 0:63996d24973b | 28 | /** |
adisuciu | 0:63996d24973b | 29 | * @brief ADT7310 class |
adisuciu | 0:63996d24973b | 30 | * @param CS - chipselect pin |
adisuciu | 0:63996d24973b | 31 | * @param MOSI - MOSI pin |
adisuciu | 0:63996d24973b | 32 | * @param MISO - MISO pin |
adisuciu | 0:63996d24973b | 33 | * @param SCK - Clock pin |
adisuciu | 0:63996d24973b | 34 | */ |
adisuciu | 0:63996d24973b | 35 | ADT7310(PinName CS = SPI_CS, PinName MOSI = SPI_MOSI, PinName MISO = SPI_MISO, PinName SCK = SPI_SCK); |
adisuciu | 0:63996d24973b | 36 | |
adisuciu | 0:63996d24973b | 37 | /** |
adisuciu | 0:63996d24973b | 38 | * @brief resets the ADT7310 |
adisuciu | 0:63996d24973b | 39 | */ |
adisuciu | 0:63996d24973b | 40 | void reset(); |
adisuciu | 0:63996d24973b | 41 | |
adisuciu | 0:63996d24973b | 42 | /** |
adisuciu | 0:63996d24973b | 43 | * @brief reads status register of the temperature sensor |
adisuciu | 0:63996d24973b | 44 | * @return value of the status register |
adisuciu | 0:63996d24973b | 45 | */ |
adisuciu | 0:63996d24973b | 46 | uint8_t read_status(); |
adisuciu | 0:63996d24973b | 47 | |
adisuciu | 0:63996d24973b | 48 | /** |
adisuciu | 0:63996d24973b | 49 | * @brief writes configuration register of the temperature sensor |
adisuciu | 0:63996d24973b | 50 | * @param data - data to be written |
adisuciu | 0:63996d24973b | 51 | */ |
adisuciu | 0:63996d24973b | 52 | void write_config(uint8_t data); |
adisuciu | 0:63996d24973b | 53 | |
adisuciu | 0:63996d24973b | 54 | /** |
adisuciu | 0:63996d24973b | 55 | * @brief issues a conversion to the temperature sensor |
adisuciu | 0:63996d24973b | 56 | */ |
adisuciu | 0:63996d24973b | 57 | void start_single_conversion(); |
adisuciu | 0:63996d24973b | 58 | |
adisuciu | 0:63996d24973b | 59 | /** |
adisuciu | 0:63996d24973b | 60 | * @brief reads configuration register |
adisuciu | 0:63996d24973b | 61 | * @return configuration register value |
adisuciu | 0:63996d24973b | 62 | */ |
adisuciu | 0:63996d24973b | 63 | uint8_t read_config(); |
adisuciu | 0:63996d24973b | 64 | |
adisuciu | 0:63996d24973b | 65 | /** |
adisuciu | 0:63996d24973b | 66 | * @brief reads the temperature |
adisuciu | 0:63996d24973b | 67 | * @return temperature |
adisuciu | 0:63996d24973b | 68 | */ |
adisuciu | 0:63996d24973b | 69 | uint16_t read_temp(); |
adisuciu | 0:63996d24973b | 70 | |
adisuciu | 0:63996d24973b | 71 | /** |
adisuciu | 0:63996d24973b | 72 | * @brief writes temperature setpoints |
adisuciu | 0:63996d24973b | 73 | * @param setpoint - setpoint register |
adisuciu | 0:63996d24973b | 74 | * @param data - data to be written to the setpoint register |
adisuciu | 0:63996d24973b | 75 | */ |
adisuciu | 0:63996d24973b | 76 | void write_temp_setpoint(uint8_t setpoint, uint16_t data); |
adisuciu | 0:63996d24973b | 77 | |
adisuciu | 0:63996d24973b | 78 | void spi_write(uint8_t *data, uint8_t size); |
adisuciu | 0:63996d24973b | 79 | void spi_read(uint8_t *data, uint8_t size); |
adisuciu | 0:63996d24973b | 80 | //DigitalIn miso; |
adisuciu | 0:63996d24973b | 81 | DigitalOut cs; |
adisuciu | 0:63996d24973b | 82 | SPI adt7310; |
adisuciu | 0:63996d24973b | 83 | private: |
adisuciu | 0:63996d24973b | 84 | const uint8_t SPI_MODE = 0x03; |
adisuciu | 0:63996d24973b | 85 | }; |
adisuciu | 0:63996d24973b | 86 | |
adisuciu | 0:63996d24973b | 87 | #endif |