| Linduino 1.3.0 Linear Technology Arduino-Compatible Demonstration Board

Functions
LTC4280.h File Reference
Hot Swap » LTC4280: Hot Swap Controller with I2C Compatible Monitoring

LTC4280: Hot Swap Controller with I2C Compatible Monitoring. More...

## Detailed Description

LTC4280: Hot Swap Controller with I2C Compatible Monitoring.

    The LTC4280 Hot Swap controller allows a board to be safely inserted and removed
    from a live backplane. Using an external N-channel pass transistor, board supply
    voltage and inrush current are ramped up at an adjustable rate. An I2C interface
    and onboard ADC allow for monitoring of load current, voltage and fault status.

    I2C DATA FORMAT (MSB FIRST):

    Data Out:
    Byte #1                                    Byte #2                       Byte #3

    START  SA6 SA5 SA4 SA3 SA2 SA1 SA0 W SACK  C7  C6 C5 C4 C3 C2 C1 C0 SACK D7 D6 D5 D4 D3 D2 D1 D0 SACK  STOP

    Data In:
    Byte #1                                    Byte #2                                      Byte #3

    START  SA6 SA5 SA4 SA3 SA2 SA1 SA0 W SACK  C7  C6  C5 C4 C3 C2 C1 C0 SACK  Repeat Start SA6 SA5 SA4 SA3 SA2 SA1 SA0 R SACK

    Byte #4                                   Byte #5
    MSB                                       LSB
    D15 D14  D13  D12  D11  D10  D9 D8 MACK   D7 D6 D5 D4 D3  D2  D1  D0  MNACK  STOP

    START       : I2C Start
    Repeat Start: I2C Repeat Start
    STOP        : I2C Stop
    SAx         : I2C Address
    SACK        : I2C Slave Generated Acknowledge (Active Low)
    MACK        : I2C Master Generated Acknowledge (Active Low)
    MNACK       : I2C Master Generated Not Acknowledge
    W           : I2C Write (0)
    R           : I2C Read  (1)
    Cx          : Command Code
    Dx          : Data Bits
    X           : Don't care

    Example Code:

      float adin_lsb = (1.23/255);          // ADIN Voltage Data is 8-Bit Data with 4.82mV LSB and 1.23V Full Scale
        float adin_resisive_ratio = (155.4/12.4);   // Resistor divider circuit at ADIN pin.
      ack |= LTC4280_read(LTC4280_I2C_ADDRESS, LTC4280_ADIN_REG, &adin_code);       // Read ADIN Register
      adin_voltage = LTC4280_code_to_voltage(adin_code, adin_lsb, adin_resisive_ratio); // Calculate ADIN Voltage from ADIN Register data

http://www.linear.com/product/LTC4280

http://www.linear.com/product/LTC4280#demoboards

Copyright 2018(c) Analog Devices, Inc.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- The use of this software may or may not infringe the patent rights of one or more patent holders. This license does not release you from the requirement that you obtain separate licenses from these patent holders to use this software.
- Use of the software either in source or binary form, must be run on or directly connected to an Analog Devices Inc. component.

THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Header for LTC4280: Hot Swap Controller with I2C Compatible Monitoring

Definition in file LTC4280.h.

Go to the source code of this file.

## Functions
float | LTC4280_code_to_voltage (uint8_t register_code, float LSB, float resistor_divider_ratio)
| Calculates voltage from register code data. More...
int8_t | LTC4280_ARA (uint8_t alert_response_address, uint8_t *i2c_address)
| SMBus Alert ResponseProtocol: Sends an alert response command and releases /ALERT pin. More...
int8_t | LTC4280_write (uint8_t i2c_address, uint8_t command, uint8_t code)
| Write an 8-bit code to the LTC4280. More...
int8_t | LTC4280_read (uint8_t i2c_address, uint8_t command, uint8_t *code)
| Reads an 8-bit adc_code from LTC4280. More...

## Macros
LTC4261 Address Assignment
#define | LTC4280_I2C_ADDRESS 0x44
#define | LTC4280_I2C_ALERT_RESPONSE 0x0C
#define | LTC4280_I2C_MASS_WRITE 0x5F
LTC4280 Register addresses
#define | LTC4280_CONTROL_REG 0x00
#define | LTC4280_ALERT_REG 0x01
#define | LTC4280_STATUS_REG 0x02
#define | LTC4280_FAULT_REG 0x03
#define | LTC4280_SENSE_REG 0x04
#define | LTC4280_SOURCE_REG 0x05
#define | LTC4280_ADIN_REG 0x06
LTC4280 Fault Register Bits
#define | LTC4280_FET_SHORT_FAULT 0x20
#define | LTC4280_EN_STATE_CHANGE 0x10
#define | LTC4280_POWER_BAD_FAULT 0x08
#define | LTC4280_OVERCURRENT_FAULT 0x04
#define | LTC4280_UNDERVOLTAGE_FAULT 0x02
#define | LTC4280_OVERVOLTAGE_FAULT 0x01
LTC4280 Alert Register Bits
#define | LTC4280_GPIO_OUTPUT_ENABLE 0x40
#define | LTC4280_GPIO_OUTPUT_DISABLE 0xBF
#define | LTC4280_FET_SHORT_ENABLE 0x20
#define | LTC4280_FET_SHORT_DISABLE 0xDF
#define | LTC4280_EN_STATE_ENABLE 0x10
#define | LTC4280_EN_STATE_DISABLE 0xEF
#define | LTC4280_POWER_BAD_ENABLE 0x08
#define | LTC4280_POWER_BAD_DISABLE 0xF7
#define | LTC4280_OVERCURRENT_ENABLE 0x04
#define | LTC4280_OVERCURRENT_DISABLE 0xFB
#define | LTC4280_UNDERVOLTAGE_ENABLE 0x02
#define | LTC4280_UNDERVOLTAGE_DISABLE 0xFD
#define | LTC4280_OVERVOLTAGE_ENABLE 0x01
#define | LTC4280_OVERVOLTAGE_DISABLE 0xFE
LTC4280 Control Register Bits
#define | LTC4280_PGIO_POWER_GOODX 0x00
#define | LTC4280_PGIO_POWER_GOOD 0x80
#define | LTC4280_PGIO_GENERAL_PURPOSE_OUTPUT 0x40
#define | LTC4280_PGIO_GENERAL_PURPOSE_INPUT 0xC0
#define | LTC4280_TEST_MODE_ENABLE 0x20
#define | LTC4280_TEST_MODE_DISABLE 0xDF
#define | LTC4280_MASS_WRITE_ENABLE 0x10
#define | LTC4280_MASS_WRITE_DISABLE 0xEF
#define | LTC4280_FET_ON 0x08
#define | LTC4280_FET_OFF 0xF7
#define | LTC4280_OVERCURRENT_AUTO_RETRY_ENABLE 0x04
#define | LTC4280_OVERCURRENT_AUTO_RETRY_DISABLE 0xFB
#define | LTC4280_UNDERVOLTAGE_AUTO_RETRY_ENABLE 0x02
#define | LTC4280_UNDERVOLTAGE_AUTO_RETRY_DISABLE 0xFD
#define | LTC4280_OVERVOLTAGE_AUTO_RETRY_ENABLE 0x01
#define | LTC4280_OVERVOLTAGE_AUTO_RETRY_DISABLE 0xFE

## Function Documentation

## ◆ LTC4280_ARA()

int8_t LTC4280_ARA | ( | uint8_t | alert_response_address,
|  | uint8_t * | i2c_address
| ) |  |

SMBus Alert ResponseProtocol: Sends an alert response command and releases /ALERT pin.

LTC4280 responds with its address

Returns
  The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge

Parameters

  alert_response_address | the Alert Response Address on the I2C bus
  i2c_address | the address of the alert source

Definition at line 81 of file LTC4280.cpp.

## ◆ LTC4280_code_to_voltage()

float LTC4280_code_to_voltage | ( | uint8_t | register_code,
|  | float | LSB,
|  | float | resistor_divider_ratio
| ) |  |

Calculates voltage from register code data.

Returns
  The function returns valtage calculated from register data

Parameters

  LSB | Data from registers
  resistor_divider_ratio | Smallest incremental voltage the ratio that the voltages have been divided down. Set to 1 for no resistir divider circuit

Definition at line 72 of file LTC4280.cpp.

## ◆ LTC4280_read()

int8_t LTC4280_read | ( | uint8_t | i2c_address,
|  | uint8_t | command,
|  | uint8_t * | code
| ) |  |

Reads an 8-bit adc_code from LTC4280.

Returns
  The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.

Parameters

  command | LTC4280 I2C ADDRESS
  code | Register address to read from Contents of the requested register

Definition at line 97 of file LTC4280.cpp.

## ◆ LTC4280_write()

int8_t LTC4280_write | ( | uint8_t | i2c_address,
|  | uint8_t | command,
|  | uint8_t | code
| ) |  |

Write an 8-bit code to the LTC4280.

Returns
  The function returns the state of the acknowledge bit after the I2C address write. 0=acknowledge, 1=no acknowledge.

Parameters

  command | LTC4280 I2C ADDRESS
  code | Register address to be written into Data to be written into the register

Definition at line 89 of file LTC4280.cpp.

## Macro Definition Documentation

## ◆ LTC4280_ADIN_REG

#define LTC4280_ADIN_REG 0x06

Definition at line 113 of file LTC4280.h.

## ◆ LTC4280_ALERT_REG

#define LTC4280_ALERT_REG 0x01

Definition at line 108 of file LTC4280.h.

## ◆ LTC4280_CONTROL_REG

#define LTC4280_CONTROL_REG 0x00

Definition at line 107 of file LTC4280.h.

## ◆ LTC4280_EN_STATE_CHANGE

#define LTC4280_EN_STATE_CHANGE 0x10

Definition at line 120 of file LTC4280.h.

## ◆ LTC4280_EN_STATE_DISABLE

#define LTC4280_EN_STATE_DISABLE 0xEF

Definition at line 135 of file LTC4280.h.

## ◆ LTC4280_EN_STATE_ENABLE

#define LTC4280_EN_STATE_ENABLE 0x10

Definition at line 134 of file LTC4280.h.

## ◆ LTC4280_FAULT_REG

#define LTC4280_FAULT_REG 0x03

Definition at line 110 of file LTC4280.h.

## ◆ LTC4280_FET_OFF

#define LTC4280_FET_OFF 0xF7

Definition at line 161 of file LTC4280.h.

## ◆ LTC4280_FET_ON

#define LTC4280_FET_ON 0x08

Definition at line 160 of file LTC4280.h.

## ◆ LTC4280_FET_SHORT_DISABLE

#define LTC4280_FET_SHORT_DISABLE 0xDF

Definition at line 133 of file LTC4280.h.

## ◆ LTC4280_FET_SHORT_ENABLE

#define LTC4280_FET_SHORT_ENABLE 0x20

Definition at line 132 of file LTC4280.h.

## ◆ LTC4280_FET_SHORT_FAULT

#define LTC4280_FET_SHORT_FAULT 0x20

Definition at line 119 of file LTC4280.h.

## ◆ LTC4280_GPIO_OUTPUT_DISABLE

#define LTC4280_GPIO_OUTPUT_DISABLE 0xBF

Definition at line 131 of file LTC4280.h.

## ◆ LTC4280_GPIO_OUTPUT_ENABLE

#define LTC4280_GPIO_OUTPUT_ENABLE 0x40

Definition at line 130 of file LTC4280.h.

## ◆ LTC4280_I2C_ADDRESS

#define LTC4280_I2C_ADDRESS 0x44

Definition at line 99 of file LTC4280.h.

## ◆ LTC4280_I2C_ALERT_RESPONSE

#define LTC4280_I2C_ALERT_RESPONSE 0x0C

Definition at line 100 of file LTC4280.h.

## ◆ LTC4280_I2C_MASS_WRITE

#define LTC4280_I2C_MASS_WRITE 0x5F

Definition at line 101 of file LTC4280.h.

## ◆ LTC4280_MASS_WRITE_DISABLE

#define LTC4280_MASS_WRITE_DISABLE 0xEF

Definition at line 158 of file LTC4280.h.

## ◆ LTC4280_MASS_WRITE_ENABLE

#define LTC4280_MASS_WRITE_ENABLE 0x10

Definition at line 157 of file LTC4280.h.

## ◆ LTC4280_OVERCURRENT_AUTO_RETRY_DISABLE

#define LTC4280_OVERCURRENT_AUTO_RETRY_DISABLE 0xFB

Definition at line 164 of file LTC4280.h.

## ◆ LTC4280_OVERCURRENT_AUTO_RETRY_ENABLE

#define LTC4280_OVERCURRENT_AUTO_RETRY_ENABLE 0x04

Definition at line 163 of file LTC4280.h.

## ◆ LTC4280_OVERCURRENT_DISABLE

#define LTC4280_OVERCURRENT_DISABLE 0xFB

Definition at line 139 of file LTC4280.h.

## ◆ LTC4280_OVERCURRENT_ENABLE

#define LTC4280_OVERCURRENT_ENABLE 0x04

Definition at line 138 of file LTC4280.h.

## ◆ LTC4280_OVERCURRENT_FAULT

#define LTC4280_OVERCURRENT_FAULT 0x04

Definition at line 122 of file LTC4280.h.

## ◆ LTC4280_OVERVOLTAGE_AUTO_RETRY_DISABLE

#define LTC4280_OVERVOLTAGE_AUTO_RETRY_DISABLE 0xFE

Definition at line 170 of file LTC4280.h.

## ◆ LTC4280_OVERVOLTAGE_AUTO_RETRY_ENABLE

#define LTC4280_OVERVOLTAGE_AUTO_RETRY_ENABLE 0x01

Definition at line 169 of file LTC4280.h.

## ◆ LTC4280_OVERVOLTAGE_DISABLE

#define LTC4280_OVERVOLTAGE_DISABLE 0xFE

Definition at line 143 of file LTC4280.h.

## ◆ LTC4280_OVERVOLTAGE_ENABLE

#define LTC4280_OVERVOLTAGE_ENABLE 0x01

Definition at line 142 of file LTC4280.h.

## ◆ LTC4280_OVERVOLTAGE_FAULT

#define LTC4280_OVERVOLTAGE_FAULT 0x01

Definition at line 124 of file LTC4280.h.

## ◆ LTC4280_PGIO_GENERAL_PURPOSE_INPUT

#define LTC4280_PGIO_GENERAL_PURPOSE_INPUT 0xC0

Definition at line 152 of file LTC4280.h.

## ◆ LTC4280_PGIO_GENERAL_PURPOSE_OUTPUT

#define LTC4280_PGIO_GENERAL_PURPOSE_OUTPUT 0x40

Definition at line 151 of file LTC4280.h.

## ◆ LTC4280_PGIO_POWER_GOOD

#define LTC4280_PGIO_POWER_GOOD 0x80

Definition at line 150 of file LTC4280.h.

## ◆ LTC4280_PGIO_POWER_GOODX

#define LTC4280_PGIO_POWER_GOODX 0x00

Definition at line 149 of file LTC4280.h.

## ◆ LTC4280_POWER_BAD_DISABLE

#define LTC4280_POWER_BAD_DISABLE 0xF7

Definition at line 137 of file LTC4280.h.

## ◆ LTC4280_POWER_BAD_ENABLE

#define LTC4280_POWER_BAD_ENABLE 0x08

Definition at line 136 of file LTC4280.h.

## ◆ LTC4280_POWER_BAD_FAULT

#define LTC4280_POWER_BAD_FAULT 0x08

Definition at line 121 of file LTC4280.h.

## ◆ LTC4280_SENSE_REG

#define LTC4280_SENSE_REG 0x04

Definition at line 111 of file LTC4280.h.

## ◆ LTC4280_SOURCE_REG

#define LTC4280_SOURCE_REG 0x05

Definition at line 112 of file LTC4280.h.

## ◆ LTC4280_STATUS_REG

#define LTC4280_STATUS_REG 0x02

Definition at line 109 of file LTC4280.h.

## ◆ LTC4280_TEST_MODE_DISABLE

#define LTC4280_TEST_MODE_DISABLE 0xDF

Definition at line 155 of file LTC4280.h.

## ◆ LTC4280_TEST_MODE_ENABLE

#define LTC4280_TEST_MODE_ENABLE 0x20

Definition at line 154 of file LTC4280.h.

## ◆ LTC4280_UNDERVOLTAGE_AUTO_RETRY_DISABLE

#define LTC4280_UNDERVOLTAGE_AUTO_RETRY_DISABLE 0xFD

Definition at line 167 of file LTC4280.h.

## ◆ LTC4280_UNDERVOLTAGE_AUTO_RETRY_ENABLE

#define LTC4280_UNDERVOLTAGE_AUTO_RETRY_ENABLE 0x02

Definition at line 166 of file LTC4280.h.

## ◆ LTC4280_UNDERVOLTAGE_DISABLE

#define LTC4280_UNDERVOLTAGE_DISABLE 0xFD

Definition at line 141 of file LTC4280.h.

## ◆ LTC4280_UNDERVOLTAGE_ENABLE

#define LTC4280_UNDERVOLTAGE_ENABLE 0x02

Definition at line 140 of file LTC4280.h.

## ◆ LTC4280_UNDERVOLTAGE_FAULT

#define LTC4280_UNDERVOLTAGE_FAULT 0x02

Definition at line 123 of file LTC4280.h.