repo time

Dependencies:   mbed MAX14720 MAX30205 USBDevice

Revision:
20:6d2af70c92ab
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HspGuiSourceV301/HSPGui/DeviceDescriptions/MAX14720Info.cs	Tue Apr 06 06:41:40 2021 +0000
@@ -0,0 +1,396 @@
+/*******************************************************************************
+* Copyright (C) 2016 Maxim Integrated Products, Inc., All rights Reserved.
+* 
+* This software is protected by copyright laws of the United States and
+* of foreign countries. This material may also be protected by patent laws
+* and technology transfer regulations of the United States and of foreign
+* countries. This software is furnished under a license agreement and/or a
+* nondisclosure agreement and may only be used or reproduced in accordance
+* with the terms of those agreements. Dissemination of this information to
+* any party or parties not specified in the license agreement and/or
+* nondisclosure agreement is expressly prohibited.
+*
+* The above copyright notice and this permission notice shall be included
+* in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
+* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+* OTHER DEALINGS IN THE SOFTWARE.
+*
+* Except as contained in this notice, the name of Maxim Integrated
+* Products, Inc. shall not be used except as stated in the Maxim Integrated
+* Products, Inc. Branding Policy.
+*
+* The mere transfer of this software does not imply any licenses
+* of trade secrets, proprietary technology, copyrights, patents,
+* trademarks, maskwork rights, or any other form of intellectual
+* property whatsoever. Maxim Integrated Products, Inc. retains all
+* ownership rights.
+*******************************************************************************
+*/
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HealthSensorPlatform.DeviceDescriptions;
+using RPCSupport.DeviceSupport;
+
+namespace Maxim.CustomControls
+{
+    /// <summary>
+    /// PMIC Register Information
+    /// </summary>
+    public class MAX14720Info : Device
+    {
+
+        public MAX14720Info()
+        {
+            deviceDetails = new DeviceDetails();
+            deviceDetails.InitI2c(2, 0x54);
+
+            initalizeDescription();
+
+        }
+
+        void initalizeDescription()
+        {
+            Info = new RegisterInfo[] {
+                new RegisterInfo("ChipId",0x00),
+                new RegisterInfo("ChipRev",0x01),
+                new RegisterInfo("BoostCDiv",0x03),
+                new RegisterInfo("BoostISet",0x04),
+                new RegisterInfo("BoostVSet",0x05),
+                new RegisterInfo("BoostCfg",0x06),
+                new RegisterInfo("BuckVSet",0x07),
+                new RegisterInfo("BuckCfg",0x08),
+                new RegisterInfo("BuckISet",0x09),
+                new RegisterInfo("LDOVSet",0x0A),
+                new RegisterInfo("LDOCfg",0x0B),
+                new RegisterInfo("SwitchCfg",0x0C),
+                new RegisterInfo("BatTime",0x0D),
+                new RegisterInfo("BatCfg",0x0E),
+                new RegisterInfo("BatBCV",0x0F),
+                new RegisterInfo("BatOCV",0x10),
+                new RegisterInfo("BattLCV",0x11),
+                new RegisterInfo("MONCfg",0x19),
+                new RegisterInfo("BoostCfg",0x1A),
+                new RegisterInfo("PinStat",0x1B),
+                new RegisterInfo("BBBExtra",0x1C),
+                new RegisterInfo("HandShk",0x1D),
+                new RegisterInfo("UVLOCfg",0x1E),
+                new RegisterInfo("PWROFF",0x1F)
+           };
+
+            // register 0x00
+            Descriptions(0x00).Add("Bit [7:0]", "ChipId", "Version information");
+            // register 0x01
+            Descriptions(0x01).Add("Bit [7:0]", "ChipRev", "Revison Information");
+            // register 0x03
+            Descriptions(0x03).Add("Bit 7", "ClkDivEn", @"Boost Current-Limited Output Mode Enable
+This allows the boost regulator to be operated in a current limited output mode.
+0: Normal Operation, Full Output Current Capability
+1: Divided Clock Current Limited Mode
+When the clock divider is enabled, the boost is operated with a fixed peak current limit and programmable
+frequency. The peak current is set by BoostISet[2:0] and the switching frequency is determined by
+ClkDivSet[6:0]. The regulator will stop switching when the voltage is above the set point and will only run when
+the voltage is below the output setting. This mode can only be enabled once the output voltage is set higher
+than the input voltage.");
+            // register 0x03
+            Descriptions(0x03).Add("Bit [6:0]", "ClkDivSet", @"Current-Limited Boost Clock Divider Setting
+When the current limited mode is enabled, the frequency of the boost regulator in current limited mode will be
+the frequency of the oscillator divided by the value of (10 + ClkDivSet[6:0]). The range is fOSC/10 to fOSC/137.");
+            // register 0x04
+            Descriptions(0x04).Add("Bit [2:0]", "BoostISet", @"Buck-Boost Peak Current-Limit Setting
+000: 0 (Minimum On-Time)
+001: 50mA
+010: 100mA
+011: 150mA
+100: 200mA
+101: 250mA
+110: 300mA
+111: 350mA");
+            // register 0x05
+            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.
+2.5V to 5.0V, linear scale, 100mV increments
+000000 = 2.5V
+000001 = 2.6V
+…
+011001 = 5.0V
+> 011001 = 5.0V");
+            // register 0x06
+            Descriptions(0x06).Add("Bit [7:5]", "BoostSeq[2:0]", @"Boost Enable Configuration (Read-Only)
+000 = Disabled
+001 = Reserved
+010 = Enabled at 0% of Boot/POR Process Delay Control
+011 = Enabled at 25% of Boot/POR Process Delay Control
+100 = Enabled at 50% of Boot/POR Process Delay Control
+101 = Reserved
+110 = Controlled by HVEN (MAX14750)
+111 = Controlled by BoostEn [1:0] after 100% of Boot/POR Process Delay Control (MAX14720)");
+            Descriptions(0x06).Add("Bit [4:3]", "BoostEn[1:0]", @"Boost Enable Configuration (effective only when BoostSeq[2:0] == 111)
+00 = Disabled. Active discharge behavior depends on BoostActDsc.
+01 = Enabled
+10 = Enabled when MPC is high
+11 = Reserved");
+            Descriptions(0x07).Add("Bit 1", "BoostEMI", @"Boost EMI reduction. Dampens ringing of the inductor when in discontinuous mode
+0 = EMI damping active (improve EMI)
+1 = EMI damping disabled (improve Efficiency)");
+            Descriptions(0x08).Add("Bit 0", "BoostInd", @"Boost Inductance Select
+1 = Inductance is 3.3µH
+0 = Inductance is 4.7µH");
+            // register 0x07
+            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.
+1.0V to 2.0V, linear scale, 25mV increments
+000000 = 1.000V
+000001 = 1.025V
+…
+101000 = 2.0V
+> 101000 = 2.0V");
+            // register 0x08
+            Descriptions(0x08).Add("Bit [7:6]", "BuckSeq[2:0]", @"Buck Enable Configuration (Read-Only)
+000 = Disabled
+001 = Reserved
+010 = Enabled at 0% of Boot/POR Process Delay Control
+011 = Enabled at 25% of Boot/POR Process Delay Control
+100 = Enabled at 50% of Boot/POR Process Delay Control
+101 = Reserved
+110 = Controlled by BEN (MAX14750)
+111 = Controlled by BuckEn [1:0] after 100% of Boot/POR Process Delay Control");
+            Descriptions(0x08).Add("Bit [4:3]", "BuckEn[1:0]", @"Buck Enable Configuration (effective only when BuckSeq[2:0] == 111)
+00 = Disabled. Active discharge behavior depends on BuckActDsc.
+01 = Enabled
+10 = Enabled when MPC is high
+11 = Reserved");
+            Descriptions(0x08).Add("Bit [2:1]", "BuckMd[1:0]", @"Buck Mode Select
+00 = Burst mode
+01 = Forced PWM mode
+10 = Forced PWM mode when MPC is high
+11 = Reserved");
+            Descriptions(0x08).Add("Bit 0", "BuckFst", @"Buck Fast Start
+0 = Normal startup current limit
+1 = Double the startup current to reduce the startup time by half");
+            // register 0x09
+            Descriptions(0x09).Add("Bit [7:5]", "BuckISet[2:0]", @"Buck Peak Current Limit Setting
+000: 50mA
+001: 100mA
+010: 150mA
+011: 200mA
+100: 250mA
+101: 300mA
+110: 350mA
+111: 400mA");
+            Descriptions(0x09).Add("Bit 4", "BuckCfg", @"Buck Configuration
+0 = set to 0 for burst mode
+1 = set to 1 for FPWM mode");
+            Descriptions(0x09).Add("Bit 3", "BuckInd", @"Buck Inductance Select
+0 = Inductance is 2.2µH
+1 = Inductance is 4.7µH");
+            Descriptions(0x09).Add("Bit 2", "BuckHysOff", @"Buck Hysteresis Off
+0 = Enable comparator hysteresis
+1 = Disable comparator hysteresis (recommended to reduce voltage ripple)");
+            Descriptions(0x09).Add("Bit 1", "BuckMinOT", @"Buck Minimum On-Time
+0 = Enable deglitch delay on comparator for better efficiency
+1 = Disable deglitch delay on comparator to minimize voltage ripple");
+            Descriptions(0x09).Add("Bit 0", "BuckInteg", @"Buck Integrate
+0 = Helps stabilize the buck regulator for high currents with small output capacitor
+1 = Better load regulation at high current (recommended for output capacitance > 6µF)");
+            // register 0x0a
+            Descriptions(0x0A).Add("Bit [4:0]", "LDOVSet[4:0]", @"LDO Output Voltage Setting
+0.9V to 4V, linear scale, 100mV increments
+00000 = 0.9V
+00001 = 1.0V
+…
+10000 = 2.5V
+…
+11111 = 4.0V");
+            // register 0x0b
+            Descriptions(0x0B).Add("Bit [7:5]", "LDOSeq[2:0]", @"LDO Enable Configuration (Read-Only)
+000 = Disabled
+001 = Enabled always when BAT/SYS is present
+010 = Enabled at 0% of Boot/POR Process Delay Control
+011 = Enabled at 25% of Boot/POR Process Delay Control
+100 = Enabled at 50% of Boot/POR Process Delay Control
+101 = Disabled
+110 = Controlled by LEN (MAX14750)
+111 = Controlled by LDOEn[1:0] after 100% of Boot/POR Process Delay Control");
+            Descriptions(0x0B).Add("Bit 4", "LDOActDsc", @"LDO Active Discharge Control
+0: LDO output will be discharged only entering off and hard-reset modes.
+1: LDO output will be discharged only entering off and hard-reset modes and when the enable is low.");
+            Descriptions(0x0B).Add("Bit 3", "LDOActDsc", @"LDO Active Discharge Control
+0: LDO output will be actively discharged only entering off and hard-reset modes.
+1: LDO output will be actively discharged only entering off and hard-reset modes and when the enable is low.");
+            Descriptions(0x0B).Add("Bit [2:1]", "LDOEn[1:0]", @"LDO Enable Configuration (effective only when LDOSeq[2:0] == 111)
+00 = Disabled
+01 = Enabled
+10 = Enabled when MPC is high
+11 = Reserved");
+            Descriptions(0x0B).Add("Bit 0", "LDOMode", @"LDO Mode Control
+0 = Normal LDO operating mode
+1 = Load switch mode. FET is either fully on or off depending on the state of LDOEn. When FET is on, the
+output is unregulated and is not affected by UVLO’s control block. This setting is internally latched and can
+change only when the LDO is disabled.");
+            // register 0x0c
+            Descriptions(0x0C).Add("Bit [7:5]", "SWSeq[2:0]", @"SW Enable Configuration (Read-Only)
+000 = Disabled
+001 = Enabled always when BAT/SYS is present
+010 = Enabled at 0% of Boot/POR Process Delay Control
+011 = Enabled at 25% of Boot/POR Process Delay Control
+100 = Enabled at 50% of Boot/POR Process Delay Control
+101 = Disabled
+110 = Controlled by SWEN (MAX14750)
+111 = Controlled by SWEn[1:0] after 100% of Boot/POR Process Delay Control");
+            Descriptions(0x0C).Add("Bit [2:1]", "SWSoftStart", @"SW Enable Configuration (effective only when SWSeq[2:0] == 111)
+00 = Disabled
+01 = Enabled
+10 = Enabled when MPC is high
+11 = Reserved");
+            // register 0x0d
+            Descriptions(0x0d).Add("Bit [5:4]", "BCVTm[1:0]", @"Battery Cell Voltage Timing
+00: Skip battery measurement
+01: Take battery measurement after 10ms delay
+10: Take battery measurement after 100ms delay
+11: Take battery measurement after 1000ms delay");
+            Descriptions(0x0d).Add("Bit [3:2]", "OCVTm[1:0]", @"Battery Open Cell Voltage Timing
+If this step is skipped, LCV measurement will be taken with switch closed
+00: Skip OCV measurement
+01: Take OCV measurement after 10ms delay
+10: Take OCV measurement after 100ms delay
+11: Take OCV measurement after 1000ms delay");
+            Descriptions(0x0d).Add("Bit [1:0]", "LCVTm[1:0]", @"Battery Loaded Cell Voltage Timing
+00: Skip LCV measurement
+01: Take LCV measurement after 10ms delay
+10: Take LCV measurement after 100ms delay
+11: Take LCV measurement after 1000ms delay");
+            // register 0x0e
+            Descriptions(0x0e).Add("Bit 7", "BIA", @"Battery Impedance Active
+Write 1 to start battery impedance measurement. If the measurement is already running, the write is ignored.
+Bit will remain high until the measurement is completed.
+0: Battery impedance measurement is not ongoing
+1: Battery impedance measurement is ongoing");
+            Descriptions(0x0e).Add("Bit 6", "BIMAbort", @"Battery Impedance Measurement Skip
+Write 1 to immediately abort the battery impedance measurement
+0: Battery impedance measurement is aborted
+1: Battery impedance measurement is not aborted yet");
+            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
+delay time allows VCC to recover its unloaded value before closing the power switch again.
+0: Wait second delay time
+1: Skip second delay time");
+            Descriptions(0x0e).Add("Bit [2:0]", "BatimpCur[2:0]", @"Battery Impedance Current
+000: 0
+001: 250µA
+010: 500µA
+011: 1mA
+100: 2mA
+101: 4mA
+110: 8mA
+111: Reserved");
+            // register 0x0f
+            Descriptions(0x0f).Add("Bit [7:0]", "BatV[7:0]", @"Battery Voltage Measurement Result
+8-bit battery voltage measurement: VCC = [ 2.6 * (BCV[7:0]/255) + 1.1 ] V
+If BCVTm[2:0] = 00, BCV[7:0] = 0000 0000.
+If error occurs or the measurement is aborted, BCV[7:0] =1111 1111.");
+            // register 0x10
+            Descriptions(0x10).Add("Bit [7:0]", "BatOCV[7:0]", @"Battery Voltage Measurement Result
+8-bit battery voltage measurement: VCC = [2.6 x (OCV[7:0]/255) + 1.1] V
+If OCVTm[2:0] = 00, OCV[7:0] =0000 0000.
+If error occurs or the measurement is aborted, OCV[7:0] =1111 1111.");
+            // register 0x11
+            Descriptions(0x11).Add("Bit [7:0]", "LCV[7:0]", @"Battery Voltage Measurement Result
+8 bit battery voltage measurement: VCC = [2.6 x ( LCV[7:0]/255) + 1.1] V
+If LCVTm[2:0] = 00, BCV[7:0] = 0000 0000.
+If error occurs or the measurement is aborted, LCV[7:0] =1111 1111.");
+            // register 0x19
+            Descriptions(0x19).Add("Bit 7", "MonEn", @"Monitor Enable
+0 = Monitor function disabled
+1 = Monitor function enabled");
+            Descriptions(0x19).Add("Bit 3", "MONtHiZ", @"MON OFF MODE Condition
+0 = Pulled Low by a 100k Pulldown Resistor
+1 = Hi-Z");
+            Descriptions(0x19).Add("Bit [2:0]", "MONCtr[2:0]", @"MON Pin Source Selection
+000 = MON connected to SWIN
+001 = MON connected to SWOUT
+010 = MON connected to BIN
+011 = MON connected to BOUT
+100 = MON connected to HVIN
+101 = MON connected to HVOUT
+110 = MON connected to LIN
+111 = MON connected to LOUT");
+            // register 0x1a
+            Descriptions(0x1a).Add("Bit [7:4]", "PwrRstCfg[4:0]", @"0000: Pin Controlled (MAX14750)
+0110: Push-Button Monitor (MAX14720)");
+            Descriptions(0x1a).Add("Bit 3", "SftRstCfg", @"Soft Reset Register Default
+0 = Registers do not reset to default values on soft reset
+1 = Registers reset to default values on soft reset");
+            Descriptions(0x1a).Add("Bit 2", "PFNPUDCfg", @"KIN Pullup/Pulldown Configuration
+0 = Pullups and pulldowns on control lines disabled
+1 = Selective pullups and pulldowns enabled on KIN pin");
+            Descriptions(0x1a).Add("Bit [1:0]", "BootDly[1:0]", @"Boot/POR Process tRESET Delay Control
+00 = 80ms
+01 = 120ms
+10 = 220ms
+11 = 420ms");
+            // register 0x1b
+            Descriptions(0x1a).Add("Bit 3", "/KIN", @"Input State
+0 = Pin low
+1 = Pin high");
+            Descriptions(0x1a).Add("Bit 2", "/KOUT", @"Input State
+0 = Pin low
+1 = Pin high");
+            Descriptions(0x1a).Add("Bit 1", "MPC", @"Input State
+0 = Pin low
+1 = Pin high");
+            Descriptions(0x1a).Add("Bit 0", "/RST", @"Input State
+0 = Pin low
+1 = Pin high");
+            // register 0x1c
+            Descriptions(0x1c).Add("Bit 7", "BoostHysOff", @"Boost Hysteresis Off
+0 = Enable comparator hysteresis
+1 = Disable comparator hysteresis (recommended to reduce voltage ripple)");
+            Descriptions(0x1c).Add("Bit 6", "BoostPacDsc", @"Boost Passive Discharge Control
+0: Boost output will be discharged only when entering off and hard-reset modes.
+1: Boost output will be discharged only when entering off and hard-reset modes and when BoostEn is set to 00.");
+            Descriptions(0x1c).Add("Bit 5", "BoostActDsc", @"Boost Active Discharge Control
+0: Boost output will be discharged only when entering off and hard-reset modes.
+1: Boost output will be discharged only when entering off and hard-reset modes and when BoostEn is set to 00.");
+            Descriptions(0x1c).Add("Bit 2", "BuckActDsc", @"Buck Passive Discharge Control
+0: Buck output will be discharged only when entering off and hard-reset modes.
+1: Buck output will be discharged only when entering off and hard-reset modes and when BuckEn is set to 00.");
+            Descriptions(0x1c).Add("Bit 1", "BuckActDsc", @"Buck Active Discharge Control
+0: Buck output will be discharged only when entering off and hard-reset modes.
+1: Buck output will be discharged only when entering off and hard-reset modes and when BuckEn is set to 00.");
+            Descriptions(0x1c).Add("Bit 0", "BuckFScl", @"Buck Force FET scaling (it reduces IQ by lowering the nMOS power to 20% of the nominal value)
+0: FET Scaling only enabled during the buck turn-on sequence
+1: FET Scaling enabled during the buck turn-on sequence and also in the buck active state.");
+            // register 0x1d
+            Descriptions(0x1d).Add("Bit 7", "StartOff", @"Start In Off
+1: The device will start in the off mode.
+0: The device begins the power-on sequence after a VCC power on reset.");
+            Descriptions(0x1d).Add("Bit 6", "GlbPasDsc", @"Global Passive Discharge
+0: Passive discharge loads are disabled in off mode.
+1: Passive discharge loads are enabled in off mode.");
+            Descriptions(0x1d).Add("Bit 0", "StayOn", @"Processor Handshake
+This bit is used to ensure that the processor booted correctly. This bit must be set within 5s of power-on to
+prevent the part from shutting down and returning to the power-off condition. This bit has no effect after being
+set.
+0 = Shutdown 5s after power-on
+1 = Stay on");
+            // register 0x1e
+            Descriptions(0x1e).Add("Bit 1", "BBBUVLOSel", @"Buck/Buck-Boost UVLO Select
+0: Buck and buck-boost are turned off/on according to LIN_UVLO thresholds
+1: Buck and buck-boost are turned off/on according to BIN_UVLO thresholds");
+            Descriptions(0x1e).Add("Bit 0", "LDOUVLOsel", @"LDO UVLO Select
+0: LDO is turned off/on according to LIN_UVLO thresholds
+1: LDO is turned off/on according to BIN_UVLO thresholds");
+            // register 0x1f
+            Descriptions(0x1f).Add("Bit [7:0]", "PWROFFCMD[7:0]", @"Power-Off Command
+Writing 0xB2 to this register will place the part in the off state/seal mode. Waking up the device from this mode
+requires a low pulse on /KIN.
+All other codes = Do nothing");
+        }
+    }
+}