Canberk Sönmez
/
LTC2945_Monitor
LTC2945 ported
LTC2945.h@4:d32eaca53504, 2017-09-20 (annotated)
- Committer:
- odtulumbedder
- Date:
- Wed Sep 20 09:03:56 2017 +0000
- Revision:
- 4:d32eaca53504
- Parent:
- 0:6be57f391716
I decided to remove the C-linkage specifiers, they are really not that necessary.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
odtulumbedder | 0:6be57f391716 | 1 | /*! |
odtulumbedder | 0:6be57f391716 | 2 | LTC2945: 12-Bit Wide Range Power Monitor |
odtulumbedder | 0:6be57f391716 | 3 | |
odtulumbedder | 0:6be57f391716 | 4 | @verbatim |
odtulumbedder | 0:6be57f391716 | 5 | |
odtulumbedder | 0:6be57f391716 | 6 | The LTC2945 is a rail-to-rail system monitor that measures current, voltage, and |
odtulumbedder | 0:6be57f391716 | 7 | power. It features an operating range of 2.7V to 80V and includes a shunt |
odtulumbedder | 0:6be57f391716 | 8 | regulator for supplies above 80V to allow flexibility in the selection of input |
odtulumbedder | 0:6be57f391716 | 9 | supply. The current measurement range of 0V to 80V is independent of the input |
odtulumbedder | 0:6be57f391716 | 10 | supply. An onboard 0.75% accurate 12-bit ADC measures load current, input |
odtulumbedder | 0:6be57f391716 | 11 | voltage and an auxiliary external voltage. A 24-bit power value is generated by |
odtulumbedder | 0:6be57f391716 | 12 | digitally multiplying the measured 12-bit load current and input voltage data. |
odtulumbedder | 0:6be57f391716 | 13 | Minimum and maximum values are stored and an overrange alert with programmable |
odtulumbedder | 0:6be57f391716 | 14 | thresholds minimizes the need for software polling. Data is reported via a |
odtulumbedder | 0:6be57f391716 | 15 | standard I2C interface. Shutdown mode reduces power consumption to 20uA. |
odtulumbedder | 0:6be57f391716 | 16 | standard I2C interface. Shutdown mode reduces power consumption to 20uA. |
odtulumbedder | 0:6be57f391716 | 17 | |
odtulumbedder | 0:6be57f391716 | 18 | I2C DATA FORMAT (MSB FIRST): |
odtulumbedder | 0:6be57f391716 | 19 | |
odtulumbedder | 0:6be57f391716 | 20 | Data Out: |
odtulumbedder | 0:6be57f391716 | 21 | Byte #1 Byte #2 Byte #3 |
odtulumbedder | 0:6be57f391716 | 22 | |
odtulumbedder | 0:6be57f391716 | 23 | START SA6 SA5 SA4 SA3 SA2 SA1 SA0 W SACK X X C5 C4 C3 C2 C1 C0 SACK D7 D6 D5 D4 D3 D2 D1 D0 SACK STOP |
odtulumbedder | 0:6be57f391716 | 24 | |
odtulumbedder | 0:6be57f391716 | 25 | Data In: |
odtulumbedder | 0:6be57f391716 | 26 | Byte #1 Byte #2 Byte #3 |
odtulumbedder | 0:6be57f391716 | 27 | |
odtulumbedder | 0:6be57f391716 | 28 | START SA6 SA5 SA4 SA3 SA2 SA1 SA0 W SACK X X C5 C4 C3 C2 C1 C0 SACK Repeat Start SA6 SA5 SA4 SA3 SA2 SA1 SA0 R SACK |
odtulumbedder | 0:6be57f391716 | 29 | |
odtulumbedder | 0:6be57f391716 | 30 | Byte #4 Byte #5 |
odtulumbedder | 0:6be57f391716 | 31 | MSB LSB |
odtulumbedder | 0:6be57f391716 | 32 | D15 D14 D13 D12 D11 D10 D9 D8 MACK D7 D6 D5 D4 D3 D2 D1 D0 MNACK STOP |
odtulumbedder | 0:6be57f391716 | 33 | |
odtulumbedder | 0:6be57f391716 | 34 | START : I2C Start |
odtulumbedder | 0:6be57f391716 | 35 | Repeat Start: I2c Repeat Start |
odtulumbedder | 0:6be57f391716 | 36 | STOP : I2C Stop |
odtulumbedder | 0:6be57f391716 | 37 | SAx : I2C Address |
odtulumbedder | 0:6be57f391716 | 38 | SACK : I2C Slave Generated Acknowledge (Active Low) |
odtulumbedder | 0:6be57f391716 | 39 | MACK : I2C Master Generated Acknowledge (Active Low) |
odtulumbedder | 0:6be57f391716 | 40 | MNACK : I2c Master Generated Not Acknowledge |
odtulumbedder | 0:6be57f391716 | 41 | W : I2C Write (0) |
odtulumbedder | 0:6be57f391716 | 42 | R : I2C Read (1) |
odtulumbedder | 0:6be57f391716 | 43 | Cx : Command Code |
odtulumbedder | 0:6be57f391716 | 44 | Dx : Data Bits |
odtulumbedder | 0:6be57f391716 | 45 | X : Don't care |
odtulumbedder | 0:6be57f391716 | 46 | |
odtulumbedder | 0:6be57f391716 | 47 | |
odtulumbedder | 0:6be57f391716 | 48 | |
odtulumbedder | 0:6be57f391716 | 49 | Example Code: |
odtulumbedder | 0:6be57f391716 | 50 | |
odtulumbedder | 0:6be57f391716 | 51 | Read power, current, and voltage. |
odtulumbedder | 0:6be57f391716 | 52 | |
odtulumbedder | 0:6be57f391716 | 53 | adc_command = LTC2945_SENSE_MONITOR | LTC2945_CONTINUOUS_MODE; // Builds commands to set LTC2945 to continuous mode |
odtulumbedder | 0:6be57f391716 | 54 | ack |= LTC2945_write(LTC2945_I2C_ADDRESS, LTC2945_CONTROL_REG, adc_command); // Sets the LTC2945 to continuous mode |
odtulumbedder | 0:6be57f391716 | 55 | |
odtulumbedder | 0:6be57f391716 | 56 | resistor = .02; // Resistor Value On Demo Board |
odtulumbedder | 0:6be57f391716 | 57 | |
odtulumbedder | 0:6be57f391716 | 58 | ack |= LTC2945_read_24_bits(LTC2945_I2C_ADDRESS, LTC2945_POWER_MSB2_REG, &power_code); // Reads the ADC registers that contains V^2 |
odtulumbedder | 0:6be57f391716 | 59 | power = LTC2945_code_to_power(power_code, resistor, LTC2945_Power_lsb); // Calculates power from power code, resistor value and power lsb |
odtulumbedder | 0:6be57f391716 | 60 | |
odtulumbedder | 0:6be57f391716 | 61 | ack |= LTC2945_read_12_bits(LTC2945_I2C_ADDRESS, LTC2945_DELTA_SENSE_MSB_REG, ¤t_code); // Reads the voltage code across sense resistor |
odtulumbedder | 0:6be57f391716 | 62 | current = LTC2945_code_to_current(current_code, resistor, LTC2945_DELTA_SENSE_lsb); // Calculates current from current code, resistor value and current lsb |
odtulumbedder | 0:6be57f391716 | 63 | |
odtulumbedder | 0:6be57f391716 | 64 | ack |= LTC2945_read_12_bits(LTC2945_I2C_ADDRESS, LTC2945_VIN_MSB_REG, &VIN_code); // Reads VIN voltage code |
odtulumbedder | 0:6be57f391716 | 65 | VIN = LTC2945_VIN_code_to_voltage(VIN_code, LTC2945_VIN_lsb); // Calculates VIN voltage from VIN code and lsb |
odtulumbedder | 0:6be57f391716 | 66 | |
odtulumbedder | 0:6be57f391716 | 67 | |
odtulumbedder | 0:6be57f391716 | 68 | @endverbatim |
odtulumbedder | 0:6be57f391716 | 69 | |
odtulumbedder | 0:6be57f391716 | 70 | http://www.linear.com/product/LTC2945 |
odtulumbedder | 0:6be57f391716 | 71 | |
odtulumbedder | 0:6be57f391716 | 72 | http://www.linear.com/product/ltc2945#demoboards |
odtulumbedder | 0:6be57f391716 | 73 | |
odtulumbedder | 0:6be57f391716 | 74 | REVISION HISTORY |
odtulumbedder | 0:6be57f391716 | 75 | $Revision: 3659 $ |
odtulumbedder | 0:6be57f391716 | 76 | $Date: 2015-07-01 10:19:20 -0700 (Wed, 01 Jul 2015) $ |
odtulumbedder | 0:6be57f391716 | 77 | |
odtulumbedder | 0:6be57f391716 | 78 | Copyright (c) 2013, Linear Technology Corp.(LTC) |
odtulumbedder | 0:6be57f391716 | 79 | All rights reserved. |
odtulumbedder | 0:6be57f391716 | 80 | |
odtulumbedder | 0:6be57f391716 | 81 | Redistribution and use in source and binary forms, with or without |
odtulumbedder | 0:6be57f391716 | 82 | modification, are permitted provided that the following conditions are met: |
odtulumbedder | 0:6be57f391716 | 83 | |
odtulumbedder | 0:6be57f391716 | 84 | 1. Redistributions of source code must retain the above copyright notice, this |
odtulumbedder | 0:6be57f391716 | 85 | list of conditions and the following disclaimer. |
odtulumbedder | 0:6be57f391716 | 86 | 2. Redistributions in binary form must reproduce the above copyright notice, |
odtulumbedder | 0:6be57f391716 | 87 | this list of conditions and the following disclaimer in the documentation |
odtulumbedder | 0:6be57f391716 | 88 | and/or other materials provided with the distribution. |
odtulumbedder | 0:6be57f391716 | 89 | |
odtulumbedder | 0:6be57f391716 | 90 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
odtulumbedder | 0:6be57f391716 | 91 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
odtulumbedder | 0:6be57f391716 | 92 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
odtulumbedder | 0:6be57f391716 | 93 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR |
odtulumbedder | 0:6be57f391716 | 94 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
odtulumbedder | 0:6be57f391716 | 95 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
odtulumbedder | 0:6be57f391716 | 96 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
odtulumbedder | 0:6be57f391716 | 97 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
odtulumbedder | 0:6be57f391716 | 98 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
odtulumbedder | 0:6be57f391716 | 99 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
odtulumbedder | 0:6be57f391716 | 100 | |
odtulumbedder | 0:6be57f391716 | 101 | The views and conclusions contained in the software and documentation are those |
odtulumbedder | 0:6be57f391716 | 102 | of the authors and should not be interpreted as representing official policies, |
odtulumbedder | 0:6be57f391716 | 103 | either expressed or implied, of Linear Technology Corp. |
odtulumbedder | 0:6be57f391716 | 104 | |
odtulumbedder | 0:6be57f391716 | 105 | The Linear Technology Linduino is not affiliated with the official Arduino team. |
odtulumbedder | 0:6be57f391716 | 106 | However, the Linduino is only possible because of the Arduino team's commitment |
odtulumbedder | 0:6be57f391716 | 107 | to the open-source community. Please, visit http://www.arduino.cc and |
odtulumbedder | 0:6be57f391716 | 108 | http://store.arduino.cc , and consider a purchase that will help fund their |
odtulumbedder | 0:6be57f391716 | 109 | ongoing work. |
odtulumbedder | 0:6be57f391716 | 110 | */ |
odtulumbedder | 0:6be57f391716 | 111 | |
odtulumbedder | 0:6be57f391716 | 112 | /*! @file |
odtulumbedder | 0:6be57f391716 | 113 | @ingroup LTC2945 |
odtulumbedder | 0:6be57f391716 | 114 | Header for LTC2945: 12-bit Wide Range Power Monitor |
odtulumbedder | 0:6be57f391716 | 115 | */ |
odtulumbedder | 0:6be57f391716 | 116 | |
odtulumbedder | 0:6be57f391716 | 117 | #ifndef LTC2945_H |
odtulumbedder | 0:6be57f391716 | 118 | #define LTC2945_H |
odtulumbedder | 0:6be57f391716 | 119 | |
odtulumbedder | 0:6be57f391716 | 120 | #include <stdint.h> |
odtulumbedder | 0:6be57f391716 | 121 | |
odtulumbedder | 0:6be57f391716 | 122 | //! Use table to select address |
odtulumbedder | 0:6be57f391716 | 123 | /*! |
odtulumbedder | 0:6be57f391716 | 124 | | LTC2945 I2C Address Assignment | Value | AD1 | AD2 | |
odtulumbedder | 0:6be57f391716 | 125 | | :-------------------------------- | :---: | :------: | :------: | |
odtulumbedder | 0:6be57f391716 | 126 | | LTC2945_I2C_ADDRESS | 0x67 | High | Low | |
odtulumbedder | 0:6be57f391716 | 127 | | LTC2945_I2C_ADDRESS | 0x68 | Float | High | |
odtulumbedder | 0:6be57f391716 | 128 | | LTC2945_I2C_ADDRESS | 0x69 | High | High | |
odtulumbedder | 0:6be57f391716 | 129 | | LTC2945_I2C_ADDRESS | 0x6A | Float | Float | |
odtulumbedder | 0:6be57f391716 | 130 | | LTC2945_I2C_ADDRESS | 0x6B | Float | Low | |
odtulumbedder | 0:6be57f391716 | 131 | | LTC2945_I2C_ADDRESS | 0x6C | Low | High | |
odtulumbedder | 0:6be57f391716 | 132 | | LTC2945_I2C_ADDRESS | 0x6D | High | Float | |
odtulumbedder | 0:6be57f391716 | 133 | | LTC2945_I2C_ADDRESS | 0x6E | Low | Float | |
odtulumbedder | 0:6be57f391716 | 134 | | LTC2945_I2C_ADDRESS | 0x6F | Low | Low | |
odtulumbedder | 0:6be57f391716 | 135 | | | | | | |
odtulumbedder | 0:6be57f391716 | 136 | | LTC2945_I2C_MASS_WRITE | 0xCC | X | X | |
odtulumbedder | 0:6be57f391716 | 137 | | LTC2945_I2C_ALERT_RESPONSE | 0x19 | X | X | |
odtulumbedder | 0:6be57f391716 | 138 | */ |
odtulumbedder | 0:6be57f391716 | 139 | /*! @name LTC2945 I2C Address Assignments |
odtulumbedder | 0:6be57f391716 | 140 | @{ */ |
odtulumbedder | 0:6be57f391716 | 141 | |
odtulumbedder | 0:6be57f391716 | 142 | // Address Choices: |
odtulumbedder | 0:6be57f391716 | 143 | // To choose an address, comment out all options except the |
odtulumbedder | 0:6be57f391716 | 144 | // configuration on the demo board. |
odtulumbedder | 0:6be57f391716 | 145 | |
odtulumbedder | 0:6be57f391716 | 146 | // Address assignment |
odtulumbedder | 0:6be57f391716 | 147 | // LTC2945 I2C Address // AD1 AD0 |
odtulumbedder | 0:6be57f391716 | 148 | // #define LTC2945_I2C_ADDRESS 0x67 // High Low |
odtulumbedder | 0:6be57f391716 | 149 | // #define LTC2945_I2C_ADDRESS 0x68 // Float High |
odtulumbedder | 0:6be57f391716 | 150 | // #define LTC2945_I2C_ADDRESS 0x69 // High High |
odtulumbedder | 0:6be57f391716 | 151 | // #define LTC2945_I2C_ADDRESS 0x6A // Float Float |
odtulumbedder | 0:6be57f391716 | 152 | // #define LTC2945_I2C_ADDRESS 0x6B // Float Low |
odtulumbedder | 0:6be57f391716 | 153 | // #define LTC2945_I2C_ADDRESS 0x6C // Low High |
odtulumbedder | 0:6be57f391716 | 154 | // #define LTC2945_I2C_ADDRESS 0x6D // High Float |
odtulumbedder | 0:6be57f391716 | 155 | // #define LTC2945_I2C_ADDRESS 0x6E // Low Float |
odtulumbedder | 0:6be57f391716 | 156 | #define LTC2945_I2C_ADDRESS 0x6F // Low Low |
odtulumbedder | 0:6be57f391716 | 157 | |
odtulumbedder | 0:6be57f391716 | 158 | #define LTC2945_I2C_MASS_WRITE 0xCC |
odtulumbedder | 0:6be57f391716 | 159 | #define LTC2945_I2C_ALERT_RESPONSE 0x19 |
odtulumbedder | 0:6be57f391716 | 160 | //! @} |
odtulumbedder | 0:6be57f391716 | 161 | |
odtulumbedder | 0:6be57f391716 | 162 | |
odtulumbedder | 0:6be57f391716 | 163 | /*! |
odtulumbedder | 0:6be57f391716 | 164 | | Name | Value | |
odtulumbedder | 0:6be57f391716 | 165 | | :------------------------------------------------ | :---: | |
odtulumbedder | 0:6be57f391716 | 166 | | LTC2945_CONTROL_REG | 0x00 | |
odtulumbedder | 0:6be57f391716 | 167 | | LTC2945_ALERT_REG | 0x01 | |
odtulumbedder | 0:6be57f391716 | 168 | | LTC2945_STATUS_REG | 0x02 | |
odtulumbedder | 0:6be57f391716 | 169 | | LTC2945_FAULT_REG | 0x03 | |
odtulumbedder | 0:6be57f391716 | 170 | | LTC2945_FAULT_CoR_REG | 0x04 | |
odtulumbedder | 0:6be57f391716 | 171 | | LTC2945_POWER_MSB2_REG | 0x05 | |
odtulumbedder | 0:6be57f391716 | 172 | | LTC2945_POWER_MSB1_REG | 0x06 | |
odtulumbedder | 0:6be57f391716 | 173 | | LTC2945_POWER_LSB_REG | 0x07 | |
odtulumbedder | 0:6be57f391716 | 174 | | LTC2945_MAX_POWER_MSB2_REG | 0x08 | |
odtulumbedder | 0:6be57f391716 | 175 | | LTC2945_MAX_POWER_MSB1_REG | 0x09 | |
odtulumbedder | 0:6be57f391716 | 176 | | LTC2945_MAX_POWER_LSB_REG | 0x0A | |
odtulumbedder | 0:6be57f391716 | 177 | | LTC2945_MIN_POWER_MSB2_REG | 0x0B | |
odtulumbedder | 0:6be57f391716 | 178 | | LTC2945_MIN_POWER_MSB1_REG | 0x0C | |
odtulumbedder | 0:6be57f391716 | 179 | | LTC2945_MIN_POWER_LSB_REG | 0x0D | |
odtulumbedder | 0:6be57f391716 | 180 | | LTC2945_MAX_POWER_THRESHOLD_MSB2_REG | 0x0E | |
odtulumbedder | 0:6be57f391716 | 181 | | LTC2945_MAX_POWER_THRESHOLD_MSB1_REG | 0x0F | |
odtulumbedder | 0:6be57f391716 | 182 | | LTC2945_MAX_POWER_THRESHOLD_LSB_REG | 0x10 | |
odtulumbedder | 0:6be57f391716 | 183 | | LTC2945_MIN_POWER_THRESHOLD_MSB2_REG | 0x11 | |
odtulumbedder | 0:6be57f391716 | 184 | | LTC2945_MIN_POWER_THRESHOLD_MSB1_REG | 0x12 | |
odtulumbedder | 0:6be57f391716 | 185 | | LTC2945_MIN_POWER_THRESHOLD_LSB_REG | 0x13 | |
odtulumbedder | 0:6be57f391716 | 186 | | LTC2945_DELTA_SENSE_MSB_REG | 0x14 | |
odtulumbedder | 0:6be57f391716 | 187 | | LTC2945_DELTA_SENSE_LSB_REG | 0x15 | |
odtulumbedder | 0:6be57f391716 | 188 | | LTC2945_MAX_DELTA_SENSE_MSB_REG | 0x16 | |
odtulumbedder | 0:6be57f391716 | 189 | | LTC2945_MAX_DELTA_SENSE_LSB_REG | 0x17 | |
odtulumbedder | 0:6be57f391716 | 190 | | LTC2945_MIN_DELTA_SENSE_MSB_REG | 0x18 | |
odtulumbedder | 0:6be57f391716 | 191 | | LTC2945_MIN_DELTA_SENSE_LSB_REG | 0x19 | |
odtulumbedder | 0:6be57f391716 | 192 | | LTC2945_MAX_DELTA_SENSE_THRESHOLD_MSB_REG | 0x1A | |
odtulumbedder | 0:6be57f391716 | 193 | | LTC2945_MAX_DELTA_SENSE_THRESHOLD_LSB_REG | 0x1B | |
odtulumbedder | 0:6be57f391716 | 194 | | LTC2945_MIN_DELTA_SENSE_THRESHOLD_MSB_REG | 0x1C | |
odtulumbedder | 0:6be57f391716 | 195 | | LTC2945_MIN_DELTA_SENSE_THRESHOLD_LSB_REG | 0x1D | |
odtulumbedder | 0:6be57f391716 | 196 | | LTC2945_VIN_MSB_REG | 0x1E | |
odtulumbedder | 0:6be57f391716 | 197 | | LTC2945_VIN_LSB_REG | 0x1F | |
odtulumbedder | 0:6be57f391716 | 198 | | LTC2945_MAX_VIN_MSB_REG | 0x20 | |
odtulumbedder | 0:6be57f391716 | 199 | | LTC2945_MAX_VIN_LSB_REG | 0x21 | |
odtulumbedder | 0:6be57f391716 | 200 | | LTC2945_MIN_VIN_MSB_REG | 0x22 | |
odtulumbedder | 0:6be57f391716 | 201 | | LTC2945_MIN_VIN_LSB_REG | 0x23 | |
odtulumbedder | 0:6be57f391716 | 202 | | LTC2945_MAX_VIN_THRESHOLD_MSB_REG | 0x24 | |
odtulumbedder | 0:6be57f391716 | 203 | | LTC2945_MAX_VIN_THRESHOLD_LSB_REG | 0x25 | |
odtulumbedder | 0:6be57f391716 | 204 | | LTC2945_MIN_VIN_THRESHOLD_MSB_REG | 0x26 | |
odtulumbedder | 0:6be57f391716 | 205 | | LTC2945_MIN_VIN_THRESHOLD_LSB_REG | 0x27 | |
odtulumbedder | 0:6be57f391716 | 206 | | LTC2945_ADIN_MSB_REG | 0x28 | |
odtulumbedder | 0:6be57f391716 | 207 | | LTC2945_ADIN_LSB_REG_REG | 0x29 | |
odtulumbedder | 0:6be57f391716 | 208 | | LTC2945_MAX_ADIN_MSB_REG | 0x2A | |
odtulumbedder | 0:6be57f391716 | 209 | | LTC2945_MAX_ADIN_LSB_REG | 0x2B | |
odtulumbedder | 0:6be57f391716 | 210 | | LTC2945_MIN_ADIN_MSB_REG | 0x2C | |
odtulumbedder | 0:6be57f391716 | 211 | | LTC2945_MIN_ADIN_LSB_REG | 0x2D | |
odtulumbedder | 0:6be57f391716 | 212 | | LTC2945_MAX_ADIN_THRESHOLD_MSB_REG | 0x2E | |
odtulumbedder | 0:6be57f391716 | 213 | | LTC2945_MAX_ADIN_THRESHOLD_LSB_REG | 0x2F | |
odtulumbedder | 0:6be57f391716 | 214 | | LTC2945_MIN_ADIN_THRESHOLD_MSB_REG | 0x30 | |
odtulumbedder | 0:6be57f391716 | 215 | | LTC2945_MIN_ADIN_THRESHOLD_LSB_REG | 0x31 | |
odtulumbedder | 0:6be57f391716 | 216 | */ |
odtulumbedder | 0:6be57f391716 | 217 | |
odtulumbedder | 0:6be57f391716 | 218 | |
odtulumbedder | 0:6be57f391716 | 219 | |
odtulumbedder | 0:6be57f391716 | 220 | /*! @name Registers |
odtulumbedder | 0:6be57f391716 | 221 | @{ */ |
odtulumbedder | 0:6be57f391716 | 222 | // Registers |
odtulumbedder | 0:6be57f391716 | 223 | |
odtulumbedder | 0:6be57f391716 | 224 | #define LTC2945_CONTROL_REG 0x00 |
odtulumbedder | 0:6be57f391716 | 225 | #define LTC2945_ALERT_REG 0x01 |
odtulumbedder | 0:6be57f391716 | 226 | #define LTC2945_STATUS_REG 0x02 |
odtulumbedder | 0:6be57f391716 | 227 | #define LTC2945_FAULT_REG 0x03 |
odtulumbedder | 0:6be57f391716 | 228 | #define LTC2945_FAULT_CoR_REG 0x04 |
odtulumbedder | 0:6be57f391716 | 229 | |
odtulumbedder | 0:6be57f391716 | 230 | #define LTC2945_POWER_MSB2_REG 0x05 |
odtulumbedder | 0:6be57f391716 | 231 | #define LTC2945_POWER_MSB1_REG 0x06 |
odtulumbedder | 0:6be57f391716 | 232 | #define LTC2945_POWER_LSB_REG 0x07 |
odtulumbedder | 0:6be57f391716 | 233 | #define LTC2945_MAX_POWER_MSB2_REG 0x08 |
odtulumbedder | 0:6be57f391716 | 234 | #define LTC2945_MAX_POWER_MSB1_REG 0x09 |
odtulumbedder | 0:6be57f391716 | 235 | #define LTC2945_MAX_POWER_LSB_REG 0x0A |
odtulumbedder | 0:6be57f391716 | 236 | #define LTC2945_MIN_POWER_MSB2_REG 0x0B |
odtulumbedder | 0:6be57f391716 | 237 | #define LTC2945_MIN_POWER_MSB1_REG 0x0C |
odtulumbedder | 0:6be57f391716 | 238 | #define LTC2945_MIN_POWER_LSB_REG 0x0D |
odtulumbedder | 0:6be57f391716 | 239 | #define LTC2945_MAX_POWER_THRESHOLD_MSB2_REG 0x0E |
odtulumbedder | 0:6be57f391716 | 240 | #define LTC2945_MAX_POWER_THRESHOLD_MSB1_REG 0x0F |
odtulumbedder | 0:6be57f391716 | 241 | #define LTC2945_MAX_POWER_THRESHOLD_LSB_REG 0x10 |
odtulumbedder | 0:6be57f391716 | 242 | #define LTC2945_MIN_POWER_THRESHOLD_MSB2_REG 0x11 |
odtulumbedder | 0:6be57f391716 | 243 | #define LTC2945_MIN_POWER_THRESHOLD_MSB1_REG 0x12 |
odtulumbedder | 0:6be57f391716 | 244 | #define LTC2945_MIN_POWER_THRESHOLD_LSB_REG 0x13 |
odtulumbedder | 0:6be57f391716 | 245 | |
odtulumbedder | 0:6be57f391716 | 246 | #define LTC2945_DELTA_SENSE_MSB_REG 0x14 |
odtulumbedder | 0:6be57f391716 | 247 | #define LTC2945_DELTA_SENSE_LSB_REG 0x15 |
odtulumbedder | 0:6be57f391716 | 248 | #define LTC2945_MAX_DELTA_SENSE_MSB_REG 0x16 |
odtulumbedder | 0:6be57f391716 | 249 | #define LTC2945_MAX_DELTA_SENSE_LSB_REG 0x17 |
odtulumbedder | 0:6be57f391716 | 250 | #define LTC2945_MIN_DELTA_SENSE_MSB_REG 0x18 |
odtulumbedder | 0:6be57f391716 | 251 | #define LTC2945_MIN_DELTA_SENSE_LSB_REG 0x19 |
odtulumbedder | 0:6be57f391716 | 252 | #define LTC2945_MAX_DELTA_SENSE_THRESHOLD_MSB_REG 0x1A |
odtulumbedder | 0:6be57f391716 | 253 | #define LTC2945_MAX_DELTA_SENSE_THRESHOLD_LSB_REG 0x1B |
odtulumbedder | 0:6be57f391716 | 254 | #define LTC2945_MIN_DELTA_SENSE_THRESHOLD_MSB_REG 0x1C |
odtulumbedder | 0:6be57f391716 | 255 | #define LTC2945_MIN_DELTA_SENSE_THRESHOLD_LSB_REG 0x1D |
odtulumbedder | 0:6be57f391716 | 256 | |
odtulumbedder | 0:6be57f391716 | 257 | #define LTC2945_VIN_MSB_REG 0x1E |
odtulumbedder | 0:6be57f391716 | 258 | #define LTC2945_VIN_LSB_REG 0x1F |
odtulumbedder | 0:6be57f391716 | 259 | #define LTC2945_MAX_VIN_MSB_REG 0x20 |
odtulumbedder | 0:6be57f391716 | 260 | #define LTC2945_MAX_VIN_LSB_REG 0x21 |
odtulumbedder | 0:6be57f391716 | 261 | #define LTC2945_MIN_VIN_MSB_REG 0x22 |
odtulumbedder | 0:6be57f391716 | 262 | #define LTC2945_MIN_VIN_LSB_REG 0x23 |
odtulumbedder | 0:6be57f391716 | 263 | #define LTC2945_MAX_VIN_THRESHOLD_MSB_REG 0x24 |
odtulumbedder | 0:6be57f391716 | 264 | #define LTC2945_MAX_VIN_THRESHOLD_LSB_REG 0x25 |
odtulumbedder | 0:6be57f391716 | 265 | #define LTC2945_MIN_VIN_THRESHOLD_MSB_REG 0x26 |
odtulumbedder | 0:6be57f391716 | 266 | #define LTC2945_MIN_VIN_THRESHOLD_LSB_REG 0x27 |
odtulumbedder | 0:6be57f391716 | 267 | |
odtulumbedder | 0:6be57f391716 | 268 | #define LTC2945_ADIN_MSB_REG 0x28 |
odtulumbedder | 0:6be57f391716 | 269 | #define LTC2945_ADIN_LSB_REG_REG 0x29 |
odtulumbedder | 0:6be57f391716 | 270 | #define LTC2945_MAX_ADIN_MSB_REG 0x2A |
odtulumbedder | 0:6be57f391716 | 271 | #define LTC2945_MAX_ADIN_LSB_REG 0x2B |
odtulumbedder | 0:6be57f391716 | 272 | #define LTC2945_MIN_ADIN_MSB_REG 0x2C |
odtulumbedder | 0:6be57f391716 | 273 | #define LTC2945_MIN_ADIN_LSB_REG 0x2D |
odtulumbedder | 0:6be57f391716 | 274 | #define LTC2945_MAX_ADIN_THRESHOLD_MSB_REG 0x2E |
odtulumbedder | 0:6be57f391716 | 275 | #define LTC2945_MAX_ADIN_THRESHOLD_LSB_REG 0x2F |
odtulumbedder | 0:6be57f391716 | 276 | #define LTC2945_MIN_ADIN_THRESHOLD_MSB_REG 0x30 |
odtulumbedder | 0:6be57f391716 | 277 | #define LTC2945_MIN_ADIN_THRESHOLD_LSB_REG 0x31 |
odtulumbedder | 0:6be57f391716 | 278 | //! @} |
odtulumbedder | 0:6be57f391716 | 279 | |
odtulumbedder | 0:6be57f391716 | 280 | /*! |
odtulumbedder | 0:6be57f391716 | 281 | | Snapshot Selection Command | Value | |
odtulumbedder | 0:6be57f391716 | 282 | | :-------------------------------------------- | :---: | |
odtulumbedder | 0:6be57f391716 | 283 | | LTC2945_DELTA_SENSE_SNAPSHOT | 0x80 | |
odtulumbedder | 0:6be57f391716 | 284 | | LTC2945_VIN_SNAPSHOT | 0xA0 | |
odtulumbedder | 0:6be57f391716 | 285 | | LTC2945_ADIN_SNAPSHOT | 0xC0 | |
odtulumbedder | 0:6be57f391716 | 286 | */ |
odtulumbedder | 0:6be57f391716 | 287 | |
odtulumbedder | 0:6be57f391716 | 288 | /*! @name Selection Command |
odtulumbedder | 0:6be57f391716 | 289 | @{ */ |
odtulumbedder | 0:6be57f391716 | 290 | // Snapshot Selection Command |
odtulumbedder | 0:6be57f391716 | 291 | #define LTC2945_DELTA_SENSE_SNAPSHOT 0x80 |
odtulumbedder | 0:6be57f391716 | 292 | #define LTC2945_VIN_SNAPSHOT 0xA0 |
odtulumbedder | 0:6be57f391716 | 293 | #define LTC2945_ADIN_SNAPSHOT 0xC0 |
odtulumbedder | 0:6be57f391716 | 294 | //! @} |
odtulumbedder | 0:6be57f391716 | 295 | |
odtulumbedder | 0:6be57f391716 | 296 | /*! |
odtulumbedder | 0:6be57f391716 | 297 | | Command Codes | Value | |
odtulumbedder | 0:6be57f391716 | 298 | | :-------------------------------------------- | :-------: | |
odtulumbedder | 0:6be57f391716 | 299 | | LTC2945_CONTINUOUS_MODE | 0x00 | |
odtulumbedder | 0:6be57f391716 | 300 | | LTC2945_SHUTDOWN_MODE | 0x02 | |
odtulumbedder | 0:6be57f391716 | 301 | | LTC2945_TEST_MODE | 0x10 | |
odtulumbedder | 0:6be57f391716 | 302 | | LTC2945_RESET_ALL_FAULTS | 0x00 | |
odtulumbedder | 0:6be57f391716 | 303 | | LTC2945_SENSE_MULTIPLIER | 0x01 | |
odtulumbedder | 0:6be57f391716 | 304 | | LTC2945_SENSE_MONITOR | 0x04 | |
odtulumbedder | 0:6be57f391716 | 305 | | LTC2945_MAX_POWER_MSB2_RESET | 0x00 | |
odtulumbedder | 0:6be57f391716 | 306 | | LTC2945_MIN_POWER_MSB2_RESET | 0xFF | |
odtulumbedder | 0:6be57f391716 | 307 | | LTC2945_MAX_DELTA_SENSE_MSB_RESET | 0x00 | |
odtulumbedder | 0:6be57f391716 | 308 | | LTC2945_MIN_DELTA_SENSE_MSB_RESET | 0xFF | |
odtulumbedder | 0:6be57f391716 | 309 | | LTC2945_MAX_VIN_MSB_RESET | 0x00 | |
odtulumbedder | 0:6be57f391716 | 310 | | LTC2945_MIN_VIN_MSB_RESET | 0xFF | |
odtulumbedder | 0:6be57f391716 | 311 | | LTC2945_MAX_ADIN_MSB_RESET | 0x00 | |
odtulumbedder | 0:6be57f391716 | 312 | | LTC2945_MIN_ADIN_MSB_RESET | 0xFF | |
odtulumbedder | 0:6be57f391716 | 313 | | LTC2945_ENABLE_MAX_POWER_ALERT | 0x80 | |
odtulumbedder | 0:6be57f391716 | 314 | | LTC2945_ENABLE_MIN_POWER_ALERT | 0x40 | |
odtulumbedder | 0:6be57f391716 | 315 | | LTC2945_DISABLE_MAX_POWER_ALERT | 0x7F | |
odtulumbedder | 0:6be57f391716 | 316 | | LTC2945_DISABLE_MIN_POWER_ALERT | 0xBF | |
odtulumbedder | 0:6be57f391716 | 317 | | LTC2945_ENABLE_MAX_DELTA_SENSE_ALERT | 0x20 | |
odtulumbedder | 0:6be57f391716 | 318 | | LTC2945_ENABLE_MIN_DELTA_SENSE_ALERT | 0x10 | |
odtulumbedder | 0:6be57f391716 | 319 | | LTC2945_DISABLE_MAX_DELTA_SENSE_ALERT | 0xDF | |
odtulumbedder | 0:6be57f391716 | 320 | | LTC2945_DISABLE_MIN_DELTA_SENSE_ALERT | 0xEF | |
odtulumbedder | 0:6be57f391716 | 321 | | LTC2945_ENABLE_MAX_VIN_ALERT | 0x08 | |
odtulumbedder | 0:6be57f391716 | 322 | | LTC2945_ENABLE_MIN_VIN_ALERT | 0x04 | |
odtulumbedder | 0:6be57f391716 | 323 | | LTC2945_DISABLE_MAX_VIN_ALERT | 0xF7 | |
odtulumbedder | 0:6be57f391716 | 324 | | LTC2945_DISABLE_MIN_VIN_ALERT | 0xFB | |
odtulumbedder | 0:6be57f391716 | 325 | | LTC2945_ENABLE_MAX_ADIN_ALERT | 0x02 | |
odtulumbedder | 0:6be57f391716 | 326 | | LTC2945_ENABLE_MIN_ADIN_ALERT | 0x01 | |
odtulumbedder | 0:6be57f391716 | 327 | | LTC2945_DISABLE_MAX_ADIN_ALERT | 0xFD | |
odtulumbedder | 0:6be57f391716 | 328 | | LTC2945_DISABLE_MIN_ADIN_ALERT | 0xFE | |
odtulumbedder | 0:6be57f391716 | 329 | */ |
odtulumbedder | 0:6be57f391716 | 330 | /*! @name Command Codes |
odtulumbedder | 0:6be57f391716 | 331 | @{ */ |
odtulumbedder | 0:6be57f391716 | 332 | // Command Codes |
odtulumbedder | 0:6be57f391716 | 333 | #define LTC2945_CONTINUOUS_MODE 0x00 |
odtulumbedder | 0:6be57f391716 | 334 | #define LTC2945_SHUTDOWN_MODE 0x02 |
odtulumbedder | 0:6be57f391716 | 335 | #define LTC2945_TEST_MODE 0x10 |
odtulumbedder | 0:6be57f391716 | 336 | #define LTC2945_RESET_ALL_FAULTS 0x00 |
odtulumbedder | 0:6be57f391716 | 337 | #define LTC2945_SENSE_MULTIPLIER 0x01 |
odtulumbedder | 0:6be57f391716 | 338 | #define LTC2945_SENSE_MONITOR 0x04 |
odtulumbedder | 0:6be57f391716 | 339 | |
odtulumbedder | 0:6be57f391716 | 340 | #define LTC2945_MAX_POWER_MSB2_RESET 0x00 |
odtulumbedder | 0:6be57f391716 | 341 | #define LTC2945_MIN_POWER_MSB2_RESET 0xFF |
odtulumbedder | 0:6be57f391716 | 342 | #define LTC2945_MAX_DELTA_SENSE_MSB_RESET 0x00 |
odtulumbedder | 0:6be57f391716 | 343 | #define LTC2945_MIN_DELTA_SENSE_MSB_RESET 0xFF |
odtulumbedder | 0:6be57f391716 | 344 | #define LTC2945_MAX_VIN_MSB_RESET 0x00 |
odtulumbedder | 0:6be57f391716 | 345 | #define LTC2945_MIN_VIN_MSB_RESET 0xFF |
odtulumbedder | 0:6be57f391716 | 346 | #define LTC2945_MAX_ADIN_MSB_RESET 0x00 |
odtulumbedder | 0:6be57f391716 | 347 | #define LTC2945_MIN_ADIN_MSB_RESET 0xFF |
odtulumbedder | 0:6be57f391716 | 348 | |
odtulumbedder | 0:6be57f391716 | 349 | #define LTC2945_ENABLE_MAX_POWER_ALERT 0x80 |
odtulumbedder | 0:6be57f391716 | 350 | #define LTC2945_ENABLE_MIN_POWER_ALERT 0x40 |
odtulumbedder | 0:6be57f391716 | 351 | #define LTC2945_DISABLE_MAX_POWER_ALERT 0x7F |
odtulumbedder | 0:6be57f391716 | 352 | #define LTC2945_DISABLE_MIN_POWER_ALERT 0xBF |
odtulumbedder | 0:6be57f391716 | 353 | |
odtulumbedder | 0:6be57f391716 | 354 | #define LTC2945_ENABLE_MAX_DELTA_SENSE_ALERT 0x20 |
odtulumbedder | 0:6be57f391716 | 355 | #define LTC2945_ENABLE_MIN_DELTA_SENSE_ALERT 0x10 |
odtulumbedder | 0:6be57f391716 | 356 | #define LTC2945_DISABLE_MAX_DELTA_SENSE_ALERT 0xDF |
odtulumbedder | 0:6be57f391716 | 357 | #define LTC2945_DISABLE_MIN_DELTA_SENSE_ALERT 0xEF |
odtulumbedder | 0:6be57f391716 | 358 | |
odtulumbedder | 0:6be57f391716 | 359 | #define LTC2945_ENABLE_MAX_VIN_ALERT 0x08 |
odtulumbedder | 0:6be57f391716 | 360 | #define LTC2945_ENABLE_MIN_VIN_ALERT 0x04 |
odtulumbedder | 0:6be57f391716 | 361 | #define LTC2945_DISABLE_MAX_VIN_ALERT 0xF7 |
odtulumbedder | 0:6be57f391716 | 362 | #define LTC2945_DISABLE_MIN_VIN_ALERT 0xFB |
odtulumbedder | 0:6be57f391716 | 363 | |
odtulumbedder | 0:6be57f391716 | 364 | #define LTC2945_ENABLE_MAX_ADIN_ALERT 0x02 |
odtulumbedder | 0:6be57f391716 | 365 | #define LTC2945_ENABLE_MIN_ADIN_ALERT 0x01 |
odtulumbedder | 0:6be57f391716 | 366 | #define LTC2945_DISABLE_MAX_ADIN_ALERT 0xFD |
odtulumbedder | 0:6be57f391716 | 367 | #define LTC2945_DISABLE_MIN_ADIN_ALERT 0xFE |
odtulumbedder | 0:6be57f391716 | 368 | //! @} |
odtulumbedder | 0:6be57f391716 | 369 | |
odtulumbedder | 0:6be57f391716 | 370 | //! Write an 8-bit code to the LTC2945. |
odtulumbedder | 0:6be57f391716 | 371 | //! @return The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge. |
odtulumbedder | 0:6be57f391716 | 372 | int8_t LTC2945_write(uint8_t i2c_address, //!< Register address for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 373 | uint8_t adc_command, //!< The "command byte" for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 374 | uint8_t code //!< Value that will be written to the register. |
odtulumbedder | 0:6be57f391716 | 375 | ); |
odtulumbedder | 0:6be57f391716 | 376 | //! Write a 16-bit code to the LTC2945. |
odtulumbedder | 0:6be57f391716 | 377 | //! @return The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge. |
odtulumbedder | 0:6be57f391716 | 378 | int8_t LTC2945_write_16_bits(uint8_t i2c_address, //!< Register address for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 379 | uint8_t adc_command, //!< The "command byte" for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 380 | uint16_t code //!< Value that will be written to the register. |
odtulumbedder | 0:6be57f391716 | 381 | ); |
odtulumbedder | 0:6be57f391716 | 382 | |
odtulumbedder | 0:6be57f391716 | 383 | //! Write a 24-bit code to the LTC2945. |
odtulumbedder | 0:6be57f391716 | 384 | //! @return The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge. |
odtulumbedder | 0:6be57f391716 | 385 | int8_t LTC2945_write_24_bits(uint8_t i2c_address, //!< Register address for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 386 | uint8_t adc_command, //!< The "command byte" for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 387 | int32_t code //!< Value that will be written to the register. |
odtulumbedder | 0:6be57f391716 | 388 | ); |
odtulumbedder | 0:6be57f391716 | 389 | //! Reads an 8-bit adc_code from LTC2945 |
odtulumbedder | 0:6be57f391716 | 390 | //! @return The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge. |
odtulumbedder | 0:6be57f391716 | 391 | int8_t LTC2945_read(uint8_t i2c_address, //!< Register address for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 392 | uint8_t adc_command, //!< The "command byte" for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 393 | uint8_t *adc_code //!< Value that will be read from the register. |
odtulumbedder | 0:6be57f391716 | 394 | ); |
odtulumbedder | 0:6be57f391716 | 395 | //! Reads a 12-bit adc_code from LTC2945 |
odtulumbedder | 0:6be57f391716 | 396 | //! @return The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge. |
odtulumbedder | 0:6be57f391716 | 397 | int8_t LTC2945_read_12_bits(uint8_t i2c_address, //!< Register address for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 398 | uint8_t adc_command, //!< The "command byte" for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 399 | uint16_t *adc_code //!< Value that will be read from the register. |
odtulumbedder | 0:6be57f391716 | 400 | ); |
odtulumbedder | 0:6be57f391716 | 401 | //! Reads a 16-bit adc_code from LTC2945 |
odtulumbedder | 0:6be57f391716 | 402 | //! @return The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge. |
odtulumbedder | 0:6be57f391716 | 403 | int8_t LTC2945_read_16_bits(uint8_t i2c_address, //!< Register address for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 404 | uint8_t adc_command, //!< The "command byte" for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 405 | uint16_t *adc_code //!< Value that will be read from the register. |
odtulumbedder | 0:6be57f391716 | 406 | ); |
odtulumbedder | 0:6be57f391716 | 407 | //! Reads a 24-bit adc_code from LTC2945 |
odtulumbedder | 0:6be57f391716 | 408 | //! @return The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge. |
odtulumbedder | 0:6be57f391716 | 409 | int8_t LTC2945_read_24_bits(uint8_t i2c_address, //!< Register address for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 410 | uint8_t adc_command, //!< The "command byte" for the LTC2945 |
odtulumbedder | 0:6be57f391716 | 411 | int32_t *adc_code //!< Value that will be read from the register. |
odtulumbedder | 0:6be57f391716 | 412 | ); |
odtulumbedder | 0:6be57f391716 | 413 | //! Calculate the LTC2945 VIN voltage |
odtulumbedder | 0:6be57f391716 | 414 | //! @return Returns the VIN Voltage in Volts |
odtulumbedder | 0:6be57f391716 | 415 | float LTC2945_VIN_code_to_voltage(uint16_t adc_code, //!< The ADC value |
odtulumbedder | 0:6be57f391716 | 416 | float LTC2945_VIN_lsb //!< VIN lsb weight |
odtulumbedder | 0:6be57f391716 | 417 | ); |
odtulumbedder | 0:6be57f391716 | 418 | //! Calculate the LTC2945 ADIN voltage |
odtulumbedder | 0:6be57f391716 | 419 | //! @return Returns the ADIN Voltage in Volts |
odtulumbedder | 0:6be57f391716 | 420 | float LTC2945_ADIN_code_to_voltage(uint16_t adc_code, //!< The ADC value |
odtulumbedder | 0:6be57f391716 | 421 | float LTC2945_ADIN_lsb //!< ADIN lsb weight |
odtulumbedder | 0:6be57f391716 | 422 | ); |
odtulumbedder | 0:6be57f391716 | 423 | //! Calculate the LTC2945 current with a sense resistor |
odtulumbedder | 0:6be57f391716 | 424 | //! @return The LTC2945 current |
odtulumbedder | 0:6be57f391716 | 425 | float LTC2945_code_to_current(uint16_t adc_code, //!< The ADC value |
odtulumbedder | 0:6be57f391716 | 426 | float resistor, //!< The resistor value |
odtulumbedder | 0:6be57f391716 | 427 | float LTC2945_DELTA_SENSE_lsb //!< Delta sense lsb weight |
odtulumbedder | 0:6be57f391716 | 428 | ); |
odtulumbedder | 0:6be57f391716 | 429 | //! Calculate the LTC2945 power |
odtulumbedder | 0:6be57f391716 | 430 | //! @return The LTC2945 power |
odtulumbedder | 0:6be57f391716 | 431 | float LTC2945_code_to_power(int32_t adc_code, //!< The ADC value |
odtulumbedder | 0:6be57f391716 | 432 | float resistor, //!< The resistor value |
odtulumbedder | 0:6be57f391716 | 433 | float LTC2945_Power_lsb //!< Power lsb weight |
odtulumbedder | 0:6be57f391716 | 434 | ); |
odtulumbedder | 0:6be57f391716 | 435 | //! Calculate the LTC2945 power with the ADIN |
odtulumbedder | 0:6be57f391716 | 436 | //! @return The LTC2945 power with the ADIN |
odtulumbedder | 0:6be57f391716 | 437 | float LTC2945_code_to_ADIN_power(int32_t adc_code, //!< The ADC value |
odtulumbedder | 0:6be57f391716 | 438 | float resistor, //!< The resistor value |
odtulumbedder | 0:6be57f391716 | 439 | float LTC2945_ADIN_DELTA_SENSE_lsb //!< Power lsb weight |
odtulumbedder | 0:6be57f391716 | 440 | ); |
odtulumbedder | 0:6be57f391716 | 441 | |
odtulumbedder | 0:6be57f391716 | 442 | #endif // LTC2945_H |