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

Dependents:   Demo_ADT7310

Committer:
MikamiUitOpen
Date:
Sat Jun 27 08:09:59 2015 +0000
Revision:
0:6890e1214ea6
Child:
1:38a276440674
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:6890e1214ea6 1 //--------------------------------------------------------------
MikamiUitOpen 0:6890e1214ea6 2 // Class for using 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 0:6890e1214ea6 7 // 2015/06/27, Copyright (c) 2015 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 protected:
MikamiUitOpen 0:6890e1214ea6 24 SPI spi_; // Object of SPI
MikamiUitOpen 0:6890e1214ea6 25 // Select SPI device
MikamiUitOpen 0:6890e1214ea6 26 void Select() { ss_ = 0; }
MikamiUitOpen 0:6890e1214ea6 27 // Deselect SPI device
MikamiUitOpen 0:6890e1214ea6 28 void Deselect() { ss_ = 1; }
MikamiUitOpen 0:6890e1214ea6 29 // Set configuration register
MikamiUitOpen 0:6890e1214ea6 30 void SetConfigReg(uint8_t value);
MikamiUitOpen 0:6890e1214ea6 31 // Pre-transform for read
MikamiUitOpen 0:6890e1214ea6 32 void SendRead(Reg myReg) { spi_.write(myReg | 0x40); }
MikamiUitOpen 0:6890e1214ea6 33 // Pre-transform for write
MikamiUitOpen 0:6890e1214ea6 34 void SendWrite(Reg myReg) { spi_.write(myReg); }
MikamiUitOpen 0:6890e1214ea6 35 // Transform data
MikamiUitOpen 0:6890e1214ea6 36 uint8_t SendData(uint8_t data = 0) { return spi_.write(data); }
MikamiUitOpen 0:6890e1214ea6 37
MikamiUitOpen 0:6890e1214ea6 38 public:
MikamiUitOpen 0:6890e1214ea6 39 // Constructor
MikamiUitOpen 0:6890e1214ea6 40 ADT7310(PinName ss, // for slave select
MikamiUitOpen 0:6890e1214ea6 41 PinName mosi = D11, // MOSI
MikamiUitOpen 0:6890e1214ea6 42 PinName miso = D12, // MISO
MikamiUitOpen 0:6890e1214ea6 43 PinName sck = D13); // SCK
MikamiUitOpen 0:6890e1214ea6 44 // Software reset
MikamiUitOpen 0:6890e1214ea6 45 void Reset();
MikamiUitOpen 0:6890e1214ea6 46 // Set resolution
MikamiUitOpen 0:6890e1214ea6 47 void SetResolution16(bool res = false);
MikamiUitOpen 0:6890e1214ea6 48 // Get specified register
MikamiUitOpen 0:6890e1214ea6 49 uint8_t GetReg(Reg myReg);
MikamiUitOpen 0:6890e1214ea6 50 // Get configuration register
MikamiUitOpen 0:6890e1214ea6 51 uint8_t GetConfigReg() { return GetReg(CONFIG); }
MikamiUitOpen 0:6890e1214ea6 52 // Get status register
MikamiUitOpen 0:6890e1214ea6 53 uint8_t GetStatusReg() { return GetReg(ST); }
MikamiUitOpen 0:6890e1214ea6 54 // Read data and translate to temperature
MikamiUitOpen 0:6890e1214ea6 55 float Read();
MikamiUitOpen 0:6890e1214ea6 56 };
MikamiUitOpen 0:6890e1214ea6 57 }
MikamiUitOpen 0:6890e1214ea6 58 #endif // ADT7310_HPP