The PMBusTM (power management bus) is an open standard protocol that defines a means
of communicating with power conversion and other devices. The PMBus protocol helps to
establish the first truly open communications standard for the digital control of power
systems. Implemented over the industry-standard SMBus (system management bus) serial
interface, the PMBus protocol facilitates the programming, control and real-time monitoring
of compliant power conversion products.
This application note describes how to use the ST7 I
communication. The firmware of this application performs the PMBus bus protocols
mentioned in PMBusTM power system management protocol specification v1.0. The device
chosen here is ST72264G1 which has multi-master I
as the PMBus master. It controls the PMBus compatible slaves. The firmware described in
this application note is in C language.
To show the PMBus capabilities of ST7, a dedicated demonstration board is developed. This
board consists of the ST72F264G1 microcontroller and it works with PC hyperterminal. The
objective of this demonstration board is to show to the user the features and capabilities of
PMBus features using ST7 I
results of this demonstration board interfaced with Artesyn's PMBus module are shown in
this application note.
2
C peripheral, to support the standard PMBus commands. The
The PMBus protocol is intended to cover a wide range of power system architectures and
converters.
PMBus devices must use the system management bus (SMBus), version 1.1. Implemented
over the industry-standard SMBus serial interface, the PMBus protocol facilitates the
programming, control and real-time monitoring of compliant power conversion products.
1.1.1 SMBus version 1.1
The system management bus (SMBus) is a two-wire interface through which various system
component chips can communicate with each other and with the rest of the system. It is
based on the principles of operation of I
For more information about SMBus, refer to AN1713, available from www.st.com.
1.1.2 Extensions to SMBus version 1.1 specification
1.Block write-block-read process call
To support certain commands of the PMBus command language, PMBus devices must
support the "Block write-block-read process call" described in Section 5.5.8 of Version
2.0 of the SMBus Specification.
2. Host notify protocol
PMBus devices may support the host notify protocol described in Section 5.5.9 of
Version 2.0 of the SMBus Specification. If a PMBus device supports the host notify
protocol, the two data bytes sent to the host are the same as the data bytes returned by
the STATUS_WORD command.
3. Group command protocol
PMBus devices must support the group command protocol. The group command
protocol is used to send commands to more than one PMBus device. The commands
are received in one transmission. When the devices detect the STOP condition that
ends the command, they all begin executing the command they received.
4. Addressing
PMBus devices use seven bit addresses.
5. Packet error checking (PEC)
Support for the SMBus packet error checking (PEC) protocol is optional.
2
C.
1.2 Hardwired signals
1.2.1 Electrical interface
The following diagram shows the interface between different PMBus devices. ST72264G1 is
the selected microcontroller, which has a multi-master I
acts as PMBus master. It communicates with any compatible PMBus slave using a 4-pin
interface. SMBC is the clock from the master. SMBD is the data pin. Both SMBC and SMBD
should be pulled up with a 4.7 kΩ resistor. SMBALERT is the SMBus alert pin, which helps
6/43Doc ID 13286 Rev 2
2
C interface. This microcontroller
AN2511PMBus introduction
the slave to alert the master whenever it wants to communicate. The control pin is used to
switch ON or OFF a PMBus slave.
Figure 1.Interface diagram
The CONTROL signal is an input signal on a power converter. It is used to turn the unit on
and off in conjunction with commands received via the serial bus. It can be configured as an
active high or active low signal through the ON_OFF_CONFIG command (refer to
Section 3.1).
This signal is optional but recommended.
1.2.2 Timing
No specific requirements are made when a PMBus device must respond to a state change
of a hardwired signal.
PMBus Master
(ST72F264G1)
SMBC (SCL)
SMBD (SDA)
SMBA (PA3)
CONTROL (PC0)
PMBus Slave
SMBC
SMBD
SMBA
CONTROL
Doc ID 13286 Rev 27/43
Implementation of PMBus using ST7 I2CAN2511
2 Implementation of PMBus using ST7 I2C
2.1 Firmware architecture
This section explains sequence of operation for different software modules.
2.1.1 I2C initialization
To use ST7 I2C for PMBus communication, the peripheral is initialized for 100 kHz
communication speed. The I
2
C is configured with an address of 0x30, as it can act as a
slave due to its multi-master capability. The following flowchart shows the sequence.
Figure 2.Flowchart: I
2
C initialization
Initialize I
OAR1 and OAR2 registers
Configure slave addresses
Enable I
acknowledge in I2CCR register
Set communication speed as
100kHz in I2CCCR register
START
2
C CR, CCR,
in OAR1 and OAR2
2
C peripheral and
STOP
The above flowchart is implemented in the function PMBus_Init.
2.1.2 Slave address and command code
The PMBus master addresses the slave with a 7-bit address. Once the slave device
acknowledges the address, the command code is sent corresponding to the PMBus
command and SMBus protocol (refer to Section 3.1).
Then, the microcontroller decodes the command code as shown in the following sequence.
Simultaneously, the SMBus_Mode variable is updated.
8/43Doc ID 13286 Rev 2
AN2511Implementation of PMBus using ST7 I2C
Figure 3.Flowchart: data length calculation
START
Check if command code equal
to Block protocol
No
Check if command code equal
to Byte protocol
Ye s
Ye s
Update
SMBus_Mode
for Block Command
Byte Count=1,
Update
SMBus_Mode
for Byte Command
Byte Count=6,
No
Byte Count=2,
Check if command code equal
to word protocol
No
Ye s
Update
SMBus_Mode
for Word Command
STOP
Inside both PMBus_CommandRead and PMBus_CommandWrite functions,
PMBus_DataLengthCalc is called which calculates the data length based on the
command code received.
2.1.3 Read and write operation
PMBus master performs read/ write operations with the slave device. Depending on the
command code, either PMBus_CommandRead or PMBus_CommandWrite is called. Inside
this function, the SMBus transaction type is selected as shown in the following sequence.
Figure 4.Flowchart: read operation
START
Check if SMBus_Mode for
Byte command
No
Check if SMBus_Mode for Word
command
No
Check if SMBus_Mode for
Send Block command
No
STOP
Ye s
SMBus Read byte protocol
1711811711811
S Slave Address Wr
Ye s
SMBus Read word protocol
171181171181
S Slave Address Wr
Ye s
SMBus Read block protocol
171181171181
S Slave Address Wr
A Command Code A S Slave Address Rd AData ByteA P
A Comm and Code A S Slave Address Rd A Data Byte Low A ...
811
Data Byte High A P
A Com mand Code A Sr Slave Address Rd A Count Byte = 1 A ...
8181...811
Data Byte 1AData Byte 2A ...Data Byte NA P
Doc ID 13286 Rev 29/43
Implementation of PMBus using ST7 I2CAN2511
Figure 5.Flowchart: write operation
START
Check if SMBus_Mode for
Send Byte command
No
Check if SMBus_Mode for Write
Byte command
Check if SMBus_Mode for Write
Word command
No
Check if SMBus_Mode for
Write Block command
No
STOP
Ye s
SMBus Send byte protocol
1711811
S Slave Address Wr
Ye s
SMBus Write byte protocol
171181811
S Slave Address Wr
Ye s
SMBus Write word protocol
17118181811
S Slave Address Wr
Ye s
SMBus Write block protocol
17118181181
S Slave Address Wr
AData ByteAP
A Comma nd Code AData ByteAP
A Comma nd Code A Data Byte Low A Dat a Byte HIgh A P
A Command Co de A Byte Count = N Rd AData Byte 1A ...
81...811
Data Byte 2
A ...Data Byte NAP
During the PMBus communication, if there are any errors in communication (acknowledge
2
failure, arbitration loss, bus error or SMBus timeout), the I
C peripheral is disabled. It is re-
initialized again inside the PMBus write/ read functions.
In case the SMBus Alert pin is pulled low by the slave to inform the master that it wants to
communicate, the slave address is programmed with the alert response address (0x18).
This is acknowledged by the slave that alerted the master. After the communication between
the master and slave is complete, the slave address is programmed with the user-defined
slave address. The default value of this user-defined address is 0x30.
In case of group operation, the write operation flowchart is followed without the stop
condition.
10/43Doc ID 13286 Rev 2
AN2511PMBus commands and source code
3 PMBus commands and source code
3.1 PMBus commands
The Part II - command language document of PMBus™ Power System Management
Protocol Specification v1.0 provides the list of PMBus commands. This driver supports the
following list of commands. For each command a table is given.
Table 1.Operation
Command nameOPERATION
Command code01h
The OPERATION command is used to turn the
Description
SMBus transaction typeRead/ Write byte
Number of data bytes1
Table 2.ON_OFF_CONFIG
Command nameON_OFF_CONFIG
Command code02h
unit on and off in conjunction with the input from
the CONTROL (OUTEN) pin.
The ON_OFF_CONFIG command configures the
Description
combination of CONTROL (OUTEN) pin input
and serial bus commands needed to turn the unit
on and off.
SMBus transaction typeRead/ Write byte
Number of data bytes1
Table 3.CLEAR_FAULTS
Command nameCLEAR_FAULTS
Command code03h
Description
CLEAR_FAULTS is used to clear any fault bits
that have been set.
SMBus transaction typeSend byte
Number of data bytes0
Doc ID 13286 Rev 211/43
PMBus commands and source codeAN2511
Table 4.RESTORE_DEFAULT_ALL
Command nameRESTORE_DEFAULT_ALL
Command code12h
The RESTORE_DEFAULT_ALL command
instructs the PMBus device to copy the entire
contents of the non-volatile default store memory
Description
SMBus transaction typeSend byte
Number of data bytes0
Table 5.STORE_USER_ALL
Command nameSTORE_USER_ALL
Command code15h
Description
SMBus transaction typeSend byte
to the matching locations in the operating
memory. Any items in default store that do not
have matching locations in the operating memory
are ignored.
The STORE_USER_ALL command instructs the
PMBus device to copy the entire contents of the
operating memory to the matching locations in
the non-volatile user store memory. Any items in
operating memory that do not have matching
locations in the user store are ignored.
Number of data bytes0
Table 6.VOUT_MODE
Command nameVOUT_MODE
Command code20h
VOUT_MODE command, used for commanding
and reading output voltage, consists of a three bit
Description
mode (only linear format is supported.) and a
five-bit parameter representing the exponent
used in output voltage Read/Writes.
SMBus transaction typeRead/ Write byte
Number of data bytes1
12/43Doc ID 13286 Rev 2
AN2511PMBus commands and source code
Table 7.VOUT_COMMAND
Command nameVOUT_COMMAND
Command code21h
Description
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 8.VOUT_MAX
Command nameVOUT_MAX
Command code24h
Description
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 9.VOUT_MARGIN_HIGH
Command nameVOUT_MARGIN_HIGH
Command code25h
Description
VOUT_COMMAND is used to set the output
voltage, in volts (linear format).
The VOUT_ MAX command sets an upper limit
on the output voltage the unit can command
regardless of any other commands or
combinations.
This VOUT_MARGIN_HIGH command loads the
unit with the voltage to which the output is to be
changed when the OPERATION command is set
to "Margin High".
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 10.VOUT_MARGIN_LOW
Command nameVOUT_MARGIN_LOW
Command code26h
This VOUT_MARGIN_LOW command loads the
Description
unit with the voltage to which the output is to be
changed when the OPERATION command is set
to "Margin Low".
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 11.VOUT_OV_WARN_LIMIT
Command nameVOUT_OV_WARN_LIMIT
Command code42h
Doc ID 13286 Rev 213/43
Loading...
+ 30 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.