Linduino  1.3.0
Linear Technology Arduino-Compatible Demonstration Board

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_addressthe Alert Response Address on the I2C bus
i2c_addressthe 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
LSBData from registers
resistor_divider_ratioSmallest 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
commandLTC4280 I2C ADDRESS
codeRegister 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
commandLTC4280 I2C ADDRESS
codeRegister 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.