PMBus
Encyclopedia
The Power Management Bus (PMBus) is a variant of the System Management Bus
(SMBus) which is targeted at digital management of power supplies. Like SMBus, it is a relatively slow speed two wire communications protocol
based on I²C
. Unlike either of those standards, it defines a substantial number of domain-specific commands rather than just saying how to communicate using commands defined by the reader.
The ability to query a PMBus 1.1 device about its capabilities may be particularly useful when building tools, especially in conjunction with the ability to store user data in the devices (e.g. in EEPROM
). Without such a query capability, only error-prone external configuration data is available.
Part II of the PMBus specification covers every standard PMBus command. It also describes the models for managing output power and current, managing faults, converting values to and from the formats understood by a given device, and accessing manufacturer-provided information such as inventory data (model and serial number, etc) and device ratings.
s are probably easiest to provide, although several of the current products do not involve microcontrollers. One firmware-based example is the Texas Instruments UCD9112. Another uses about 2Kbytes of code on an Atmel AVR
8-bit microcontroller on the NGW100 board controller.
In fall 2009 more products are available. The NXP PIP8000 and Maxim MAX16064 are two recently announced chips, which have vendor-suppled graphical user interfaces (nonportable: MS-Windows only).
As PMBus systems are deployed, tools to manage those systems should become significant. Some of them may just be used during manufacturing, to set up system-specific parameters used with reconfigurable power subsystems. Others will be useful for runtime optimization, for example with server farms.
System Management Bus
The System Management Bus is a single-ended simple two-wire bus for the purpose of lightweight communication...
(SMBus) which is targeted at digital management of power supplies. Like SMBus, it is a relatively slow speed two wire communications protocol
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...
based on I²C
I²C
I²C is a multi-master serial single-ended computer bus invented by Philips that is used to attach low-speed peripherals to a motherboard, embedded system, cellphone, or other electronic device. Since the mid 1990s, several competitors I²C ("i-squared cee" or "i-two cee"; Inter-Integrated Circuit;...
. Unlike either of those standards, it defines a substantial number of domain-specific commands rather than just saying how to communicate using commands defined by the reader.
Overview
See the PMBus 1.1 specification for full details. The first part gives an overview with particular reference to SMBus, while the second part goes into detail about all the commands defined for PMBus devices. There are both standardized commands and manufacturer specific commands. Conformance requirements for PMBus are minimal, and are described in Part I of the specification.Comparison to SMBus
At the lowest level, PMBus follows SMBus 1.1 with a few differences. This information is presented in more detail in Part I of the PMBus specification:- 400 kHz bus speeds are allowed (vs. the 100 kHz limit of SMBus)
- In PMBus, blocks may include up to 255 bytes (vs. the 32 byte limit of SMbus).
- As in SMBus 2.0, only seven bit addressing is used.
- Some commands use the SMBus 2.0 block process calls.
- Either the SMBALERT# mechanism or the SMBus 2.0 host notify protocol may be used to notify the host about faults.
- PMBus devices are required to support a Group Protocol, where devices defer acting on commands until they receive a terminating STOP. Since commands can be issued to many different devices before that STOP, this lets the SMBus master synchronize their actions.
- An "extended command" protocol is defined, using a second command byte to add 256 more codes each for both standard and manufacturer-specific commands.
PMBus commands
The PMBus command space can be seen as exposing a variety of readable, and often writable, device attributes such as measured voltage and current levels, temperatures, fan speeds, and more. Different devices will expose different attributes. Some devices may expose such attributes in multiple "pages", as for example one page managing each power supply rail (maybe 3.3V, 5V, 12V, -12V, and a programmable supply supporting 1.0-1.8V). The device may set warning and fault limits, where crossing a limit will alert the host and possibly trigger fault recovery. Different devices will offer different capabilities.The ability to query a PMBus 1.1 device about its capabilities may be particularly useful when building tools, especially in conjunction with the ability to store user data in the devices (e.g. in EEPROM
EEPROM
EEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration...
). Without such a query capability, only error-prone external configuration data is available.
Part II of the PMBus specification covers every standard PMBus command. It also describes the models for managing output power and current, managing faults, converting values to and from the formats understood by a given device, and accessing manufacturer-provided information such as inventory data (model and serial number, etc) and device ratings.
Implementations
As of summer 2007, PMBus is relatively new so not many products yet advertise support for it. Given the richness of the specification, firmware based implementations running in microcontrollerMicrocontroller
A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...
s are probably easiest to provide, although several of the current products do not involve microcontrollers. One firmware-based example is the Texas Instruments UCD9112. Another uses about 2Kbytes of code on an Atmel AVR
Atmel AVR
The AVR is a modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other...
8-bit microcontroller on the NGW100 board controller.
In fall 2009 more products are available. The NXP PIP8000 and Maxim MAX16064 are two recently announced chips, which have vendor-suppled graphical user interfaces (nonportable: MS-Windows only).
As PMBus systems are deployed, tools to manage those systems should become significant. Some of them may just be used during manufacturing, to set up system-specific parameters used with reconfigurable power subsystems. Others will be useful for runtime optimization, for example with server farms.
Patenting issues
In January 2008, Power-One was awarded a win in a patent infringement suit between them and Artesyn Technologies for the latter's PMBus enabled converters. Power-One claims that PMBus applications need a license from them. Potential PMBus users should investigate the issue for themselves. See External Link.External links
- PMBus.org hosts the specifications summarized above
- PMBus–panacea or hype? is an article that's informative about the context of PMBus, written by the specifications' editor
- Article from Electronic Design describes the lawsuit between Power-One and Artesyn Technologies