repo time

Dependencies:   mbed MAX14720 MAX30205 USBDevice

Committer:
darienf
Date:
Tue Apr 06 06:41:40 2021 +0000
Revision:
20:6d2af70c92ab
another repo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
darienf 20:6d2af70c92ab 1 /*******************************************************************************
darienf 20:6d2af70c92ab 2 * Copyright (C) 2016 Maxim Integrated Products, Inc., All rights Reserved.
darienf 20:6d2af70c92ab 3 *
darienf 20:6d2af70c92ab 4 * This software is protected by copyright laws of the United States and
darienf 20:6d2af70c92ab 5 * of foreign countries. This material may also be protected by patent laws
darienf 20:6d2af70c92ab 6 * and technology transfer regulations of the United States and of foreign
darienf 20:6d2af70c92ab 7 * countries. This software is furnished under a license agreement and/or a
darienf 20:6d2af70c92ab 8 * nondisclosure agreement and may only be used or reproduced in accordance
darienf 20:6d2af70c92ab 9 * with the terms of those agreements. Dissemination of this information to
darienf 20:6d2af70c92ab 10 * any party or parties not specified in the license agreement and/or
darienf 20:6d2af70c92ab 11 * nondisclosure agreement is expressly prohibited.
darienf 20:6d2af70c92ab 12 *
darienf 20:6d2af70c92ab 13 * The above copyright notice and this permission notice shall be included
darienf 20:6d2af70c92ab 14 * in all copies or substantial portions of the Software.
darienf 20:6d2af70c92ab 15 *
darienf 20:6d2af70c92ab 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
darienf 20:6d2af70c92ab 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
darienf 20:6d2af70c92ab 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
darienf 20:6d2af70c92ab 19 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
darienf 20:6d2af70c92ab 20 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
darienf 20:6d2af70c92ab 21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
darienf 20:6d2af70c92ab 22 * OTHER DEALINGS IN THE SOFTWARE.
darienf 20:6d2af70c92ab 23 *
darienf 20:6d2af70c92ab 24 * Except as contained in this notice, the name of Maxim Integrated
darienf 20:6d2af70c92ab 25 * Products, Inc. shall not be used except as stated in the Maxim Integrated
darienf 20:6d2af70c92ab 26 * Products, Inc. Branding Policy.
darienf 20:6d2af70c92ab 27 *
darienf 20:6d2af70c92ab 28 * The mere transfer of this software does not imply any licenses
darienf 20:6d2af70c92ab 29 * of trade secrets, proprietary technology, copyrights, patents,
darienf 20:6d2af70c92ab 30 * trademarks, maskwork rights, or any other form of intellectual
darienf 20:6d2af70c92ab 31 * property whatsoever. Maxim Integrated Products, Inc. retains all
darienf 20:6d2af70c92ab 32 * ownership rights.
darienf 20:6d2af70c92ab 33 *******************************************************************************
darienf 20:6d2af70c92ab 34 */
darienf 20:6d2af70c92ab 35
darienf 20:6d2af70c92ab 36 using System;
darienf 20:6d2af70c92ab 37 using System.Collections.Generic;
darienf 20:6d2af70c92ab 38 using System.Linq;
darienf 20:6d2af70c92ab 39 using System.Text;
darienf 20:6d2af70c92ab 40 using HealthSensorPlatform.DeviceDescriptions;
darienf 20:6d2af70c92ab 41 using RPCSupport.DeviceSupport;
darienf 20:6d2af70c92ab 42
darienf 20:6d2af70c92ab 43 namespace Maxim.CustomControls
darienf 20:6d2af70c92ab 44 {
darienf 20:6d2af70c92ab 45 /// <summary>
darienf 20:6d2af70c92ab 46 /// PMIC Register Information
darienf 20:6d2af70c92ab 47 /// </summary>
darienf 20:6d2af70c92ab 48 public class MAX14720Info : Device
darienf 20:6d2af70c92ab 49 {
darienf 20:6d2af70c92ab 50
darienf 20:6d2af70c92ab 51 public MAX14720Info()
darienf 20:6d2af70c92ab 52 {
darienf 20:6d2af70c92ab 53 deviceDetails = new DeviceDetails();
darienf 20:6d2af70c92ab 54 deviceDetails.InitI2c(2, 0x54);
darienf 20:6d2af70c92ab 55
darienf 20:6d2af70c92ab 56 initalizeDescription();
darienf 20:6d2af70c92ab 57
darienf 20:6d2af70c92ab 58 }
darienf 20:6d2af70c92ab 59
darienf 20:6d2af70c92ab 60 void initalizeDescription()
darienf 20:6d2af70c92ab 61 {
darienf 20:6d2af70c92ab 62 Info = new RegisterInfo[] {
darienf 20:6d2af70c92ab 63 new RegisterInfo("ChipId",0x00),
darienf 20:6d2af70c92ab 64 new RegisterInfo("ChipRev",0x01),
darienf 20:6d2af70c92ab 65 new RegisterInfo("BoostCDiv",0x03),
darienf 20:6d2af70c92ab 66 new RegisterInfo("BoostISet",0x04),
darienf 20:6d2af70c92ab 67 new RegisterInfo("BoostVSet",0x05),
darienf 20:6d2af70c92ab 68 new RegisterInfo("BoostCfg",0x06),
darienf 20:6d2af70c92ab 69 new RegisterInfo("BuckVSet",0x07),
darienf 20:6d2af70c92ab 70 new RegisterInfo("BuckCfg",0x08),
darienf 20:6d2af70c92ab 71 new RegisterInfo("BuckISet",0x09),
darienf 20:6d2af70c92ab 72 new RegisterInfo("LDOVSet",0x0A),
darienf 20:6d2af70c92ab 73 new RegisterInfo("LDOCfg",0x0B),
darienf 20:6d2af70c92ab 74 new RegisterInfo("SwitchCfg",0x0C),
darienf 20:6d2af70c92ab 75 new RegisterInfo("BatTime",0x0D),
darienf 20:6d2af70c92ab 76 new RegisterInfo("BatCfg",0x0E),
darienf 20:6d2af70c92ab 77 new RegisterInfo("BatBCV",0x0F),
darienf 20:6d2af70c92ab 78 new RegisterInfo("BatOCV",0x10),
darienf 20:6d2af70c92ab 79 new RegisterInfo("BattLCV",0x11),
darienf 20:6d2af70c92ab 80 new RegisterInfo("MONCfg",0x19),
darienf 20:6d2af70c92ab 81 new RegisterInfo("BoostCfg",0x1A),
darienf 20:6d2af70c92ab 82 new RegisterInfo("PinStat",0x1B),
darienf 20:6d2af70c92ab 83 new RegisterInfo("BBBExtra",0x1C),
darienf 20:6d2af70c92ab 84 new RegisterInfo("HandShk",0x1D),
darienf 20:6d2af70c92ab 85 new RegisterInfo("UVLOCfg",0x1E),
darienf 20:6d2af70c92ab 86 new RegisterInfo("PWROFF",0x1F)
darienf 20:6d2af70c92ab 87 };
darienf 20:6d2af70c92ab 88
darienf 20:6d2af70c92ab 89 // register 0x00
darienf 20:6d2af70c92ab 90 Descriptions(0x00).Add("Bit [7:0]", "ChipId", "Version information");
darienf 20:6d2af70c92ab 91 // register 0x01
darienf 20:6d2af70c92ab 92 Descriptions(0x01).Add("Bit [7:0]", "ChipRev", "Revison Information");
darienf 20:6d2af70c92ab 93 // register 0x03
darienf 20:6d2af70c92ab 94 Descriptions(0x03).Add("Bit 7", "ClkDivEn", @"Boost Current-Limited Output Mode Enable
darienf 20:6d2af70c92ab 95 This allows the boost regulator to be operated in a current limited output mode.
darienf 20:6d2af70c92ab 96 0: Normal Operation, Full Output Current Capability
darienf 20:6d2af70c92ab 97 1: Divided Clock Current Limited Mode
darienf 20:6d2af70c92ab 98 When the clock divider is enabled, the boost is operated with a fixed peak current limit and programmable
darienf 20:6d2af70c92ab 99 frequency. The peak current is set by BoostISet[2:0] and the switching frequency is determined by
darienf 20:6d2af70c92ab 100 ClkDivSet[6:0]. The regulator will stop switching when the voltage is above the set point and will only run when
darienf 20:6d2af70c92ab 101 the voltage is below the output setting. This mode can only be enabled once the output voltage is set higher
darienf 20:6d2af70c92ab 102 than the input voltage.");
darienf 20:6d2af70c92ab 103 // register 0x03
darienf 20:6d2af70c92ab 104 Descriptions(0x03).Add("Bit [6:0]", "ClkDivSet", @"Current-Limited Boost Clock Divider Setting
darienf 20:6d2af70c92ab 105 When the current limited mode is enabled, the frequency of the boost regulator in current limited mode will be
darienf 20:6d2af70c92ab 106 the frequency of the oscillator divided by the value of (10 + ClkDivSet[6:0]). The range is fOSC/10 to fOSC/137.");
darienf 20:6d2af70c92ab 107 // register 0x04
darienf 20:6d2af70c92ab 108 Descriptions(0x04).Add("Bit [2:0]", "BoostISet", @"Buck-Boost Peak Current-Limit Setting
darienf 20:6d2af70c92ab 109 000: 0 (Minimum On-Time)
darienf 20:6d2af70c92ab 110 001: 50mA
darienf 20:6d2af70c92ab 111 010: 100mA
darienf 20:6d2af70c92ab 112 011: 150mA
darienf 20:6d2af70c92ab 113 100: 200mA
darienf 20:6d2af70c92ab 114 101: 250mA
darienf 20:6d2af70c92ab 115 110: 300mA
darienf 20:6d2af70c92ab 116 111: 350mA");
darienf 20:6d2af70c92ab 117 // register 0x05
darienf 20:6d2af70c92ab 118 Descriptions(0x05).Add("Bit [4:0]", "BoostVSet[4:0]", @"Boost Output Voltage Setting. This setting is internally latched and can change only when boost is disabled.
darienf 20:6d2af70c92ab 119 2.5V to 5.0V, linear scale, 100mV increments
darienf 20:6d2af70c92ab 120 000000 = 2.5V
darienf 20:6d2af70c92ab 121 000001 = 2.6V
darienf 20:6d2af70c92ab 122
darienf 20:6d2af70c92ab 123 011001 = 5.0V
darienf 20:6d2af70c92ab 124 > 011001 = 5.0V");
darienf 20:6d2af70c92ab 125 // register 0x06
darienf 20:6d2af70c92ab 126 Descriptions(0x06).Add("Bit [7:5]", "BoostSeq[2:0]", @"Boost Enable Configuration (Read-Only)
darienf 20:6d2af70c92ab 127 000 = Disabled
darienf 20:6d2af70c92ab 128 001 = Reserved
darienf 20:6d2af70c92ab 129 010 = Enabled at 0% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 130 011 = Enabled at 25% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 131 100 = Enabled at 50% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 132 101 = Reserved
darienf 20:6d2af70c92ab 133 110 = Controlled by HVEN (MAX14750)
darienf 20:6d2af70c92ab 134 111 = Controlled by BoostEn [1:0] after 100% of Boot/POR Process Delay Control (MAX14720)");
darienf 20:6d2af70c92ab 135 Descriptions(0x06).Add("Bit [4:3]", "BoostEn[1:0]", @"Boost Enable Configuration (effective only when BoostSeq[2:0] == 111)
darienf 20:6d2af70c92ab 136 00 = Disabled. Active discharge behavior depends on BoostActDsc.
darienf 20:6d2af70c92ab 137 01 = Enabled
darienf 20:6d2af70c92ab 138 10 = Enabled when MPC is high
darienf 20:6d2af70c92ab 139 11 = Reserved");
darienf 20:6d2af70c92ab 140 Descriptions(0x07).Add("Bit 1", "BoostEMI", @"Boost EMI reduction. Dampens ringing of the inductor when in discontinuous mode
darienf 20:6d2af70c92ab 141 0 = EMI damping active (improve EMI)
darienf 20:6d2af70c92ab 142 1 = EMI damping disabled (improve Efficiency)");
darienf 20:6d2af70c92ab 143 Descriptions(0x08).Add("Bit 0", "BoostInd", @"Boost Inductance Select
darienf 20:6d2af70c92ab 144 1 = Inductance is 3.3µH
darienf 20:6d2af70c92ab 145 0 = Inductance is 4.7µH");
darienf 20:6d2af70c92ab 146 // register 0x07
darienf 20:6d2af70c92ab 147 Descriptions(0x07).Add("Bit [5:0]", "BuckVSet[5:0]", @"Buck Output Voltage Setting This setting is internally latched and can change only when buck is disabled.
darienf 20:6d2af70c92ab 148 1.0V to 2.0V, linear scale, 25mV increments
darienf 20:6d2af70c92ab 149 000000 = 1.000V
darienf 20:6d2af70c92ab 150 000001 = 1.025V
darienf 20:6d2af70c92ab 151
darienf 20:6d2af70c92ab 152 101000 = 2.0V
darienf 20:6d2af70c92ab 153 > 101000 = 2.0V");
darienf 20:6d2af70c92ab 154 // register 0x08
darienf 20:6d2af70c92ab 155 Descriptions(0x08).Add("Bit [7:6]", "BuckSeq[2:0]", @"Buck Enable Configuration (Read-Only)
darienf 20:6d2af70c92ab 156 000 = Disabled
darienf 20:6d2af70c92ab 157 001 = Reserved
darienf 20:6d2af70c92ab 158 010 = Enabled at 0% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 159 011 = Enabled at 25% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 160 100 = Enabled at 50% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 161 101 = Reserved
darienf 20:6d2af70c92ab 162 110 = Controlled by BEN (MAX14750)
darienf 20:6d2af70c92ab 163 111 = Controlled by BuckEn [1:0] after 100% of Boot/POR Process Delay Control");
darienf 20:6d2af70c92ab 164 Descriptions(0x08).Add("Bit [4:3]", "BuckEn[1:0]", @"Buck Enable Configuration (effective only when BuckSeq[2:0] == 111)
darienf 20:6d2af70c92ab 165 00 = Disabled. Active discharge behavior depends on BuckActDsc.
darienf 20:6d2af70c92ab 166 01 = Enabled
darienf 20:6d2af70c92ab 167 10 = Enabled when MPC is high
darienf 20:6d2af70c92ab 168 11 = Reserved");
darienf 20:6d2af70c92ab 169 Descriptions(0x08).Add("Bit [2:1]", "BuckMd[1:0]", @"Buck Mode Select
darienf 20:6d2af70c92ab 170 00 = Burst mode
darienf 20:6d2af70c92ab 171 01 = Forced PWM mode
darienf 20:6d2af70c92ab 172 10 = Forced PWM mode when MPC is high
darienf 20:6d2af70c92ab 173 11 = Reserved");
darienf 20:6d2af70c92ab 174 Descriptions(0x08).Add("Bit 0", "BuckFst", @"Buck Fast Start
darienf 20:6d2af70c92ab 175 0 = Normal startup current limit
darienf 20:6d2af70c92ab 176 1 = Double the startup current to reduce the startup time by half");
darienf 20:6d2af70c92ab 177 // register 0x09
darienf 20:6d2af70c92ab 178 Descriptions(0x09).Add("Bit [7:5]", "BuckISet[2:0]", @"Buck Peak Current Limit Setting
darienf 20:6d2af70c92ab 179 000: 50mA
darienf 20:6d2af70c92ab 180 001: 100mA
darienf 20:6d2af70c92ab 181 010: 150mA
darienf 20:6d2af70c92ab 182 011: 200mA
darienf 20:6d2af70c92ab 183 100: 250mA
darienf 20:6d2af70c92ab 184 101: 300mA
darienf 20:6d2af70c92ab 185 110: 350mA
darienf 20:6d2af70c92ab 186 111: 400mA");
darienf 20:6d2af70c92ab 187 Descriptions(0x09).Add("Bit 4", "BuckCfg", @"Buck Configuration
darienf 20:6d2af70c92ab 188 0 = set to 0 for burst mode
darienf 20:6d2af70c92ab 189 1 = set to 1 for FPWM mode");
darienf 20:6d2af70c92ab 190 Descriptions(0x09).Add("Bit 3", "BuckInd", @"Buck Inductance Select
darienf 20:6d2af70c92ab 191 0 = Inductance is 2.2µH
darienf 20:6d2af70c92ab 192 1 = Inductance is 4.7µH");
darienf 20:6d2af70c92ab 193 Descriptions(0x09).Add("Bit 2", "BuckHysOff", @"Buck Hysteresis Off
darienf 20:6d2af70c92ab 194 0 = Enable comparator hysteresis
darienf 20:6d2af70c92ab 195 1 = Disable comparator hysteresis (recommended to reduce voltage ripple)");
darienf 20:6d2af70c92ab 196 Descriptions(0x09).Add("Bit 1", "BuckMinOT", @"Buck Minimum On-Time
darienf 20:6d2af70c92ab 197 0 = Enable deglitch delay on comparator for better efficiency
darienf 20:6d2af70c92ab 198 1 = Disable deglitch delay on comparator to minimize voltage ripple");
darienf 20:6d2af70c92ab 199 Descriptions(0x09).Add("Bit 0", "BuckInteg", @"Buck Integrate
darienf 20:6d2af70c92ab 200 0 = Helps stabilize the buck regulator for high currents with small output capacitor
darienf 20:6d2af70c92ab 201 1 = Better load regulation at high current (recommended for output capacitance > 6µF)");
darienf 20:6d2af70c92ab 202 // register 0x0a
darienf 20:6d2af70c92ab 203 Descriptions(0x0A).Add("Bit [4:0]", "LDOVSet[4:0]", @"LDO Output Voltage Setting
darienf 20:6d2af70c92ab 204 0.9V to 4V, linear scale, 100mV increments
darienf 20:6d2af70c92ab 205 00000 = 0.9V
darienf 20:6d2af70c92ab 206 00001 = 1.0V
darienf 20:6d2af70c92ab 207
darienf 20:6d2af70c92ab 208 10000 = 2.5V
darienf 20:6d2af70c92ab 209
darienf 20:6d2af70c92ab 210 11111 = 4.0V");
darienf 20:6d2af70c92ab 211 // register 0x0b
darienf 20:6d2af70c92ab 212 Descriptions(0x0B).Add("Bit [7:5]", "LDOSeq[2:0]", @"LDO Enable Configuration (Read-Only)
darienf 20:6d2af70c92ab 213 000 = Disabled
darienf 20:6d2af70c92ab 214 001 = Enabled always when BAT/SYS is present
darienf 20:6d2af70c92ab 215 010 = Enabled at 0% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 216 011 = Enabled at 25% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 217 100 = Enabled at 50% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 218 101 = Disabled
darienf 20:6d2af70c92ab 219 110 = Controlled by LEN (MAX14750)
darienf 20:6d2af70c92ab 220 111 = Controlled by LDOEn[1:0] after 100% of Boot/POR Process Delay Control");
darienf 20:6d2af70c92ab 221 Descriptions(0x0B).Add("Bit 4", "LDOActDsc", @"LDO Active Discharge Control
darienf 20:6d2af70c92ab 222 0: LDO output will be discharged only entering off and hard-reset modes.
darienf 20:6d2af70c92ab 223 1: LDO output will be discharged only entering off and hard-reset modes and when the enable is low.");
darienf 20:6d2af70c92ab 224 Descriptions(0x0B).Add("Bit 3", "LDOActDsc", @"LDO Active Discharge Control
darienf 20:6d2af70c92ab 225 0: LDO output will be actively discharged only entering off and hard-reset modes.
darienf 20:6d2af70c92ab 226 1: LDO output will be actively discharged only entering off and hard-reset modes and when the enable is low.");
darienf 20:6d2af70c92ab 227 Descriptions(0x0B).Add("Bit [2:1]", "LDOEn[1:0]", @"LDO Enable Configuration (effective only when LDOSeq[2:0] == 111)
darienf 20:6d2af70c92ab 228 00 = Disabled
darienf 20:6d2af70c92ab 229 01 = Enabled
darienf 20:6d2af70c92ab 230 10 = Enabled when MPC is high
darienf 20:6d2af70c92ab 231 11 = Reserved");
darienf 20:6d2af70c92ab 232 Descriptions(0x0B).Add("Bit 0", "LDOMode", @"LDO Mode Control
darienf 20:6d2af70c92ab 233 0 = Normal LDO operating mode
darienf 20:6d2af70c92ab 234 1 = Load switch mode. FET is either fully on or off depending on the state of LDOEn. When FET is on, the
darienf 20:6d2af70c92ab 235 output is unregulated and is not affected by UVLO’s control block. This setting is internally latched and can
darienf 20:6d2af70c92ab 236 change only when the LDO is disabled.");
darienf 20:6d2af70c92ab 237 // register 0x0c
darienf 20:6d2af70c92ab 238 Descriptions(0x0C).Add("Bit [7:5]", "SWSeq[2:0]", @"SW Enable Configuration (Read-Only)
darienf 20:6d2af70c92ab 239 000 = Disabled
darienf 20:6d2af70c92ab 240 001 = Enabled always when BAT/SYS is present
darienf 20:6d2af70c92ab 241 010 = Enabled at 0% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 242 011 = Enabled at 25% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 243 100 = Enabled at 50% of Boot/POR Process Delay Control
darienf 20:6d2af70c92ab 244 101 = Disabled
darienf 20:6d2af70c92ab 245 110 = Controlled by SWEN (MAX14750)
darienf 20:6d2af70c92ab 246 111 = Controlled by SWEn[1:0] after 100% of Boot/POR Process Delay Control");
darienf 20:6d2af70c92ab 247 Descriptions(0x0C).Add("Bit [2:1]", "SWSoftStart", @"SW Enable Configuration (effective only when SWSeq[2:0] == 111)
darienf 20:6d2af70c92ab 248 00 = Disabled
darienf 20:6d2af70c92ab 249 01 = Enabled
darienf 20:6d2af70c92ab 250 10 = Enabled when MPC is high
darienf 20:6d2af70c92ab 251 11 = Reserved");
darienf 20:6d2af70c92ab 252 // register 0x0d
darienf 20:6d2af70c92ab 253 Descriptions(0x0d).Add("Bit [5:4]", "BCVTm[1:0]", @"Battery Cell Voltage Timing
darienf 20:6d2af70c92ab 254 00: Skip battery measurement
darienf 20:6d2af70c92ab 255 01: Take battery measurement after 10ms delay
darienf 20:6d2af70c92ab 256 10: Take battery measurement after 100ms delay
darienf 20:6d2af70c92ab 257 11: Take battery measurement after 1000ms delay");
darienf 20:6d2af70c92ab 258 Descriptions(0x0d).Add("Bit [3:2]", "OCVTm[1:0]", @"Battery Open Cell Voltage Timing
darienf 20:6d2af70c92ab 259 If this step is skipped, LCV measurement will be taken with switch closed
darienf 20:6d2af70c92ab 260 00: Skip OCV measurement
darienf 20:6d2af70c92ab 261 01: Take OCV measurement after 10ms delay
darienf 20:6d2af70c92ab 262 10: Take OCV measurement after 100ms delay
darienf 20:6d2af70c92ab 263 11: Take OCV measurement after 1000ms delay");
darienf 20:6d2af70c92ab 264 Descriptions(0x0d).Add("Bit [1:0]", "LCVTm[1:0]", @"Battery Loaded Cell Voltage Timing
darienf 20:6d2af70c92ab 265 00: Skip LCV measurement
darienf 20:6d2af70c92ab 266 01: Take LCV measurement after 10ms delay
darienf 20:6d2af70c92ab 267 10: Take LCV measurement after 100ms delay
darienf 20:6d2af70c92ab 268 11: Take LCV measurement after 1000ms delay");
darienf 20:6d2af70c92ab 269 // register 0x0e
darienf 20:6d2af70c92ab 270 Descriptions(0x0e).Add("Bit 7", "BIA", @"Battery Impedance Active
darienf 20:6d2af70c92ab 271 Write 1 to start battery impedance measurement. If the measurement is already running, the write is ignored.
darienf 20:6d2af70c92ab 272 Bit will remain high until the measurement is completed.
darienf 20:6d2af70c92ab 273 0: Battery impedance measurement is not ongoing
darienf 20:6d2af70c92ab 274 1: Battery impedance measurement is ongoing");
darienf 20:6d2af70c92ab 275 Descriptions(0x0e).Add("Bit 6", "BIMAbort", @"Battery Impedance Measurement Skip
darienf 20:6d2af70c92ab 276 Write 1 to immediately abort the battery impedance measurement
darienf 20:6d2af70c92ab 277 0: Battery impedance measurement is aborted
darienf 20:6d2af70c92ab 278 1: Battery impedance measurement is not aborted yet");
darienf 20:6d2af70c92ab 279 Descriptions(0x0e).Add("Bit 3", "LcvDly2Skip", @"Write 1 to skip the second delay time (equal again to LCVTm) after LCV Measurement is taken. This second
darienf 20:6d2af70c92ab 280 delay time allows VCC to recover its unloaded value before closing the power switch again.
darienf 20:6d2af70c92ab 281 0: Wait second delay time
darienf 20:6d2af70c92ab 282 1: Skip second delay time");
darienf 20:6d2af70c92ab 283 Descriptions(0x0e).Add("Bit [2:0]", "BatimpCur[2:0]", @"Battery Impedance Current
darienf 20:6d2af70c92ab 284 000: 0
darienf 20:6d2af70c92ab 285 001: 250µA
darienf 20:6d2af70c92ab 286 010: 500µA
darienf 20:6d2af70c92ab 287 011: 1mA
darienf 20:6d2af70c92ab 288 100: 2mA
darienf 20:6d2af70c92ab 289 101: 4mA
darienf 20:6d2af70c92ab 290 110: 8mA
darienf 20:6d2af70c92ab 291 111: Reserved");
darienf 20:6d2af70c92ab 292 // register 0x0f
darienf 20:6d2af70c92ab 293 Descriptions(0x0f).Add("Bit [7:0]", "BatV[7:0]", @"Battery Voltage Measurement Result
darienf 20:6d2af70c92ab 294 8-bit battery voltage measurement: VCC = [ 2.6 * (BCV[7:0]/255) + 1.1 ] V
darienf 20:6d2af70c92ab 295 If BCVTm[2:0] = 00, BCV[7:0] = 0000 0000.
darienf 20:6d2af70c92ab 296 If error occurs or the measurement is aborted, BCV[7:0] =1111 1111.");
darienf 20:6d2af70c92ab 297 // register 0x10
darienf 20:6d2af70c92ab 298 Descriptions(0x10).Add("Bit [7:0]", "BatOCV[7:0]", @"Battery Voltage Measurement Result
darienf 20:6d2af70c92ab 299 8-bit battery voltage measurement: VCC = [2.6 x (OCV[7:0]/255) + 1.1] V
darienf 20:6d2af70c92ab 300 If OCVTm[2:0] = 00, OCV[7:0] =0000 0000.
darienf 20:6d2af70c92ab 301 If error occurs or the measurement is aborted, OCV[7:0] =1111 1111.");
darienf 20:6d2af70c92ab 302 // register 0x11
darienf 20:6d2af70c92ab 303 Descriptions(0x11).Add("Bit [7:0]", "LCV[7:0]", @"Battery Voltage Measurement Result
darienf 20:6d2af70c92ab 304 8 bit battery voltage measurement: VCC = [2.6 x ( LCV[7:0]/255) + 1.1] V
darienf 20:6d2af70c92ab 305 If LCVTm[2:0] = 00, BCV[7:0] = 0000 0000.
darienf 20:6d2af70c92ab 306 If error occurs or the measurement is aborted, LCV[7:0] =1111 1111.");
darienf 20:6d2af70c92ab 307 // register 0x19
darienf 20:6d2af70c92ab 308 Descriptions(0x19).Add("Bit 7", "MonEn", @"Monitor Enable
darienf 20:6d2af70c92ab 309 0 = Monitor function disabled
darienf 20:6d2af70c92ab 310 1 = Monitor function enabled");
darienf 20:6d2af70c92ab 311 Descriptions(0x19).Add("Bit 3", "MONtHiZ", @"MON OFF MODE Condition
darienf 20:6d2af70c92ab 312 0 = Pulled Low by a 100k Pulldown Resistor
darienf 20:6d2af70c92ab 313 1 = Hi-Z");
darienf 20:6d2af70c92ab 314 Descriptions(0x19).Add("Bit [2:0]", "MONCtr[2:0]", @"MON Pin Source Selection
darienf 20:6d2af70c92ab 315 000 = MON connected to SWIN
darienf 20:6d2af70c92ab 316 001 = MON connected to SWOUT
darienf 20:6d2af70c92ab 317 010 = MON connected to BIN
darienf 20:6d2af70c92ab 318 011 = MON connected to BOUT
darienf 20:6d2af70c92ab 319 100 = MON connected to HVIN
darienf 20:6d2af70c92ab 320 101 = MON connected to HVOUT
darienf 20:6d2af70c92ab 321 110 = MON connected to LIN
darienf 20:6d2af70c92ab 322 111 = MON connected to LOUT");
darienf 20:6d2af70c92ab 323 // register 0x1a
darienf 20:6d2af70c92ab 324 Descriptions(0x1a).Add("Bit [7:4]", "PwrRstCfg[4:0]", @"0000: Pin Controlled (MAX14750)
darienf 20:6d2af70c92ab 325 0110: Push-Button Monitor (MAX14720)");
darienf 20:6d2af70c92ab 326 Descriptions(0x1a).Add("Bit 3", "SftRstCfg", @"Soft Reset Register Default
darienf 20:6d2af70c92ab 327 0 = Registers do not reset to default values on soft reset
darienf 20:6d2af70c92ab 328 1 = Registers reset to default values on soft reset");
darienf 20:6d2af70c92ab 329 Descriptions(0x1a).Add("Bit 2", "PFNPUDCfg", @"KIN Pullup/Pulldown Configuration
darienf 20:6d2af70c92ab 330 0 = Pullups and pulldowns on control lines disabled
darienf 20:6d2af70c92ab 331 1 = Selective pullups and pulldowns enabled on KIN pin");
darienf 20:6d2af70c92ab 332 Descriptions(0x1a).Add("Bit [1:0]", "BootDly[1:0]", @"Boot/POR Process tRESET Delay Control
darienf 20:6d2af70c92ab 333 00 = 80ms
darienf 20:6d2af70c92ab 334 01 = 120ms
darienf 20:6d2af70c92ab 335 10 = 220ms
darienf 20:6d2af70c92ab 336 11 = 420ms");
darienf 20:6d2af70c92ab 337 // register 0x1b
darienf 20:6d2af70c92ab 338 Descriptions(0x1a).Add("Bit 3", "/KIN", @"Input State
darienf 20:6d2af70c92ab 339 0 = Pin low
darienf 20:6d2af70c92ab 340 1 = Pin high");
darienf 20:6d2af70c92ab 341 Descriptions(0x1a).Add("Bit 2", "/KOUT", @"Input State
darienf 20:6d2af70c92ab 342 0 = Pin low
darienf 20:6d2af70c92ab 343 1 = Pin high");
darienf 20:6d2af70c92ab 344 Descriptions(0x1a).Add("Bit 1", "MPC", @"Input State
darienf 20:6d2af70c92ab 345 0 = Pin low
darienf 20:6d2af70c92ab 346 1 = Pin high");
darienf 20:6d2af70c92ab 347 Descriptions(0x1a).Add("Bit 0", "/RST", @"Input State
darienf 20:6d2af70c92ab 348 0 = Pin low
darienf 20:6d2af70c92ab 349 1 = Pin high");
darienf 20:6d2af70c92ab 350 // register 0x1c
darienf 20:6d2af70c92ab 351 Descriptions(0x1c).Add("Bit 7", "BoostHysOff", @"Boost Hysteresis Off
darienf 20:6d2af70c92ab 352 0 = Enable comparator hysteresis
darienf 20:6d2af70c92ab 353 1 = Disable comparator hysteresis (recommended to reduce voltage ripple)");
darienf 20:6d2af70c92ab 354 Descriptions(0x1c).Add("Bit 6", "BoostPacDsc", @"Boost Passive Discharge Control
darienf 20:6d2af70c92ab 355 0: Boost output will be discharged only when entering off and hard-reset modes.
darienf 20:6d2af70c92ab 356 1: Boost output will be discharged only when entering off and hard-reset modes and when BoostEn is set to 00.");
darienf 20:6d2af70c92ab 357 Descriptions(0x1c).Add("Bit 5", "BoostActDsc", @"Boost Active Discharge Control
darienf 20:6d2af70c92ab 358 0: Boost output will be discharged only when entering off and hard-reset modes.
darienf 20:6d2af70c92ab 359 1: Boost output will be discharged only when entering off and hard-reset modes and when BoostEn is set to 00.");
darienf 20:6d2af70c92ab 360 Descriptions(0x1c).Add("Bit 2", "BuckActDsc", @"Buck Passive Discharge Control
darienf 20:6d2af70c92ab 361 0: Buck output will be discharged only when entering off and hard-reset modes.
darienf 20:6d2af70c92ab 362 1: Buck output will be discharged only when entering off and hard-reset modes and when BuckEn is set to 00.");
darienf 20:6d2af70c92ab 363 Descriptions(0x1c).Add("Bit 1", "BuckActDsc", @"Buck Active Discharge Control
darienf 20:6d2af70c92ab 364 0: Buck output will be discharged only when entering off and hard-reset modes.
darienf 20:6d2af70c92ab 365 1: Buck output will be discharged only when entering off and hard-reset modes and when BuckEn is set to 00.");
darienf 20:6d2af70c92ab 366 Descriptions(0x1c).Add("Bit 0", "BuckFScl", @"Buck Force FET scaling (it reduces IQ by lowering the nMOS power to 20% of the nominal value)
darienf 20:6d2af70c92ab 367 0: FET Scaling only enabled during the buck turn-on sequence
darienf 20:6d2af70c92ab 368 1: FET Scaling enabled during the buck turn-on sequence and also in the buck active state.");
darienf 20:6d2af70c92ab 369 // register 0x1d
darienf 20:6d2af70c92ab 370 Descriptions(0x1d).Add("Bit 7", "StartOff", @"Start In Off
darienf 20:6d2af70c92ab 371 1: The device will start in the off mode.
darienf 20:6d2af70c92ab 372 0: The device begins the power-on sequence after a VCC power on reset.");
darienf 20:6d2af70c92ab 373 Descriptions(0x1d).Add("Bit 6", "GlbPasDsc", @"Global Passive Discharge
darienf 20:6d2af70c92ab 374 0: Passive discharge loads are disabled in off mode.
darienf 20:6d2af70c92ab 375 1: Passive discharge loads are enabled in off mode.");
darienf 20:6d2af70c92ab 376 Descriptions(0x1d).Add("Bit 0", "StayOn", @"Processor Handshake
darienf 20:6d2af70c92ab 377 This bit is used to ensure that the processor booted correctly. This bit must be set within 5s of power-on to
darienf 20:6d2af70c92ab 378 prevent the part from shutting down and returning to the power-off condition. This bit has no effect after being
darienf 20:6d2af70c92ab 379 set.
darienf 20:6d2af70c92ab 380 0 = Shutdown 5s after power-on
darienf 20:6d2af70c92ab 381 1 = Stay on");
darienf 20:6d2af70c92ab 382 // register 0x1e
darienf 20:6d2af70c92ab 383 Descriptions(0x1e).Add("Bit 1", "BBBUVLOSel", @"Buck/Buck-Boost UVLO Select
darienf 20:6d2af70c92ab 384 0: Buck and buck-boost are turned off/on according to LIN_UVLO thresholds
darienf 20:6d2af70c92ab 385 1: Buck and buck-boost are turned off/on according to BIN_UVLO thresholds");
darienf 20:6d2af70c92ab 386 Descriptions(0x1e).Add("Bit 0", "LDOUVLOsel", @"LDO UVLO Select
darienf 20:6d2af70c92ab 387 0: LDO is turned off/on according to LIN_UVLO thresholds
darienf 20:6d2af70c92ab 388 1: LDO is turned off/on according to BIN_UVLO thresholds");
darienf 20:6d2af70c92ab 389 // register 0x1f
darienf 20:6d2af70c92ab 390 Descriptions(0x1f).Add("Bit [7:0]", "PWROFFCMD[7:0]", @"Power-Off Command
darienf 20:6d2af70c92ab 391 Writing 0xB2 to this register will place the part in the off state/seal mode. Waking up the device from this mode
darienf 20:6d2af70c92ab 392 requires a low pulse on /KIN.
darienf 20:6d2af70c92ab 393 All other codes = Do nothing");
darienf 20:6d2af70c92ab 394 }
darienf 20:6d2af70c92ab 395 }
darienf 20:6d2af70c92ab 396 }