This is a sample library for the MAX77650 incorporated with the MAX32620FTHR development board.
Dependents: Low_Power_Long_Distance_IR_Vision_Robot Low_Power_Long_Distance_IR_Vision_Robot
Fork of max77650_charger_sample by
Diff: max77650.h
- Revision:
- 0:0bb9daf44568
- Child:
- 1:324b6205cdd8
diff -r 000000000000 -r 0bb9daf44568 max77650.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/max77650.h Tue Jun 19 20:57:15 2018 +0000 @@ -0,0 +1,205 @@ +/******************************************************************************* +* Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved. +* +* Permission is hereby granted, free of charge, to any person obtaining a +* copy of this software and associated documentation files (the "Software"), +* to deal in the Software without restriction, including without limitation +* the rights to use, copy, modify, merge, publish, distribute, sublicense, +* and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included +* in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES +* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +* OTHER DEALINGS IN THE SOFTWARE. +* +* Except as contained in this notice, the name of Maxim Integrated +* Products, Inc. shall not be used except as stated in the Maxim Integrated +* Products, Inc. Branding Policy. +* +* The mere transfer of this software does not imply any licenses +* of trade secrets, proprietary technology, copyrights, patents, +* trademarks, maskwork rights, or any other form of intellectual +* property whatsoever. Maxim Integrated Products, Inc. retains all +* ownership rights. +******************************************************************************* +*/ + +#ifndef __MAX77650_H_ +#define __MAX77650_H_ + +// Include +#include "mbed.h" + + + +/** + * @brief Library for the MAX77650 + * The MAX77650/MAX77651 provide highly-integrated battery charging and + * power supply solutions for low-power wearable applications where size and + * efficiency are critical. Both devices feature a SIMO buck-boost regulator + * that provides three independently programmable power rails from a single + * inductor to minimize total solution size. A 150mA LDO provides ripple + * rejection for audio and other noise-sensitive applications. A highly + * configurable linear charger supports a wide range of Li+ battery capacities + * and includes battery temperature monitoring for additional safety (JEITA). + * + * @code + * #include "mbed.h" + * #include "MAX77650" + * + * + * // Hardware serial port + * Serial serial(USBTX, USBRX); + * + * //SPI communications + * I2C i2c(SCL, SDA); + * + * //Fuel Gauge + * MAX77650 max77650(i2C, Sutff );//To be completed + * + * + * int main(void) + * { + * CODE CODE + * while(true) + * { + * CODE CODE + * } + * } + * @endcode + */ + +// Definitions +//#define SLAVE_ADDR 0x48 +#define I2C_W_ADRS 0x90 +#define I2C_R_ADRS 0x91 +#define DEVICE_ID 0x00 +#define NUM_INTERRUPTS 12 + + + +class MAX77650 +{ + +public: + /** + * @brief Register Addresses + * @details Enumerated MAX77650 register addresses + * + */ + enum registers_t { + INT_GLBL, ///< Global Interrupt + INT_CHG, ///< Charger Interrupt + STAT_CHG_A, ///< Status of charging station A + STAT_CHG_B, ///< Status of charging station B + ERCFLAG, ///< Flag Status + STAT_GLBL, ///< Status + INTM_GLBL, ///< Interrupt Mask + INT_M_CHG, ///< Interrupt Mask for Charger + + CNFG_GLBL = 0x10, ///< Global Resources + CID, ///< Data Register + CNFG_GPIO, ///< GPIO Config Register + CNFG_CHG_A = 0x18, ///< Configuration Charging Station A + CNFG_CHG_B, ///< Configuration Charging Station B + CNFG_CHG_C, ///< Configuration Charging Station C + CNFG_CHG_D, ///< Configuration Charging Station D + CNFG_CHG_E, ///< Configuration Charging Station E + CNFG_CHG_F, ///< Configuration Charging Station F + CNFG_CHG_G, ///< Configuration Charging Station G + CNFG_CHG_H, ///< Configuration Charging Station H + CNFG_CHG_I, ///< Configuration Charging Station I + + CNFG_SBB_TOP = 0x28, ///< Configuration SIMO Buck Boost Register Top + CNFG_SBB0_A, ///< Configuration SIMO Buck Boost Register A, CN0 + CNFG_SBB0_B, ///< Configuration SIMO Buck Boost Register B, CN0 + CNFG_SBB1_A, ///< Configuration SIMO Buck Boost Register A, CN1 + CNFG_SBB1_B, ///< Configuration SIMO Buck Boost Register B, CN1 + CNFG_SBB2_A, ///< Configuration SIMO Buck Boost Register A, CN2 + CNFG_SBB2_B, ///< Configuration SIMO Buck Boost Register B, CN2 + + CNFG_LDO_A = 0x38, ///< LDO Configuration Register A + CNFG_LDO_B, ///< LDO Configuration Register B + + CNFG_LED0_A = 0x40, ///< LED Configuration A for LED number 0 + CNFG_LED1_A, ///< LED Configuration A for LED number 1 + CNFG_LED2_A, ///< LED Configuration A for LED number 2 + + CNFG_LED0_B = 0x43, ///< LED Configuration B for LED number 0 + CNFG_LED1_B, ///< LED Configuration B for LED number 1 + CNFG_LED2_B, ///< LED Configuration B for LED number 2 + CNFG_LED_TOP, ///< LED Configuration Master Control + }; + + /** + * @brief MAX77650 constructor. + * @details Default Constructor + * + */ + MAX77650(I2C &i2c); + + /** + * @brief MAX77650 Destructor + */ + ~MAX77650(); + + /** + * @brief Write Register + * @details Writes data to MAX77650 Register + * + * @parameters reg_addr Registers to write + * reg_data Data to write + */ + int writeReg(registers_t reg_addr, uint8_t reg_data); + + /** + * @brief Read Register + * @details Reads data from MAX77650 register + * + * @parameters reg_addr Register to read + */ + int readReg(registers_t reg_addr, uint8_t &value); + + + /** + * @brief init Charger Function + * @details Sets the parameters for the charger. + * + * @parameters reg_addr Register to read + */ + + int initCharger(); + + /** + * @brief Enable Charger Function + * @details Sets the parameters for the charger. + * + * @parameters reg_addr Register to read + */ + + int enCharger(); + + /** + * @brief Disable Charger Function + * @details Sets the parameters for the charger. + * + * @parameters reg_addr Register to read + */ + int disblCharger(); //Only for Mobility Demo BU + + + + +private: + I2C &m_i2cBus; + int interrupt_pin_num; +}; + +#endif /* _MAX77650_H_ */ \ No newline at end of file