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
PMBus commands and source codeAN2511
Table 11.VOUT_OV_WARN_LIMIT (continued)
The VOUT_OV_WARN_LIMIT command sets the
value of the output voltage at the sense or output
Description
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 12.VOUT_UV_WARN_LIMIT
Command nameVOUT_UV_WARN_LIMIT
Command code43h
Description
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 13.IOUT_OC_FAULT_LIMIT
Command nameIOUT_OC_FAULT_LIMIT
pins that causes an output voltage high warning.
This value is typically less than the output
overvoltage threshold.
The VOUT_UV_WARN_LIMIT command sets the
value of the output voltage at the sense or output
pins that causes an output voltage low warning.
This value is typically greater than the output
undervoltage fault threshold
Command code46h
The IOUT_OC_FAULT_LIMIT command sets the
Description
value of the sense output current, in amps (literal
format), that causes an overcurrent fault.
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 14.IOUT_OC_WARN_LIMIT
Command nameIOUT_OC_WARN_LIMIT
Command code4Ah
The IOUT_OV_WARN_LIMIT command sets the
Description
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 15.OT_FAULT_LIMIT
Command nameOT_FAULT_LIMIT
Command code4Fh
Description
value of the output current that causes an output
overcurrent warning.
The OT_FAULT_LIMIT command sets the value
of the sense temperature, in °C (literal format),
that causes an overtemperature fault
14/43Doc ID 13286 Rev 2
AN2511PMBus commands and source code
Table 15.OT_FAULT_LIMIT (continued)
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 16.OT_FAULT_RESPONSE
Command nameOT_FAULT_RESPONSE
Command code50h
The OT_FAULT_RESPONSE command instructs
Description
SMBus transaction typeRead/ Write byte
Number of data bytes1
Table 17.OT_WARN_LIMIT
Command nameOT_WARN_LIMIT
Command code51h
Description
the device on what action to take in response to
an overtemperature fault.
The OT_WARN_LIMIT command sets the value
of the sense temperature, in °C (literal format),
that causes an overtemperature warning.
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 18.TON_DELAY
Command nameTON_DELAY
Command code60h
The TON_DELAY sets the time, in ms, from when
Description
a start condition is received (CONTROL signal
asserted and a valid OPERATION command
received) until the output voltage starts to rise.
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 19.TON_RISE
Command nameTON_RISE
Command code61h
The TON_RISE sets the time, in ms, from when
Description
the output starts to rise until the voltage has
entered the regulation band.
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 20.TOFF_DELAY
Command nameTOFF_DELAY
Command code64h
Doc ID 13286 Rev 215/43
PMBus commands and source codeAN2511
Table 20.TOFF_DELAY (continued)
The TOFF_DELAY sets the time, in ms, from
when a stop condition is received (CONTROL
Description
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 21.TOFF_FALL
Command nameTOFF_FALL
Command code65h
Description
SMBus transaction typeRead/ Write word
Number of data bytes2
Table 22.STATUS_BYTE
Command nameSTATUS_BYTE
Command code78h
Description
SMBus transaction typeRead byte
signal negated or a valid OPERATION command
received) until the unit stops transferring energy
to the output.
The TOFF_FALL sets the time, in ms, from the
end of the turnoff delay time until the voltage is
commanded to zero. Note that this command can
only be used with a device whose output can sink
enough current to cause the output voltage to
decrease at a controlled rate.
The STATUS_BYTE command returns one byte
of information with a summary of the most critical
faults
Number of data bytes1
Table 23.STATUS_WORD
Command nameSTATUS_WORD
Command code79h
The STATUS_WORD command returns two
Description
bytes of information with a summary of the units
fault condition.
SMBus transaction typeRead word
Number of data bytes2
:
Table 24.STATUS_VOUT
Command nameSTATUS_VOUT
Command code7Ah
Description
The STATUS_VOUT commands returns one byte
with status information on Vout.
16/43Doc ID 13286 Rev 2
AN2511PMBus commands and source code
Table 24.STATUS_VOUT (continued)
SMBus transaction typeRead byte
Number of data bytes1
Table 25.STATUS_IOUT
Command nameSTATUS_IOUT
Command code7Bh
Description
SMBus transaction typeRead byte
Number of data bytes1
Table 26.STATUS_TEMPERATURE
Command nameSTATUS_TEMPERATURE
Command code7Dh
Description
SMBus transaction typeRead byte
Number of data bytes1
STATUS_IOUT commands returns one byte with
status information on Iout.
STATUS_TEMPERATURE commands returns
one byte with status information on temperature.
Doc ID 13286 Rev 217/43
PMBus commands and source codeAN2511
Table 27.STATUS_MFR_SPECIFIC
Command nameSTATUS_MFR_SPECIFIC
Command code80h
STATUS_MFR_SPECIFIC commands returns
Description
SMBus transaction typeRead byte
Number of data bytes1
Table 28.READ_VOUT
Command nameREAD_VOUT
Command code8Bh
Description
SMBus transaction typeRead word
Number of data bytes2
Table 29.READ_IOUT
Command nameREAD_IOUT
Command code8Ch
Description
SMBus transaction typeRead word
Number of data bytes2
Table 30.READ_TEMPERATURE
Command nameREAD_TEMPERATURE
Command code8Dh
Description
SMBus transaction typeRead word
Number of data bytes2
one byte with the manufacturer specific status
information.
The READ_VOUT command returns the actual
measured output voltage in the same format as
set by the VOUT_MODE command.
The READ_IOUT command returns the
measured output current in amperes.
Up to three temperature readings can be
returned for each device.
18/43Doc ID 13286 Rev 2
AN2511PMBus commands and source code
Table 31.PMBUS_REVISION
Command namePMBUS_REVISION
Command code98h
PMBUS_REVISION command stores or reads
Description
SMBus transaction typeRead byte
Number of data bytes1
Table 32.MFR_ID
Command nameMFR_ID
Command code99h
Description
SMBus transaction typeRead/Write block
Number of data bytes7
Table 33.MFR_MODEL
Command nameMFR_MODEL
the revision of the PMBus to which the device is
compliant.
The MFR_ID commands loads the unit with
ASCII characters that contain the manufacturer's
ID (name, abbreviation or symbol that identifies
the unit's manufacturer). This is typically only
done once at the time of manufacture.
Command code9Ah
The MFR_MODEL command loads the unit with
Description
ASCII characters that contain the manufacturer's
model number. This is typically done once at the
time of manufacture.
SMBus transaction typeRead/Write block
Number of data bytes6
Table 34.MFR_REVISION
Command nameMFR_REVISION
Command code9Bh
The MFR_REVISION command loads the unit
Description
with ASCII characters that contain the
manufacturer's revision number. This is typically
done once at the time of manufacture.
SMBus transaction typeRead/Write block
Number of data bytes2
Doc ID 13286 Rev 219/43
PMBus commands and source codeAN2511
Table 35.MFR_LOCATION
Command nameMFR_LOCATION
Command code9Ch
The MFR_REVISION command loads the unit
Description
SMBus transaction typeRead/Write block
Number of data bytes2
Table 36.MFR_DATE
Command nameMFR_DATE
Command code9Dh
Description
SMBus transaction typeRead/Write block
Number of data bytes6
Table 37.MFR_SERIAL
Command nameMFR_SERIAL
with ASCII characters that contain the
manufacturer's revision number. This is typically
done once at the time of manufacture.
The MFR_DATE command loads the unit with
ASCII characters that identify the unit's date of
manufacture. This is typically done once at the
time of manufacture.
Command code9Eh
Description
The MFR_SERIAL command loads the unit with
a serial number to uniquely identify the unit
SMBus transaction typeRead/Write block
Number of data bytes6
Table 38.MFR_SPECIFIC_00
Command nameMFR_SPECIFIC_00
Command codeD0h
Description
The MFR_SPECIFIC_00 command provides
access control for NVM register writes.
SMBus transaction typeRead byte
Number of data bytes1
20/43Doc ID 13286 Rev 2
AN2511PMBus commands and source code
Table 39.MFR_SPECIFIC_01
Command nameMFR_SPECIFIC_01
Command codeD1h
Description
The MFR_SPECIFIC_01 command provides
access control for configuration register writes.
SMBus transaction typeRead byte
Number of data bytes1
Table 40.MFR_SPECIFIC_02
Command nameMFR_SPECIFIC_02
Command codeD2h
Description
The MFR_SPECIFIC_02 is a manufacturer
defined command.
SMBus transaction typeRead byte
Number of data bytes1
3.2 Source code
The source code is attached in the zip file along with the application note. This source code
is organized as shown below.
' Main.c: Contains main source code. In this file, PMBus interface functions
are called (refer to section 3.3).
' Main.h: Contains prototype of all functions used in Main.c.
' PMBus.c: Contains functions for PMBus write and read operation. The data
length calculator function and I2C and Alert signal interrupt sub-
routines are also written inside this file.
' PMBus.h: Contains prototype of all functions and enumerated data
' SMBus_Master.c: Contains source code for differnet SMBus master
' SMBus_Master.h: Contains prototype of all functions and enumerated data
' st72264g1.h: Contains register mapping for ST72F264G1 device.
' ST7_hr.h: Contains hardware register bit definitions for ST7 MCU
' ST7_Config.h: Contains compiler selection, peripheral register inclusion,
' interrupt_vector.c: Contains general Interrupt vector table for ST7 devices
types used in PMBus.c.
transaction bus protocols.
types used in SMBus_Master.c.
header files inclusion for linking, macros for assembly instructions
and Fcpu Definition.
Doc ID 13286 Rev 221/43
PMBus commands and source codeAN2511
3.3 Example
This section explains how to use the PMBus driver. An example operation of write/ read
commands are shown.
/*****************************************************************************
COPYRIGHT 2005 STMicroelectronics
Source File Name : Main.c
Group : IMS Systems Lab
Author : Telecom Team
Date First Issued: 01/09/2006
THE SOFTWARE INCLUDED IN THIS FILE IS FOR GUIDANCE ONLY. STMicroelectronics
SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL
DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM USE OF THIS SOFTWARE.
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*********************************Documentation**********************************
General Purpose - Contains main source code. In this file, the PMBus command files
are written.
******************************************************************************/
#include "ST7_config.h" /* Fcpu defined as 8MHz */
#include "main.h" /* Contains the global variables used in main.c */
#include "ST7_hr.h" /* Contains the register and flags for ST7 */
extern volatile unsigned int SMB_TimeCount; /* Time count variable */
#pragma space extern [] @tiny /* To force following variables into short
addressing memory */
extern unsigned char Data_Buff [32] ; /* Buffer to store data */
/* Variables to differentiate the different SMBus transaction types */
extern volatile unsigned char SMBus_Mode ;
extern volatile unsigned char SMB_Err_Status ; /* Error status */
/* Master to address slave with this
address */
static volatile unsigned char PMBus_SlaveAdd = 0x80;
/* Master to address slave with this
address */
static volatile unsigned char PMBus_SlaveAdd = 0x80;
/*----------------------------------------------------------------------------ROUTINE NAME : Main
INPUT : None
OUTPUT : None
DESCRIPTION : Using this file, user can write/ read PMBus commands.
COMMENTS : Programs jumpts into this routine when microcontroller is reset
/* Alerted slave address will be used for any further communication */
PMBus_SlaveAdd = *Data_Buff ;
SMBus_Mode &= (unsigned char) ~SMB_ARA ;
}
Command_Code = 0x01; /* User should enter the PMBus command code here */
PMBus_CommandWrite (Command_Code); /* Writes data from Data_Buff */
Command_Code = 0x02; /* User should enter the PMBus command code here */
PMBus_CommandRead (Command_Code);
if (SMB_Err_Status)
{ /* I2C status register read to clear any
errors */
SMB_Err_Status = I2CSR2 ;
SMB_Err_Status = 0 ;
}
} /* End of while (1) */
} /* End of main */
3.4 Limitations
1.The SMBus driver used in this application note is tested only for write word, read word
and write block protocols with PEC disabled.
2. The SMBus driver doesn't meet the clock low extending feature of SMBus v1.1 due to
the limitation of the I
3. In case of PEC, when slave is acting as receiver, the ACK bit is not disabled if the PEC
received from master transmitter is different from slave. It is stored in the user address
as the last byte. It is the responsibility of the user to check the master PEC with the
slave PEC to decide on data validity.
/* Read data and store it in Data_Buff */
2
C peripheral.
Doc ID 13286 Rev 223/43
PMBus interfacing resultsAN2511
4 PMBus interfacing results
This section describes the results of interfacing the demonstration board with Artesyn and
SiLabs modules.
4.1 Interfacing with Artesyn module
The following table shows the different PMBus commands and ST demonstration board
results compared to the Artesyn DPL20C PMbus module.
Table 41.PMBus interfacing with Artesyn module: results
Command
code
01OPERATIONRead/ write byte18080
02ON_OFF_CONFIGRead/ write byte11414
03CLEAR_FAULTSSend byte0
12
15STORE_USER_ALLSend byte0
20VOUT_MODERead/ write byte11 A1 A
21VOUT_COMMANDRead/ write word200 6000 60
24VOUT_MAXRead/ write word201 6001 60
25VOUT_MARGIN_HIGHRead/ write word200 6 A00 6 A
26VOUT_MARGIN_LOWRead/ write word200 5600 56
42
43
46
4A
PMBus command
RESTORE_DEFAULT_
ALL
VOUT_OV_WARN_LIM
IT
VOUT_UV_WARN_LIM
IT
IOUT_OC_FAULT_LI
MIT
IOUT_OC_WARN_LIM
IT
SMBus transaction
type
Send byte0
Read/ write word200 6E00 6E
Read/ write word200 5600 56
Read/ write word200 1900 19
Read/ write word200 1700 17
Number
of data
bytes
Data
(Si8250)
Data
(ST7)
4FOT_FAULT_LIMITRead/ write word200 7800 78
50
51OT_WARN_LIMITRead/ write word200 6E00 6E
60TON_DELAYRead/ write word200 0000 00
61TON_RISERead/ write word200 0A00 0A
64TOFF_DELAYRead/ write word200 0000 00
65TOFF_FALLRead/ write word200 0000 00
24/43Doc ID 13286 Rev 2
OT_FAULT_RESPONS
E
Read/ write byte1B1B1
AN2511PMBus interfacing results
Table 41.PMBus interfacing with Artesyn module: results (continued)
Command
code
78STATUS_BYTERead byte14141
79STATUS_WORDRead word200 4100 41
7ASTATUS_VOUTRead byte10000
7BSTATUS_IOUTRead byte10000
7D
80
8BREAD_VOUTRead word200 0100 01
8CREAD_IOUTRead word2D7 C3D7 C3
8DREAD_TEMPERATURERead word200 2000 1D
98PMBUS_REVISIONRead byte10101
99MFR_IDRead block7
9AMFR_MODELRead block6
9BMFR_REVISIONRead/ write block231 0231 41
9CMFR_LOCATIONRead/ write block25A 025A 53
PMBus command
STATUS_TEMPERATU
RE
STATUS_MFR_SPECI
FIC
SMBus transaction
type
Read byte10000
Read byte10202
Number
of data
bytes
Data
(Si8250)
41 52 54 45
53 59 4E
44 50 4C 32
30 43
Data
(ST7)
41 52 54
45 53 59
4E
44 50 4C
32 30 43
9DMFR_DATERead/ write block6
9EMFR_SERIALRead/ write block6
D0MFR_SPECIFIC_00Read byte12828
D1MFR_SPECIFIC_01Read byte11010
D2MFR_SPECIFIC_02Read byte10A0A
4.2 Interfacing with SiLabs module
The following table shows the different PMBus commands and ST demonstration board
results compared to Silicon Labs Si8250 - TB module.
Table 42.PMBus interfacing with SiLabs module: results
Command
code
01OPERATIONRead/ write byte1C0C0
02ON_OFF_CONFIGRead/ write byte11E1E
PMBus command
SMBus transaction
type
Number
of data
bytes
32 34 30 33
36 06
31 32 33 34
35 06
Data
(Si8250)
32 34 30
33 36 36
31 32 33
34 35 36
Data
(ST7)
Doc ID 13286 Rev 225/43
PMBus interfacing resultsAN2511
Table 42.PMBus interfacing with SiLabs module: results (continued)
Command
code
03CLEAR_FAULTSSend byte0
12RESTORE_DEFAULT_ALLSend byte0
15STORE_USER_ALLSend byte0
20VOUT_MODERead/ write byte11111
21VOUT_COMMANDRead/ write word27F F67F F6
24VOUT_MAXRead/ write word289 9489 94
25VOUT_MARGIN_HIGHRead/ write word200 6A00 6A
25VOUT_MARGIN_HIGHRead/ write word286 5C86 5C
26VOUT_MARGIN_LOWRead/ write word279 9079 90
42VOUT_OV_WARN_LIMITRead/ write word289 9489 94
43VOUT_UV_WARN_LIMITRead/ write word276 5876 58
4FOT_FAULT_LIMITRead/ write word2EB 20EB 20
50OT_FAULT_RESPONSERead/ write byte10000
51OT_WARN_LIMITRead/ write word2EA D0EA D0
60TON_DELAYRead/ write word200 0A00 0A
61TON_RISERead/ write word200 3200 32
PMBus command
SMBus transaction
type
Number
of data
bytes
Data
(Si8250)
Data
(ST7)
64TOFF_DELAYRead/ write word200 0A00 0A
65TOFF_FALLRead/ write word200 C800 C8
78STATUS_BYTERead byte10404
79STATUS_WORDRead word200 0400 04
7ASTATUS_VOUTRead byte10000
7BSTATUS_IOUTRead byte10000
7DSTATUS_TEMPERATURERead byte12020
80STATUS_MFR_SPECIFICRead byte10000
8BREAD_VOUTRead word280 4E80 76
8CREAD_IOUTRead word2D7 C300 00
8DREAD_TEMPERATURERead word2EF 56EF 56
98PMBUS_REVISIONRead byte10000
D0MFR_SPECIFIC_00Read byte16767
D1MFR_SPECIFIC_01Read byte1EFEF
D2MFR_SPECIFIC_02Read byte10808
26/43Doc ID 13286 Rev 2
AN2511PMBus demonstration board
5 PMBus demonstration board
To show the features of the ST7 I2C working as a PMBus, a demonstration board is
available on request. Please contact the nearest ST office to get this board. The evaluation
board has an ST72F264G1 MCU that has 4 KBytes Flash memory. All PMBus
functionalities are not shown, as this evaluation board has hyperterminal interface which
requires lot of messages to be stored in program memory.
5.1 System requirements
In order to use the PMBus demonstration board with the Windows operating system. The
PC should support hyperterminal software and RS232 communication using DB9
connector.
5.2 Software setup
To configure the PC hyperterminal software, the user should follow the steps as mentioned
below.
1.Click on Start -> Programs -> Accessories -> Communications -> HyperTerminal
as shown below.
Figure 6.PC hyperterminal application
2. Select the correct port in which RS232 (9-pin cable) is connected (refer to Section 3).
3. Configure the following baud rate (bits per second) in hyperterminal: File -> Properties
-> Connect to -> Configure. If the user configures any baud rate other than 38400,
then RS232 communication fails.
Doc ID 13286 Rev 227/43
PMBus demonstration boardAN2511
Figure 7.Baud rate configuration
4. Configure the following settings in hyperterminal: File -> Properties -> Settings ->
ASCII setup
5. Press callin hyperterminal to establish a connection with the board.
5.3 Hardware setup
To configure the hardware board, the user should follow these steps:
1.Jumper settings: There are four jumpers (JP1, JP2, JP3 and JP4) available on the
board. The detail of these connectors is as follows:
a) JP1: JP1 pins should be connected using the jumper if there is no pull-up
connected in the clock line of the I
pulled up with a resistor value of 4.7 kΩ.
b) JP2: JP2 pins should be connected using the jumper if there is no pull-up
connected in the data line of the I
pulled up with a resistor value of 4.7 kΩ.
c) JP3: JP3 is used to select the clock source for the ST7 microcontroller. From the
JP3 side, if the jumper is connected between pins 1 and 2 then the application
28/43Doc ID 13286 Rev 2
2
C bus. Once connected, the I2C clock line is
2
C bus. Once connected, the I2C data line is
AN2511PMBus demonstration board
runs using the resonator clock (16 MHz). If the jumper is connected between pins
2 and 3 then the application is stopped and ST7 MCU can be re-programmed.
d) JP4: JP4 is used to select the power supply as described below. From the JP4
side, if the jumper is connected between pins 2 and 3 then the application runs
using the direct supply given from `POWER' connector. If the jumper is connected
between pins 1 and 2 then the application runs using the DC adapter supply given
from J1.
2. Power settings: The demonstration board can be powered by one of the following
options:
a) DC adapter: Connect a DC adapter to J1. The DC adapter should supply a
minimum of 7 V and maximum of 18 V, 1 A. This supply is regulated to 5 V supply
using an L7805 regulator.
b) Regulated supply: The user can use a direct 3 V to 5 V supply. The supply and
Gnd points should be connected to the `POWER' connector pins 1 and 2. Here,
`POWER' connector pin 1 is referred from the JP4 jumper side (from the right
side).
Doc ID 13286 Rev 229/43
Using the demonstration boardAN2511
6 Using the demonstration board
After installing the setup as explained in Section 1, the following message appears in
hyperterminal.
Figure 9.Hyperterminal message to show company name and selection of
communication speed
If there is any problem in getting the message, press the switch provided in the
demonstration board. This switch re-starts the application.
6.1 Normal operation
The following sections explain how to initiate PMBus communication and how to read/ write
PMBus commands with hyperterminal.
6.1.1 Selection of communication speed
After the message appears as shown in Figure 9, the user should enter 1 or 2 to select the
PMBus communication speed as 100 kHz or 400 kHz respectively. The default speed value
selected is 100 kHz.
If the user enters any other value other than 1 and 2, the previous speed value is retained.
6.1.2 Selection of packet error checking
After the message appears as shown in Figure 10, the user should enter 1 or 2 to enable
PEC and disable PEC respectively. If PEC is enabled, all address, command code and data
communications are checked through CRC-8 check. The default PEC value is PEC
disabled.
If the user enters any other value other than 1 and 2, the previous speed value is retained.
Figure 10. PEC selection
6.1.3 Selection of slave address
The user should enter the slave address of the PMBus device. The slave address should be
in hexadecimal format. The slave addresses of different competitor’s module are given
below. Artesyn DPL20C module: 0x30 SiLabs Si8250-TB module : 0x80.
The slave address could change from one device to another device. The user must refer to
the product datasheet and development kit documents to decide on the slave address. An
example entry of slave address with Artesyn DPL20C module is shown below.
30/43Doc ID 13286 Rev 2
AN2511Using the demonstration board
Figure 11. Slave address entry message
If the user enters a wrong slave address then one of the following error messages shown in
Figure 12 or Figure 13 appears.
Figure 12. Wrong slave address entry - response 1
Figure 13. Wrong slave address entry - response 2
6.1.4 Selection of read/write mode
Data can be written into or data can be read back from the PMBus salve device connected.
The following figure provides the key option to select one of the modes.
Figure 14. Options to select read/ write mode
6.1.5 Single read mode
The user can press 1 to select read mode. Then the user can enter any command code with
reference to Section 3 to read byte/ word/ block of data. An example of this is shown below.
Figure 15. Single read operation
Doc ID 13286 Rev 231/43
Using the demonstration boardAN2511
6.1.6 Continuous read mode
The user can press 0 to read all PMBus commands. The lists of supported commands are
shown in the following figure.
Figure 16. Continuous read operation
Command codes 0xD0, 0xD1 and 0xD2 are not supported in continuous read mode. If the
user wants to read these commands, they can be read by using single read mode.
6.1.7 Write mode
The user can press 2 to select write mode. After the following figure appears, the user can
enter any command code with reference to Section 2.1 on page 8 to write byte/ word/ block
of data.
Figure 17. Write mode command code entry message from hyperterminal
Then the user can enter any command code with reference to Section 4 to write byte/ word/
block of data. The user can enter data after the following message.
Figure 18. Write mode data entry message from hyperterminal
Data should be entered in hex format. If the user wants to enter date/ serial numbers, they
should be entered in ASCII format.
32/43Doc ID 13286 Rev 2
AN2511Using the demonstration board
For example, to enter a date as “15 -12-1991”, then data should be entered as
313531323931 (where 31h=ASCII ”1”, 35h=ASCII “5”, etc., and the date will read “151291”).
An example of this operation is shown below.
Figure 19. Write mode operation example
When reading back the date written using single read commands, the following message is
displayed:
Figure 20. Read operation to check data writing
6.1.8 Group command
The user can press 3 to select group command mode. In this demonstration board, the user
can write multiple commands for multiple slave addresses.
After Figure 21 appears, the user can enter any command code and data with reference to
Section 3.1: PMBus commands to write byte/ word/ block of data. The user can enter 5
commands and data for the group command. If the user wants to write less than 5
commands, the user can press * to terminate the group command operation.
Doc ID 13286 Rev 233/43
Using the demonstration boardAN2511
Figure 21. Group command code entry message from hyperterminal
An example of this operation is shown below.
Figure 22. Group command operation example
6.2 Error conditions
The following error conditions may be encountered during PMBus communication.
6.2.1 Invalid command code
If the user enters a command code that is not available in the list or enters an incorrect
option to select read/write options, the following error message appears:
Figure 23. Invalid command message
An example is shown in Figure 24.
34/43Doc ID 13286 Rev 2
AN2511Using the demonstration board
Figure 24. Example of invalid command
6.2.2 Communication timeout
This error appears when the PMBus communication fails due to one of the following
reasons:
●The slave device doesn’t acknowledge the master
●The clock low interval exceeds the value of TTIMEOUT,MIN as defined by (SMBus
Specification 1.1)
●TLOW:SEXT and TLOW:MEXT conditions are not met
●Bus error or arbitration errors in PMBus communication
In these conditions, the following error message appears:
Figure 25. Communication timeout message
Doc ID 13286 Rev 235/43
Hardware descriptionAN2511
7 Hardware description
This section provides schematics, BOM (bill of materials), layout and picture of the
demonstration board.
7.1 Schematic and layout
The following figures show the schematic and layouts of the demonstration board.
Figure 26. Demonstration board schematic
*
*0
&
N
#
6
)##3%,
633
6$$
*0
K
K
2
2
3#,
3$!
2
2
2
2
#/.42/,
0!
4$/
2$)
3-"?!,%24
0#
)##$!4!
)###,+
0!0!
0!
0!
)##3%,
0#
0#
0#
0#
2$)0!
3#,0!
3$!0!
4$/0!
23 ).4%2&!#%
6
2/54
2/54
4/54
4/54
2).
4).
2).
4).
5
2$)
4$/
-#5
)## #/.
#/.
#
2
2%3%4
)##3%,
)##$!4!
)###,+
6##
*0
&
N
#
2
K
3
#
330"
2%3%4/3#/3#
3#+0"-)3/0"-/3)0"
5
2%3%4
/3#).
0"
0"
/3#
/3#
0"
0"
N&
-(Z
9
#
PF
#
PF
0#
0"0"
0"
0"0#
0#
0"
0"
34&'-
0#
0#
0#
0"
0"
6
$
3-$ ,%$
2
2
40
#
U&V
6
N&
40
#
66##6$$
0!
'.$
0"
/
'
,#$442
)
5
&
N
0"
*
#
&!5,4
*
6^6
*!#+
0"
0"
#/.
*
0/7%2
0"
0"
*
#/.
-5,4)0(!3%
-!.!'%-%.4
/0%2!4)/.3
#/.
3$!
3#,
3-"?!,%24
#/.42/,
*
0-"53
).4%2&!#%
#/.
2%3%4
40
#/.
3%4
2%
#
6##
#
#6
##6
#
U& 6
K
)##
/3#).
/3#
0#
0#
0#
*
$"
N&
'.$
34#42
#
U& 6
#
U& 6
U& 6
0#
0#
0"
0"
%84 ).4%2&!#%
!-V
6
#/.
36/43Doc ID 13286 Rev 2
AN2511Hardware description
Figure 27. Top view layout of the demonstration board
Figure 28. Bottom view layout of the demonstration board
Doc ID 13286 Rev 237/43
7.2 Bill of materials (BOM)
The following table shows the BOM of the demonstration board.
Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the
right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any
time, without notice.
All ST products are sold pursuant to ST’s terms and conditions of sale.
Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no
liability whatsoever relating to the choice, selection or use of the ST products and services described herein.
No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this
document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products
or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such
third party products or services or any intellectual property contained therein.
UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS
OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS EXPRESSLY APPROVED IN WRITING BY AN AUTHORIZED ST REPRESENTATIVE, ST PRODUCTS ARE NOT
RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING
APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY,
DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE
GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK.
Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void
any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any
liability of ST.
ST and the ST logo are trademarks or registered trademarks of ST in various countries.
Information in this document supersedes and replaces all information previously supplied.
The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.