MCP19111 PMBus Firmware

TB3139
MCP19111 PMBus™ Firmware
Author:
Mihnea Rosu-Hamzescu
Microchip Technology Inc.
OVERVIEW
This document briefly describes the implementation of
the PMBus™ Protocol Revision 1.1 with a subset of
commands on the Microchip MCP19111 Point-of-Load
(POL) converter (ARD00609).
2C bus
MCP19111 supports both 100 kHz and 400 kHz I
speeds. Addressing is 7-bit, with a default address
value of 0x55. The address can be changed using a
custom command and stored in the nonvolatile memory.
The implementation supports Packet Error Checking
(PEC) transparently, based on the number of bytes
sent or received.
The bus master is signaled using the #SMBALERT pin,
which is asserted low when an error occurs. This
PMBus implementation does not support master mode
communication.
The output voltage values are reported using a 16-bit
value, which represents only the mantissa. The
exponent is found using a separate command. For the
rest of the values (input voltage, output current and
operating temperature), the 16-bit value has the format
shown in Figure 1. A 5-bit exponent (in gray) is followed
by an 11-bit mantissa, yielding the value X, as shown in
Equation 1.
Although not specifically noted, all data is represented
in a little-endian form.
Data Byte Low
Data Byte High
7
6
MSB
5
4
N
FIGURE 1:
3
2
1
MSB
0
7
6
5
4
3
2
1
0
Y
Linear Data Format.
PMBus commands are one-byte command codes. The
protocol
also
specifies
“extended”
two-byte
commands, but this implementation does not offer
support for such commands.
The firmware implements storing of the default
parameters (both PMBus and MCP19111 specific) into
nonvolatile memory and restores them either at startup or by user command. PMBus devices generally
recognize two data formats: linear and direct. The
current implementation uses the linear format:
EQUATION 1:
X = Y2
N
where:
X = real value
Y = the mantissa
N = the exponent
For the output voltage, the linear exponent is fixed to -10,
giving a resolution of 2-10. For all the other values using
this format, the device will report using fixed exponents,
but it will accept values with arbitrary exponents.
 2015 Microchip Technology Inc.
DS90003139A-page 1
TB3139
LIST OF IMPLEMENTED COMMANDS
TABLE 1:
No.
IMPLEMENTED COMMANDS
Command Name
Code
Write/Read
Bytes
Notes
1
OPERATION
0x01
1/1
2
ON_OFF_CONFIG
0x02
1/1
3
CLEAR_FAULTS
0x03
0/0
4
STORE_DEFAULT_ALL
0x11
0/0
5
RESTORE_DEFAULT_ALL
0x12
0/0
6
VOUT_MODE
0x20
0/1
7
VOUT_COMMAND
0x21
2/2
8
VOUT_TRIM
0x22
2/2
9
VOUT_MAX
0x24
2/2
10
MAX_DUTY
0x32
2/2
Not active
11
FREQUENCY_SWITCH
0x33
2/2
Minimum 100 kHz, maximum 750 kHz
12
VOUT_OV_FAULT_LIMIT
0x40
2/2
13
VOUT_OV_WARN_LIMIT
0x42
2/2
14
VOUT_UV_WARN_LIMIT
0x43
2/2
15
VOUT_UV_FAULT_LIMIT
0x44
2/2
16
IOUT_OC_FAULT_LIMIT
0x46
0/2
Read-only, value writable by manufacturer command
17
IOUT_OC_WARN_LIMIT
0x4A
0/2
Read-only, value writable by manufacturer command
18
OT_FAULT_LIMIT
0x4F
2/2
19
OT_WARN_LIMIT
0x51
2/2
20
VIN_OV_FAULT_LIMIT
0x55
2/2
21
VIN_OV_WARN_LIMIT
0x57
2/2
22
VIN_UV_WARN_LIMIT
0x58
2/2
23
VIN_UV_FAULT_LIMIT
0x59
2/2
24
POWER_GOOD_ON
0x5E
2/2
25
POWER_GOOD_OFF
0x5F
2/2
Read-only, linear format and -10 exponent
—
TON_DELAY
0x60
2/2
Removed
26
TON_RISE
0x61
2/2
Supports ramps up to 32 ms
—
TOFF_DELAY
0x64
2/2
Removed
27
TOFF_FALL
0x65
2/2
Supports ramps up to 32 ms
28
STATUS_BYTE
0x78
0/1
29
STATUS_WORD
0x79
0/2
30
STATUS_VOUT
0x7A
0/1
31
STATUS_IOUT
0x7B
0/1
32
STATUS_INPUT
0x7C
0/1
33
STATUS_TEMPERATURE
0x7D
0/1
34
STATUS_CML
0x7E
0/1
35
STATUS_OTHER
0x7F
0/1
36
READ_VIN
0x88
0/2
37
READ_VOUT
0x8B
0/2
38
READ_IOUT
0x8C
0/2
39
READ_TEMPERATURE_1
0x8D
0/2
40
MFR_ID
0x99
0/2
DS90003139A-page 2
 2015 Microchip Technology Inc.
TB3139
TABLE 1:
No.
IMPLEMENTED COMMANDS (CONTINUED)
Command Name
Code
Write/Read
Bytes
0x9A
0/2
Notes
41
MFR_MODEL
42
MFR_REVISION
0x9B
0/2
43
MFR_SPECIFIC_OCCON
0xD0
1/1
Not active
44
MFR_SPECIFIC_CSGSCON
0xD1
1/1
Not active
45
MFR_SPECIFIC_CSDGCON
0xD2
1/1
Not active
46
MFR_SPECIFIC_CMPZCON
0xD3
1/1
Not active
47
MFR_SPECIFIC_SLPCRCON
0xD4
1/1
Not active
48
MFR_SPECIFIC_DEADCON
0xD5
1/1
Not active
49
MFR_SPECIFIC_ALPHA
0xD6
1/1
α temperature coefficient value
50
MFR_SPECIFIC_I2CADD
0xD7
1/1
I²C address; change activates on next power-up
51
MFR_SPECIFIC_IOUTCHAN
0xDA
1/1
Selects ADC channel for measuring output current
52
MFR_SPECIFIC_HWREGS
0xDB
6/6
Replaces commands 0xD0 through 0xD5
53
MFR_SPECIFIC_OC_SET
0xDC
4/4
Sets IOUT fault and warning limits in ADC units
54
MFR_SPECIFIC_READ_ADC
0xDD
1/2
Reads an arbitrary ADC channel;
Write sets the channel
55
MFR_SPECIFIC_VOUTCALIB
0xDE
1/1
56
MFR_SPECIFIC_ICALIB
0xDF
12/12
 2015 Microchip Technology Inc.
VOUT ADC channel offset correction
IOUT polynomial coefficients (3 x 32-bit values)
DS90003139A-page 3
TB3139
DESCRIPTION OF MANUFACTURER
COMMANDS
All manufacturer commands have a PMBus-compliant
format, but the data is not in the standard linear format.
MFR_SPECIFIC_OCCON
This command will read and write the OCCON
hardware register.
An example of a read transaction using the default
0x55h I2C address is shown in Table 2.
TABLE 2:
EXAMPLE READ TRANSACTION (DEFAULT 0X55H I²C ADDRESS)
Byte
Number
Byte 1
Byte 2
Byte 3
Byte 4
Command
Structure
Start
Slave Address
Write
Command
Code
Restart
Slave Address
Read
OCCON Value
Stop
Value
S
0xAA
0xD0
RS
0xAB
0xE6
P
MFR_SPECIFIC_CSGSCON
MFR_SPECIFIC_I2CADD
This command will read and write the CSGSCON
hardware register.
The 7-bit I2C address of the device can be read and
written using this command. The actual address is not
changed immediately; the user must issue a
STORE_ALL command and power-down the board. On
the next power-up, the new address will be read from
the nonvolatile memory and applied.
MFR_SPECIFIC_CSDGCON
This command will read and write the CSDGCON
hardware register.
MFR_SPECIFIC_CMPZCON
This command will read and write the CMPZCON
hardware register.
MFR_SPECIFIC_SLPCRCON
This command will read and write the SLPCRCON
hardware register.
MFR_SPECIFIC_DEADCON
This command will read and write the DEADCON
hardware register.
MFR_SPECIFIC_ALPHA
The temperature coefficient ALPHA can be read and
written using this command. For additional information,
see Appendix C: “Calibration Example” from
“MCP19111 PMBus-Enabled Point-of-Load (POL)
Converter
Reference
Design
User’s
Guide”
(DS50002379). This command is only valid for the
boards using an external temperature sensor to output
current temperature compensation.
DS90003139A-page 4
MFR_SPECIFIC_IOUTCHAN
This command allows the user to change the input
ADC channel for reading the output current. This gives
greater flexibility in either using the internal amplifier or
using an external one. The value read or written is the
actual ADC channel code as described in the
MCP19110/MCP19111 Data Sheet.
MFR_SPECIFIC_HWREGS
This command replaces the commands 0xD0 through
0xD5 by reading and writing a block of 6 bytes that represent the values for the hardware configuration registers. The registers are read and written in the data
block in the following order: OCCON, CSGSCON,
CSDGCON, CMPZCON, SLPCRCON and DEADCON. The values are written directly into the
configuration registers so the user must take care if
doing this while the converter is on.
 2015 Microchip Technology Inc.
TB3139
Since the coefficients are real numbers and all the
calculations are done in integer arithmetic, they need to
be scaled to maintain accuracy. The ADC current
readings are 10-bit readings and must be converted
into volts in order to use the ADC reading directly.
Equation 3 provides the conversion equation.
MFR_SPECIFIC_OC_SET
This command sets and reads the output current
warning and fault thresholds in ADC units. The data
consists of four bytes: the first two are for the current
fault threshold, and the second two for the current
warning threshold. The ADC values should be
calculated using the function described in the
MFR_SPECIFIC_ICALIB section. All data is
represented in a little-endian form.
EQUATION 3:
5
V = ADC counts --------2 10
IOUT_OC_FAULT_LIMIT IOUT_OC_WARN_LIMIT
Byte 1
Byte 2
Byte 1
Byte 2
0
1
2
3
The ADC reference is 5V.
The conversion of ADC readings to Amperes is shown
in Equation 4:
MFR_SPECIFIC_READ_ADC
EQUATION 4:
This command allows reading an arbitrary ADC
channel. Writing a byte using this command will set the
ADC channel to that value. Reading two bytes using
this command will result in a 12-bit value (4 x 10-bit
ADC readings summed together). All data is
represented in a little-endian form.
5 2
5
f  ADC  = a  x --------- +bx --------- + c
 10
10
2
2
We still need to scale the coefficients to have the
common denominator 224:
EQUATION 5:
MFR_SPECIFIC_VOUTCALIB
2
4
14
24
ax  25  2 + bx  5  2 + c  2
f  ADC  = ------------------------------------------------------------------------------------------------24
2
This command reads and writes the output voltage
ADC channel offset in ADC units. This is critical
because the readings on this channel are used to
calibrate the actual output voltage.
By scaling the equation coefficients, we obtain the
values that are stored into the device:
MFR_SPECIFIC_ICALIB
EQUATION 6:
This command is used to read or write the output
current polynomial function coefficients. For the
firmware version that doesn't use temperature
compensation, the function is second order and uses
three coefficients.
A = a × 400
B = b × 81920
C = c × 16777216
The MFR_SPECIFIC_ICALIB command will read or
write a 12-byte block representing A, B and C (Table 3)
each as a long integer (32-bit, signed). All data is
represented in little-endian form.
EQUATION 2:
2
I OUT = f  v  = aX + bX + c
TABLE 3:
MFR_SPECIFIC_ICALIB COMMAND WRITTEN 12-BYTE BLOCK
A
B
LSB
MSB
LSB
C
MSB
LSB
MSB
Byte 1
Byte 2
Byte 3
Byte 4
Byte 1
Byte 2
Byte 3
Byte 4
Byte 1
Byte 2
Byte 3
Byte 4
0
1
2
3
4
5
6
7
8
9
10
11
For the firmware versions using an external temperature sensor to compensate output current, the equation
is just a first order one; instead of A, the ambient temperature reading (T0) will be stored. The value is a 12bit ADC reading of the temperature sensor.
For more information, see Appendix C. “Calibration
Example” from “MCP19111 PMBus-Enabled Point-ofLoad (POL) Converter Reference Design User’s Guide”
(DS50002379).
 2015 Microchip Technology Inc.
DS90003139A-page 5
TB3139
CONCLUSION
The PMBus protocol implementation on the MCP19111
has a large number of standard commands which allow
the device to function properly in any standardized
system. The manufacturer commands offer even
greater flexibility during the development stage
because internal compensation registers and various
other settings are accessible at run-time.
RECOMMENDED READING
The following related documents should be referred to:
• MCP19110/MCP19111 Data Sheet – “Digitally
Enhanced Power Analog Controller with
Integrated Synchronous Driver” (DS20002331)
• “PMBus-Enabled Point-of-Load (POL)
Converter Reference Design User’s Guide”
(DS50002379)
• “PMBus Monitoring Graphical User Interface
User’s Guide” (DS50002380).
DS90003139A-page 6
 2015 Microchip Technology Inc.
Note the following details of the code protection feature on Microchip devices:
•
Microchip products meet the specification contained in their particular Microchip Data Sheet.
•
Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.
•
There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.
•
Microchip is willing to work with the customer who is concerned about the integrity of their code.
•
Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”
Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.
Information contained in this publication regarding device
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WHETHER EXPRESS OR
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,
QUALITY, PERFORMANCE, MERCHANTABILITY OR
FITNESS FOR PURPOSE. Microchip disclaims all liability
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at
the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless Microchip from any and all damages, claims,
suits, or expenses resulting from such use. No licenses are
conveyed, implicitly or otherwise, under any Microchip
intellectual property rights unless otherwise stated.
Trademarks
The Microchip name and logo, the Microchip logo, dsPIC,
FlashFlex, flexPWR, JukeBlox, KEELOQ, KEELOQ logo, Kleer,
LANCheck, MediaLB, MOST, MOST logo, MPLAB,
OptoLyzer, PIC, PICSTART, PIC32 logo, RightTouch, SpyNIC,
SST, SST Logo, SuperFlash and UNI/O are registered
trademarks of Microchip Technology Incorporated in the
U.S.A. and other countries.
The Embedded Control Solutions Company and mTouch are
registered trademarks of Microchip Technology Incorporated
in the U.S.A.
Analog-for-the-Digital Age, BodyCom, chipKIT, chipKIT logo,
CodeGuard, dsPICDEM, dsPICDEM.net, ECAN, In-Circuit
Serial Programming, ICSP, Inter-Chip Connectivity, KleerNet,
KleerNet logo, MiWi, MPASM, MPF, MPLAB Certified logo,
MPLIB, MPLINK, MultiTRAK, NetDetach, Omniscient Code
Generation, PICDEM, PICDEM.net, PICkit, PICtail,
RightTouch logo, REAL ICE, SQI, Serial Quad I/O, Total
Endurance, TSHARC, USBCheck, VariSense, ViewSpan,
WiperLock, Wireless DNA, and ZENA are trademarks of
Microchip Technology Incorporated in the U.S.A. and other
countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.
Silicon Storage Technology is a registered trademark of
Microchip Technology Inc. in other countries.
GestIC is a registered trademarks of Microchip Technology
Germany II GmbH & Co. KG, a subsidiary of Microchip
Technology Inc., in other countries.
All other trademarks mentioned herein are property of their
respective companies.
© 2015, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
ISBN: 978-1-63277-477-4
QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV
== ISO/TS 16949 ==
 2015 Microchip Technology Inc.
Microchip received ISO/TS-16949:2009 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
Tempe, Arizona; Gresham, Oregon and design centers in California
and India. The Company’s quality system processes and procedures
are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.
DS90003139A-page 7
Worldwide Sales and Service
AMERICAS
ASIA/PACIFIC
ASIA/PACIFIC
EUROPE
Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
http://www.microchip.com/
support
Web Address:
www.microchip.com
Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon
China - Xiamen
Tel: 86-592-2388138
Fax: 86-592-2388130
Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393
China - Zhuhai
Tel: 86-756-3210040
Fax: 86-756-3210049
Denmark - Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829
India - Bangalore
Tel: 91-80-3090-4444
Fax: 91-80-3090-4123
France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632
Germany - Dusseldorf
Tel: 49-2129-3766400
Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455
Hong Kong
Tel: 852-2943-5100
Fax: 852-2401-3431
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
China - Beijing
Tel: 86-10-8569-7000
Fax: 86-10-8528-2104
Austin, TX
Tel: 512-257-3370
China - Chengdu
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889
Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088
China - Chongqing
Tel: 86-23-8980-9588
Fax: 86-23-8980-9500
Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Cleveland
Independence, OH
Tel: 216-447-0464
Fax: 216-447-0643
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Novi, MI
Tel: 248-848-4000
Houston, TX
Tel: 281-894-5983
Indianapolis
Noblesville, IN
Tel: 317-773-8323
Fax: 317-773-5453
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
New York, NY
Tel: 631-435-6000
San Jose, CA
Tel: 408-735-9110
Canada - Toronto
Tel: 905-673-0699
Fax: 905-673-6509
China - Dongguan
Tel: 86-769-8702-9880
China - Hangzhou
Tel: 86-571-8792-8115
Fax: 86-571-8792-8116
India - Pune
Tel: 91-20-3019-1500
Japan - Osaka
Tel: 81-6-6152-7160
Fax: 81-6-6152-9310
Japan - Tokyo
Tel: 81-3-6880- 3770
Fax: 81-3-6880-3771
Korea - Daegu
Tel: 82-53-744-4301
Fax: 82-53-744-4302
China - Hong Kong SAR
Tel: 852-2943-5100
Fax: 852-2401-3431
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
China - Nanjing
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
Malaysia - Kuala Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
China - Shenzhen
Tel: 86-755-8864-2200
Fax: 86-755-8203-1760
Taiwan - Hsin Chu
Tel: 886-3-5778-366
Fax: 886-3-5770-955
China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118
Taiwan - Kaohsiung
Tel: 886-7-213-7828
China - Xian
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256
Germany - Karlsruhe
Tel: 49-721-625370
Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Italy - Venice
Tel: 39-049-7625286
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Poland - Warsaw
Tel: 48-22-3325737
Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
Sweden - Stockholm
Tel: 46-8-5090-4654
UK - Wokingham
Tel: 44-118-921-5800
Fax: 44-118-921-5820
Taiwan - Taipei
Tel: 886-2-2508-8600
Fax: 886-2-2508-0102
Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
07/14/15
DS90003139A-page 8
 2015 Microchip Technology Inc.