![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
repo time
Dependencies: mbed MAX14720 MAX30205 USBDevice
HspGuiSourceV301/HSPGui/DeviceDescriptions/MAX30101Info.cs@20:6d2af70c92ab, 2021-04-06 (annotated)
- Committer:
- darienf
- Date:
- Tue Apr 06 06:41:40 2021 +0000
- Revision:
- 20:6d2af70c92ab
another repo
Who changed what in which revision?
User | Revision | Line number | New 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 Maxim.CustomControls; |
darienf | 20:6d2af70c92ab | 41 | using HealthSensorPlatform.DeviceDescriptions; |
darienf | 20:6d2af70c92ab | 42 | using RPCSupport.DeviceSupport; |
darienf | 20:6d2af70c92ab | 43 | |
darienf | 20:6d2af70c92ab | 44 | namespace Maxim.CustomControls |
darienf | 20:6d2af70c92ab | 45 | { |
darienf | 20:6d2af70c92ab | 46 | public class MAX30101Info : Device |
darienf | 20:6d2af70c92ab | 47 | { |
darienf | 20:6d2af70c92ab | 48 | |
darienf | 20:6d2af70c92ab | 49 | public MAX30101Info() |
darienf | 20:6d2af70c92ab | 50 | { |
darienf | 20:6d2af70c92ab | 51 | deviceDetails = new DeviceDetails(); |
darienf | 20:6d2af70c92ab | 52 | deviceDetails.InitI2c(2, 0xAE); |
darienf | 20:6d2af70c92ab | 53 | |
darienf | 20:6d2af70c92ab | 54 | Info = new RegisterInfo[] { |
darienf | 20:6d2af70c92ab | 55 | new RegisterInfo("Interrupt Status 1",0x00), |
darienf | 20:6d2af70c92ab | 56 | new RegisterInfo("Interrupt Status 2",0x01), |
darienf | 20:6d2af70c92ab | 57 | new RegisterInfo("Interrupt Enable 1",0x02), |
darienf | 20:6d2af70c92ab | 58 | new RegisterInfo("Interrupt Enable 2",0x03), |
darienf | 20:6d2af70c92ab | 59 | new RegisterInfo("FIFO Write Pointer",0x04), |
darienf | 20:6d2af70c92ab | 60 | new RegisterInfo("Over Flow Counter",0x05), |
darienf | 20:6d2af70c92ab | 61 | new RegisterInfo("FIFO Read Pointer",0x06), |
darienf | 20:6d2af70c92ab | 62 | new RegisterInfo("FIFO Data Register",0x07), |
darienf | 20:6d2af70c92ab | 63 | new RegisterInfo("FIFO Configuration",0x08), |
darienf | 20:6d2af70c92ab | 64 | new RegisterInfo("Mode Configuration",0x09), |
darienf | 20:6d2af70c92ab | 65 | new RegisterInfo("SPO2 Configuration",0x0A), |
darienf | 20:6d2af70c92ab | 66 | new RegisterInfo("LED1 Pulse Amplitude (Red)",0x0C), |
darienf | 20:6d2af70c92ab | 67 | new RegisterInfo("LED2 Pulse Amplitude (IR)",0x0D), |
darienf | 20:6d2af70c92ab | 68 | new RegisterInfo("LED3 Pulse Amplitude (Green)",0x0E), |
darienf | 20:6d2af70c92ab | 69 | new RegisterInfo("LED4 Pulse Amplitude (Green)",0x0F), |
darienf | 20:6d2af70c92ab | 70 | new RegisterInfo("Proximity Mode LED Pulse Amplitude",0x10), |
darienf | 20:6d2af70c92ab | 71 | new RegisterInfo("Multi-LED Mode Control Register timeslot 1 and 2",0x11), |
darienf | 20:6d2af70c92ab | 72 | new RegisterInfo("Multi-LED Mode Control Register timeslot 3 and 4",0x12), |
darienf | 20:6d2af70c92ab | 73 | new RegisterInfo("Die Temperature integer",0x1F), |
darienf | 20:6d2af70c92ab | 74 | new RegisterInfo("Die Temperature fraction",0x20), |
darienf | 20:6d2af70c92ab | 75 | new RegisterInfo("Die Temperature Config",0x21), |
darienf | 20:6d2af70c92ab | 76 | new RegisterInfo("Proximity Interrupt Threshold",0x30), |
darienf | 20:6d2af70c92ab | 77 | new RegisterInfo("Revision ID",0xFE), |
darienf | 20:6d2af70c92ab | 78 | new RegisterInfo("Part ID",0xFF) |
darienf | 20:6d2af70c92ab | 79 | }; |
darienf | 20:6d2af70c92ab | 80 | |
darienf | 20:6d2af70c92ab | 81 | // register 0x00 |
darienf | 20:6d2af70c92ab | 82 | Descriptions(0x00).Add("Bit 7", "A_FULL", "FIFO Almost Full Flag"); |
darienf | 20:6d2af70c92ab | 83 | Descriptions(0x00).Add("Bit 6", "PPG_RDY", "New FIFO Data Ready"); |
darienf | 20:6d2af70c92ab | 84 | Descriptions(0x00).Add("Bit 5", "ALC_OVF", "Ambient Light Cancellation Overflow"); |
darienf | 20:6d2af70c92ab | 85 | Descriptions(0x00).Add("Bit 4", "PROX_INT", "Proximity Threshold Triggered"); |
darienf | 20:6d2af70c92ab | 86 | Descriptions(0x00).Add("Bit 0", "PWR_RDY", "Power Ready Flag"); |
darienf | 20:6d2af70c92ab | 87 | // register 0x01 |
darienf | 20:6d2af70c92ab | 88 | Descriptions(0x01).Add("Bit 1", "DIE_TEMP_RDY", "Internal Temperature Ready Flag"); |
darienf | 20:6d2af70c92ab | 89 | // register 0x02 |
darienf | 20:6d2af70c92ab | 90 | Descriptions(0x02).Add("Bit 7", "A_FULL_EN", "FIFO Almost Full Flag Enable"); |
darienf | 20:6d2af70c92ab | 91 | Descriptions(0x02).Add("Bit 6", "PPG_RDY_EN", "New FIFO Data Ready Enable"); |
darienf | 20:6d2af70c92ab | 92 | Descriptions(0x02).Add("Bit 5", "ALC_OVF_EN", "Ambient Light Cancellation Overflow Enable"); |
darienf | 20:6d2af70c92ab | 93 | Descriptions(0x02).Add("Bit 4", "PROX_INT_EN", "Proximity Threshold Enable"); |
darienf | 20:6d2af70c92ab | 94 | // register 0x03 |
darienf | 20:6d2af70c92ab | 95 | Descriptions(0x03).Add("Bit 1", "DIE_TEMP_RDY_EN", "Internal Temperature Ready Flag Enable"); |
darienf | 20:6d2af70c92ab | 96 | // register 0x04 |
darienf | 20:6d2af70c92ab | 97 | Descriptions(0x04).Add("Bit [4:0]", "FIFO_WR_PTR[4:0]", "FIFO Write Pointer"); |
darienf | 20:6d2af70c92ab | 98 | // register 0x05 |
darienf | 20:6d2af70c92ab | 99 | Descriptions(0x05).Add("Bit [4:0]", "OVF_COUNTER[4:0]", "FIFO Overflow Counter"); |
darienf | 20:6d2af70c92ab | 100 | // register 0x06 |
darienf | 20:6d2af70c92ab | 101 | Descriptions(0x06).Add("Bit [4:0]", "FIFO_RD_PTR[4:0]", "FIFO Read Pointer"); |
darienf | 20:6d2af70c92ab | 102 | // register 0x07 |
darienf | 20:6d2af70c92ab | 103 | Descriptions(0x07).Add("Bit [7:0]", "FIFO_DATA[7:0]", "FIFO Data Register"); |
darienf | 20:6d2af70c92ab | 104 | // register 0x08 |
darienf | 20:6d2af70c92ab | 105 | Descriptions(0x08).Add("Bit [7:5]", "SMP_AVE[2:0]", "Sample Averaging"); |
darienf | 20:6d2af70c92ab | 106 | Descriptions(0x08).Add("Bit 4", "FIFO_ROLLOVER_EN", "FIFO Rolls on Full"); |
darienf | 20:6d2af70c92ab | 107 | Descriptions(0x08).Add("Bit [3:0]", "FIFO_A_FULL[3:0]", "FIFO Almost Full Value"); |
darienf | 20:6d2af70c92ab | 108 | // register 0x09 |
darienf | 20:6d2af70c92ab | 109 | Descriptions(0x09).Add("Bit 7", "SHDN", "Shutdown Control"); |
darienf | 20:6d2af70c92ab | 110 | Descriptions(0x09).Add("Bit 6", "RESET", "Reset Control"); |
darienf | 20:6d2af70c92ab | 111 | Descriptions(0x09).Add("Bit [2:0]", "MODE[2:0]", "Mode Control"); |
darienf | 20:6d2af70c92ab | 112 | // register 0x0a |
darienf | 20:6d2af70c92ab | 113 | Descriptions(0x0a).Add("Bit [6:5]", "SPO2_ADC_RGE[1:0]", "SP02 ADC Range Control"); |
darienf | 20:6d2af70c92ab | 114 | Descriptions(0x0a).Add("Bit [4:2]", "SPO2_SR[2:0]", "SP02 Sample Rate Control"); |
darienf | 20:6d2af70c92ab | 115 | Descriptions(0x0a).Add("Bit [1:0]", "LED_PW[1:0]", "LED Pulse Width Control and ADC Resolution"); |
darienf | 20:6d2af70c92ab | 116 | // register 0x0c |
darienf | 20:6d2af70c92ab | 117 | Descriptions(0x0c).Add("Bit [7:0]", "LED1_PA[7:0]", "LED1 Pulse Amplitude (RED)"); |
darienf | 20:6d2af70c92ab | 118 | Descriptions(0x0d).Add("Bit [7:0]", "LED2_PA[7:0]", "LED2 Pulse Amplitude (IR)"); |
darienf | 20:6d2af70c92ab | 119 | // register 0x0f |
darienf | 20:6d2af70c92ab | 120 | Descriptions(0x0f).Add("Bit [7:0]", "LED4_PA[7:0]", "LED4 Pulse Amplitude (Green)"); |
darienf | 20:6d2af70c92ab | 121 | // register 0x10 |
darienf | 20:6d2af70c92ab | 122 | Descriptions(0x10).Add("Bit [7:0]", "PILOT_PA[7:0]", "Proximity Mode LED Pulse Amplitude"); |
darienf | 20:6d2af70c92ab | 123 | // register 0x11 |
darienf | 20:6d2af70c92ab | 124 | Descriptions(0x11).Add("Bit [6:4]", "SLOT2[2:0]", "Time slot 2"); |
darienf | 20:6d2af70c92ab | 125 | Descriptions(0x11).Add("Bit [2:0]", "SLOT1[2:0]", "Time slot 1"); |
darienf | 20:6d2af70c92ab | 126 | // register 0x12 |
darienf | 20:6d2af70c92ab | 127 | Descriptions(0x12).Add("Bit [6:4]", "SLOT4[2:0]", "Time slot 4"); |
darienf | 20:6d2af70c92ab | 128 | Descriptions(0x12).Add("Bit [2:0]", "SLOT3[2:0]", "Time slot 3"); |
darienf | 20:6d2af70c92ab | 129 | // register 0x1f |
darienf | 20:6d2af70c92ab | 130 | Descriptions(0x1f).Add("Bit [7:0]", "TINT[7:0]", "Temperature Integer"); |
darienf | 20:6d2af70c92ab | 131 | // register 0x20 |
darienf | 20:6d2af70c92ab | 132 | Descriptions(0x20).Add("Bit [7:0]", "TFRAC[3:0]", "Temperature Fraction"); |
darienf | 20:6d2af70c92ab | 133 | // register 0x21 |
darienf | 20:6d2af70c92ab | 134 | Descriptions(0x21).Add("Bit 0", "TEMP_EN", "Temperature Enable"); |
darienf | 20:6d2af70c92ab | 135 | // register 0x30 |
darienf | 20:6d2af70c92ab | 136 | Descriptions(0x30).Add("Bit [7:0]", "PROX_INT_THRESH[7:0]", "Proximity Mode Interrupt Threshold"); |
darienf | 20:6d2af70c92ab | 137 | // register 0xfe |
darienf | 20:6d2af70c92ab | 138 | Descriptions(0xfe).Add("Bit [7:0]", "REV_ID[7:0]", "Revision ID"); |
darienf | 20:6d2af70c92ab | 139 | // register 0xff |
darienf | 20:6d2af70c92ab | 140 | Descriptions(0xff).Add("Bit [7:0]", "PART_ID[7:0]", "Part ID"); |
darienf | 20:6d2af70c92ab | 141 | } |
darienf | 20:6d2af70c92ab | 142 | } |
darienf | 20:6d2af70c92ab | 143 | } |