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
libraries/ADT7310/ADT7310.h@33:c3ec596a29c2, 2016-11-07 (annotated)
- 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?
| User | Revision | Line number | New 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 |
CN0357 - Toxic gas measurement
CN0216 - Weight Scale