A collection of Analog Devices drivers for the mbed platform

For additional information check out the mbed page of the Analog Devices wiki: https://wiki.analog.com/resources/tools-software/mbed-drivers-all

Committer:
Adrian Suciu
Date:
Mon Nov 07 16:27:12 2016 +0200
Revision:
33:c3ec596a29c2
Added CN0391, CN0396 and CN0397 shields

Who changed what in which revision?

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