LTC3882 - Dual Output PolyPhase Step-Down DC/DC Voltage Mode Controller with Digital Power System Management
Features
- Order Custom Programmed Parts
- PMBus/I2C Compliant Serial Interface
– Monitor Voltage, Current, Temperature and Faults
– Digitally Programmable Voltage, Current Limit, Soft-Start/Stop, Sequencing, Margining, AVP and UV/OV Thresholds - 3V ≤ VINSNS ≤ 38V, 0.5V ≤ VOUT ≤ 5.25V
- ±0.5% Output Voltage Accuracy
- Programmable PWM Frequency or External Clock Synchronization from 250kHz to 1.25MHz
- Accurate PolyPhase® Current Sharing
- Internal EEPROM with Fault Logging
- IC Supply Range: 3V to 13.2V
- Resistor or Inductor DCR Current Sensing
- Optional Resistor Programming for Key Parameters
- 40-Pin (6mm × 6mm) QFN Package
Typical Application
Description
The LTC®3882 is a dual, PolyPhase DC/DC synchronous step-down switching regulator controller with PMBus compliant serial interface. It uses a constant frequency, leading-edge modulation, voltage mode architecture for excellent transient response and output regulation. Each PWM channel can produce output voltages from 0.5V to 5.25V using a wide range of 3.3V compatible power stages, including power blocks, DrMOS or discrete FET drivers. Up to four LTC3882s can operate in parallel for 2-, 3-, 4-, 6- or 8-phase operation.
LTC3882 system configuration and monitoring is supported by the LTpowerPlay™ software tool. The device’s serial interface can be used to read back input voltage, output voltage and current, temperature and fault status. A wide range of operating parameters can be set via the digital interface or stored in internal EEPROM for use at power up. Switching frequency and phase, output voltage and device address can also be programmed using external configuration resistors.
| PWM Enable Output | TG/BG Control | HW Write Protect | Dedicated PGOOD | Differential Vout Sense | |
| LTC3882 | Yes | Yes | Yes | No | VOUT0 Only |
| LTC3882-1 | No | No | No | Yes | VOUT0 & VOUT1 |
Packaging
CAD Symbols and Footprints: The downloadable Zip file below contains the schematic symbol and PCB footprints.
For complete and up to date package information and drawings, please refer to our packaging page
| Part Number | Package | Code | Temp | Package Drawing |
RoHS |
|---|---|---|---|---|---|
| LTC3882EUJ#PBF | 6x6 QFN-40 | UJ | E | 05-08-1728 | Yes |
| LTC3882EUJ#TRPBF | 6x6 QFN-40 | UJ | E | 05-08-1728 | Yes |
| LTC3882IUJ#PBF | 6x6 QFN-40 | UJ | I | 05-08-1728 | Yes |
| LTC3882IUJ#TRPBF | 6x6 QFN-40 | UJ | I | 05-08-1728 | Yes |
Order Info
- Part numbers ending in PBF are lead free. Solder plated terminal finish (SnPb) versions are non-standard and special terms and conditions and pricing applies if available. Please contact LTC marketing for information.
- Part numbers containing TR or TRM are shipped in tape and reel or 500 unit mini tape and reel, respectively
- Please refer to our general ordering information or the product datasheet for more details
Package Variations and Pricing
| Part Number | Package | Temp | Price (1-99) |
Price (1k)* |
RoHS | |
|---|---|---|---|---|---|---|
| LTC3882EUJ#PBF | 6x6 QFN-40 | E | $7.64 | $5.35 | Yes | |
| LTC3882EUJ#TRPBF | 6x6 QFN-40 | E | $5.41 | Yes | ||
| LTC3882IUJ#PBF | 6x6 QFN-40 | I | $8.86 | $6.20 | Yes | |
| LTC3882IUJ#TRPBF | 6x6 QFN-40 | I | $6.26 | Yes | ||
| Buy Now • Request Samples | ||||||
Demo Boards
Linear Technology offers many demo boards free of charge to qualified customers. Contact your local sales office or distributor to inquire about a demo board. Certain demo boards are also available for sale via credit card on this website. Demo boards are for evaluation purposes only. It remains the customer’s responsibility to verify proper and reliable operation in the actual end application.| Part Number | Description | Price | Documentation |
|---|---|---|---|
| DC1936A | LTC3882EUJ Demo Board | Dual Buck Voltage Mode Controller with PSM, 7V ≤ VIN ≤ 14V; 0.8V ≤ VOUT0 ≤ 1.8V @ 30A, 0.8V ≤ VOUT1 ≤ 1.8V @ 30A | Contact Factory | |
| DC2174A-A | LTC3882EUJ Demo Board | Dual Phase, Dual Output PMBus Buck, 7V ≤ VIN ≤ 14V; 0.5V ≤ VOUT0 ≤ 2V @ 35A, 0.5V ≤ VOUT1 ≤ 2V @ 35A | Contact Factory | |
| DC2174A-B | LTC3882EUJ Demo Board | Dual Phase, Single Output PMBus Buck, 7V ≤ VIN ≤ 14V; 0.5V ≤ VOUT0 ≤ 2V @ 70A | Contact Factory | |
| DC2252A-A | LTC3882EUJ Demo Board | EEPROM Programming Board for LTC3882 | Contact Factory | |
| DC2291A | LTC3882EUJ Demo Board │LTC3882 (x2) 4-Phase PMBus Buck , 7V ≤ VIN ≤ 14V; 0.5V ≤ VOUT ≤ 2V @ 140A | Contact Factory | |
| Buy Now | |||
Companion Boards
| Part Number | Description | Price | Documentation |
|---|---|---|---|
| DC1613A | USB-to-PMBus Controller for Use with LTpowerPlay | $50.00 | |
| DC2026C | Linduino One Isolated USB Demo Board: An Arduino- and QuikEval-Compatible Code Development Platform | $75.00 | |
| Buy Now | |||
Applications
- High Current Distributed Power Systems
- Servers, Network and Storage Equipment
- Intelligent Energy Efficient Power Regulation
- Industrial/Telecom/ATE Systems
People Who Viewed This Product Also Viewed
- LTC3880 - Dual Output PolyPhase Step-Down DC/DC Controller with Digital Power System Management
- LTM4676 - Dual 13A or Single 26A μModule (Power Module) Regulator with Digital Power System Management
- LTC3883/LTC3883-1- Single Phase Step-Down DC/DC Controller with Digital Power System Management
- LT8705 - 80V VIN and VOUT Synchronous 4-Switch Buck- Boost DC/DC Controller
- LT8471 - Dual Multitopology DC/DC Converters with 2A Switches and Synchronization
- LT4320/LT4320-1 - Ideal Diode Bridge Controller
- LTC2983 - Multi-Sensor High Accuracy Digital Temperature Measurement System
- LT3080 - Adjustable 1.1A Single Resistor Low Dropout Regulator
- LTC4020 - 55V Buck-Boost Multi-Chemistry Battery Charger
- LTM4644 - Quad DC/DC μModule (Power Module) Regulator with Configurable 4A Output Array
Product Notifications
Please login to your MyLinear account for notifications of datasheet updates, new document releases and LTspice model announcements for your favorite products. If you do not have a MyLinear account you may Sign Up Now.
Forgot your password? Click here.
Need help? Email mylinear@linear.com with questions and comments.
Design Tools
LTspice
LTspice® software is a powerful, fast and free simulation tool, schematic capture and waveform viewer with enhancements and models for improving the simulation of switching regulators. Click here to download LTspice
Models for the following parts are available in LTspice:
LTC3882
LTpowerCAD
The LTpowerCAD design tool is a complete power supply design tool program that can significantly ease the tasks of power supply design. It guides users to a solution, selects power stage components, provides detailed power efficiency, shows quick loop bode plot stability and load transient analysis, and can export a final design to LTspice for simulation. Click here to download LTpowerCAD
To open the project file for this circuit:
- Step 1: If you have not installed LTpowerCAD on this computer, download and install LTpowerCAD
- Step 2: Once LTpowerCAD is installed, click on the link(s) below to open the project file
- Step 3: If LTpowerCAD does not automatically open after clicking the link above, you can open the project file by right clicking on the link and selecting "Save Target As." After saving the file to your computer, start LTpowerCAD and open the project file by selecting 'Open Project' from the 'File' menu
Design tools for the following parts are available in LTpowerCAD:
LTC3882
LTC3882 Parallel
Linduino
Linduino is an Arduino compatible platform for developing and distributing firmware libraries and code for SPI and I²C-compatible integrated circuits. The Linduino One board interfaces to more than 300 QuikEval demonstration cards, supporting a variety of product types including analog-to-digital converters (ADCs), digital-to-analog converters (DACs), power monitors, and more. Firmware libraries for individual devices are written in C and designed to be portable to a wide variety of processors and microcontrollers. Each library has a demonstration program that can be uploaded to the Linduino One platform to allow the circuit and software to be quickly and easily verified.
Code
Linduino is Linear Technology's Arduino compatible system for developing and distributing firmware libraries and example code for Linear Technology’s integrated circuits. The code below can be downloaded or copied and pasted into your project. Please visit the Linduino Home Page for demo board, manual and setup information.
This part is Code Supported: There is example code available for this part. The code below may rely on other drivers available in the full library.
Download LTC3882 - DC1936A Linduino .INO File
/*!
Linear Technology DC1936A Demonstration Board
LTC3882: Dual Output PolyPhase Step-Down DC/DC Voltage Mode Controller with Digital Power System Management
@verbatim
NOTES
Setup:
Set the terminal baud rate to 115200 and select the newline terminator.
@endverbatim
http://www.linear.com/product/LTC3882
http://www.linear.com/demo/DC1936A
REVISION HISTORY
$Revision: 4467 $
$Date: 2015-12-02 11:28:55 -0800 (Wed, 02 Dec 2015) $
Copyright (c) 2014, Linear Technology Corp.(LTC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. 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.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, 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.
The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.
The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community. Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/
/*! @file
@ingroup LTC3882
*/
#include <Arduino.h>
#include <stdint.h>
#include "Linduino.h"
#include "UserInterface.h"
#include "LT_I2CBus.h"
#include "LT_SMBusNoPec.h"
#include "LT_SMBusPec.h"
#include "LT_PMBus.h"
#define LTC3882_I2C_ADDRESS 0x5C
// Global variables
static uint8_t ltc3882_i2c_address;
static LT_SMBus *smbus = new LT_SMBusPec();
static LT_PMBus *pmbus = new LT_PMBus(smbus);
//! Initialize Linduino
void setup()
{
Serial.begin(115200); //! Initialize the serial port to the PC
print_title();
ltc3882_i2c_address = LTC3882_I2C_ADDRESS;
print_prompt();
}
//! Repeats Linduino loop
void loop()
{
uint8_t user_command;
uint8_t res;
uint8_t model[7];
uint8_t *addresses = NULL;
if (Serial.available()) //! Checks for user input
{
user_command = read_int(); //! Reads the user command
if (user_command != 'm')
Serial.println(user_command);
switch (user_command) //! Prints the appropriate submenu
{
case 1:
menu_1_basic_commands(); // Print single-ended voltage menu
break;
case 2:
pmbus->readModel(ltc3882_i2c_address, model);
Serial.print(F("MODEL "));
Serial.print((char *)model);
Serial.println();
break;
case 3:
res = pmbus->readPmbusRevision(ltc3882_i2c_address);
Serial.print(F("REVISION "));
Serial.println(res, HEX);
break;
case 4:
pmbus->enablePec(ltc3882_i2c_address);
delete smbus;
delete pmbus;
smbus = new LT_SMBusPec();
pmbus = new LT_PMBus(smbus);
break;
case 5:
pmbus->disablePec(ltc3882_i2c_address);
delete smbus;
delete pmbus;
smbus = new LT_SMBusNoPec();
pmbus = new LT_PMBus(smbus);
break;
case 6:
addresses = smbus->probe(0);
while (*addresses != 0)
{
Serial.print(F("ADDR 0x"));
Serial.println(*addresses++, HEX);
}
break;
case 7 :
pmbus->resetGlobal();
break;
default:
Serial.println(F("Incorrect Option"));
break;
}
print_prompt();
}
}
// Function Definitions
//! Prints the title block when program first starts.
void print_title()
{
Serial.print(F("\n*****************************************************************\n"));
Serial.print(F("* DC1936A Demonstration Program *\n"));
Serial.print(F("* *\n"));
Serial.print(F("* This program demonstrates how to send and receive data from *\n"));
Serial.print(F("* the DC1936A demo board. *\n"));
Serial.print(F("* *\n"));
Serial.print(F("* Set the baud rate to 115200 and select the newline terminator.*\n"));
Serial.print(F("* *\n"));
Serial.print(F("*****************************************************************\n"));
}
//! Prints main menu.
void print_prompt()
{
Serial.print(F("\n 1-Basic Commands\n"));
Serial.print(F(" 2-Model Number\n"));
Serial.print(F(" 3-Revision Number\n"));
Serial.print(F(" 4-PEC On\n"));
Serial.print(F(" 5-PEC Off\n"));
Serial.print(F(" 6-Bus Probe\n"));
Serial.print(F(" 7-Reset\n"));
Serial.print(F("\nEnter a command:"));
}
//! Prints a warning if the demo board is not detected.
void print_warning_prompt()
{
Serial.println(F("\nWarning: Demo board not detected. Linduino will attempt to proceed."));
}
void print_all_voltages()
{
float voltage;
uint8_t page;
for (page = 0; page < 2; page++)
{
voltage = pmbus->readVoutWithPage(ltc3882_i2c_address, page);
Serial.print(F("LTC3882 VOUT "));
Serial.println(voltage, DEC);
}
}
void print_all_currents()
{
float current;
uint8_t page;
for (page = 0; page < 2; page++)
{
current = pmbus->readIoutWithPage(ltc3882_i2c_address, page);
Serial.print(F("LTC3882 IOUT "));
Serial.println(current, DEC);
}
}
void print_all_status()
{
uint8_t b;
uint16_t w;
uint8_t page;
for (page = 0; page < 2; page++)
{
Serial.print(F("PAGE "));
Serial.println(page, DEC);
pmbus->setPage(ltc3882_i2c_address, page);
b = pmbus->readStatusByte(ltc3882_i2c_address);
Serial.print(F("LTC3880 STATUS BYTE 0x"));
Serial.println(b, HEX);
w = pmbus->readStatusWord(ltc3882_i2c_address);
Serial.print(F("LTC3882 STATUS WORD 0x"));
Serial.println(w, HEX);
}
}
void sequence_off_on()
{
pmbus->sequenceOffGlobal();
delay (2000);
pmbus->sequenceOnGlobal();
}
void margin_high()
{
pmbus->marginHighGlobal();
}
void margin_low()
{
pmbus->marginLowGlobal();
}
void margin_off()
{
pmbus->sequenceOnGlobal();
}
void menu_1_basic_commands()
{
uint8_t user_command;
do
{
//! Displays the Read/Write menu
Serial.print(F("\nRead/Write\n\n"));
Serial.print(F(" 1-Read All Voltages\n"));
Serial.print(F(" 2-Read All Currents\n"));
Serial.print(F(" 3-Read All Status\n"));
Serial.print(F(" 4-Sequence Off/On\n"));
Serial.print(F(" 5-Margin High\n"));
Serial.print(F(" 6-Margin Low\n"));
Serial.print(F(" 7-Margin Off\n"));
Serial.print(F(" m-Main Menu\n"));
Serial.print(F("\nEnter a command: "));
user_command = read_int(); //! Reads the user command
if (user_command == 'm') // Print m if it is entered
{
Serial.print(F("m\n"));
}
else
Serial.println(user_command); // Print user command
switch (user_command)
{
case 1:
print_all_voltages();
break;
case 2:
print_all_currents();
break;
case 3:
print_all_status();
break;
case 4:
sequence_off_on();
break;
case 5:
margin_high();
break;
case 6:
margin_low();
break;
case 7:
margin_off();
break;
default:
if (user_command != 'm')
Serial.println(F("Invalid Selection"));
break;
}
}
while (user_command != 'm');
}
Download LTC3882 - Linduino CPP File
#include "LT_PMBusDeviceLTC3882.h"
uint32_t LT_PMBusDeviceLTC3882::cap_ = HAS_VOUT
| HAS_VIN
| HAS_IOUT
| HAS_POUT
| HAS_TEMP
| HAS_DC
| HAS_STATUS_WORD
| HAS_STATUS_EXT
;Download LTC3882 - Linduino Header File
/*!
LTC PSM Device
@verbatim
Representation of a device and its capabilities.
@endverbatim
REVISION HISTORY
$Revision: 3845 $
$Date: 2015-08-24 14:11:21 -0600 (Mon, 24 Aug 2015) $
Copyright (c) 2014, Linear Technology Corp.(LTC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. 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.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, 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.
The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Linear Technology Corp.
The Linear Technology Linduino is not affiliated with the official Arduino team.
However, the Linduino is only possible because of the Arduino team's commitment
to the open-source community. Please, visit http://www.arduino.cc and
http://store.arduino.cc , and consider a purchase that will help fund their
ongoing work.
*/
/*! @file
@ingroup LT_PMBusDevice
Library Header File for LT_PMBusDeviceLTC3882
*/
#ifndef LT_PMBusDeviceLTC3882_H_
#define LT_PMBusDeviceLTC3882_H_
#include "LT_PMBusDeviceController.h"
#include "../LTPSM_PartFaultLogs/LT_3882FaultLog.h"
class LT_PMBusDeviceLTC3882 : public LT_PMBusDeviceController
{
public:
static uint32_t cap_;
LT_PMBusDeviceLTC3882(LT_PMBus *pmbus, uint8_t address) : LT_PMBusDeviceController(pmbus, address, 2)
{
}
uint32_t getCapabilities (
)
{
return cap_;
}
//! Is/are these capability(s) supported?
//! @return true if yes
bool hasCapability(
uint32_t capability //!< List of capabilities
)
{
return (cap_ & capability) == capability;
}
static LT_PMBusDevice *detect(LT_PMBus *pmbus, uint8_t address)
{
uint16_t id;
LT_PMBusDeviceLTC3882 *device;
id = pmbus->readMfrSpecialId(address);
if ( (id & 0xFFF0) == 0x4200
|| (id & 0xFFF0) == 0x4240)
{
if (pmbus->getRailAddress(address) != address)
{
device = new LT_PMBusDeviceLTC3882(pmbus, address);
device->probeSpeed();
return device;
}
else
return NULL;
}
else
return NULL;
}
uint8_t getNumPages(void)
{
return 2;
}
void enableFaultLog()
{
LT_3882FaultLog *faultLog = new LT_3882FaultLog(pmbus_);
faultLog->enableFaultLog(address_);
delete faultLog;
}
void disableFaultLog()
{
LT_3882FaultLog *faultLog = new LT_3882FaultLog(pmbus_);
faultLog->disableFaultLog(address_);
delete faultLog;
}
bool hasFaultLog()
{
LT_3882FaultLog *faultLog = new LT_3882FaultLog(pmbus_);
if (faultLog->hasFaultLog(address_))
{
delete faultLog;
return true;
}
else
{
delete faultLog;
return false;
}
}
char *getFaultLog()
{
LT_3882FaultLog *faultLog = new LT_3882FaultLog(pmbus_);
if (faultLog->hasFaultLog(address_))
{
faultLog->read(address_);
// faultLog->print(&Serial);
faultLog->dumpBinary(&Serial);
faultLog->release();
delete faultLog;
return NULL;
}
else
{
delete faultLog;
return NULL;
}
}
void clearFaultLog()
{
LT_3882FaultLog *faultLog = new LT_3882FaultLog(pmbus_);
if (faultLog->hasFaultLog(address_))
{
faultLog->clearFaultLog(address_);
pmbus_->smbus()->waitForAck(address_, 0x00);
pmbus_->waitForNotBusy(address_);
delete faultLog;
}
else
{
delete faultLog;
}
}
};
#endif /* LT_PMBusDeviceLTC3882_H_ */
Technical Support
- For immediate technical assistance, contact your local sales office or distributor or call 1-800-4-LINEAR (US customers only) or 408-432-1900.
- For less urgent requests, please complete our Technical Support Request Form. Please allow 2-3 business days for reply.