ADT7310 temperature sensor driver

Dependents:   CN0396

Committer:
adisuciu
Date:
Mon Nov 07 15:46:14 2016 +0000
Revision:
0:63996d24973b
Initial revision

Who changed what in which revision?

UserRevisionLine numberNew 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