PMBus Example

Versal Adaptive SoC System Monitor Architecture Manual (AM006)

Document ID
AM006
Release Date
2023-12-13
Revision
1.4 English
The following diagram illustrates a typical PMBus command.
Figure 1. Two Byte PMBUS Write Format
Figure 2. Two Byte PMBUS READ Format
Table 1. SYSMON PMBus Label Descriptions
Command Description
SM Start command - master to slave
AM[6:0] 7-bit I2C slave address - master to slave
R/WM Read (1) / Write (0) command - master to slave
ACKS Acknowledge - slave to master
CMDM[7:0] PMBUS Command
DM[7:0],DM[15:8],DM[23:16],DM[31:24] Data Bytes sent by master with the high bit sent firstwith theleast significant byte sent first.
SrM Repeated start command - master to slave
DS[7:0],DS[15:8],DS[23:16],DS[31:24] Data Bytes sent by slave with the high bit sent first with least significant byte sent first.
ACKM Acknowledge - master to slave
NACKM Not acknowledge - master to slave
PM Stop command - master to slave

Many PMBus commands require multiple byte read and write commands. The following diagram illustrates a general overview of the various sized commands supported by SYSMON.

Figure 3. Command Sequences

Using MFR_SELECT_REG and MFR_ACCESS_REG

When in De-restricted mode, PMBUS can be used to directly access the SYSMON register space through the MFR_SELECT_REG(MFR_SPECIFIC_D0) and MFR_ACCESS_REG(MFR_SPECIFIC_D1) commands. MFR_SELECT_REG is a two byte command that selects the SYSMON Register to be accessed with the four byte MFR_ACCESS_REG command. The MFR_ACCESS_REG can read SYSMON registers as well as write to unrestricted bits when the LOCK (PCSR_LOCK) has been unlocked. The two-byte MFR_SELECT_COMMAND is set by writing the 16 LSBs of the absolute address of the SYSMON register space, for example to access the REG_PCSR_LOCK register (0x00F127000C), 0x000C is written a two byte write with the command 0XD0. Once the Register has been defined, a 4 byte READ or WRITE command can be used to modify non-restricted bits to the register defined from the MFR_SELECT_REG command.