SPI 接続の温度センサ ADT7310 用のライブラリ. Library for temperature sensor ADT7310 connected using SPI interface.

Dependents:   Demo_ADT7310

Committer:
MikamiUitOpen
Date:
Sat Oct 28 14:51:32 2017 +0000
Revision:
1:38a276440674
Parent:
0:6890e1214ea6
2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:6890e1214ea6 1 //--------------------------------------------------------------
MikamiUitOpen 1:38a276440674 2 // Class for ADT7310 on one-shot mode (Header)
MikamiUitOpen 0:6890e1214ea6 3 // Default: 13-bit resolution
MikamiUitOpen 0:6890e1214ea6 4 // You want to know format of command byte for SPI,
MikamiUitOpen 0:6890e1214ea6 5 // see Table15 on data sheet of ADT7310, Rev. A p.18.
MikamiUitOpen 0:6890e1214ea6 6 //
MikamiUitOpen 1:38a276440674 7 // 2017/10/28, Copyright (c) 2017 MIKAMI, Naoki
MikamiUitOpen 0:6890e1214ea6 8 //--------------------------------------------------------------
MikamiUitOpen 0:6890e1214ea6 9
MikamiUitOpen 0:6890e1214ea6 10 #ifndef ADT7310_HPP
MikamiUitOpen 0:6890e1214ea6 11 #define ADT7310_HPP
MikamiUitOpen 0:6890e1214ea6 12
MikamiUitOpen 0:6890e1214ea6 13 #include "mbed.h"
MikamiUitOpen 0:6890e1214ea6 14
MikamiUitOpen 0:6890e1214ea6 15 namespace Mikami
MikamiUitOpen 0:6890e1214ea6 16 {
MikamiUitOpen 0:6890e1214ea6 17 class ADT7310
MikamiUitOpen 0:6890e1214ea6 18 {
MikamiUitOpen 0:6890e1214ea6 19 private:
MikamiUitOpen 0:6890e1214ea6 20 enum Reg { ST = 0x00, CONFIG = 0x08, DATA = 0x10 };
MikamiUitOpen 0:6890e1214ea6 21 DigitalOut ss_; // Object for output of ss
MikamiUitOpen 0:6890e1214ea6 22
MikamiUitOpen 0:6890e1214ea6 23 public:
MikamiUitOpen 0:6890e1214ea6 24 // Constructor
MikamiUitOpen 0:6890e1214ea6 25 ADT7310(PinName ss, // for slave select
MikamiUitOpen 0:6890e1214ea6 26 PinName mosi = D11, // MOSI
MikamiUitOpen 0:6890e1214ea6 27 PinName miso = D12, // MISO
MikamiUitOpen 0:6890e1214ea6 28 PinName sck = D13); // SCK
MikamiUitOpen 0:6890e1214ea6 29 // Software reset
MikamiUitOpen 0:6890e1214ea6 30 void Reset();
MikamiUitOpen 0:6890e1214ea6 31 // Set resolution
MikamiUitOpen 0:6890e1214ea6 32 void SetResolution16(bool res = false);
MikamiUitOpen 0:6890e1214ea6 33 // Get specified register
MikamiUitOpen 0:6890e1214ea6 34 uint8_t GetReg(Reg myReg);
MikamiUitOpen 0:6890e1214ea6 35 // Get configuration register
MikamiUitOpen 0:6890e1214ea6 36 uint8_t GetConfigReg() { return GetReg(CONFIG); }
MikamiUitOpen 0:6890e1214ea6 37 // Get status register
MikamiUitOpen 0:6890e1214ea6 38 uint8_t GetStatusReg() { return GetReg(ST); }
MikamiUitOpen 0:6890e1214ea6 39 // Read data and translate to temperature
MikamiUitOpen 0:6890e1214ea6 40 float Read();
MikamiUitOpen 1:38a276440674 41
MikamiUitOpen 1:38a276440674 42 protected:
MikamiUitOpen 1:38a276440674 43 SPI spi_; // Object of SPI
MikamiUitOpen 1:38a276440674 44
MikamiUitOpen 1:38a276440674 45 // Select SPI device
MikamiUitOpen 1:38a276440674 46 void Select() { ss_ = 0; }
MikamiUitOpen 1:38a276440674 47 // Deselect SPI device
MikamiUitOpen 1:38a276440674 48 void Deselect() { ss_ = 1; }
MikamiUitOpen 1:38a276440674 49 // Set configuration register
MikamiUitOpen 1:38a276440674 50 void SetConfigReg(uint8_t value);
MikamiUitOpen 1:38a276440674 51 // Pre-transform for read
MikamiUitOpen 1:38a276440674 52 void SendRead(Reg myReg) { spi_.write(myReg | 0x40); }
MikamiUitOpen 1:38a276440674 53 // Pre-transform for write
MikamiUitOpen 1:38a276440674 54 void SendWrite(Reg myReg) { spi_.write(myReg); }
MikamiUitOpen 1:38a276440674 55 // Transform data
MikamiUitOpen 1:38a276440674 56 uint8_t SendData(uint8_t data = 0) { return spi_.write(data); }
MikamiUitOpen 0:6890e1214ea6 57 };
MikamiUitOpen 0:6890e1214ea6 58 }
MikamiUitOpen 0:6890e1214ea6 59 #endif // ADT7310_HPP
MikamiUitOpen 1:38a276440674 60