153 2016 1 Linduino Michael Jones (PSM) LTpowerPlay (BMC) PSM PSM PMBus PMBus SMBus SMBus I2C PSM BMC Linduino (API) PSM Linduino PSM BMC BMC Robust PMBus System Software for the LTC3880) I 2 C / SMBus / PMBus LINDUINO PSM Linduino PSM Linduino (DC2026) (DC2294) Linduino I 2 C PMBus / SMBus / I 2 CBus DC2026 (Linduino) DC2294 () DC1962 (Power Stick) Total Phase Beagle (I 2 C ) (LTC388X) (LTC297X) 1 () USB Linduino Linduino LTC BMC SMBus API PMBus Linduino / Linduino API Linduino Linduino PSM PSM 135 (Applicaton Note 135 - Implementing 1 LT LTC LTM Linear Technology Linduino LTpowerPlay AN153-1
153 Beagle USB Beagle Beagle DC2294 DC1962 PMBus DC2086 Arduino Sketchbook LTC Linduino Sketchbook Linduino Sketchbook File Preferences 3 ( Preferences ) 2 DC2086 DC2294 12 14 4 DC2086 Linduino LINDUINO PSM SKETCH 3 Preferences 4 (Preferences ) Sketchbook Location Browse www.linear.com.cn/linduino LTSketchbook PMBus DC1962 Sketch Linduino PSM Arduino Linduino Sketchbook Arduino www.arduino.cc Linduino Sketchbook www.linear.com.cn/linduino Arduino 64 Ubuntu 14 TLS Arduino 1.6.4 AN153-2 4 Preferences
Figure 1. Art Titles Text for Graphics 153 ON Display Show Arduino Arduino Arduino Sketchbook Arduino Arduino LTSketchbook Sketchbook Sketch 5 ( hello_world) hello_world Sketch 6 Sketch 5 hello_world Compile Display Sketch Sketch 6 (Sketch ) 7 (Arduino ) Sketch Sketch Sketch Linduino Sketch Linduino Arduino Arduino Uno (Tools Menu) Sketch Carriage return 115200 8 (Arduino ) Compile and Load 7 Arduino Sketch (Send ) Send <CR> Sketch 9 (Sketch ) 1 (Basic Commands) 1 (Read All Voltages) DC1962 VOUT X Sketch Sketch Beagle AN153-3
153 8 Arduino Sketch setup() ( ) loop() ( ) Arduino C main()? Arduino setup() main() loop() Sketch loop() API Sketch Sketch PMBus (API) voltage = pmbus->readvout (0x30, false); 9 Sketch pmbus API 0x30 ( ) float readpout (uint8_t address, bool polling); LTC3880 ( Power Stick 0x30) Power Stick 0 Sketch LINDUINO PSM PMBus PMBus LTSketchbook/libraries/LT_PMBUS LTSketchbook TWI ( ) I 2 C SMBus AN153-4
153 PMBus L11/L16 (PMBus ) API (Group Command Protocol) C++ Arduino (Serial) I/O C C++ ( ) C C++ 11 (Include Library) #include <LT_SMBusPec.h> #include <LT_SMBusNoPec.h> #include <LT_SMBus.h> #include <LT_SMBusMath.h> 12 (Base Includes) 10 LT_PMBus SMBus PEC LT_I2C.h LT_SMBus.h LT_PMBus.h API Linduino PSM API ( ) LT_SMBusBase PMBus PMBus Sketch PMBus Sketch 11 ( [Include Library]) 12 ( [Base Includes]) Sketch (smbus) (pmbus) 13 () Smbus Pec NoPec (clean layers) SMBus PMBus PMBus API SMBus API static LT_SMBus *smbus = new LT_SMBusPec(); static LT_SMBus *smbus = new LT_PBusPec(smbus); 13 smbus-> SMBus API pmbus-> PMBus API API LT_PMBusMath LT_PMBusMath L11/L16 PMBus AN153-5
153 LT_I2C LT_I2C LT_PMBus I 2 C LT_PMBus PMBus LT_PMBus I 2 C Wire Arduino Arduino Mega 2560 PSM Sketch LT_I2C LT_I2C PSM/PMBus Sketch 15 Sketch (Empty Sketch) () Sketch DC1962 5 1. 2. 3. / 4. 5. Sketch 14 ( Sketch) File New Sketch 15 ( Sketch) Sketch 16 Save As ( ) Sketch Include Include Library ( ) UserInterface Linduino LT_PMBUS 17 (Includes) LT_PMBUS Include Library 14 Sketch (New Sketch) File Save As... Sketch Sketch 16 (Save As...) LTSketchbook (File Preferences ) Sketchbook #include <Arduino.h> SMBus/PMBus (Setup) File Save AN153-6
153 print_prompt() Sketch 19 (Prompt) 17 (Includes) 18 ( ) 19 Prompt 20 () PMBus 18 21 () 1 float unit8_t 57~58 Arduino Serial.print AN153-7
153 PMBus.h LT_PMBus Doxigen API / 22 ( / ) 4 No Margin sequenceonglobal() PMMBus OPERATION (0x01) 20 22 / LTC3880 23 (OPERATION ) 0x80 () pmbus->sequenceonglobal() 4 On-Off_Config_Use_PMBus Operation_Control OPERATION OPERATION 0x00 0x80 0x98 0xA8 0x40 21 F() RAM for loop pmbus->setpage(...) pmbus->readvout(...) ( DEC ) 23 OPERATION SMBus API PMBus 2 4 ( ) smbus->probe(0) 0 AN153-8
153 PAGE (0x00) 0x00 LTC388X LTC297X LTC388X MFR_RESET (0xFD) LTC297X LTC2977 0xFD MFR_TEMPERATURE_MIN MFR_RESET (NVM) RAM PSM STOP 24 ( ) case 8 pmbus->startgroupprotocol() pmbus->executegroupprotocol() Linduino PSM Spy Sketch Arduino F() RAM PSM ( NACK PEC ) DEC HEX Arduino 24 PMBus Spy Spy LTC Total Phase Beagle Total Phase Data Center Total Phase Data Center Application (www.totalphase.com) Sketch 3 () 25 (Beagle) Index #1 (I1) index #6 (I6) SMBus (Write Byte Protocol) 0x30 LTC3880 0x00 (PAGE) AN153-9
153 0x20 VOUT_MODE 2 R Linduino 21 () 64? API 27 ( VOUT ) vout_l16 = smbus_.readword(address, READ_VOUT); exp = (int8_t) (smbus_.readbyte(address, VOUT_MODE) & 0x1F); return math_.lin16_to_float(vout_l16, exp); 27 VOUT smbus_.readbyte(address, VOUT_MODE) smbus_.readword(address, READ_VOUT) 5 exp exp L16 25 Beagle LTC3880 2 PAGE Beagle Type R/W Byte / L16 LTC388X LTC297X 26 PAGE I1 I6 0x00 0x01 PAGE 0 1 21 () 63 I2 I5 28 () S/P S SP I1 (Start) I2 (Repeated Start) I3 (Repeated Start) (Stop) 0x30 0x32 0x33 0x8B 0x9A 0x0D 0x20 0x14 0x8B READ_VOUT 2 R L16 28 (Reset Trace) AN153-10
153 I3 (STOP) 24 ( ) 110~114 Beagle PSM PMBus PSM LTpowerPlay BMC BMC BMC? PSM BMC PWM LTpowerPlay PSM PMBus PMBus PMBus SMBus ( ) (bit dominance arbitration) Linduino LTpowerPlay (DC1613) PMBus PAGE (0x00) LTC2977 8 8 PAGE / ( ) PAGE READ_VOUT LTpowerPlay? VID ( ) LTpowerPlay PAGE? ( VOUT_MAX ) PAGE PMBus LTC LTpowerPlay PAGE PAGE PLUS PAGE PLUSPAGE PLUS PAGE COMMAND PAGE PLUS LTC PSM LTpowerPlay LTpowerPlay 29 (LTpowerPlay / ) - AN153-11
153 / (MUX) LTpowerPlay 1. 2. LTC PAGE PLUS 1 29 LTpowerPlay / LTpowerPlay 30 ( LTpowerPlay) 30 LTpowerPlay LTC Linduino PSM Sketchbook Linduino DC2294 PSM SMBus PMBus API LTpowerPlay Total Phase Beagle Spy Tool PMBus Linduino PSM LTSketchbook Sketch Sketch (Fault Log Decoding) / (In System/Flight Update) LT 0216 AN153-12 LINEAR TECHNOLOGY CORPORATION 2016