Darien Figueroa / Mbed OS Final_Program

Dependencies:   USBDevice

Committer:
darienf
Date:
Sat Apr 10 03:05:42 2021 +0000
Revision:
3:36de8b9e4b1a
ayoooo

Who changed what in which revision?

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