hattori&ide

Dependencies:   mbed

Committer:
hattori_atsushi
Date:
Sun Dec 18 08:16:01 2022 +0000
Revision:
0:f77369cabd75
hattori

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hattori_atsushi 0:f77369cabd75 1 /**
hattori_atsushi 0:f77369cabd75 2 * @section LICENSE
hattori_atsushi 0:f77369cabd75 3 * Released under the MIT License: http://mbed.org/license/mit
hattori_atsushi 0:f77369cabd75 4 * Copyright (C) 2012 tosihisa
hattori_atsushi 0:f77369cabd75 5 *
hattori_atsushi 0:f77369cabd75 6 * @section DESCRIPTION
hattori_atsushi 0:f77369cabd75 7 * INA226 - Bi-Directional CURRENT/POWER MONITOR with I2C
hattori_atsushi 0:f77369cabd75 8 * http://strawberry-linux.com/catalog/items?code=12031
hattori_atsushi 0:f77369cabd75 9 *
hattori_atsushi 0:f77369cabd75 10 */
hattori_atsushi 0:f77369cabd75 11 #ifndef __INA226_INCLUDE // {
hattori_atsushi 0:f77369cabd75 12 #define __INA226_INCLUDE
hattori_atsushi 0:f77369cabd75 13 #include "mbed.h"
hattori_atsushi 0:f77369cabd75 14 /**
hattori_atsushi 0:f77369cabd75 15 * INA226 Class.
hattori_atsushi 0:f77369cabd75 16 */
hattori_atsushi 0:f77369cabd75 17 class INA226 {
hattori_atsushi 0:f77369cabd75 18 public:
hattori_atsushi 0:f77369cabd75 19 /**
hattori_atsushi 0:f77369cabd75 20 * Constructor.
hattori_atsushi 0:f77369cabd75 21 *
hattori_atsushi 0:f77369cabd75 22 * @param i2c_ instance of I2C.
hattori_atsushi 0:f77369cabd75 23 * @param addr_ I2C slave address.
hattori_atsushi 0:f77369cabd75 24 * @param freq_ I2C frequency.
hattori_atsushi 0:f77369cabd75 25 */
hattori_atsushi 0:f77369cabd75 26 INA226(I2C &i2c_,int addr_ = 0x80,int freq_ = 100000);
hattori_atsushi 0:f77369cabd75 27 /**
hattori_atsushi 0:f77369cabd75 28 * Check INA226 exist.
hattori_atsushi 0:f77369cabd75 29 *
hattori_atsushi 0:f77369cabd75 30 * @param none
hattori_atsushi 0:f77369cabd75 31 * @return 0:NOT EXIST / !0:EXIST
hattori_atsushi 0:f77369cabd75 32 */
hattori_atsushi 0:f77369cabd75 33 int isExist(void);
hattori_atsushi 0:f77369cabd75 34 /**
hattori_atsushi 0:f77369cabd75 35 * INA226 raw level read.
hattori_atsushi 0:f77369cabd75 36 *
hattori_atsushi 0:f77369cabd75 37 * @param pointer_addr INA226 pointer address.
hattori_atsushi 0:f77369cabd75 38 * @param val_ read value.
hattori_atsushi 0:f77369cabd75 39 * @return 0:Read OK / !0:Read NG
hattori_atsushi 0:f77369cabd75 40 */
hattori_atsushi 0:f77369cabd75 41 int rawRead(char pointer_addr,unsigned short *val_);
hattori_atsushi 0:f77369cabd75 42 /**
hattori_atsushi 0:f77369cabd75 43 * INA226 raw level write.
hattori_atsushi 0:f77369cabd75 44 *
hattori_atsushi 0:f77369cabd75 45 * @param pointer_addr INA226 pointer address.
hattori_atsushi 0:f77369cabd75 46 * @param val_ write value.
hattori_atsushi 0:f77369cabd75 47 * @return 0:Read OK / !0:Read NG
hattori_atsushi 0:f77369cabd75 48 */
hattori_atsushi 0:f77369cabd75 49 int rawWrite(char pointer_addr,unsigned short val_);
hattori_atsushi 0:f77369cabd75 50 /**
hattori_atsushi 0:f77369cabd75 51 * Get voltage.
hattori_atsushi 0:f77369cabd75 52 *
hattori_atsushi 0:f77369cabd75 53 * @param V_ read value;
hattori_atsushi 0:f77369cabd75 54 * @return 0:Read OK / !0:Read NG
hattori_atsushi 0:f77369cabd75 55 */
hattori_atsushi 0:f77369cabd75 56 int getVoltage(double *V_);
hattori_atsushi 0:f77369cabd75 57 /**
hattori_atsushi 0:f77369cabd75 58 * Get current.
hattori_atsushi 0:f77369cabd75 59 *
hattori_atsushi 0:f77369cabd75 60 * @param I_ read value;
hattori_atsushi 0:f77369cabd75 61 * @return 0:Read OK / !0:Read NG
hattori_atsushi 0:f77369cabd75 62 */
hattori_atsushi 0:f77369cabd75 63 int getCurrent(double *I_);
hattori_atsushi 0:f77369cabd75 64 /**
hattori_atsushi 0:f77369cabd75 65 * Set current calibration.
hattori_atsushi 0:f77369cabd75 66 *
hattori_atsushi 0:f77369cabd75 67 * @param val write value;
hattori_atsushi 0:f77369cabd75 68 * @return 0:Read OK / !0:Read NG
hattori_atsushi 0:f77369cabd75 69 */
hattori_atsushi 0:f77369cabd75 70 int setCurrentCalibration(unsigned short val);
hattori_atsushi 0:f77369cabd75 71
hattori_atsushi 0:f77369cabd75 72 int setConfiguration(unsigned short val);
hattori_atsushi 0:f77369cabd75 73
hattori_atsushi 0:f77369cabd75 74 private:
hattori_atsushi 0:f77369cabd75 75 I2C &i2c;
hattori_atsushi 0:f77369cabd75 76 int i2c_addr;
hattori_atsushi 0:f77369cabd75 77 int freq;
hattori_atsushi 0:f77369cabd75 78 };
hattori_atsushi 0:f77369cabd75 79 #endif // }