From b45a1af9cfc9ad8e584450bf690c9ab27e7e7f1e Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Sun, 5 May 2019 22:23:03 +0200 Subject: [PATCH] fix(MAX77651): Make it a C library --- ...Library.cpp => MAX77650-Arduino-Library.c} | 737 ++++++++---------- .../MAX77650-Arduino-Library.h | 437 +++++------ 2 files changed, 551 insertions(+), 623 deletions(-) rename lib/maxim/MAX77650-Arduino-Library/{MAX77650-Arduino-Library.cpp => MAX77650-Arduino-Library.c} (60%) diff --git a/lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.cpp b/lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.c similarity index 60% rename from lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.cpp rename to lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.c index 3fa4edd9..967a2d57 100644 --- a/lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.cpp +++ b/lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.c @@ -28,10 +28,10 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. -* -* Authors: +* +* Authors: * Ole Dreessen; ole.dreessen@maximintegrated.com -* +* **********************************************************************/ @@ -40,567 +40,500 @@ /********************************************************************** -*@brief 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 +*@brief 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). * -*The devices include other features such as current sinks for driving LED indicators and -*an analog multiplexer that switches several internal voltage and current signals to an -*external node for monitoring with an external ADC. A bidirectional I2C interface allows -*for configuring and checking the status of the devices. An internal on/off controller -*provides a controlled startup sequence for the regulators and provides supervisory -*functionality when the devices are on. Numerous factory programmable options allow the +*The devices include other features such as current sinks for driving LED indicators and +*an analog multiplexer that switches several internal voltage and current signals to an +*external node for monitoring with an external ADC. A bidirectional I2C interface allows +*for configuring and checking the status of the devices. An internal on/off controller +*provides a controlled startup sequence for the regulators and provides supervisory +*functionality when the devices are on. Numerous factory programmable options allow the *device to be tailored for many applications, enabling faster time to market. * *Ressources can be found at *https://www.maximintegrated.com/en/products/power/battery-management/MAX77650.html *https://www.maximintegrated.com/en/app-notes/index.mvp/id/6428 **********************************************************************/ - - -boolean MAX77650_init(void){ - Serial.println(MAX77650_I2C_port); - //Init I2C Interface - #if MAX77650_I2C_port == 0 - Wire.begin(); - #elif MAX77650_I2C_port == 1 - Wire1.begin(); - #elif MAX77650_I2C_port == 2 - Wire2.begin(); - #else - Wire.begin(); - #endif -} int MAX77650_read_register(int ADDR){ - int retval = -1; - #if MAX77650_I2C_port == 0 +#if 0 + int retval = -1; Wire.beginTransmission(MAX77650_ADDR); Wire.write(ADDR); Wire.endTransmission(); Wire.requestFrom(MAX77650_ADDR,1); if (Wire.available()<=1) - retval = (Wire.read()); - #elif MAX77650_I2C_port == 1 - Wire1.beginTransmission(MAX77650_ADDR); - Wire1.write(ADDR); - Wire1.endTransmission(); - Wire1.requestFrom(MAX77650_ADDR,1); - if (Wire1.available()<=1) - retval = (Wire1.read()); - #elif MAX77650_I2C_port == 2 - Wire2.beginTransmission(MAX77650_ADDR); - Wire2.write(ADDR); - Wire2.endTransmission(); - Wire2.requestFrom(MAX77650_ADDR,1); - if (Wire2.available()<=1) - retval = (Wire2.read()); - #else + retval = (Wire.read()); +#endif +} + +uint8_t MAX77650_write_register(int ADDR, int data){ +#if 0 + int retval = -1; Wire.beginTransmission(MAX77650_ADDR); Wire.write(ADDR); + Wire.write(data); Wire.endTransmission(); - Wire.requestFrom(MAX77650_ADDR,1); - if (Wire.available()<=1) - retval = (Wire.read()); - #endif -} - -byte MAX77650_write_register(int ADDR, int data){ - int retval = -1; - if (MAX77650_I2C_port == 0){ - Wire.beginTransmission(MAX77650_ADDR); - Wire.write(ADDR); - Wire.write(data); - Wire.endTransmission(); - } - if (MAX77650_I2C_port == 1){ - Wire1.beginTransmission(MAX77650_ADDR); - Wire1.write(ADDR); - Wire1.write(data); - Wire1.endTransmission(); - } - if (MAX77650_I2C_port == 2){ - Wire2.beginTransmission(MAX77650_ADDR); - Wire2.write(ADDR); - Wire2.write(data); - Wire2.endTransmission(); - } - - #if MAX77650_I2C_port == 0 - Wire.beginTransmission(MAX77650_ADDR); - Wire.write(ADDR); - Wire.write(data); - Wire.endTransmission(); - #elif MAX77650_I2C_port == 1 - Wire1.beginTransmission(MAX77650_ADDR); - Wire1.write(ADDR); - Wire1.write(data); - Wire1.endTransmission(); - #elif MAX77650_I2C_port == 2 - Wire2.beginTransmission(MAX77650_ADDR); - Wire2.write(ADDR); - Wire2.write(data); - Wire2.endTransmission(); - #else + Wire.beginTransmission(MAX77650_ADDR); - Wire.write(ADDR); - Wire.write(data); + Wire.write(ADDR); + Wire.write(data); Wire.endTransmission(); - #endif - - +#endif } -boolean MAX77650_getDIDM(void){ - return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 6) & 0b00000011); +bool MAX77650_getDIDM(void){ + return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 6) & 0b00000011); } -boolean MAX77650_getLDO_DropoutDetector(void){ //Returns wheather the LDO is in Dropout or not; Return Value: 0=LDO is not in dropout; 1=LDO is in dropout - byte retval; - retval = ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 5) & 0b00000001); +bool MAX77650_getLDO_DropoutDetector(void){ //Returns wheather the LDO is in Dropout or not; Return Value: 0=LDO is not in dropout; 1=LDO is in dropout + uint8_t retval; + retval = ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 5) & 0b00000001); return retval; } -boolean MAX77650_getThermalAlarm1(void){ //Returns Thermal Alarm (TJA1 limit); Return Value: 0=Tj<TJA1; 1=Tj>TJA1 - return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 3) & 0b00000001); +bool MAX77650_getThermalAlarm1(void){ //Returns Thermal Alarm (TJA1 limit); Return Value: 0=Tj<TJA1; 1=Tj>TJA1 + return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 3) & 0b00000001); } -boolean MAX77650_getThermalAlarm2(void){ //Returns Therma2 Alarm (TJA2 limit); Return Value: 0=Tj<TJA2; 1=Tj>TJA2 - return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 4) & 0b00000001); +bool MAX77650_getThermalAlarm2(void){ //Returns Therma2 Alarm (TJA2 limit); Return Value: 0=Tj<TJA2; 1=Tj>TJA2 + return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 4) & 0b00000001); } -boolean MAX77650_getDebounceStatusnEN0(void){ //Returns Debounced Status of nEN input; Return Value: 0=nEN0 is not active; 1=nEN0 is active - return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 2) & 0b00000001); +bool MAX77650_getDebounceStatusnEN0(void){ //Returns Debounced Status of nEN input; Return Value: 0=nEN0 is not active; 1=nEN0 is active + return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 2) & 0b00000001); } -boolean MAX77650_getDebounceStatusPWR_HLD(void){ //Returns Debounced Status of PWR_HLD input; Return Value: 0=logic low; 1=logic high - return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 1) & 0b00000001); +bool MAX77650_getDebounceStatusPWR_HLD(void){ //Returns Debounced Status of PWR_HLD input; Return Value: 0=logic low; 1=logic high + return ((MAX77650_read_register(MAX77650_STAT_GLBL_ADDR) >> 1) & 0b00000001); } -byte MAX77650_getERCFLAG(void){ //Returns the ERCFLAG Register 0x04 +uint8_t MAX77650_getERCFLAG(void){ //Returns the ERCFLAG Register 0x04 return MAX77650_read_register(MAX77650_ERCFLAG_ADDR); } -byte MAX77650_getChipID(void){ // Return Value regaring OTP parts of the MAX77650 - return (MAX77650_read_register(MAX77650_CID_ADDR) & 0b00001111); +uint8_t MAX77650_getChipID(void){ // Return Value regaring OTP parts of the MAX77650 + return (MAX77650_read_register(MAX77650_CID_ADDR) & 0b00001111); } -boolean MAX77650_VCHGIN_MIN_STAT(void){ //Returns Minimum Input Voltage Regulation Loop Status; Return Value: 0=no event; 1=The minimum CHGIN voltage regulation loop has engaged to regulate VCHGIN >= VCHGIN-MIN +bool MAX77650_VCHGIN_MIN_STAT(void){ //Returns Minimum Input Voltage Regulation Loop Status; Return Value: 0=no event; 1=The minimum CHGIN voltage regulation loop has engaged to regulate VCHGIN >= VCHGIN-MIN return ((MAX77650_read_register(MAX77650_STAT_CHG_A_ADDR) >> 6) & 0b00000001); } -boolean MAX77650_getICHGIN_LIM_STAT(void){ //Returns Input Current Limit Loop Status; Return Value: 0=no event; 1=The CHGIN current limit loop has engaged to regulate ICHGIN <= ICHGIN-LIM +bool MAX77650_getICHGIN_LIM_STAT(void){ //Returns Input Current Limit Loop Status; Return Value: 0=no event; 1=The CHGIN current limit loop has engaged to regulate ICHGIN <= ICHGIN-LIM return ((MAX77650_read_register(MAX77650_STAT_CHG_A_ADDR) >> 5) & 0b00000001); } -boolean MAX77650_getVSYS_MIN_STAT(void){ //Returns Minimum System Voltage Regulation Loop Status; Return Value: 0=no event; 1=The minimum system voltage regulation loop is engaged to regulate VSYS >= VSYS-MIN +bool MAX77650_getVSYS_MIN_STAT(void){ //Returns Minimum System Voltage Regulation Loop Status; Return Value: 0=no event; 1=The minimum system voltage regulation loop is engaged to regulate VSYS >= VSYS-MIN return ((MAX77650_read_register(MAX77650_STAT_CHG_A_ADDR) >> 4) & 0b00000001); } -boolean MAX77650_getTJ_REG_STAT(void){ //Returns Maximum Junction Temperature Regulation Loop Status; Return Value: 0=no event; 1=The maximum junction temperature regulation loop has engaged to regulate the junction temperature less than TJ-REG +bool MAX77650_getTJ_REG_STAT(void){ //Returns Maximum Junction Temperature Regulation Loop Status; Return Value: 0=no event; 1=The maximum junction temperature regulation loop has engaged to regulate the junction temperature less than TJ-REG return ((MAX77650_read_register(MAX77650_STAT_CHG_A_ADDR) >> 3) & 0b00000001); } -byte MAX77650_getTHM_DTLS(void){ //Returns Battery Temperature Details; Return Value: Battery Temperature Details +uint8_t MAX77650_getTHM_DTLS(void){ //Returns Battery Temperature Details; Return Value: Battery Temperature Details return (MAX77650_read_register(MAX77650_STAT_CHG_A_ADDR) & 0b00000111); } -byte MAX77650_getCHG_DTLS(void){ //Returns Charger Details - return ((MAX77650_read_register(MAX77650_STAT_CHG_B_ADDR) >> 4) & 0b00001111); +uint8_t MAX77650_getCHG_DTLS(void){ //Returns Charger Details + return ((MAX77650_read_register(MAX77650_STAT_CHG_B_ADDR) >> 4) & 0b00001111); } -byte MAX77650_getCHGIN_DTLS(void){ //Returns CHGIN Status Details - return ((MAX77650_read_register(MAX77650_STAT_CHG_B_ADDR) >> 2) & 0b00000011); +uint8_t MAX77650_getCHGIN_DTLS(void){ //Returns CHGIN Status Details + return ((MAX77650_read_register(MAX77650_STAT_CHG_B_ADDR) >> 2) & 0b00000011); } -boolean MAX77650_getCHG(void){ //Returns Quick Charger Status - return ((MAX77650_read_register(MAX77650_STAT_CHG_B_ADDR) >> 1) & 0b00000001); +bool MAX77650_getCHG(void){ //Returns Quick Charger Status + return ((MAX77650_read_register(MAX77650_STAT_CHG_B_ADDR) >> 1) & 0b00000001); } -boolean MAX77650_getTIME_SUS(void){ //Returns Time Suspend Indicator - return (MAX77650_read_register(MAX77650_STAT_CHG_B_ADDR) & 0b00000001); +bool MAX77650_getTIME_SUS(void){ //Returns Time Suspend Indicator + return (MAX77650_read_register(MAX77650_STAT_CHG_B_ADDR) & 0b00000001); } -byte MAX77650_getLED_FS0(void){ //Returns LED0 Full Scale Range - return ((MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) >> 6) & 0b00000011); +uint8_t MAX77650_getLED_FS0(void){ //Returns LED0 Full Scale Range + return ((MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) >> 6) & 0b00000011); } -boolean MAX77650_getINV_LED0(void){ //Returns LED0 Invert - return ((MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) >> 5) & 0b00000001); +bool MAX77650_getINV_LED0(void){ //Returns LED0 Invert + return ((MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) >> 5) & 0b00000001); } -byte MAX77650_getBRT_LED0(void){ //Returns LED0 Brightness Control - return (MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) & 0b00011111); +uint8_t MAX77650_getBRT_LED0(void){ //Returns LED0 Brightness Control + return (MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) & 0b00011111); } -byte MAX77650_getP_LED0(void){ //Returns LED0 Period Settings - return ((MAX77650_read_register(MAX77650_CNFG_LED0_B_ADDR) >> 4) & 0b00001111); +uint8_t MAX77650_getP_LED0(void){ //Returns LED0 Period Settings + return ((MAX77650_read_register(MAX77650_CNFG_LED0_B_ADDR) >> 4) & 0b00001111); } -byte MAX77650_getD_LED0(void){ //Returns LED0 On Duty-Cycle Settings - return (MAX77650_read_register(MAX77650_CNFG_LED0_B_ADDR) & 0b00001111); +uint8_t MAX77650_getD_LED0(void){ //Returns LED0 On Duty-Cycle Settings + return (MAX77650_read_register(MAX77650_CNFG_LED0_B_ADDR) & 0b00001111); } -byte MAX77650_getLED_FS1(void){ //Returns LED1 Full Scale Range - return ((MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) >> 6) & 0b00000011); +uint8_t MAX77650_getLED_FS1(void){ //Returns LED1 Full Scale Range + return ((MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) >> 6) & 0b00000011); } -boolean MAX77650_getINV_LED1(void){ //Returns LED1 Invert - return ((MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) >> 5) & 0b00000001); +bool MAX77650_getINV_LED1(void){ //Returns LED1 Invert + return ((MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) >> 5) & 0b00000001); } -byte MAX77650_getBRT_LED1(void){ //Returns LED1 Brightness Control - return (MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) & 0b00011111); +uint8_t MAX77650_getBRT_LED1(void){ //Returns LED1 Brightness Control + return (MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) & 0b00011111); } -byte MAX77650_getP_LED1(void){ //Returns LED1 Period Settings - return ((MAX77650_read_register(MAX77650_CNFG_LED1_B_ADDR) >> 4) & 0b00001111); +uint8_t MAX77650_getP_LED1(void){ //Returns LED1 Period Settings + return ((MAX77650_read_register(MAX77650_CNFG_LED1_B_ADDR) >> 4) & 0b00001111); } -byte MAX77650_getD_LED1(void){ //Returns LED1 On Duty-Cycle Settings - return (MAX77650_read_register(MAX77650_CNFG_LED1_B_ADDR) & 0b00001111); +uint8_t MAX77650_getD_LED1(void){ //Returns LED1 On Duty-Cycle Settings + return (MAX77650_read_register(MAX77650_CNFG_LED1_B_ADDR) & 0b00001111); } -byte MAX77650_getLED_FS2(void){ //Returns LED0 Full Scale Range - return ((MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) >> 6) & 0b00000011); +uint8_t MAX77650_getLED_FS2(void){ //Returns LED0 Full Scale Range + return ((MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) >> 6) & 0b00000011); } -boolean MAX77650_getINV_LED2(void){ //Returns LED2 Invert - return ((MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) >> 5) & 0b00000001); +bool MAX77650_getINV_LED2(void){ //Returns LED2 Invert + return ((MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) >> 5) & 0b00000001); } -byte MAX77650_getBRT_LED2(void){ //Returns LED2 Brightness Control - return (MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) & 0b00011111); +uint8_t MAX77650_getBRT_LED2(void){ //Returns LED2 Brightness Control + return (MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) & 0b00011111); } -byte MAX77650_getP_LED2(void){ //Returns LED2 Period Settings - return ((MAX77650_read_register(MAX77650_CNFG_LED2_B_ADDR) >> 4) & 0b00001111); +uint8_t MAX77650_getP_LED2(void){ //Returns LED2 Period Settings + return ((MAX77650_read_register(MAX77650_CNFG_LED2_B_ADDR) >> 4) & 0b00001111); } -byte MAX77650_getD_LED2(void){ //Returns LED2 On Duty-Cycle Settings - return (MAX77650_read_register(MAX77650_CNFG_LED2_B_ADDR) & 0b00001111); +uint8_t MAX77650_getD_LED2(void){ //Returns LED2 On Duty-Cycle Settings + return (MAX77650_read_register(MAX77650_CNFG_LED2_B_ADDR) & 0b00001111); } -boolean MAX77650_getBOK(void){ //Returns Main Bias Okay Status Bit - return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 6) & 0b00000001); +bool MAX77650_getBOK(void){ //Returns Main Bias Okay Status Bit + return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 6) & 0b00000001); } -boolean MAX77650_getSBIA_LPM(void){ //Returns Main Bias Low-Power Mode software request - return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 5) & 0b00000001); +bool MAX77650_getSBIA_LPM(void){ //Returns Main Bias Low-Power Mode software request + return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 5) & 0b00000001); } -boolean MAX77650_getSBIA_EN(void){ //Returns Main Bias Enable Software Request - return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 4) & 0b00000001); +bool MAX77650_getSBIA_EN(void){ //Returns Main Bias Enable Software Request + return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 4) & 0b00000001); } -boolean MAX77650_getnEN_MODE(void){ //Returns nEN Input (ONKEY) Default Configuration Mode - return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 3) & 0b00000001); +bool MAX77650_getnEN_MODE(void){ //Returns nEN Input (ONKEY) Default Configuration Mode + return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 3) & 0b00000001); } -boolean MAX77650_getDBEN_nEN(void){ //Returns Debounce Timer Enable for the nEN Pin - return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 2) & 0b00000001); +bool MAX77650_getDBEN_nEN(void){ //Returns Debounce Timer Enable for the nEN Pin + return ((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) >> 2) & 0b00000001); } -byte MAX77650_getSFT_RST(void){ //Returns Software Reset Functions. - return (MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) & 0b00000011); +uint8_t MAX77650_getSFT_RST(void){ //Returns Software Reset Functions. + return (MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) & 0b00000011); } -byte MAX77650_getINT_GLBL(void){ //Returns Interrupt Status Register 0x00 - return MAX77650_read_register(MAX77650_INT_GLBL_ADDR); +uint8_t MAX77650_getINT_GLBL(void){ //Returns Interrupt Status Register 0x00 + return MAX77650_read_register(MAX77650_INT_GLBL_ADDR); } -byte MAX77650_getINT_M_GLBL(void){ //Returns Global Interrupt Mask Register - return (MAX77650_read_register(MAX77650_INTM_GLBL_ADDR) & 0b01111111); +uint8_t MAX77650_getINT_M_GLBL(void){ //Returns Global Interrupt Mask Register + return (MAX77650_read_register(MAX77650_INTM_GLBL_ADDR) & 0b01111111); } -boolean MAX77650_getDBEN_GPI(void){ //Returns General Purpose Input Debounce Timer Enable - return ((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) >> 4) & 0b00000001); +bool MAX77650_getDBEN_GPI(void){ //Returns General Purpose Input Debounce Timer Enable + return ((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) >> 4) & 0b00000001); } -boolean MAX77650_getDO(void){ //Returns General Purpose Output Data Output - return ((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) >> 3) & 0b00000001); +bool MAX77650_getDO(void){ //Returns General Purpose Output Data Output + return ((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) >> 3) & 0b00000001); } -boolean MAX77650_getDRV(void){ //Returns General Purpose Output Driver Type - return ((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) >> 2) & 0b00000001); +bool MAX77650_getDRV(void){ //Returns General Purpose Output Driver Type + return ((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) >> 2) & 0b00000001); } -boolean MAX77650_getDI(void){ //Returns GPIO Digital Input Value - return ((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) >> 1) & 0b00000001); +bool MAX77650_getDI(void){ //Returns GPIO Digital Input Value + return ((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) >> 1) & 0b00000001); } -boolean MAX77650_getDIR(void){ //Returns GPIO Direction - return (MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) & 0b00000001); +bool MAX77650_getDIR(void){ //Returns GPIO Direction + return (MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) & 0b00000001); } //Charger Interrupt Status Register 0x01 -byte MAX77650_getINT_CHG(void){ //Returns Charger Interrupt Status Register 0x01 - return MAX77650_read_register(MAX77650_INT_CHG_ADDR); +uint8_t MAX77650_getINT_CHG(void){ //Returns Charger Interrupt Status Register 0x01 + return MAX77650_read_register(MAX77650_INT_CHG_ADDR); } //Charger Interrupt Mask Register 0x07 -byte MAX77650_getINT_M_CHG(void){ //Returns Global Interrupt Mask Register - return (MAX77650_read_register(MAX77650_INT_M_CHG_ADDR) & 0b01111111); +uint8_t MAX77650_getINT_M_CHG(void){ //Returns Global Interrupt Mask Register + return (MAX77650_read_register(MAX77650_INT_M_CHG_ADDR) & 0b01111111); } //Charger Configuration Register A 0x18 -byte MAX77650_getTHM_HOT(void){ //Returns the VHOT JEITA Temperature Threshold - return ((MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) >> 6) & 0b00000011); +uint8_t MAX77650_getTHM_HOT(void){ //Returns the VHOT JEITA Temperature Threshold + return ((MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) >> 6) & 0b00000011); } -byte MAX77650_getTHM_WARM(void){ //Returns the VWARM JEITA Temperature Threshold +uint8_t MAX77650_getTHM_WARM(void){ //Returns the VWARM JEITA Temperature Threshold return ((MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) >> 4) & 0b00000011); } -byte MAX77650_getTHM_COOL(void){ //Returns the VCOOL JEITA Temperature Threshold +uint8_t MAX77650_getTHM_COOL(void){ //Returns the VCOOL JEITA Temperature Threshold return ((MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) >> 2) & 0b00000011); } -byte MAX77650_getTHM_COLD(void){ //Returns the VCOLD JEITA Temperature Threshold +uint8_t MAX77650_getTHM_COLD(void){ //Returns the VCOLD JEITA Temperature Threshold return (MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) & 0b00000011); } //Charger Configuration Register B 0x19 -byte MAX77650_getVCHGIN_MIN(void){ //Returns the Minimum CHGIN regulation voltage (VCHGIN-MIN) - return ((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) >> 5) & 0b00000111); +uint8_t MAX77650_getVCHGIN_MIN(void){ //Returns the Minimum CHGIN regulation voltage (VCHGIN-MIN) + return ((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) >> 5) & 0b00000111); } -byte MAX77650_getICHGIN_LIM(void){ //Returns the CHGIN Input Current Limit (ICHGIN-LIM) - return ((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) >> 2) & 0b00000111); +uint8_t MAX77650_getICHGIN_LIM(void){ //Returns the CHGIN Input Current Limit (ICHGIN-LIM) + return ((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) >> 2) & 0b00000111); } -boolean MAX77650_getI_PQ(void){ //Returns the prequalification charge current (IPQ) as a percentage of IFAST-CHG - return ((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) >> 1) & 0b00000001); +bool MAX77650_getI_PQ(void){ //Returns the prequalification charge current (IPQ) as a percentage of IFAST-CHG + return ((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) >> 1) & 0b00000001); } -boolean MAX77650_getCHG_EN(void){ //Returns Charger Enable +bool MAX77650_getCHG_EN(void){ //Returns Charger Enable return (MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) & 0b00000001); } //Charger Configuration Register C 0x1A -byte MAX77650_getCHG_PQ(void){ //Returns the Battery prequalification voltage threshold (VPQ) - return ((MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) >> 5) & 0b00000111); +uint8_t MAX77650_getCHG_PQ(void){ //Returns the Battery prequalification voltage threshold (VPQ) + return ((MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) >> 5) & 0b00000111); } -byte MAX77650_getI_TERM(void){ //Returns the Charger Termination Current (ITERM). I_TERM[1:0] sets the charger termination current as a percentage of the fast charge current IFAST-CHG. - return ((MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) >> 3) & 0b00000011); +uint8_t MAX77650_getI_TERM(void){ //Returns the Charger Termination Current (ITERM). I_TERM[1:0] sets the charger termination current as a percentage of the fast charge current IFAST-CHG. + return ((MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) >> 3) & 0b00000011); } -byte MAX77650_getT_TOPOFF(void){ //Returns the Topoff timer value (tTO) - return (MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) & 0b00000111); +uint8_t MAX77650_getT_TOPOFF(void){ //Returns the Topoff timer value (tTO) + return (MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) & 0b00000111); } //Charger Configuration Register D 0x1B -byte MAX77650_getTJ_REG(void){ //Returns the die junction temperature regulation point, TJ-REG - return ((MAX77650_read_register(MAX77650_CNFG_CHG_D_ADDR) >> 5) & 0b00000111); +uint8_t MAX77650_getTJ_REG(void){ //Returns the die junction temperature regulation point, TJ-REG + return ((MAX77650_read_register(MAX77650_CNFG_CHG_D_ADDR) >> 5) & 0b00000111); } -byte MAX77650_getVSYS_REG(void){ //Returns the System voltage regulation (VSYS-REG) - return (MAX77650_read_register(MAX77650_CNFG_CHG_D_ADDR) & 0b00011111); +uint8_t MAX77650_getVSYS_REG(void){ //Returns the System voltage regulation (VSYS-REG) + return (MAX77650_read_register(MAX77650_CNFG_CHG_D_ADDR) & 0b00011111); } //Charger Configuration Register E 0x1C -byte MAX77650_getCHG_CC(void){ //Returns the fast-charge constant current value, IFAST-CHG. - return ((MAX77650_read_register(MAX77650_CNFG_CHG_E_ADDR) >> 2) & 0b00111111); +uint8_t MAX77650_getCHG_CC(void){ //Returns the fast-charge constant current value, IFAST-CHG. + return ((MAX77650_read_register(MAX77650_CNFG_CHG_E_ADDR) >> 2) & 0b00111111); } -byte MAX77650_getT_FAST_CHG(void){ //Returns the fast-charge safety timer, tFC. - return (MAX77650_read_register(MAX77650_CNFG_CHG_E_ADDR) & 0b00000011); +uint8_t MAX77650_getT_FAST_CHG(void){ //Returns the fast-charge safety timer, tFC. + return (MAX77650_read_register(MAX77650_CNFG_CHG_E_ADDR) & 0b00000011); } //Charger Configuration Register F 0x1D -byte MAX77650_getCHG_CC_JEITA(void){ //Returns the IFAST-CHG_JEITA for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. - return ((MAX77650_read_register(MAX77650_CNFG_CHG_F_ADDR) >> 2) & 0b00111111); +uint8_t MAX77650_getCHG_CC_JEITA(void){ //Returns the IFAST-CHG_JEITA for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. + return ((MAX77650_read_register(MAX77650_CNFG_CHG_F_ADDR) >> 2) & 0b00111111); } -byte MAX77650_getTHM_EN(void){ //Returns the Thermistor enable bit - return ((MAX77650_read_register(MAX77650_CNFG_CHG_F_ADDR) >> 1) & 0b00000001); +uint8_t MAX77650_getTHM_EN(void){ //Returns the Thermistor enable bit + return ((MAX77650_read_register(MAX77650_CNFG_CHG_F_ADDR) >> 1) & 0b00000001); } //Charger Configuration Register G 0x1E -byte MAX77650_getCHG_CV(void){ //Returns the fast-charge battery regulation voltage, VFAST-CHG. - return ((MAX77650_read_register(MAX77650_CNFG_CHG_G_ADDR) >> 2) & 0b00111111); +uint8_t MAX77650_getCHG_CV(void){ //Returns the fast-charge battery regulation voltage, VFAST-CHG. + return ((MAX77650_read_register(MAX77650_CNFG_CHG_G_ADDR) >> 2) & 0b00111111); } -boolean MAX77650_getUSBS(void){ //this bit places CHGIN in USB suspend mode - return ((MAX77650_read_register(MAX77650_CNFG_CHG_G_ADDR) >> 1) & 0b00000001); +bool MAX77650_getUSBS(void){ //this bit places CHGIN in USB suspend mode + return ((MAX77650_read_register(MAX77650_CNFG_CHG_G_ADDR) >> 1) & 0b00000001); } //Charger Configuration Register H 0x1F -byte MAX77650_getCHG_CV_JEITA(void){ //Returns the modified VFAST-CHG for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. - return ((MAX77650_read_register(MAX77650_CNFG_CHG_H_ADDR) >> 2) & 0b00111111); +uint8_t MAX77650_getCHG_CV_JEITA(void){ //Returns the modified VFAST-CHG for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. + return ((MAX77650_read_register(MAX77650_CNFG_CHG_H_ADDR) >> 2) & 0b00111111); } //Charger Configuration Register I 0x20 -byte MAX77650_getIMON_DISCHG_SCALE(void){ //Returns the Selects the battery discharge current full-scale current value This 4-bit configuration starts at 7.5mA and ends at 300mA. - return ((MAX77650_read_register(MAX77650_CNFG_CHG_I_ADDR) >> 4) & 0b00001111); +uint8_t MAX77650_getIMON_DISCHG_SCALE(void){ //Returns the Selects the battery discharge current full-scale current value This 4-bit configuration starts at 7.5mA and ends at 300mA. + return ((MAX77650_read_register(MAX77650_CNFG_CHG_I_ADDR) >> 4) & 0b00001111); } -byte MAX77650_getMUX_SEL(void){ //Returns the analog channel to connect to AMUX configuration - return (MAX77650_read_register(MAX77650_CNFG_CHG_I_ADDR) & 0b00001111); +uint8_t MAX77650_getMUX_SEL(void){ //Returns the analog channel to connect to AMUX configuration + return (MAX77650_read_register(MAX77650_CNFG_CHG_I_ADDR) & 0b00001111); } //LDO Configuration Register A 0x38 -byte MAX77650_getTV_LDO(void){ //Returns the LDO Target Output Voltage - return (MAX77650_read_register(MAX77650_CNFG_LDO_A_ADDR) & 0b01111111); +uint8_t MAX77650_getTV_LDO(void){ //Returns the LDO Target Output Voltage + return (MAX77650_read_register(MAX77650_CNFG_LDO_A_ADDR) & 0b01111111); } //LDO Configuration Register B 0x39 -boolean MAX77650_getADE_LDO(void){ //Returns LDO active-Discharge Enable - return ((MAX77650_read_register(MAX77650_CNFG_LDO_B_ADDR) >> 3) & 0b00000001); +bool MAX77650_getADE_LDO(void){ //Returns LDO active-Discharge Enable + return ((MAX77650_read_register(MAX77650_CNFG_LDO_B_ADDR) >> 3) & 0b00000001); } -byte MAX77650_getEN_LDO(void){ //Enable Control for LDO. - return (MAX77650_read_register(MAX77650_CNFG_LDO_B_ADDR) & 0b00000111); +uint8_t MAX77650_getEN_LDO(void){ //Enable Control for LDO. + return (MAX77650_read_register(MAX77650_CNFG_LDO_B_ADDR) & 0b00000111); } //SIMO Buck-Boost Global Configuration Register 0x28 -boolean MAX77650_getMRT_OTP(void){ //Returns Manual Reset Time Configuration - return ((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) >> 6) & 0b00000001); +bool MAX77650_getMRT_OTP(void){ //Returns Manual Reset Time Configuration + return ((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) >> 6) & 0b00000001); } -boolean MAX77650_getSBIA_LPM_DEF(void){ //Returns Default voltage of the SBIA_LPM bit - return ((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) >> 5) & 0b00000001); +bool MAX77650_getSBIA_LPM_DEF(void){ //Returns Default voltage of the SBIA_LPM bit + return ((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) >> 5) & 0b00000001); } -boolean MAX77650_getDBNC_nEN_DEF(void){ //Returns Default Value of the DBNC_nEN bit - return ((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) >> 4) & 0b00000001); +bool MAX77650_getDBNC_nEN_DEF(void){ //Returns Default Value of the DBNC_nEN bit + return ((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) >> 4) & 0b00000001); } -byte MAX77650_getDRV_SBB(void){ //Returns the SIMO Buck-Boost (all channels) Drive Strength Trim. - return (MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) & 0b00000011); +uint8_t MAX77650_getDRV_SBB(void){ //Returns the SIMO Buck-Boost (all channels) Drive Strength Trim. + return (MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) & 0b00000011); } //SIMO Buck-Boost 0 Configuration Register A 0x29 -byte MAX77650_getIP_SBB0(void){ //Returns the SIMO Buck-Boost Channel 1 Peak Current Limit - return ((MAX77650_read_register(MAX77650_CNFG_SBB0_A_ADDR) >> 6) & 0b00000011); +uint8_t MAX77650_getIP_SBB0(void){ //Returns the SIMO Buck-Boost Channel 1 Peak Current Limit + return ((MAX77650_read_register(MAX77650_CNFG_SBB0_A_ADDR) >> 6) & 0b00000011); } -byte MAX77650_getTV_SBB0(void){ //Returns the SIMO Buck-Boost Channel 0 Target Output Voltage - return (MAX77650_read_register(MAX77650_CNFG_SBB0_A_ADDR) & 0b00111111); +uint8_t MAX77650_getTV_SBB0(void){ //Returns the SIMO Buck-Boost Channel 0 Target Output Voltage + return (MAX77650_read_register(MAX77650_CNFG_SBB0_A_ADDR) & 0b00111111); } //SIMO Buck-Boost 0 Configuration Register B 0x2A -boolean MAX77650_getADE_SBB0(void){ //Returns SIMO Buck-Boost Channel 0 Active-Discharge Enable - return ((MAX77650_read_register(MAX77650_CNFG_SBB0_B_ADDR) >> 3) & 0b00000001); +bool MAX77650_getADE_SBB0(void){ //Returns SIMO Buck-Boost Channel 0 Active-Discharge Enable + return ((MAX77650_read_register(MAX77650_CNFG_SBB0_B_ADDR) >> 3) & 0b00000001); } -byte MAX77650_getEN_SBB0(void){ //Returns the Enable Control for SIMO Buck-Boost Channel 0. - return (MAX77650_read_register(MAX77650_CNFG_SBB0_B_ADDR) & 0b00000111); +uint8_t MAX77650_getEN_SBB0(void){ //Returns the Enable Control for SIMO Buck-Boost Channel 0. + return (MAX77650_read_register(MAX77650_CNFG_SBB0_B_ADDR) & 0b00000111); } //SIMO Buck-Boost 1 Configuration Register A 0x2B -byte MAX77650_getIP_SBB1(void){ //Returns the SIMO Buck-Boost Channel 1 Peak Current Limit - return ((MAX77650_read_register(MAX77650_CNFG_SBB1_A_ADDR) >> 6) & 0b00000011); +uint8_t MAX77650_getIP_SBB1(void){ //Returns the SIMO Buck-Boost Channel 1 Peak Current Limit + return ((MAX77650_read_register(MAX77650_CNFG_SBB1_A_ADDR) >> 6) & 0b00000011); } -byte MAX77650_getTV_SBB1(void){ //Returns the SIMO Buck-Boost Channel 1 Target Output Voltage - return (MAX77650_read_register(MAX77650_CNFG_SBB1_A_ADDR) & 0b00111111); +uint8_t MAX77650_getTV_SBB1(void){ //Returns the SIMO Buck-Boost Channel 1 Target Output Voltage + return (MAX77650_read_register(MAX77650_CNFG_SBB1_A_ADDR) & 0b00111111); } //SIMO Buck-Boost 1 Configuration Register B 0x2C -boolean MAX77650_getADE_SBB1(void){ //Returns SIMO Buck-Boost Channel 1 Active-Discharge Enable - return ((MAX77650_read_register(MAX77650_CNFG_SBB1_B_ADDR) >> 3) & 0b00000001); +bool MAX77650_getADE_SBB1(void){ //Returns SIMO Buck-Boost Channel 1 Active-Discharge Enable + return ((MAX77650_read_register(MAX77650_CNFG_SBB1_B_ADDR) >> 3) & 0b00000001); } -byte MAX77650_getEN_SBB1(void){ //Returns the Enable Control for SIMO Buck-Boost Channel 1. - return (MAX77650_read_register(MAX77650_CNFG_SBB1_B_ADDR) & 0b00000111); +uint8_t MAX77650_getEN_SBB1(void){ //Returns the Enable Control for SIMO Buck-Boost Channel 1. + return (MAX77650_read_register(MAX77650_CNFG_SBB1_B_ADDR) & 0b00000111); } //SIMO Buck-Boost 2 Configuration Register A 0x2D -byte MAX77650_getIP_SBB2(void){ //Returns the SIMO Buck-Boost Channel 2 Peak Current Limit - return ((MAX77650_read_register(MAX77650_CNFG_SBB2_A_ADDR) >> 6) & 0b00000011); +uint8_t MAX77650_getIP_SBB2(void){ //Returns the SIMO Buck-Boost Channel 2 Peak Current Limit + return ((MAX77650_read_register(MAX77650_CNFG_SBB2_A_ADDR) >> 6) & 0b00000011); } -byte MAX77650_getTV_SBB2(void){ //Returns the SIMO Buck-Boost Channel 2 Target Output Voltage - return (MAX77650_read_register(MAX77650_CNFG_SBB2_A_ADDR) & 0b00111111); +uint8_t MAX77650_getTV_SBB2(void){ //Returns the SIMO Buck-Boost Channel 2 Target Output Voltage + return (MAX77650_read_register(MAX77650_CNFG_SBB2_A_ADDR) & 0b00111111); } //SIMO Buck-Boost 2 Configuration Register B 0x2E -boolean MAX77650_getADE_SBB2(void){ //Returns SIMO Buck-Boost Channel 2 Active-Discharge Enable - return ((MAX77650_read_register(MAX77650_CNFG_SBB2_B_ADDR) >> 3) & 0b00000001); +bool MAX77650_getADE_SBB2(void){ //Returns SIMO Buck-Boost Channel 2 Active-Discharge Enable + return ((MAX77650_read_register(MAX77650_CNFG_SBB2_B_ADDR) >> 3) & 0b00000001); } -byte MAX77650_getEN_SBB2(void){ //Returns the Enable Control for SIMO Buck-Boost Channel 2. - return (MAX77650_read_register(MAX77650_CNFG_SBB2_B_ADDR) & 0b00000111); +uint8_t MAX77650_getEN_SBB2(void){ //Returns the Enable Control for SIMO Buck-Boost Channel 2. + return (MAX77650_read_register(MAX77650_CNFG_SBB2_B_ADDR) & 0b00000111); } -boolean MAX77650_getCLK_64_S(void){ //Returns 64Hz Clock Status - return ((MAX77650_read_register(MAX77650_CNFG_LED_TOP_ADDR) >> 1) & 0b00000001); +bool MAX77650_getCLK_64_S(void){ //Returns 64Hz Clock Status + return ((MAX77650_read_register(MAX77650_CNFG_LED_TOP_ADDR) >> 1) & 0b00000001); } -boolean MAX77650_getEN_LED_MSTR(void){ //Returns Master LED Enable Bit - return (MAX77650_read_register(MAX77650_CNFG_LED_TOP_ADDR) & 0b00000001); +bool MAX77650_getEN_LED_MSTR(void){ //Returns Master LED Enable Bit + return (MAX77650_read_register(MAX77650_CNFG_LED_TOP_ADDR) & 0b00000001); } //CID Register -byte MAX77650_getCID(void){ // Returns the OTP programmed Chip Identification Code - return (MAX77650_read_register(MAX77650_CID_ADDR) & 0b00001111); +uint8_t MAX77650_getCID(void){ // Returns the OTP programmed Chip Identification Code + return (MAX77650_read_register(MAX77650_CID_ADDR) & 0b00001111); } //***** Register writes ***** -boolean MAX77650_setTV_LDO(byte target_val){ //Sets the LDO Target Output Voltage +bool MAX77650_setTV_LDO(uint8_t target_val){ //Sets the LDO Target Output Voltage MAX77650_write_register(MAX77650_CNFG_LDO_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LDO_A_ADDR) & 0b10000000) | ((target_val & 0b01111111) << 0))); if(MAX77650_getTV_LDO()==target_val) return true; else - return false; + return false; } //LDO Configuration Register B 0x39 -boolean MAX77650_setADE_LDO(byte target_val){ //Sets LDO active-Discharge Enable +bool MAX77650_setADE_LDO(uint8_t target_val){ //Sets LDO active-Discharge Enable MAX77650_write_register(MAX77650_CNFG_LDO_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_LDO_B_ADDR) & 0b11110111) | ((target_val & 0b00000001) << 3))); if(MAX77650_getADE_LDO()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setEN_LDO(byte target_val){ //Enable LDO +bool MAX77650_setEN_LDO(uint8_t target_val){ //Enable LDO MAX77650_write_register(MAX77650_CNFG_LDO_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_LDO_B_ADDR) & 0b11111000) | ((target_val & 0b00000111) << 0))); if(MAX77650_getEN_LDO()==target_val) return true; else - return false; + return false; } //Charger Configuration Register A 0x18 -boolean MAX77650_setTHM_HOT(byte target_val){ //Returns the VHOT JEITA Temperature Threshold +bool MAX77650_setTHM_HOT(uint8_t target_val){ //Returns the VHOT JEITA Temperature Threshold MAX77650_write_register(MAX77650_CNFG_CHG_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) & 0b00111111) | ((target_val & 0b00000011) << 6))); if(MAX77650_getTHM_HOT()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setTHM_WARM(byte target_val){ //Returns the VWARM JEITA Temperature Threshold +bool MAX77650_setTHM_WARM(uint8_t target_val){ //Returns the VWARM JEITA Temperature Threshold MAX77650_write_register(MAX77650_CNFG_CHG_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) & 0b11001111) | ((target_val & 0b00000011) << 4))); if(MAX77650_getTHM_WARM()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setTHM_COOL(byte target_val){ //Returns the VCOOL JEITA Temperature Threshold +bool MAX77650_setTHM_COOL(uint8_t target_val){ //Returns the VCOOL JEITA Temperature Threshold MAX77650_write_register(MAX77650_CNFG_CHG_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) & 0b11110011) | ((target_val & 0b00000011) << 2))); if(MAX77650_getTHM_COOL()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setTHM_COLD(byte target_val){ //Returns the VCOLD JEITA Temperature Threshold +bool MAX77650_setTHM_COLD(uint8_t target_val){ //Returns the VCOLD JEITA Temperature Threshold MAX77650_write_register(MAX77650_CNFG_CHG_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_A_ADDR) & 0b11111100) | ((target_val & 0b00000011) << 0))); if(MAX77650_getTHM_COLD()==target_val) return true; else - return false; + return false; } //Charger Configuration Register B 0x19 -boolean MAX77650_setVCHGIN_MIN(byte target_val){ //Returns the Minimum CHGIN regulation voltage (VCHGIN-MIN) +bool MAX77650_setVCHGIN_MIN(uint8_t target_val){ //Returns the Minimum CHGIN regulation voltage (VCHGIN-MIN) MAX77650_write_register(MAX77650_CNFG_CHG_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) & 0b00011111) | ((target_val & 0b00000111) << 5))); if(MAX77650_getVCHGIN_MIN()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setICHGIN_LIM(byte target_val){ //Returns the CHGIN Input Current Limit (ICHGIN-LIM) +bool MAX77650_setICHGIN_LIM(uint8_t target_val){ //Returns the CHGIN Input Current Limit (ICHGIN-LIM) MAX77650_write_register(MAX77650_CNFG_CHG_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) & 0b11100011) | ((target_val & 0b00000111) << 2))); if(MAX77650_getICHGIN_LIM()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setI_PQ(boolean target_val){ //Returns the prequalification charge current (IPQ) as a percentage of IFAST-CHG +bool MAX77650_setI_PQ(bool target_val){ //Returns the prequalification charge current (IPQ) as a percentage of IFAST-CHG MAX77650_write_register(MAX77650_CNFG_CHG_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) & 0b11111101) | ((target_val & 0b00000001) << 1))); if(MAX77650_getI_PQ()==target_val) return true; else return false; } -boolean MAX77650_setCHG_EN(boolean target_val){ //Returns Charger Enable +bool MAX77650_setCHG_EN(bool target_val){ //Returns Charger Enable MAX77650_write_register(MAX77650_CNFG_CHG_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_B_ADDR) & 0b11111110) | ((target_val & 0b00000001) << 0))); if(MAX77650_getCHG_EN()==target_val) return true; @@ -609,446 +542,446 @@ boolean MAX77650_setCHG_EN(boolean target_val){ //Returns Charger Enable } //Charger Configuration Register C 0x1A -boolean MAX77650_setCHG_PQ(byte target_val){ //Returns the Battery prequalification voltage threshold (VPQ) +bool MAX77650_setCHG_PQ(uint8_t target_val){ //Returns the Battery prequalification voltage threshold (VPQ) MAX77650_write_register(MAX77650_CNFG_CHG_C_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) & 0b00011111) | ((target_val & 0b00000111) << 5))); if(MAX77650_getCHG_PQ()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setI_TERM(byte target_val){ //Returns the Charger Termination Current (ITERM). I_TERM[1:0] sets the charger termination current as a percentage of the fast charge current IFAST-CHG. +bool MAX77650_setI_TERM(uint8_t target_val){ //Returns the Charger Termination Current (ITERM). I_TERM[1:0] sets the charger termination current as a percentage of the fast charge current IFAST-CHG. MAX77650_write_register(MAX77650_CNFG_CHG_C_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) & 0b11100111) | ((target_val & 0b00000011) << 3))); if(MAX77650_getI_TERM()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setT_TOPOFF(byte target_val){ //Returns the Topoff timer value (tTO) +bool MAX77650_setT_TOPOFF(uint8_t target_val){ //Returns the Topoff timer value (tTO) MAX77650_write_register(MAX77650_CNFG_CHG_C_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_C_ADDR) & 0b11111000) | ((target_val & 0b00000111) << 0))); if(MAX77650_getT_TOPOFF()==target_val) return true; else - return false; + return false; } //Charger Configuration Register D 0x1B -boolean MAX77650_setTJ_REG(byte target_val){ //Returns the die junction temperature regulation point, TJ-REG +bool MAX77650_setTJ_REG(uint8_t target_val){ //Returns the die junction temperature regulation point, TJ-REG MAX77650_write_register(MAX77650_CNFG_CHG_D_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_D_ADDR) & 0b00011111) | ((target_val & 0b00000111) << 5))); if(MAX77650_getTJ_REG()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setVSYS_REG(byte target_val){ //Returns the System voltage regulation (VSYS-REG) +bool MAX77650_setVSYS_REG(uint8_t target_val){ //Returns the System voltage regulation (VSYS-REG) MAX77650_write_register(MAX77650_CNFG_CHG_D_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_D_ADDR) & 0b11100000) | ((target_val & 0b00011111) << 0))); if(MAX77650_getVSYS_REG()==target_val) return true; else - return false; + return false; } //Charger Configuration Register E 0x1C -boolean MAX77650_setCHG_CC(byte target_val){ //Returns the fast-charge constant current value, IFAST-CHG. +bool MAX77650_setCHG_CC(uint8_t target_val){ //Returns the fast-charge constant current value, IFAST-CHG. MAX77650_write_register(MAX77650_CNFG_CHG_E_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_E_ADDR) & 0b00000011) | ((target_val & 0b00111111) << 2))); if(MAX77650_getCHG_CC()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setT_FAST_CHG(byte target_val){ //Returns the fast-charge safety timer, tFC. +bool MAX77650_setT_FAST_CHG(uint8_t target_val){ //Returns the fast-charge safety timer, tFC. MAX77650_write_register(MAX77650_CNFG_CHG_E_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_E_ADDR) & 0b11111100) | ((target_val & 0b00000011) << 0))); if(MAX77650_getT_FAST_CHG()==target_val) return true; else - return false; + return false; } //Charger Configuration Register F 0x1D -boolean MAX77650_setCHG_CC_JEITA(byte target_val){ //Returns the IFAST-CHG_JEITA for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. +bool MAX77650_setCHG_CC_JEITA(uint8_t target_val){ //Returns the IFAST-CHG_JEITA for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. MAX77650_write_register(MAX77650_CNFG_CHG_F_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_F_ADDR) & 0b00000011) | ((target_val & 0b00111111) << 2))); if(MAX77650_getCHG_CC_JEITA()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setTHM_EN(boolean target_val){ //Returns the Thermistor enable bit +bool MAX77650_setTHM_EN(bool target_val){ //Returns the Thermistor enable bit MAX77650_write_register(MAX77650_CNFG_CHG_F_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_F_ADDR) & 0b11111101) | ((target_val & 0b00000001) << 1))); if(MAX77650_getTHM_EN()==target_val) return true; else - return false; + return false; } //Charger Configuration Register G 0x1E -boolean MAX77650_setCHG_CV(byte target_val){ //Returns the fast-charge battery regulation voltage, VFAST-CHG. +bool MAX77650_setCHG_CV(uint8_t target_val){ //Returns the fast-charge battery regulation voltage, VFAST-CHG. MAX77650_write_register(MAX77650_CNFG_CHG_G_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_G_ADDR) & 0b00000011) | ((target_val & 0b00111111) << 2))); if(MAX77650_getCHG_CV()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setUSBS(boolean target_val){ //this bit places CHGIN in USB suspend mode +bool MAX77650_setUSBS(bool target_val){ //this bit places CHGIN in USB suspend mode MAX77650_write_register(MAX77650_CNFG_CHG_G_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_G_ADDR) & 0b11111101) | ((target_val & 0b00000001) << 1))); if(MAX77650_getUSBS()==target_val) return true; else - return false; + return false; } //Charger Configuration Register H 0x1F -boolean MAX77650_setCHG_CV_JEITA(byte target_val){ //Returns the modified VFAST-CHG for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. +bool MAX77650_setCHG_CV_JEITA(uint8_t target_val){ //Returns the modified VFAST-CHG for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. MAX77650_write_register(MAX77650_CNFG_CHG_H_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_H_ADDR) & 0b00000011) | ((target_val & 0b00111111) << 2))); if(MAX77650_getCHG_CV_JEITA()==target_val) return true; else - return false; + return false; } //Charger Configuration Register I 0x20 -boolean MAX77650_setIMON_DISCHG_SCALE(byte target_val){ //Returns the Selects the battery discharge current full-scale current value This 4-bit configuration starts at 7.5mA and ends at 300mA. +bool MAX77650_setIMON_DISCHG_SCALE(uint8_t target_val){ //Returns the Selects the battery discharge current full-scale current value This 4-bit configuration starts at 7.5mA and ends at 300mA. MAX77650_write_register(MAX77650_CNFG_CHG_I_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_I_ADDR) & 0b00001111) | ((target_val & 0b00001111) << 4))); if(MAX77650_getIMON_DISCHG_SCALE()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setMUX_SEL(byte target_val){ //Returns the analog channel to connect to AMUX configuration +bool MAX77650_setMUX_SEL(uint8_t target_val){ //Returns the analog channel to connect to AMUX configuration MAX77650_write_register(MAX77650_CNFG_CHG_I_ADDR,((MAX77650_read_register(MAX77650_CNFG_CHG_I_ADDR) & 0b11110000) | ((target_val & 0b00001111) << 0))); if(MAX77650_getMUX_SEL()==target_val) return true; else - return false; + return false; } //SIMO Buck-Boost Global Configuration Register 0x28 -boolean MAX77650_setMRT_OTP(boolean target_val){ //Returns Manual Reset Time Configuration +bool MAX77650_setMRT_OTP(bool target_val){ //Returns Manual Reset Time Configuration MAX77650_write_register(MAX77650_CNFG_SBB_TOP_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) & 0b10111111) | ((target_val & 0b00000001) << 6))); if(MAX77650_getMRT_OTP()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setSBIA_LPM_DEF(boolean target_val){ //Returns Default voltage of the SBIA_LPM bit +bool MAX77650_setSBIA_LPM_DEF(bool target_val){ //Returns Default voltage of the SBIA_LPM bit MAX77650_write_register(MAX77650_CNFG_SBB_TOP_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) & 0b11011111) | ((target_val & 0b00000001) << 5))); if(MAX77650_getSBIA_LPM_DEF()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setDBNC_nEN_DEF(boolean target_val){ //Returns Default Value of the DBNC_nEN bit +bool MAX77650_setDBNC_nEN_DEF(bool target_val){ //Returns Default Value of the DBNC_nEN bit MAX77650_write_register(MAX77650_CNFG_SBB_TOP_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) & 0b11101111) | ((target_val & 0b00000001) << 4))); if(MAX77650_getDBNC_nEN_DEF()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setDRV_SBB(byte target_val){ //Returns the SIMO Buck-Boost (all channels) Drive Strength Trim. +bool MAX77650_setDRV_SBB(uint8_t target_val){ //Returns the SIMO Buck-Boost (all channels) Drive Strength Trim. MAX77650_write_register(MAX77650_CNFG_SBB_TOP_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB_TOP_ADDR) & 0b11111100) | ((target_val & 0b00000011) << 0))); if(MAX77650_getDRV_SBB()==target_val) return true; else - return false; + return false; } //SIMO Buck-Boost 0 Configuration Register A 0x29 -boolean MAX77650_setIP_SBB0(byte target_val){ //Returns the SIMO Buck-Boost Channel 0 Peak Current Limit +bool MAX77650_setIP_SBB0(uint8_t target_val){ //Returns the SIMO Buck-Boost Channel 0 Peak Current Limit MAX77650_write_register(MAX77650_CNFG_SBB0_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB0_A_ADDR) & 0b00111111) | ((target_val & 0b00000011) << 6))); if(MAX77650_getIP_SBB0()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setTV_SBB0(byte target_val){ //Returns the SIMO Buck-Boost Channel 0 Target Output Voltage +bool MAX77650_setTV_SBB0(uint8_t target_val){ //Returns the SIMO Buck-Boost Channel 0 Target Output Voltage MAX77650_write_register(MAX77650_CNFG_SBB0_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB0_A_ADDR) & 0b11000000) | ((target_val & 0b00111111) << 0))); if(MAX77650_getTV_SBB0()==target_val) return true; else - return false; + return false; } //SIMO Buck-Boost 0 Configuration Register B 0x2A -boolean MAX77650_setADE_SBB0(boolean target_val){ //Returns SIMO Buck-Boost Channel 0 Active-Discharge Enable +bool MAX77650_setADE_SBB0(bool target_val){ //Returns SIMO Buck-Boost Channel 0 Active-Discharge Enable MAX77650_write_register(MAX77650_CNFG_SBB0_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB0_B_ADDR) & 0b11110111) | ((target_val & 0b00000001) << 3))); if(MAX77650_getADE_SBB0()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setEN_SBB0(byte target_val){ //Returns the Enable Control for SIMO Buck-Boost Channel 0. +bool MAX77650_setEN_SBB0(uint8_t target_val){ //Returns the Enable Control for SIMO Buck-Boost Channel 0. MAX77650_write_register(MAX77650_CNFG_SBB0_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB0_B_ADDR) & 0b11111000) | ((target_val & 0b00000111) << 0))); if(MAX77650_getEN_SBB0()==target_val) return true; else - return false; + return false; } //SIMO Buck-Boost 1 Configuration Register A 0x2B -boolean MAX77650_setIP_SBB1(byte target_val){ //Returns the SIMO Buck-Boost Channel 1 Peak Current Limit +bool MAX77650_setIP_SBB1(uint8_t target_val){ //Returns the SIMO Buck-Boost Channel 1 Peak Current Limit MAX77650_write_register(MAX77650_CNFG_SBB1_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB1_A_ADDR) & 0b00111111) | ((target_val & 0b00000011) << 6))); if(MAX77650_getIP_SBB1()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setTV_SBB1(byte target_val){ //Returns the SIMO Buck-Boost Channel 1 Target Output Voltage +bool MAX77650_setTV_SBB1(uint8_t target_val){ //Returns the SIMO Buck-Boost Channel 1 Target Output Voltage MAX77650_write_register(MAX77650_CNFG_SBB1_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB1_A_ADDR) & 0b11000000) | ((target_val & 0b00111111) << 0))); if(MAX77650_getTV_SBB1()==target_val) return true; else - return false; + return false; } //SIMO Buck-Boost 1 Configuration Register B 0x2C -boolean MAX77650_setADE_SBB1(boolean target_val){ //Returns SIMO Buck-Boost Channel 1 Active-Discharge Enable +bool MAX77650_setADE_SBB1(bool target_val){ //Returns SIMO Buck-Boost Channel 1 Active-Discharge Enable MAX77650_write_register(MAX77650_CNFG_SBB1_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB1_B_ADDR) & 0b11110111) | ((target_val & 0b00000001) << 3))); if(MAX77650_getADE_SBB1()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setEN_SBB1(byte target_val){ //Returns the Enable Control for SIMO Buck-Boost Channel 1. +bool MAX77650_setEN_SBB1(uint8_t target_val){ //Returns the Enable Control for SIMO Buck-Boost Channel 1. MAX77650_write_register(MAX77650_CNFG_SBB1_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB1_B_ADDR) & 0b11111000) | ((target_val & 0b00000111) << 0))); if(MAX77650_getEN_SBB1()==target_val) return true; else - return false; + return false; } //SIMO Buck-Boost 2 Configuration Register A 0x2D -boolean MAX77650_setIP_SBB2(byte target_val){ //Returns the SIMO Buck-Boost Channel 2 Peak Current Limit +bool MAX77650_setIP_SBB2(uint8_t target_val){ //Returns the SIMO Buck-Boost Channel 2 Peak Current Limit MAX77650_write_register(MAX77650_CNFG_SBB2_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB2_A_ADDR) & 0b00111111) | ((target_val & 0b00000011) << 6))); if(MAX77650_getIP_SBB2()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setTV_SBB2(byte target_val){ //Returns the SIMO Buck-Boost Channel 2 Target Output Voltage +bool MAX77650_setTV_SBB2(uint8_t target_val){ //Returns the SIMO Buck-Boost Channel 2 Target Output Voltage MAX77650_write_register(MAX77650_CNFG_SBB2_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB2_A_ADDR) & 0b11000000) | ((target_val & 0b00111111) << 0))); if(MAX77650_getTV_SBB2()==target_val) return true; else - return false; + return false; } //SIMO Buck-Boost 2 Configuration Register B 0x2E -boolean MAX77650_setADE_SBB2(boolean target_val){ //Returns SIMO Buck-Boost Channel 2 Active-Discharge Enable +bool MAX77650_setADE_SBB2(bool target_val){ //Returns SIMO Buck-Boost Channel 2 Active-Discharge Enable MAX77650_write_register(MAX77650_CNFG_SBB2_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB2_B_ADDR) & 0b11110111) | ((target_val & 0b00000001) << 3))); if(MAX77650_getADE_SBB2()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setEN_SBB2(byte target_val){ //Returns the Enable Control for SIMO Buck-Boost Channel 2. +bool MAX77650_setEN_SBB2(uint8_t target_val){ //Returns the Enable Control for SIMO Buck-Boost Channel 2. MAX77650_write_register(MAX77650_CNFG_SBB2_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_SBB2_B_ADDR) & 0b11111000) | ((target_val & 0b00000111) << 0))); if(MAX77650_getEN_SBB2()==target_val) return true; else - return false; + return false; } //LED related registers -boolean MAX77650_setEN_LED_MSTR(boolean target_val){ //Returns Master LED Enable Bit +bool MAX77650_setEN_LED_MSTR(bool target_val){ //Returns Master LED Enable Bit MAX77650_write_register(MAX77650_CNFG_LED_TOP_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED_TOP_ADDR) & 0b11111110) | ((target_val & 0b00000001) << 0))); if(MAX77650_getEN_LED_MSTR()==target_val) return true; else - return false; + return false; } //Register LED0 -boolean MAX77650_setLED_FS0(byte target_val){ //Returns LED0 Full Scale Range +bool MAX77650_setLED_FS0(uint8_t target_val){ //Returns LED0 Full Scale Range MAX77650_write_register(MAX77650_CNFG_LED0_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) & 0b00111111) | ((target_val & 0b00000011) << 6))); if(MAX77650_getLED_FS0()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setINV_LED0(boolean target_val){ //Returns LED0 Invert +bool MAX77650_setINV_LED0(bool target_val){ //Returns LED0 Invert MAX77650_write_register(MAX77650_CNFG_LED0_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) & 0b11011111) | ((target_val & 0b00000001) << 5))); if(MAX77650_getINV_LED0()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setBRT_LED0(byte target_val){ //Returns LED0 Brightness Control +bool MAX77650_setBRT_LED0(uint8_t target_val){ //Returns LED0 Brightness Control MAX77650_write_register(MAX77650_CNFG_LED0_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED0_A_ADDR) & 0b11100000) | ((target_val & 0b00011111) << 0))); if(MAX77650_getBRT_LED0()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setP_LED0(byte target_val){ //Returns LED0 Period Settings +bool MAX77650_setP_LED0(uint8_t target_val){ //Returns LED0 Period Settings MAX77650_write_register(MAX77650_CNFG_LED0_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED0_B_ADDR) & 0b00001111) | ((target_val & 0b00001111) << 4))); if(MAX77650_getP_LED0()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setD_LED0(byte target_val){ //Returns LED0 On Duty-Cycle Settings +bool MAX77650_setD_LED0(uint8_t target_val){ //Returns LED0 On Duty-Cycle Settings MAX77650_write_register(MAX77650_CNFG_LED0_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED0_B_ADDR) & 0b11110000) | ((target_val & 0b00001111) << 0))); if(MAX77650_getD_LED0()==target_val) return true; else - return false; + return false; } //Register LED1 -boolean MAX77650_setLED_FS1(byte target_val){ //Returns LED1 Full Scale Range +bool MAX77650_setLED_FS1(uint8_t target_val){ //Returns LED1 Full Scale Range MAX77650_write_register(MAX77650_CNFG_LED1_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) & 0b00111111) | ((target_val & 0b00000011) << 6))); if(MAX77650_getLED_FS1()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setINV_LED1(boolean target_val){ //Returns LED1 Invert +bool MAX77650_setINV_LED1(bool target_val){ //Returns LED1 Invert MAX77650_write_register(MAX77650_CNFG_LED1_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) & 0b11011111) | ((target_val & 0b00000001) << 5))); if(MAX77650_getINV_LED1()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setBRT_LED1(byte target_val){ //Returns LED1 Brightness Control +bool MAX77650_setBRT_LED1(uint8_t target_val){ //Returns LED1 Brightness Control MAX77650_write_register(MAX77650_CNFG_LED1_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED1_A_ADDR) & 0b11100000) | ((target_val & 0b00011111) << 0))); if(MAX77650_getBRT_LED1()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setP_LED1(byte target_val){ //Returns LED1 Period Settings +bool MAX77650_setP_LED1(uint8_t target_val){ //Returns LED1 Period Settings MAX77650_write_register(MAX77650_CNFG_LED1_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED1_B_ADDR) & 0b00001111) | ((target_val & 0b00001111) << 4))); if(MAX77650_getP_LED1()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setD_LED1(byte target_val){ //Returns LED1 On Duty-Cycle Settings +bool MAX77650_setD_LED1(uint8_t target_val){ //Returns LED1 On Duty-Cycle Settings MAX77650_write_register(MAX77650_CNFG_LED1_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED1_B_ADDR) & 0b11110000) | ((target_val & 0b00001111) << 0))); if(MAX77650_getD_LED1()==target_val) return true; else - return false; + return false; } //Register LED2 -boolean MAX77650_setLED_FS2(byte target_val){ //Returns LED2 Full Scale Range +bool MAX77650_setLED_FS2(uint8_t target_val){ //Returns LED2 Full Scale Range MAX77650_write_register(MAX77650_CNFG_LED2_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) & 0b00111111) | ((target_val & 0b00000011) << 6))); if(MAX77650_getLED_FS2()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setINV_LED2(boolean target_val){ //Returns LED2 Invert +bool MAX77650_setINV_LED2(bool target_val){ //Returns LED2 Invert MAX77650_write_register(MAX77650_CNFG_LED2_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) & 0b11011111) | ((target_val & 0b00000001) << 5))); if(MAX77650_getINV_LED2()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setBRT_LED2(byte target_val){ //Returns LED2 Brightness Control +bool MAX77650_setBRT_LED2(uint8_t target_val){ //Returns LED2 Brightness Control MAX77650_write_register(MAX77650_CNFG_LED2_A_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED2_A_ADDR) & 0b11100000) | ((target_val & 0b00011111) << 0))); if(MAX77650_getBRT_LED2()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setP_LED2(byte target_val){ //Returns LED2 Period Settings +bool MAX77650_setP_LED2(uint8_t target_val){ //Returns LED2 Period Settings MAX77650_write_register(MAX77650_CNFG_LED2_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED2_B_ADDR) & 0b00001111) | ((target_val & 0b00001111) << 4))); if(MAX77650_getP_LED2()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setD_LED2(byte target_val){ //Returns LED2 On Duty-Cycle Settings +bool MAX77650_setD_LED2(uint8_t target_val){ //Returns LED2 On Duty-Cycle Settings MAX77650_write_register(MAX77650_CNFG_LED2_B_ADDR,((MAX77650_read_register(MAX77650_CNFG_LED2_B_ADDR) & 0b11110000) | ((target_val & 0b00001111) << 0))); if(MAX77650_getD_LED2()==target_val) return true; else - return false; + return false; } //Global Configuration register 0x10 -boolean MAX77650_setBOK(boolean target_val){ //Returns Main Bias Okay Status Bit +bool MAX77650_setBOK(bool target_val){ //Returns Main Bias Okay Status Bit MAX77650_write_register(MAX77650_CNFG_GLBL_ADDR,((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) & 0b10111111) | ((target_val & 0b00000001) << 6))); if(MAX77650_getBOK()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setSBIA_LPM(boolean target_val){ //Returns Main Bias Low-Power Mode software request +bool MAX77650_setSBIA_LPM(bool target_val){ //Returns Main Bias Low-Power Mode software request MAX77650_write_register(MAX77650_CNFG_GLBL_ADDR,((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) & 0b11011111) | ((target_val & 0b00000001) << 5))); if(MAX77650_getSBIA_LPM()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setSBIA_EN(boolean target_val){ //Returns Main Bias Enable Software Request +bool MAX77650_setSBIA_EN(bool target_val){ //Returns Main Bias Enable Software Request MAX77650_write_register(MAX77650_CNFG_GLBL_ADDR,((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) & 0b11101111) | ((target_val & 0b00000001) << 4))); if(MAX77650_getSBIA_EN()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setnEN_MODE(boolean target_val){ //Returns nEN Input (ONKEY) Default Configuration Mode +bool MAX77650_setnEN_MODE(bool target_val){ //Returns nEN Input (ONKEY) Default Configuration Mode MAX77650_write_register(MAX77650_CNFG_GLBL_ADDR,((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) & 0b11110111) | ((target_val & 0b00000001) << 3))); if(MAX77650_getnEN_MODE()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setDBEN_nEN(boolean target_val){ //Returns Debounce Timer Enable for the nEN Pin +bool MAX77650_setDBEN_nEN(bool target_val){ //Returns Debounce Timer Enable for the nEN Pin MAX77650_write_register(MAX77650_CNFG_GLBL_ADDR,((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) & 0b11111011) | ((target_val & 0b00000001) << 2))); if(MAX77650_getDBEN_nEN()==target_val) return true; else - return false; + return false; } -boolean MAX77650_setSFT_RST(byte target_val){ //Returns Software Reset Functions. +bool MAX77650_setSFT_RST(uint8_t target_val){ //Returns Software Reset Functions. MAX77650_write_register(MAX77650_CNFG_GLBL_ADDR,((MAX77650_read_register(MAX77650_CNFG_GLBL_ADDR) & 0b11111100) | ((target_val & 0b00000011) << 0))); if(MAX77650_getSFT_RST()==target_val) return true; else - return false; + return false; } //Global Interrupt Mask Register 0x06 -boolean MAX77650_setINT_M_GLBL(byte target_val){ //Sets Global Interrupt Mask Register +bool MAX77650_setINT_M_GLBL(uint8_t target_val){ //Sets Global Interrupt Mask Register MAX77650_write_register(MAX77650_INTM_GLBL_ADDR,(target_val & 0b01111111)); if(MAX77650_getINT_M_GLBL()==(target_val & 0b01111111)) return true; else - return false; + return false; } //GPIO Configuration Register -boolean MAX77650_setDBEN_GPI(boolean target_val){ //Returns General Purpose Input Debounce Timer Enable +bool MAX77650_setDBEN_GPI(bool target_val){ //Returns General Purpose Input Debounce Timer Enable MAX77650_write_register(MAX77650_CNFG_GPIO_ADDR,((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) & 0b11101111) | ((target_val & 0b00000001) << 4))); if(MAX77650_getDBEN_GPI()==target_val) return true; else return false; } -boolean MAX77650_setDO(boolean target_val){ //Returns General Purpose Output Data Output +bool MAX77650_setDO(bool target_val){ //Returns General Purpose Output Data Output MAX77650_write_register(MAX77650_CNFG_GPIO_ADDR,((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) & 0b11110111) | ((target_val & 0b00000001) << 3))); if(MAX77650_getDO()==target_val) return true; else return false; } -boolean MAX77650_setDRV(boolean target_val){ //Returns General Purpose Output Driver Type +bool MAX77650_setDRV(bool target_val){ //Returns General Purpose Output Driver Type MAX77650_write_register(MAX77650_CNFG_GPIO_ADDR,((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) & 0b11111011) | ((target_val & 0b00000001) << 2))); if(MAX77650_getDRV()==target_val) return true; else return false; } -boolean MAX77650_setDI(boolean target_val){ //Returns GPIO Digital Input Value +bool MAX77650_setDI(bool target_val){ //Returns GPIO Digital Input Value MAX77650_write_register(MAX77650_CNFG_GPIO_ADDR,((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) & 0b11111101) | ((target_val & 0b00000001) << 1))); if(MAX77650_getDI()==target_val) return true; else return false; } -boolean MAX77650_setDIR(boolean target_val){ //Returns GPIO Direction +bool MAX77650_setDIR(bool target_val){ //Returns GPIO Direction MAX77650_write_register(MAX77650_CNFG_GPIO_ADDR,((MAX77650_read_register(MAX77650_CNFG_GPIO_ADDR) & 0b11111110) | ((target_val & 0b00000001) << 0))); if(MAX77650_getDIR()==target_val) return true; @@ -1057,12 +990,12 @@ boolean MAX77650_setDIR(boolean target_val){ //Returns GPIO Direction } //Charger Interrupt Mask Register 0x07 -boolean MAX77650_setINT_M_CHG(byte target_val){ //Sets Global Interrupt Mask Register +bool MAX77650_setINT_M_CHG(uint8_t target_val){ //Sets Global Interrupt Mask Register MAX77650_write_register(MAX77650_INT_M_CHG_ADDR,(target_val & 0b01111111)); if(MAX77650_getINT_M_CHG()==(target_val & 0b01111111)) return true; else - return false; + return false; } diff --git a/lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.h b/lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.h index be4999b1..2ceb38bd 100644 --- a/lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.h +++ b/lib/maxim/MAX77650-Arduino-Library/MAX77650-Arduino-Library.h @@ -28,10 +28,10 @@ * trademarks, maskwork rights, or any other form of intellectual * property whatsoever. Maxim Integrated Products, Inc. retains all * ownership rights. -* -* Authors: +* +* Authors: * Ole Dreessen; ole.dreessen@maximintegrated.com -* +* * Revisions: * 0.1.0 21.11.2017 initial code * 0.2.0 27.11.2017 added functions @@ -39,31 +39,28 @@ * 0.4.0 14.03.2018 bugfixes: Interrupt registers are RC (read-clear) and cannot be read bit-by-bit; this is valid for register 0x00, 0x01 and 0x04; corrected wrong register-address in function read CID; cleaned init-function (deleted baseline-init - see examples) * 1.0.0 14.03.2018 code-review and finished work * 1.0.1 22.03.2018 bugfix: fixed address of register in function MAX77650_getCID; added two more examples -* 1.0.2 23.09.2018 changed wire-calls to preprocessor directives; -* +* 1.0.2 23.09.2018 changed wire-calls to preprocessor directives; +* **********************************************************************/ #ifndef MAX77650_H #define MAX77650_H -#include "Arduino.h" -#include <Wire.h> - /********************************************************************** -*@brief 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 +*@brief 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). * -*The devices include other features such as current sinks for driving LED indicators and -*an analog multiplexer that switches several internal voltage and current signals to an -*external node for monitoring with an external ADC. A bidirectional I2C interface allows -*for configuring and checking the status of the devices. An internal on/off controller -*provides a controlled startup sequence for the regulators and provides supervisory -*functionality when the devices are on. Numerous factory programmable options allow the +*The devices include other features such as current sinks for driving LED indicators and +*an analog multiplexer that switches several internal voltage and current signals to an +*external node for monitoring with an external ADC. A bidirectional I2C interface allows +*for configuring and checking the status of the devices. An internal on/off controller +*provides a controlled startup sequence for the regulators and provides supervisory +*functionality when the devices are on. Numerous factory programmable options allow the *device to be tailored for many applications, enabling faster time to market. * *Ressources can be found at @@ -76,325 +73,323 @@ #define PMIC_partnumber 0x00 //placed PMIC part-numer on the board: MAX77650 or MAX77651 #define MAX77650_CID 0x78 //OTP option #define MAX77650_ADDR 0x48 //alternate ADDR is 0x40 + #ifndef MAX77650_debug #define MAX77650_debug false #endif -#ifndef MAX77650_I2C_port -#define MAX77650_I2C_port 2 //I2C port of the host µC -#endif //***** Begin MAX77650 Register Definitions ***** -#define MAX77650_CNFG_GLBL_ADDR 0x10 //Global Configuration Register; Reset Value OTP -#define MAX77650_INT_GLBL_ADDR 0x00 //Interrupt; Reset Value 0x00 -#define MAX77650_INTM_GLBL_ADDR 0x06 //Interrupt Mask; Reset Value 0xFF -#define MAX77650_STAT_GLBL_ADDR 0x05 //Global Status Register; Reset Value OTP -#define MAX77650_ERCFLAG_ADDR 0x04 //Flags; Reset Value 0x00 -#define MAX77650_CNFG_GPIO_ADDR 0x12 //GPIO Configuration Register; Reset Value 0x01 -#define MAX77650_CID_ADDR 0x11 //Chip ID Register; Reset Value OTP; Read only -#define MAX77650_INT_CHG_ADDR 0x01 //Charger Interrupt Register; Reset Value 0x00; RC -#define MAX77650_INT_M_CHG_ADDR 0x07 //Charger Interrupt Mask Register; Reset Value 0xFF; Read/Write -#define MAX77650_STAT_CHG_A_ADDR 0x02 //Charger Status Register A; Reset Value 0x00; Read only -#define MAX77650_STAT_CHG_B_ADDR 0x03 //Charger Status Register B; Reset Value 0x00; Read only -#define MAX77650_CNFG_CHG_A_ADDR 0x018 //Charger Configuration Register A; Reset Value 0x0F; Read/Write -#define MAX77650_CNFG_CHG_B_ADDR 0x019 //Charger Configuration Register B; Reset Value OTP; Read/Write -#define MAX77650_CNFG_CHG_C_ADDR 0x01A //Charger Configuration Register C; Reset Value 0xF8; Read/Write -#define MAX77650_CNFG_CHG_D_ADDR 0x01B //Charger Configuration Register D; Reset Value 0x10; Read/Write -#define MAX77650_CNFG_CHG_E_ADDR 0x01C //Charger Configuration Register E; Reset Value 0x05; Read/Write -#define MAX77650_CNFG_CHG_F_ADDR 0x01D //Charger Configuration Register F; Reset Value 0x04; Read/Write -#define MAX77650_CNFG_CHG_G_ADDR 0x01E //Charger Configuration Register G; Reset Value 0x00; Read/Write -#define MAX77650_CNFG_CHG_H_ADDR 0x01F //Charger Configuration Register H; Reset Value 0x00; Read/Write -#define MAX77650_CNFG_CHG_I_ADDR 0x020 //Charger Configuration Register I; Reset Value 0xF0; Read/Write -#define MAX77650_CNFG_LDO_A_ADDR 0x38 //LDO Configuration Register A; Reset Value OTP; Read/Write -#define MAX77650_CNFG_LDO_B_ADDR 0x39 //LDO Configuration Register B; Reset Value OTP; Read/Write -#define MAX77650_CNFG_SBB_TOP_ADDR 0x28 //SIMO Buck-Boost Configuration Register; Reset Value OTP; Read/Write -#define MAX77650_CNFG_SBB0_A_ADDR 0x29 //SIMO Buck-Boost 0 Configuration Register A; Reset Value OTP; Read/Write -#define MAX77650_CNFG_SBB0_B_ADDR 0x2A //SIMO Buck-Boost 0 Configuration Register B; Reset Value OTP; Read/Write -#define MAX77650_CNFG_SBB1_A_ADDR 0x2B //SIMO Buck-Boost 1 Configuration Register A; Reset Value OTP; Read/Write -#define MAX77650_CNFG_SBB1_B_ADDR 0x2C //SIMO Buck-Boost 1 Configuration Register B; Reset Value OTP; Read/Write -#define MAX77650_CNFG_SBB2_A_ADDR 0x2D //SIMO Buck-Boost 2 Configuration Register A; Reset Value OTP; Read/Write -#define MAX77650_CNFG_SBB2_B_ADDR 0x2E //SIMO Buck-Boost 2 Configuration Register B; Reset Value OTP; Read/Write -#define MAX77650_CNFG_LED0_A_ADDR 0x40 //LED 0 Configuration Register A; Reset Value 0x04; Read/Write -#define MAX77650_CNFG_LED0_B_ADDR 0x43 //LED 0 Configuration Register B; Reset Value 0x0F; Read/Write -#define MAX77650_CNFG_LED1_A_ADDR 0x41 //LED 1 Configuration Register A; Reset Value 0x04; Read/Write -#define MAX77650_CNFG_LED1_B_ADDR 0x44 //LED 1 Configuration Register B; Reset Value 0x0F; Read/Write -#define MAX77650_CNFG_LED2_A_ADDR 0x42 //LED 2 Configuration Register A; Reset Value 0x04; Read/Write -#define MAX77650_CNFG_LED2_B_ADDR 0x45 //LED 2 Configuration Register A; Reset Value 0x0F; Read/Write +#define MAX77650_CNFG_GLBL_ADDR 0x10 //Global Configuration Register; Reset Value OTP +#define MAX77650_INT_GLBL_ADDR 0x00 //Interrupt; Reset Value 0x00 +#define MAX77650_INTM_GLBL_ADDR 0x06 //Interrupt Mask; Reset Value 0xFF +#define MAX77650_STAT_GLBL_ADDR 0x05 //Global Status Register; Reset Value OTP +#define MAX77650_ERCFLAG_ADDR 0x04 //Flags; Reset Value 0x00 +#define MAX77650_CNFG_GPIO_ADDR 0x12 //GPIO Configuration Register; Reset Value 0x01 +#define MAX77650_CID_ADDR 0x11 //Chip ID Register; Reset Value OTP; Read only +#define MAX77650_INT_CHG_ADDR 0x01 //Charger Interrupt Register; Reset Value 0x00; RC +#define MAX77650_INT_M_CHG_ADDR 0x07 //Charger Interrupt Mask Register; Reset Value 0xFF; Read/Write +#define MAX77650_STAT_CHG_A_ADDR 0x02 //Charger Status Register A; Reset Value 0x00; Read only +#define MAX77650_STAT_CHG_B_ADDR 0x03 //Charger Status Register B; Reset Value 0x00; Read only +#define MAX77650_CNFG_CHG_A_ADDR 0x018 //Charger Configuration Register A; Reset Value 0x0F; Read/Write +#define MAX77650_CNFG_CHG_B_ADDR 0x019 //Charger Configuration Register B; Reset Value OTP; Read/Write +#define MAX77650_CNFG_CHG_C_ADDR 0x01A //Charger Configuration Register C; Reset Value 0xF8; Read/Write +#define MAX77650_CNFG_CHG_D_ADDR 0x01B //Charger Configuration Register D; Reset Value 0x10; Read/Write +#define MAX77650_CNFG_CHG_E_ADDR 0x01C //Charger Configuration Register E; Reset Value 0x05; Read/Write +#define MAX77650_CNFG_CHG_F_ADDR 0x01D //Charger Configuration Register F; Reset Value 0x04; Read/Write +#define MAX77650_CNFG_CHG_G_ADDR 0x01E //Charger Configuration Register G; Reset Value 0x00; Read/Write +#define MAX77650_CNFG_CHG_H_ADDR 0x01F //Charger Configuration Register H; Reset Value 0x00; Read/Write +#define MAX77650_CNFG_CHG_I_ADDR 0x020 //Charger Configuration Register I; Reset Value 0xF0; Read/Write +#define MAX77650_CNFG_LDO_A_ADDR 0x38 //LDO Configuration Register A; Reset Value OTP; Read/Write +#define MAX77650_CNFG_LDO_B_ADDR 0x39 //LDO Configuration Register B; Reset Value OTP; Read/Write +#define MAX77650_CNFG_SBB_TOP_ADDR 0x28 //SIMO Buck-Boost Configuration Register; Reset Value OTP; Read/Write +#define MAX77650_CNFG_SBB0_A_ADDR 0x29 //SIMO Buck-Boost 0 Configuration Register A; Reset Value OTP; Read/Write +#define MAX77650_CNFG_SBB0_B_ADDR 0x2A //SIMO Buck-Boost 0 Configuration Register B; Reset Value OTP; Read/Write +#define MAX77650_CNFG_SBB1_A_ADDR 0x2B //SIMO Buck-Boost 1 Configuration Register A; Reset Value OTP; Read/Write +#define MAX77650_CNFG_SBB1_B_ADDR 0x2C //SIMO Buck-Boost 1 Configuration Register B; Reset Value OTP; Read/Write +#define MAX77650_CNFG_SBB2_A_ADDR 0x2D //SIMO Buck-Boost 2 Configuration Register A; Reset Value OTP; Read/Write +#define MAX77650_CNFG_SBB2_B_ADDR 0x2E //SIMO Buck-Boost 2 Configuration Register B; Reset Value OTP; Read/Write +#define MAX77650_CNFG_LED0_A_ADDR 0x40 //LED 0 Configuration Register A; Reset Value 0x04; Read/Write +#define MAX77650_CNFG_LED0_B_ADDR 0x43 //LED 0 Configuration Register B; Reset Value 0x0F; Read/Write +#define MAX77650_CNFG_LED1_A_ADDR 0x41 //LED 1 Configuration Register A; Reset Value 0x04; Read/Write +#define MAX77650_CNFG_LED1_B_ADDR 0x44 //LED 1 Configuration Register B; Reset Value 0x0F; Read/Write +#define MAX77650_CNFG_LED2_A_ADDR 0x42 //LED 2 Configuration Register A; Reset Value 0x04; Read/Write +#define MAX77650_CNFG_LED2_B_ADDR 0x45 //LED 2 Configuration Register A; Reset Value 0x0F; Read/Write #define MAX77650_CNFG_LED_TOP_ADDR 0x46 //LED Configuration Register; Reset Value 0x0D; Read/Write //***** End MAX77650 Register Definitions ***** -boolean MAX77650_init(void); +bool MAX77650_init(void); int MAX77650_read_register(int); -byte MAX77650_write_register(int, int); +uint8_t MAX77650_write_register(int, int); //Status Register (STAT_GLBL) related reads -boolean MAX77650_getDIDM(void); //Returns Part Number; Return Value: 1=MAX77650; 2=MAX77651; -1=error reading DeviceID -boolean MAX77650_getLDO_DropoutDetector(void); //Returns whether the LDO is in Dropout or not; Return Value: 0=LDO is not in dropout; 1=LDO is in dropout -boolean MAX77650_getThermalAlarm1(void); //Returns Thermal Alarm (TJA1 limit); Return Value: 0=Tj<TJA1; 1=Tj>TJA1 -boolean MAX77650_getThermalAlarm2(void); //Returns Therma2 Alarm (TJA2 limit); Return Value: 0=Tj<TJA2; 1=Tj>TJA2 -boolean MAX77650_getDebounceStatusnEN0(void); //Returns Debounced Status of nEN input; Return Value: 0=nEN0 is not active; 1=nEN0 is active -boolean MAX77650_getDebounceStatusPWR_HLD(void); //Returns Debounced Status of PWR_HLD input; Return Value: 0=logic low; 1=logic high +bool MAX77650_getDIDM(void); //Returns Part Number; Return Value: 1=MAX77650; 2=MAX77651; -1=error reading DeviceID +bool MAX77650_getLDO_DropoutDetector(void); //Returns whether the LDO is in Dropout or not; Return Value: 0=LDO is not in dropout; 1=LDO is in dropout +bool MAX77650_getThermalAlarm1(void); //Returns Thermal Alarm (TJA1 limit); Return Value: 0=Tj<TJA1; 1=Tj>TJA1 +bool MAX77650_getThermalAlarm2(void); //Returns Therma2 Alarm (TJA2 limit); Return Value: 0=Tj<TJA2; 1=Tj>TJA2 +bool MAX77650_getDebounceStatusnEN0(void); //Returns Debounced Status of nEN input; Return Value: 0=nEN0 is not active; 1=nEN0 is active +bool MAX77650_getDebounceStatusPWR_HLD(void); //Returns Debounced Status of PWR_HLD input; Return Value: 0=logic low; 1=logic high //Flag Register (ERCFLAG) related reads -byte MAX77650_getERCFLAG(void); //Returns the ERCFLAG Register 0x04 +uint8_t MAX77650_getERCFLAG(void); //Returns the ERCFLAG Register 0x04 //Register reads related to ChipID -byte MAX77650_getChipID(void); // Return Value: 1=MAX77650; 2=MAX77651; -1=error reading ChipID +uint8_t MAX77650_getChipID(void); // Return Value: 1=MAX77650; 2=MAX77651; -1=error reading ChipID //CID Register -byte MAX77650_getCID(void); // Returns the OTP programmed Chip Identification Code +uint8_t MAX77650_getCID(void); // Returns the OTP programmed Chip Identification Code //Charger Status Register (STAT_CHG_A and B) related reads -boolean MAX77650_getVCHGIN_MIN_STAT(void); //Returns Minimum Input Voltage Regulation Loop Status; Return Value: 0=no event; 1=The minimum CHGIN voltage regulation loop has engaged to regulate VCHGIN >= VCHGIN-MIN -boolean MAX77650_getICHGIN_LIM_STAT(void); //Returns Input Current Limit Loop Status; Return Value: 0=no event; 1=The CHGIN current limit loop has engaged to regulate ICHGIN <= ICHGIN-LIM -boolean MAX77650_getVSYS_MIN_STAT(void); //Returns Minimum System Voltage Regulation Loop Status; Return Value: 0=no event; 1=The minimum system voltage regulation loop is engaged to regulate VSYS >= VSYS-MIN -boolean MAX77650_getTJ_REG_STAT(void); //Returns Maximum Junction Temperature Regulation Loop Status; Return Value: 0=no event; 1=The maximum junction temperature regulation loop has engaged to regulate the junction temperature less than TJ-REG -byte MAX77650_getTHM_DTLS(void); //Returns Battery Temperature Details; Return Value: Battery Temperature Details -byte MAX77650_getCHG_DTLS(void); //Returns Charger Details -byte MAX77650_getCHGIN_DTLS(void); //Returns Charger Input Status Details -boolean MAX77650_getCHG(void); //Returns Quick Charger Status -boolean MAX77650_getTIME_SUS(void); //Returns Time Suspend Indicator +bool MAX77650_getVCHGIN_MIN_STAT(void); //Returns Minimum Input Voltage Regulation Loop Status; Return Value: 0=no event; 1=The minimum CHGIN voltage regulation loop has engaged to regulate VCHGIN >= VCHGIN-MIN +bool MAX77650_getICHGIN_LIM_STAT(void); //Returns Input Current Limit Loop Status; Return Value: 0=no event; 1=The CHGIN current limit loop has engaged to regulate ICHGIN <= ICHGIN-LIM +bool MAX77650_getVSYS_MIN_STAT(void); //Returns Minimum System Voltage Regulation Loop Status; Return Value: 0=no event; 1=The minimum system voltage regulation loop is engaged to regulate VSYS >= VSYS-MIN +bool MAX77650_getTJ_REG_STAT(void); //Returns Maximum Junction Temperature Regulation Loop Status; Return Value: 0=no event; 1=The maximum junction temperature regulation loop has engaged to regulate the junction temperature less than TJ-REG +uint8_t MAX77650_getTHM_DTLS(void); //Returns Battery Temperature Details; Return Value: Battery Temperature Details +uint8_t MAX77650_getCHG_DTLS(void); //Returns Charger Details +uint8_t MAX77650_getCHGIN_DTLS(void); //Returns Charger Input Status Details +bool MAX77650_getCHG(void); //Returns Quick Charger Status +bool MAX77650_getTIME_SUS(void); //Returns Time Suspend Indicator //LED related registers -boolean MAX77650_getCLK_64_S(void); //Returns 64Hz Clock Status -boolean MAX77650_getEN_LED_MSTR(void); //Returns Master LED Enable Bit -byte MAX77650_getLED_FS0(void); //Returns LED0 Full Scale Range -boolean MAX77650_getINV_LED0(void); //Returns LED0 Invert -byte MAX77650_getBRT_LED0(void); //Returns LED0 Brightness Control -byte MAX77650_getP_LED0(void); //Returns LED0 Period Settings -byte MAX77650_getD_LED0(void); //Returns LED0 On Duty-Cycle Settings -byte MAX77650_getLED_FS1(void); //Returns LED1 Full Scale Range -boolean MAX77650_getINV_LED1(void); //Returns LED1 Invert -byte MAX77650_getBRT_LED1(void); //Returns LED1 Brightness Control -byte MAX77650_getP_LED1(void); //Returns LED1 Period Settings -byte MAX77650_getD_LED1(void); //Returns LED1 On Duty-Cycle Settings -byte MAX77650_getLED_FS2(void); //Returns LED2 Full Scale Range -boolean MAX77650_getINV_LED2(void); //Returns LED2 Invert -byte MAX77650_getBRT_LED2(void); //Returns LED2 Brightness Control -byte MAX77650_getP_LED2(void); //Returns LED2 Period Settings -byte MAX77650_getD_LED2(void); //Returns LED2 On Duty-Cycle Settings +bool MAX77650_getCLK_64_S(void); //Returns 64Hz Clock Status +bool MAX77650_getEN_LED_MSTR(void); //Returns Master LED Enable Bit +uint8_t MAX77650_getLED_FS0(void); //Returns LED0 Full Scale Range +bool MAX77650_getINV_LED0(void); //Returns LED0 Invert +uint8_t MAX77650_getBRT_LED0(void); //Returns LED0 Brightness Control +uint8_t MAX77650_getP_LED0(void); //Returns LED0 Period Settings +uint8_t MAX77650_getD_LED0(void); //Returns LED0 On Duty-Cycle Settings +uint8_t MAX77650_getLED_FS1(void); //Returns LED1 Full Scale Range +bool MAX77650_getINV_LED1(void); //Returns LED1 Invert +uint8_t MAX77650_getBRT_LED1(void); //Returns LED1 Brightness Control +uint8_t MAX77650_getP_LED1(void); //Returns LED1 Period Settings +uint8_t MAX77650_getD_LED1(void); //Returns LED1 On Duty-Cycle Settings +uint8_t MAX77650_getLED_FS2(void); //Returns LED2 Full Scale Range +bool MAX77650_getINV_LED2(void); //Returns LED2 Invert +uint8_t MAX77650_getBRT_LED2(void); //Returns LED2 Brightness Control +uint8_t MAX77650_getP_LED2(void); //Returns LED2 Period Settings +uint8_t MAX77650_getD_LED2(void); //Returns LED2 On Duty-Cycle Settings //Global Configuration register 0x10 -boolean MAX77650_getBOK(void); //Returns Main Bias Okay Status Bit -boolean MAX77650_getSBIA_LPM(void); //Returns Main Bias Low-Power Mode software request -boolean MAX77650_getSBIA_EN(void); //Returns Main Bias Enable Software Request -boolean MAX77650_getnEN_MODE(void); //Returns nEN Input (ONKEY) Default Configuration Mode -boolean MAX77650_getDBEN_nEN(void); //Returns Debounce Timer Enable for the nEN Pin -byte MAX77650_getSFT_RST(void); //Returns Software Reset Functions. +bool MAX77650_getBOK(void); //Returns Main Bias Okay Status Bit +bool MAX77650_getSBIA_LPM(void); //Returns Main Bias Low-Power Mode software request +bool MAX77650_getSBIA_EN(void); //Returns Main Bias Enable Software Request +bool MAX77650_getnEN_MODE(void); //Returns nEN Input (ONKEY) Default Configuration Mode +bool MAX77650_getDBEN_nEN(void); //Returns Debounce Timer Enable for the nEN Pin +uint8_t MAX77650_getSFT_RST(void); //Returns Software Reset Functions. //Global Interrupt Status Register 0x00 -byte MAX77650_getINT_GLBL(void); //Returns Interrupt Status Register 0x00 +uint8_t MAX77650_getINT_GLBL(void); //Returns Interrupt Status Register 0x00 //Global Interrupt Mask Register 0x06 -byte MAX77650_getINT_M_GLBL(void); //Returns Global Interrupt Mask Register +uint8_t MAX77650_getINT_M_GLBL(void); //Returns Global Interrupt Mask Register //GPIO Configuration Register -boolean MAX77650_getDBEN_GPI(void); //Returns General Purpose Input Debounce Timer Enable -boolean MAX77650_getDO(void); //Returns General Purpose Output Data Output -boolean MAX77650_getDRV(void); //Returns General Purpose Output Driver Type -boolean MAX77650_getDI(void); //Returns GPIO Digital Input Value -boolean MAX77650_getDIR(void); //Returns GPIO Direction +bool MAX77650_getDBEN_GPI(void); //Returns General Purpose Input Debounce Timer Enable +bool MAX77650_getDO(void); //Returns General Purpose Output Data Output +bool MAX77650_getDRV(void); //Returns General Purpose Output Driver Type +bool MAX77650_getDI(void); //Returns GPIO Digital Input Value +bool MAX77650_getDIR(void); //Returns GPIO Direction //Charger Interrupt Status Register 0x01 -byte MAX77650_getINT_CHG(void); //Returns Charger Interrupt Status Register 0x01 +uint8_t MAX77650_getINT_CHG(void); //Returns Charger Interrupt Status Register 0x01 //Charger Interrupt Mask Register 0x07 -byte MAX77650_getINT_M_CHG(void); //Returns Global Interrupt Mask Register +uint8_t MAX77650_getINT_M_CHG(void); //Returns Global Interrupt Mask Register //Charger Configuration Register A 0x18 -byte MAX77650_getTHM_HOT(void); //Returns the VHOT JEITA Temperature Threshold -byte MAX77650_getTHM_WARM(void); //Returns the VWARM JEITA Temperature Threshold -byte MAX77650_getTHM_COOL(void); //Returns the VCOOL JEITA Temperature Threshold -byte MAX77650_getTHM_COLD(void); //Returns the VCOLD JEITA Temperature Threshold +uint8_t MAX77650_getTHM_HOT(void); //Returns the VHOT JEITA Temperature Threshold +uint8_t MAX77650_getTHM_WARM(void); //Returns the VWARM JEITA Temperature Threshold +uint8_t MAX77650_getTHM_COOL(void); //Returns the VCOOL JEITA Temperature Threshold +uint8_t MAX77650_getTHM_COLD(void); //Returns the VCOLD JEITA Temperature Threshold //Charger Configuration Register B 0x19 -byte MAX77650_getVCHGIN_MIN(void); //Returns the Minimum CHGIN regulation voltage (VCHGIN-MIN) -byte MAX77650_getICHGIN_LIM(void); //Returns the CHGIN Input Current Limit (ICHGIN-LIM) -boolean MAX77650_getI_PQ(void); //Returns the prequalification charge current (IPQ) as a percentage of IFAST-CHG -boolean MAX77650_getCHG_EN(void); //Returns Charger Enable +uint8_t MAX77650_getVCHGIN_MIN(void); //Returns the Minimum CHGIN regulation voltage (VCHGIN-MIN) +uint8_t MAX77650_getICHGIN_LIM(void); //Returns the CHGIN Input Current Limit (ICHGIN-LIM) +bool MAX77650_getI_PQ(void); //Returns the prequalification charge current (IPQ) as a percentage of IFAST-CHG +bool MAX77650_getCHG_EN(void); //Returns Charger Enable //Charger Configuration Register C 0x1A -byte MAX77650_getCHG_PQ(void); //Returns the Battery prequalification voltage threshold (VPQ) -byte MAX77650_getI_TERM(void); //Returns the Charger Termination Current (ITERM). I_TERM[1:0] sets the charger termination current as a percentage of the fast charge current IFAST-CHG. -byte MAX77650_getT_TOPOFF(void); //Returns the Topoff timer value (tTO) +uint8_t MAX77650_getCHG_PQ(void); //Returns the Battery prequalification voltage threshold (VPQ) +uint8_t MAX77650_getI_TERM(void); //Returns the Charger Termination Current (ITERM). I_TERM[1:0] sets the charger termination current as a percentage of the fast charge current IFAST-CHG. +uint8_t MAX77650_getT_TOPOFF(void); //Returns the Topoff timer value (tTO) //Charger Configuration Register D 0x1B -byte MAX77650_getTJ_REG(void); //Returns the die junction temperature regulation point, TJ-REG -byte MAX77650_getVSYS_REG(void); //Returns the System voltage regulation (VSYS-REG) +uint8_t MAX77650_getTJ_REG(void); //Returns the die junction temperature regulation point, TJ-REG +uint8_t MAX77650_getVSYS_REG(void); //Returns the System voltage regulation (VSYS-REG) //Charger Configuration Register E 0x1C -byte MAX77650_getCHG_CC(void); //Returns the fast-charge constant current value, IFAST-CHG. -byte MAX77650_getT_FAST_CHG(void); //Returns the fast-charge safety timer, tFC. +uint8_t MAX77650_getCHG_CC(void); //Returns the fast-charge constant current value, IFAST-CHG. +uint8_t MAX77650_getT_FAST_CHG(void); //Returns the fast-charge safety timer, tFC. //Charger Configuration Register F 0x1D -byte MAX77650_getCHG_CC_JEITA(void); //Returns the IFAST-CHG_JEITA for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. -byte MAX77650_getTHM_EN(void); //Returns the Thermistor enable bit +uint8_t MAX77650_getCHG_CC_JEITA(void); //Returns the IFAST-CHG_JEITA for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. +uint8_t MAX77650_getTHM_EN(void); //Returns the Thermistor enable bit //Charger Configuration Register G 0x1E -byte MAX77650_getCHG_CV(void); //Returns the fast-charge battery regulation voltage, VFAST-CHG. -boolean MAX77650_getUSBS(void); //this bit places CHGIN in USB suspend mode +uint8_t MAX77650_getCHG_CV(void); //Returns the fast-charge battery regulation voltage, VFAST-CHG. +bool MAX77650_getUSBS(void); //this bit places CHGIN in USB suspend mode //Charger Configuration Register H 0x1F -byte MAX77650_getCHG_CV_JEITA(void); //Returns the modified VFAST-CHG for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. +uint8_t MAX77650_getCHG_CV_JEITA(void); //Returns the modified VFAST-CHG for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. //Charger Configuration Register I 0x20 -byte MAX77650_getIMON_DISCHG_SCALE(void); //Returns the Selects the battery discharge current full-scale current value This 4-bit configuration starts at 7.5mA and ends at 300mA. -byte MAX77650_getMUX_SEL(void); //Returns the analog channel to connect to AMUX configuration +uint8_t MAX77650_getIMON_DISCHG_SCALE(void); //Returns the Selects the battery discharge current full-scale current value This 4-bit configuration starts at 7.5mA and ends at 300mA. +uint8_t MAX77650_getMUX_SEL(void); //Returns the analog channel to connect to AMUX configuration //LDO Configuration Register A 0x38 -byte MAX77650_getTV_LDO(void); //Returns the LDO Target Output Voltage +uint8_t MAX77650_getTV_LDO(void); //Returns the LDO Target Output Voltage //LDO Configuration Register B 0x39 -boolean MAX77650_getADE_LDO(void); //Returns LDO active-Discharge Enable -byte MAX77650_getEN_LDO(void); //Enable Control for LDO. +bool MAX77650_getADE_LDO(void); //Returns LDO active-Discharge Enable +uint8_t MAX77650_getEN_LDO(void); //Enable Control for LDO. //SIMO Buck-Boost Global Configuration Register 0x28 -boolean MAX77650_getMRT_OTP(void); //Returns Manual Reset Time Configuration -boolean MAX77650_getSBIA_LPM_DEF(void); //Returns Default voltage of the SBIA_LPM bit -boolean MAX77650_getDBNC_nEN_DEF(void); //Returns Default Value of the DBNC_nEN bit -byte MAX77650_getDRV_SBB(void); //Returns the SIMO Buck-Boost (all channels) Drive Strength Trim. +bool MAX77650_getMRT_OTP(void); //Returns Manual Reset Time Configuration +bool MAX77650_getSBIA_LPM_DEF(void); //Returns Default voltage of the SBIA_LPM bit +bool MAX77650_getDBNC_nEN_DEF(void); //Returns Default Value of the DBNC_nEN bit +uint8_t MAX77650_getDRV_SBB(void); //Returns the SIMO Buck-Boost (all channels) Drive Strength Trim. //SIMO Buck-Boost 0 Configuration Register A 0x29 -byte MAX77650_getIP_SBB0(void); //Returns the SIMO Buck-Boost Channel 0 Peak Current Limit -byte MAX77650_getTV_SBB0(void); //Returns the SIMO Buck-Boost Channel 0 Target Output Voltage +uint8_t MAX77650_getIP_SBB0(void); //Returns the SIMO Buck-Boost Channel 0 Peak Current Limit +uint8_t MAX77650_getTV_SBB0(void); //Returns the SIMO Buck-Boost Channel 0 Target Output Voltage //SIMO Buck-Boost 0 Configuration Register B 0x2A -boolean MAX77650_getADE_SBB0(void); //Returns SIMO Buck-Boost Channel 0 Active-Discharge Enable -byte MAX77650_getEN_SBB0(void); //Returns the Enable Control for SIMO Buck-Boost Channel 0. +bool MAX77650_getADE_SBB0(void); //Returns SIMO Buck-Boost Channel 0 Active-Discharge Enable +uint8_t MAX77650_getEN_SBB0(void); //Returns the Enable Control for SIMO Buck-Boost Channel 0. //SIMO Buck-Boost 1 Configuration Register A 0x2B -byte MAX77650_getIP_SBB1(void); //Returns the SIMO Buck-Boost Channel 1 Peak Current Limit -byte MAX77650_getTV_SBB1(void); //Returns the SIMO Buck-Boost Channel 1 Target Output Voltage +uint8_t MAX77650_getIP_SBB1(void); //Returns the SIMO Buck-Boost Channel 1 Peak Current Limit +uint8_t MAX77650_getTV_SBB1(void); //Returns the SIMO Buck-Boost Channel 1 Target Output Voltage //SIMO Buck-Boost 1 Configuration Register B 0x2C -boolean MAX77650_getADE_SBB1(void); //Returns SIMO Buck-Boost Channel 1 Active-Discharge Enable -byte MAX77650_getEN_SBB1(void); //Returns the Enable Control for SIMO Buck-Boost Channel 1. +bool MAX77650_getADE_SBB1(void); //Returns SIMO Buck-Boost Channel 1 Active-Discharge Enable +uint8_t MAX77650_getEN_SBB1(void); //Returns the Enable Control for SIMO Buck-Boost Channel 1. //SIMO Buck-Boost 2 Configuration Register A 0x2D -byte MAX77650_getIP_SBB2(void); //Returns the SIMO Buck-Boost Channel 2 Peak Current Limit -byte MAX77650_getTV_SBB2(void); //Returns the SIMO Buck-Boost Channel 2 Target Output Voltage +uint8_t MAX77650_getIP_SBB2(void); //Returns the SIMO Buck-Boost Channel 2 Peak Current Limit +uint8_t MAX77650_getTV_SBB2(void); //Returns the SIMO Buck-Boost Channel 2 Target Output Voltage //SIMO Buck-Boost 2 Configuration Register B 0x2E -boolean MAX77650_getADE_SBB2(void); //Returns SIMO Buck-Boost Channel 2 Active-Discharge Enable -byte MAX77650_getEN_SBB2(void); //Returns the Enable Control for SIMO Buck-Boost Channel 2. +bool MAX77650_getADE_SBB2(void); //Returns SIMO Buck-Boost Channel 2 Active-Discharge Enable +uint8_t MAX77650_getEN_SBB2(void); //Returns the Enable Control for SIMO Buck-Boost Channel 2. //***** Register writes ***** //LDO Configuration Register A 0x38 -boolean MAX77650_setTV_LDO(byte); //Sets the LDO Target Output Voltage +bool MAX77650_setTV_LDO(uint8_t); //Sets the LDO Target Output Voltage //LDO Configuration Register B 0x39 -boolean MAX77650_setADE_LDO(byte); //Sets LDO active-Discharge Enable -boolean MAX77650_setEN_LDO(byte); //Enable LDO +bool MAX77650_setADE_LDO(uint8_t); //Sets LDO active-Discharge Enable +bool MAX77650_setEN_LDO(uint8_t); //Enable LDO //Charger Configuration Register A 0x18 -boolean MAX77650_setTHM_HOT(byte); //Sets the VHOT JEITA Temperature Threshold -boolean MAX77650_setTHM_WARM(byte); //Sets the VWARM JEITA Temperature Threshold -boolean MAX77650_setTHM_COOL(byte); //Sets the VCOOL JEITA Temperature Threshold -boolean MAX77650_setTHM_COLD(byte); //Sets the VCOLD JEITA Temperature Threshold +bool MAX77650_setTHM_HOT(uint8_t); //Sets the VHOT JEITA Temperature Threshold +bool MAX77650_setTHM_WARM(uint8_t); //Sets the VWARM JEITA Temperature Threshold +bool MAX77650_setTHM_COOL(uint8_t); //Sets the VCOOL JEITA Temperature Threshold +bool MAX77650_setTHM_COLD(uint8_t); //Sets the VCOLD JEITA Temperature Threshold //Charger Configuration Register B 0x19 -boolean MAX77650_setVCHGIN_MIN(byte); //Sets the Minimum CHGIN regulation voltage (VCHGIN-MIN) -boolean MAX77650_setICHGIN_LIM(byte); //Sets the CHGIN Input Current Limit (ICHGIN-LIM) -boolean MAX77650_setI_PQ(boolean); //Sets the prequalification charge current (IPQ) as a percentage of IFAST-CHG -boolean MAX77650_setCHG_EN(boolean); //Sets Charger Enable +bool MAX77650_setVCHGIN_MIN(uint8_t); //Sets the Minimum CHGIN regulation voltage (VCHGIN-MIN) +bool MAX77650_setICHGIN_LIM(uint8_t); //Sets the CHGIN Input Current Limit (ICHGIN-LIM) +bool MAX77650_setI_PQ(bool); //Sets the prequalification charge current (IPQ) as a percentage of IFAST-CHG +bool MAX77650_setCHG_EN(bool); //Sets Charger Enable //Charger Configuration Register C 0x1A -boolean MAX77650_setCHG_PQ(byte); //Sets the Battery prequalification voltage threshold (VPQ) -boolean MAX77650_setI_TERM(byte); //Sets the Charger Termination Current (ITERM). I_TERM[1:0] sets the charger termination current as a percentage of the fast charge current IFAST-CHG. -boolean MAX77650_setT_TOPOFF(byte); //Sets the Topoff timer value (tTO) +bool MAX77650_setCHG_PQ(uint8_t); //Sets the Battery prequalification voltage threshold (VPQ) +bool MAX77650_setI_TERM(uint8_t); //Sets the Charger Termination Current (ITERM). I_TERM[1:0] sets the charger termination current as a percentage of the fast charge current IFAST-CHG. +bool MAX77650_setT_TOPOFF(uint8_t); //Sets the Topoff timer value (tTO) //Charger Configuration Register D 0x1B -boolean MAX77650_setTJ_REG(byte); //Sets the die junction temperature regulation point, TJ-REG -boolean MAX77650_setVSYS_REG(byte); //Sets the System voltage regulation (VSYS-REG) +bool MAX77650_setTJ_REG(uint8_t); //Sets the die junction temperature regulation point, TJ-REG +bool MAX77650_setVSYS_REG(uint8_t); //Sets the System voltage regulation (VSYS-REG) //Charger Configuration Register E 0x1C -boolean MAX77650_setCHG_CC(byte); //Sets the fast-charge constant current value, IFAST-CHG. -boolean MAX77650_setT_FAST_CHG(byte); //Sets the fast-charge safety timer, tFC. +bool MAX77650_setCHG_CC(uint8_t); //Sets the fast-charge constant current value, IFAST-CHG. +bool MAX77650_setT_FAST_CHG(uint8_t); //Sets the fast-charge safety timer, tFC. //Charger Configuration Register F 0x1D -boolean MAX77650_setCHG_CC_JEITA(byte); //Sets the IFAST-CHG_JEITA for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. -boolean MAX77650_setTHM_EN(boolean); //Sets the Thermistor enable bit +bool MAX77650_setCHG_CC_JEITA(uint8_t); //Sets the IFAST-CHG_JEITA for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. +bool MAX77650_setTHM_EN(bool); //Sets the Thermistor enable bit //Charger Configuration Register G 0x1E -boolean MAX77650_setCHG_CV(byte); //Sets the fast-charge battery regulation voltage, VFAST-CHG. -boolean MAX77650_setUSBS(boolean); //this bit places CHGIN in USB suspend mode +bool MAX77650_setCHG_CV(uint8_t); //Sets the fast-charge battery regulation voltage, VFAST-CHG. +bool MAX77650_setUSBS(bool); //this bit places CHGIN in USB suspend mode //Charger Configuration Register H 0x1F -boolean MAX77650_setCHG_CV_JEITA(byte); //Sets the modified VFAST-CHG for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. +bool MAX77650_setCHG_CV_JEITA(uint8_t); //Sets the modified VFAST-CHG for when the battery is either cool or warm as defined by the TCOOL and TWARM temperature thresholds. This register is a don't care if the battery temperature is normal. //Charger Configuration Register I 0x20 -boolean MAX77650_setIMON_DISCHG_SCALE(byte); //Sets the Selects the battery discharge current full-scale current value This 4-bit configuration starts at 7.5mA and ends at 300mA. -boolean MAX77650_setMUX_SEL(byte); //Sets the analog channel to connect to AMUX configuration +bool MAX77650_setIMON_DISCHG_SCALE(uint8_t); //Sets the Selects the battery discharge current full-scale current value This 4-bit configuration starts at 7.5mA and ends at 300mA. +bool MAX77650_setMUX_SEL(uint8_t); //Sets the analog channel to connect to AMUX configuration //SIMO Buck-Boost Global Configuration Register 0x28 -boolean MAX77650_setMRT_OTP(boolean); //Sets Manual Reset Time Configuration -boolean MAX77650_setSBIA_LPM_DEF(boolean); //Sets Default voltage of the SBIA_LPM bit -boolean MAX77650_setDBNC_nEN_DEF(boolean); //Sets Default Value of the DBNC_nEN bit -boolean MAX77650_setDRV_SBB(byte); //Sets the SIMO Buck-Boost (all channels) Drive Strength Trim. +bool MAX77650_setMRT_OTP(bool); //Sets Manual Reset Time Configuration +bool MAX77650_setSBIA_LPM_DEF(bool); //Sets Default voltage of the SBIA_LPM bit +bool MAX77650_setDBNC_nEN_DEF(bool); //Sets Default Value of the DBNC_nEN bit +bool MAX77650_setDRV_SBB(uint8_t); //Sets the SIMO Buck-Boost (all channels) Drive Strength Trim. //SIMO Buck-Boost 0 Configuration Register A 0x29 -boolean MAX77650_setIP_SBB0(byte); //Sets the SIMO Buck-Boost Channel 0 Peak Current Limit -boolean MAX77650_setTV_SBB0(byte); //Sets the SIMO Buck-Boost Channel 0 Target Output Voltage +bool MAX77650_setIP_SBB0(uint8_t); //Sets the SIMO Buck-Boost Channel 0 Peak Current Limit +bool MAX77650_setTV_SBB0(uint8_t); //Sets the SIMO Buck-Boost Channel 0 Target Output Voltage //SIMO Buck-Boost 0 Configuration Register B 0x2A -boolean MAX77650_setADE_SBB0(boolean); //Sets SIMO Buck-Boost Channel 0 Active-Discharge Enable -boolean MAX77650_setEN_SBB0(byte); //Sets the Enable Control for SIMO Buck-Boost Channel 0. +bool MAX77650_setADE_SBB0(bool); //Sets SIMO Buck-Boost Channel 0 Active-Discharge Enable +bool MAX77650_setEN_SBB0(uint8_t); //Sets the Enable Control for SIMO Buck-Boost Channel 0. //SIMO Buck-Boost 1 Configuration Register A 0x2B -boolean MAX77650_setIP_SBB1(byte); //Sets the SIMO Buck-Boost Channel 1 Peak Current Limit -boolean MAX77650_setTV_SBB1(byte); //Sets the SIMO Buck-Boost Channel 1 Target Output Voltage +bool MAX77650_setIP_SBB1(uint8_t); //Sets the SIMO Buck-Boost Channel 1 Peak Current Limit +bool MAX77650_setTV_SBB1(uint8_t); //Sets the SIMO Buck-Boost Channel 1 Target Output Voltage //SIMO Buck-Boost 1 Configuration Register B 0x2C -boolean MAX77650_setADE_SBB1(boolean); //Sets SIMO Buck-Boost Channel 1 Active-Discharge Enable -boolean MAX77650_setEN_SBB1(byte); //Sets the Enable Control for SIMO Buck-Boost Channel 1. +bool MAX77650_setADE_SBB1(bool); //Sets SIMO Buck-Boost Channel 1 Active-Discharge Enable +bool MAX77650_setEN_SBB1(uint8_t); //Sets the Enable Control for SIMO Buck-Boost Channel 1. //SIMO Buck-Boost 2 Configuration Register A 0x2D -boolean MAX77650_setIP_SBB2(byte); //Sets the SIMO Buck-Boost Channel 2 Peak Current Limit -boolean MAX77650_setTV_SBB2(byte); //Sets the SIMO Buck-Boost Channel 2 Target Output Voltage +bool MAX77650_setIP_SBB2(uint8_t); //Sets the SIMO Buck-Boost Channel 2 Peak Current Limit +bool MAX77650_setTV_SBB2(uint8_t); //Sets the SIMO Buck-Boost Channel 2 Target Output Voltage //SIMO Buck-Boost 2 Configuration Register B 0x2E -boolean MAX77650_setADE_SBB2(boolean); //Sets SIMO Buck-Boost Channel 2 Active-Discharge Enable -boolean MAX77650_setEN_SBB2(byte); //Sets the Enable Control for SIMO Buck-Boost Channel 2. +bool MAX77650_setADE_SBB2(bool); //Sets SIMO Buck-Boost Channel 2 Active-Discharge Enable +bool MAX77650_setEN_SBB2(uint8_t); //Sets the Enable Control for SIMO Buck-Boost Channel 2. //LED related registers -boolean MAX77650_setEN_LED_MSTR(boolean); //Sets Master LED Enable Bit -boolean MAX77650_setLED_FS0(byte); //Sets LED0 Full Scale Range -boolean MAX77650_setINV_LED0(boolean); //Sets LED0 Invert -boolean MAX77650_setBRT_LED0(byte); //Sets LED0 Brightness Control -boolean MAX77650_setP_LED0(byte); //Sets LED0 Period Settings -boolean MAX77650_setD_LED0(byte); //Sets LED0 On Duty-Cycle Settings -boolean MAX77650_setLED_FS1(byte); //Sets LED1 Full Scale Range -boolean MAX77650_setINV_LED1(boolean); //Sets LED1 Invert -boolean MAX77650_setBRT_LED1(byte); //Sets LED1 Brightness Control -boolean MAX77650_setP_LED1(byte); //Sets LED1 Period Settings -boolean MAX77650_setD_LED1(byte); //Sets LED1 On Duty-Cycle Settings -boolean MAX77650_setLED_FS2(byte); //Sets LED2 Full Scale Range -boolean MAX77650_setINV_LED2(boolean); //Sets LED2 Invert -boolean MAX77650_setBRT_LED2(byte); //Sets LED2 Brightness Control -boolean MAX77650_setP_LED2(byte); //Sets LED2 Period Settings -boolean MAX77650_setD_LED2(byte); //Sets LED2 On Duty-Cycle Settings +bool MAX77650_setEN_LED_MSTR(bool); //Sets Master LED Enable Bit +bool MAX77650_setLED_FS0(uint8_t); //Sets LED0 Full Scale Range +bool MAX77650_setINV_LED0(bool); //Sets LED0 Invert +bool MAX77650_setBRT_LED0(uint8_t); //Sets LED0 Brightness Control +bool MAX77650_setP_LED0(uint8_t); //Sets LED0 Period Settings +bool MAX77650_setD_LED0(uint8_t); //Sets LED0 On Duty-Cycle Settings +bool MAX77650_setLED_FS1(uint8_t); //Sets LED1 Full Scale Range +bool MAX77650_setINV_LED1(bool); //Sets LED1 Invert +bool MAX77650_setBRT_LED1(uint8_t); //Sets LED1 Brightness Control +bool MAX77650_setP_LED1(uint8_t); //Sets LED1 Period Settings +bool MAX77650_setD_LED1(uint8_t); //Sets LED1 On Duty-Cycle Settings +bool MAX77650_setLED_FS2(uint8_t); //Sets LED2 Full Scale Range +bool MAX77650_setINV_LED2(bool); //Sets LED2 Invert +bool MAX77650_setBRT_LED2(uint8_t); //Sets LED2 Brightness Control +bool MAX77650_setP_LED2(uint8_t); //Sets LED2 Period Settings +bool MAX77650_setD_LED2(uint8_t); //Sets LED2 On Duty-Cycle Settings //Global Configuration register 0x10 -boolean MAX77650_setBOK(boolean); //Sets Main Bias Okay Status Bit -boolean MAX77650_setSBIA_LPM(boolean); //Sets Main Bias Low-Power Mode software request -boolean MAX77650_setSBIA_EN(boolean); //Sets Main Bias Enable Software Request -boolean MAX77650_setnEN_MODE(boolean); //Sets nEN Input (ONKEY) Default Configuration Mode -boolean MAX77650_setDBEN_nEN(boolean); //Sets Debounce Timer Enable for the nEN Pin -boolean MAX77650_setSFT_RST(byte); //Sets Software Reset Functions. +bool MAX77650_setBOK(bool); //Sets Main Bias Okay Status Bit +bool MAX77650_setSBIA_LPM(bool); //Sets Main Bias Low-Power Mode software request +bool MAX77650_setSBIA_EN(bool); //Sets Main Bias Enable Software Request +bool MAX77650_setnEN_MODE(bool); //Sets nEN Input (ONKEY) Default Configuration Mode +bool MAX77650_setDBEN_nEN(bool); //Sets Debounce Timer Enable for the nEN Pin +bool MAX77650_setSFT_RST(uint8_t); //Sets Software Reset Functions. //Global Interrupt Mask Register 0x06 -boolean MAX77650_setINT_M_GLBL(byte); //Sets Global Interrupt Mask Register +bool MAX77650_setINT_M_GLBL(uint8_t); //Sets Global Interrupt Mask Register //GPIO Configuration Register -boolean MAX77650_setDBEN_GPI(boolean); //Sets General Purpose Input Debounce Timer Enable -boolean MAX77650_setDO(boolean); //Sets General Purpose Output Data Output -boolean MAX77650_setDRV(boolean); //Sets General Purpose Output Driver Type -boolean MAX77650_setDI(boolean); //Sets GPIO Digital Input Value -boolean MAX77650_setDIR(boolean); //Sets GPIO Direction +bool MAX77650_setDBEN_GPI(bool); //Sets General Purpose Input Debounce Timer Enable +bool MAX77650_setDO(bool); //Sets General Purpose Output Data Output +bool MAX77650_setDRV(bool); //Sets General Purpose Output Driver Type +bool MAX77650_setDI(bool); //Sets GPIO Digital Input Value +bool MAX77650_setDIR(bool); //Sets GPIO Direction //Charger Interrupt Mask Register 0x07 -boolean MAX77650_setINT_M_CHG(byte); //Sets Global Interrupt Mask Register +bool MAX77650_setINT_M_CHG(uint8_t); //Sets Global Interrupt Mask Register #endif -- GitLab