Fixed some I2C items to work on STM Nucleo F446RE

Committer:
ykita
Date:
Tue Oct 02 23:00:22 2018 +0000
Revision:
0:f33e95899738
Child:
1:4fbdf7768530
mbed library for Microchip MCP9600. Revision 0.1.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ykita 0:f33e95899738 1 /* mbed MCP9600 Library, for the MCP9600 Thermocouple EMF to temperature Converter
ykita 0:f33e95899738 2 * Copyright (c) 2018, Yoshiteru Kita, ULVAC-PHI, INC.
ykita 0:f33e95899738 3 *
ykita 0:f33e95899738 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
ykita 0:f33e95899738 5 * of this software and associated documentation files (the "Software"), to deal
ykita 0:f33e95899738 6 * in the Software without restriction, including without limitation the rights
ykita 0:f33e95899738 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
ykita 0:f33e95899738 8 * copies of the Software, and to permit persons to whom the Software is
ykita 0:f33e95899738 9 * furnished to do so, subject to the following conditions:
ykita 0:f33e95899738 10 *
ykita 0:f33e95899738 11 * The above copyright notice and this permission notice shall be included in
ykita 0:f33e95899738 12 * all copies or substantial portions of the Software.
ykita 0:f33e95899738 13 *
ykita 0:f33e95899738 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
ykita 0:f33e95899738 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
ykita 0:f33e95899738 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
ykita 0:f33e95899738 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
ykita 0:f33e95899738 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
ykita 0:f33e95899738 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
ykita 0:f33e95899738 20 * THE SOFTWARE.
ykita 0:f33e95899738 21 */
ykita 0:f33e95899738 22
ykita 0:f33e95899738 23 #ifndef MBED_MCP9600_H
ykita 0:f33e95899738 24 #define MBED_MCP9600_H
ykita 0:f33e95899738 25
ykita 0:f33e95899738 26 #include "mbed.h"
ykita 0:f33e95899738 27
ykita 0:f33e95899738 28 class MCP9600 {
ykita 0:f33e95899738 29 public:
ykita 0:f33e95899738 30 // Constructor with I2C instance and I2C Device Address of MCP9600
ykita 0:f33e95899738 31 MCP9600(I2C *i2c, char addr);
ykita 0:f33e95899738 32
ykita 0:f33e95899738 33 // Set I2C Device Address of MCP9600
ykita 0:f33e95899738 34 void setAddress(char addr);
ykita 0:f33e95899738 35
ykita 0:f33e95899738 36 // Get I2C Device Address of this instance
ykita 0:f33e95899738 37 char getAddress(void);
ykita 0:f33e95899738 38
ykita 0:f33e95899738 39 // Read Temperature from Temperature Register
ykita 0:f33e95899738 40 // tempRegister 0:TH / 1:Tdelta / 2: TC
ykita 0:f33e95899738 41 // Return value: temperature in float value (degree C)
ykita 0:f33e95899738 42 float readTempRegister(char tempRegister);
ykita 0:f33e95899738 43
ykita 0:f33e95899738 44 // Read ADC register
ykita 0:f33e95899738 45 // Return value: 24 bit ADC register value
ykita 0:f33e95899738 46 // Refer MCP9600 datasheet for details.
ykita 0:f33e95899738 47 long readADCRegister(void);
ykita 0:f33e95899738 48
ykita 0:f33e95899738 49 // Write to Status Register
ykita 0:f33e95899738 50 // statRegister: Status data to write
ykita 0:f33e95899738 51 // About register bit, refer MCP9600 datasheet.
ykita 0:f33e95899738 52 char writeStatusRegister( char statRegister );
ykita 0:f33e95899738 53
ykita 0:f33e95899738 54 // Read Status Register
ykita 0:f33e95899738 55 // About register bit, refer MCP9600 datasheet.
ykita 0:f33e95899738 56 char readStatusRegister( void );
ykita 0:f33e95899738 57
ykita 0:f33e95899738 58 // Write to Sensor Configuration Register
ykita 0:f33e95899738 59 // cnfgRegister: Sensor Config data to write
ykita 0:f33e95899738 60 // About register bit, refer MCP9600 datasheet.
ykita 0:f33e95899738 61 char writeSensorConfigRegister( char cnfgRegister );
ykita 0:f33e95899738 62
ykita 0:f33e95899738 63 // Read Sensor Configuration Register
ykita 0:f33e95899738 64 // About register bit, refer MCP9600 datasheet.
ykita 0:f33e95899738 65 char readSensorConfigRegister( void );
ykita 0:f33e95899738 66
ykita 0:f33e95899738 67 // Write to Device Configuration Register
ykita 0:f33e95899738 68 // cnfgRegister: Device Config data to write
ykita 0:f33e95899738 69 // About register bit, refer MCP9600 datasheet.
ykita 0:f33e95899738 70 char writeDeviceConfigRegister( char cnfgRegister );
ykita 0:f33e95899738 71
ykita 0:f33e95899738 72 // Read Device Configuration Register
ykita 0:f33e95899738 73 // About register bit, refer MCP9600 datasheet.
ykita 0:f33e95899738 74 char readDeviceConfigRegister( void );
ykita 0:f33e95899738 75
ykita 0:f33e95899738 76 // Write to Alert Configuration Register
ykita 0:f33e95899738 77 // alertCH: Alert CH (1 to 4)
ykita 0:f33e95899738 78 // alertConfig: Alert Configuration data to write to register
ykita 0:f33e95899738 79 // Return Value: Alert Configuration Register value (Read from register)
ykita 0:f33e95899738 80 // About register bit, refer MCP9600 datasheet.
ykita 0:f33e95899738 81 char writeAlertConfigRegister(char alertCH, char alertConfig);
ykita 0:f33e95899738 82
ykita 0:f33e95899738 83 // Read Alter Configuration Register
ykita 0:f33e95899738 84 // alertCH: Alert CH (1 to 4)
ykita 0:f33e95899738 85 // Return Value: Alert Configuration Register value
ykita 0:f33e95899738 86 // About register bit, refer MCP9600 datasheet.
ykita 0:f33e95899738 87 char readAlertConfigRegister(char alertCH);
ykita 0:f33e95899738 88
ykita 0:f33e95899738 89 // Write to Alert Histerisis Register
ykita 0:f33e95899738 90 // alertCH: Alert CH (1 to 4)
ykita 0:f33e95899738 91 // alertHist: Alert Histerisis data to write to register
ykita 0:f33e95899738 92 // Return Value: Alert Histerisis Register value (Read from register)
ykita 0:f33e95899738 93 char writeAlertHisterisisRegister(char alertCH, char alertHist);
ykita 0:f33e95899738 94
ykita 0:f33e95899738 95 // Read Alter Histerisis Register
ykita 0:f33e95899738 96 // alertCH: Alert CH (1 to 4)
ykita 0:f33e95899738 97 // Return Value: Alert Histerisis Register value
ykita 0:f33e95899738 98 char readAlertHisterisisRegister(char alertCH);
ykita 0:f33e95899738 99
ykita 0:f33e95899738 100 // Write to Alert Limit Value Register
ykita 0:f33e95899738 101 // alertCH: Alert CH (1 to 4)
ykita 0:f33e95899738 102 // alertLimit_val: Alert Limit value to write to register
ykita 0:f33e95899738 103 // Return Value: Alert Limit value in real value (Read from register)
ykita 0:f33e95899738 104 float writeAlertLimit_MCP9600(char alertCH, float alertLimit_val);
ykita 0:f33e95899738 105
ykita 0:f33e95899738 106 // Read Alert Limit Value Register
ykita 0:f33e95899738 107 // alertCH: Alert CH (1 to 4)
ykita 0:f33e95899738 108 // Return Value: Alert Limit value in real value (Read from register)
ykita 0:f33e95899738 109 float readAlertLimit_MCP9600(char alertCH);
ykita 0:f33e95899738 110
ykita 0:f33e95899738 111 // Read Device ID / Revision Register
ykita 0:f33e95899738 112 // Return Value: Device ID / Revision (Read from register)
ykita 0:f33e95899738 113 char readIDRevisionRegister(void);
ykita 0:f33e95899738 114
ykita 0:f33e95899738 115 // Destructor
ykita 0:f33e95899738 116 ~MCP9600();
ykita 0:f33e95899738 117
ykita 0:f33e95899738 118 private:
ykita 0:f33e95899738 119 char Mcp9600Addr ; // I2C Slave Address of MCP9600
ykita 0:f33e95899738 120 I2C *i2cMcp9600; // I2C bus reference
ykita 0:f33e95899738 121 };
ykita 0:f33e95899738 122
ykita 0:f33e95899738 123 #endif