Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MAX31865.h@2:b42b7148fbe0, 2019-03-29 (annotated)
- Committer:
- freakone
- Date:
- Fri Mar 29 14:09:06 2019 +0000
- Revision:
- 2:b42b7148fbe0
new library content and calculations
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| freakone | 2:b42b7148fbe0 | 1 | /*************************************************** |
| freakone | 2:b42b7148fbe0 | 2 | This is a library for the Adafruit PT100/P1000 RTD Sensor w/MAX31865 |
| freakone | 2:b42b7148fbe0 | 3 | |
| freakone | 2:b42b7148fbe0 | 4 | Designed specifically to work with the Adafruit RTD Sensor |
| freakone | 2:b42b7148fbe0 | 5 | ----> https://www.adafruit.com/products/3328 |
| freakone | 2:b42b7148fbe0 | 6 | |
| freakone | 2:b42b7148fbe0 | 7 | This sensor uses SPI to communicate, 4 pins are required to |
| freakone | 2:b42b7148fbe0 | 8 | interface |
| freakone | 2:b42b7148fbe0 | 9 | Adafruit invests time and resources providing this open source code, |
| freakone | 2:b42b7148fbe0 | 10 | please support Adafruit and open-source hardware by purchasing |
| freakone | 2:b42b7148fbe0 | 11 | products from Adafruit! |
| freakone | 2:b42b7148fbe0 | 12 | |
| freakone | 2:b42b7148fbe0 | 13 | Written by Limor Fried/Ladyada for Adafruit Industries. |
| freakone | 2:b42b7148fbe0 | 14 | BSD license, all text above must be included in any redistribution |
| freakone | 2:b42b7148fbe0 | 15 | |
| freakone | 2:b42b7148fbe0 | 16 | Modified for mbed project - Dan Julio - 5/2017 |
| freakone | 2:b42b7148fbe0 | 17 | Improvements - freakone 3/2019 |
| freakone | 2:b42b7148fbe0 | 18 | ****************************************************/ |
| freakone | 2:b42b7148fbe0 | 19 | #ifndef MAX31865_H |
| freakone | 2:b42b7148fbe0 | 20 | #define MAX31865_H |
| freakone | 2:b42b7148fbe0 | 21 | |
| freakone | 2:b42b7148fbe0 | 22 | #include <stdint.h> |
| freakone | 2:b42b7148fbe0 | 23 | #include "mbed.h" |
| freakone | 2:b42b7148fbe0 | 24 | |
| freakone | 2:b42b7148fbe0 | 25 | #define MAX31865_CONFIG_REG 0x00 |
| freakone | 2:b42b7148fbe0 | 26 | #define MAX31865_CONFIG_BIAS 0x80 |
| freakone | 2:b42b7148fbe0 | 27 | #define MAX31865_CONFIG_MODEAUTO 0x40 |
| freakone | 2:b42b7148fbe0 | 28 | #define MAX31865_CONFIG_MODEOFF 0x00 |
| freakone | 2:b42b7148fbe0 | 29 | #define MAX31865_CONFIG_1SHOT 0x20 |
| freakone | 2:b42b7148fbe0 | 30 | #define MAX31865_CONFIG_3WIRE 0x10 |
| freakone | 2:b42b7148fbe0 | 31 | #define MAX31865_CONFIG_24WIRE 0x00 |
| freakone | 2:b42b7148fbe0 | 32 | #define MAX31865_CONFIG_FAULTSTAT 0x02 |
| freakone | 2:b42b7148fbe0 | 33 | #define MAX31865_CONFIG_FILT50HZ 0x01 |
| freakone | 2:b42b7148fbe0 | 34 | #define MAX31865_CONFIG_FILT60HZ 0x00 |
| freakone | 2:b42b7148fbe0 | 35 | |
| freakone | 2:b42b7148fbe0 | 36 | #define MAX31865_RTDMSB_REG 0x01 |
| freakone | 2:b42b7148fbe0 | 37 | #define MAX31865_RTDLSB_REG 0x02 |
| freakone | 2:b42b7148fbe0 | 38 | #define MAX31865_HFAULTMSB_REG 0x03 |
| freakone | 2:b42b7148fbe0 | 39 | #define MAX31865_HFAULTLSB_REG 0x04 |
| freakone | 2:b42b7148fbe0 | 40 | #define MAX31865_LFAULTMSB_REG 0x05 |
| freakone | 2:b42b7148fbe0 | 41 | #define MAX31865_LFAULTLSB_REG 0x06 |
| freakone | 2:b42b7148fbe0 | 42 | #define MAX31865_FAULTSTAT_REG 0x07 |
| freakone | 2:b42b7148fbe0 | 43 | |
| freakone | 2:b42b7148fbe0 | 44 | #define MAX31865_FAULT_HIGHTHRESH 0x80 |
| freakone | 2:b42b7148fbe0 | 45 | #define MAX31865_FAULT_LOWTHRESH 0x40 |
| freakone | 2:b42b7148fbe0 | 46 | #define MAX31865_FAULT_REFINLOW 0x20 |
| freakone | 2:b42b7148fbe0 | 47 | #define MAX31865_FAULT_REFINHIGH 0x10 |
| freakone | 2:b42b7148fbe0 | 48 | #define MAX31865_FAULT_RTDINLOW 0x08 |
| freakone | 2:b42b7148fbe0 | 49 | #define MAX31865_FAULT_OVUV 0x04 |
| freakone | 2:b42b7148fbe0 | 50 | |
| freakone | 2:b42b7148fbe0 | 51 | #define RTD_A 3.9083e-3 |
| freakone | 2:b42b7148fbe0 | 52 | #define RTD_B -5.775e-7 |
| freakone | 2:b42b7148fbe0 | 53 | |
| freakone | 2:b42b7148fbe0 | 54 | typedef enum max31865_numwires |
| freakone | 2:b42b7148fbe0 | 55 | { |
| freakone | 2:b42b7148fbe0 | 56 | MAX31865_2WIRE = 0, |
| freakone | 2:b42b7148fbe0 | 57 | MAX31865_3WIRE = 1, |
| freakone | 2:b42b7148fbe0 | 58 | MAX31865_4WIRE = 0 |
| freakone | 2:b42b7148fbe0 | 59 | } max31865_numwires_t; |
| freakone | 2:b42b7148fbe0 | 60 | |
| freakone | 2:b42b7148fbe0 | 61 | class MAX31865 |
| freakone | 2:b42b7148fbe0 | 62 | { |
| freakone | 2:b42b7148fbe0 | 63 | public: |
| freakone | 2:b42b7148fbe0 | 64 | MAX31865(SPI &_spi, PinName _ncs); |
| freakone | 2:b42b7148fbe0 | 65 | |
| freakone | 2:b42b7148fbe0 | 66 | bool begin(max31865_numwires_t x = MAX31865_2WIRE); |
| freakone | 2:b42b7148fbe0 | 67 | |
| freakone | 2:b42b7148fbe0 | 68 | uint8_t isSensorPresent() { return sensorPresent; }; |
| freakone | 2:b42b7148fbe0 | 69 | uint8_t readFault(void); |
| freakone | 2:b42b7148fbe0 | 70 | void clearFault(void); |
| freakone | 2:b42b7148fbe0 | 71 | uint16_t readRTD(); |
| freakone | 2:b42b7148fbe0 | 72 | |
| freakone | 2:b42b7148fbe0 | 73 | void setWires(max31865_numwires_t wires); |
| freakone | 2:b42b7148fbe0 | 74 | void autoConvert(bool b); |
| freakone | 2:b42b7148fbe0 | 75 | void enableBias(bool b); |
| freakone | 2:b42b7148fbe0 | 76 | float temperature(float RTDnominal, float refResistor, uint16_t rtdVal = 0); |
| freakone | 2:b42b7148fbe0 | 77 | |
| freakone | 2:b42b7148fbe0 | 78 | private: |
| freakone | 2:b42b7148fbe0 | 79 | SPI &spi; |
| freakone | 2:b42b7148fbe0 | 80 | DigitalOut ncs; |
| freakone | 2:b42b7148fbe0 | 81 | bool sensorPresent; |
| freakone | 2:b42b7148fbe0 | 82 | |
| freakone | 2:b42b7148fbe0 | 83 | void readRegisterN(uint8_t addr, uint8_t buffer[], uint8_t n); |
| freakone | 2:b42b7148fbe0 | 84 | uint8_t readRegister8(uint8_t addr); |
| freakone | 2:b42b7148fbe0 | 85 | uint16_t readRegister16(uint8_t addr); |
| freakone | 2:b42b7148fbe0 | 86 | void writeRegister8(uint8_t addr, uint8_t reg); |
| freakone | 2:b42b7148fbe0 | 87 | }; |
| freakone | 2:b42b7148fbe0 | 88 | |
| freakone | 2:b42b7148fbe0 | 89 | #endif |
| freakone | 2:b42b7148fbe0 | 90 |