PMBus Register Summary
353
SNIU028A – February 2016 – Revised April 2016
Copyright © 2016, Texas Instruments Incorporated
PMBus Interface/I2C Interface
10.1 PMBus Register Summary
The PMBus interface has 9 registers.
•
PMBCTRL1 – control for master mode only
•
PMBCTRL2 – control for slave mode only
•
PMBCTRL3 – control for both modes and for using pins as GPIO
•
PMBINTM – interrupt masks for both modes
•
PMBST – status bits – many are clear on read bits
•
PMBRXBUF – holds up to 4 bytes of received data
•
PMBTXBUF – holds up to 4 bytes of data to be transmitted
•
PMBACK – write a 1 to ACK, or a 0 to NACK
•
PMBHSA – holds slave address which was automatically acknowledged
For a detailed description of each register and bitfield see
.
10.2 PMBus Slave Mode Initialization
This section and the following ones reference specific registers and bitfields in the PMBus/I2C interface.
There are several ways to use the PMBus for slave mode. Many TI EVM codes use polling, not interrupts.
It’s not hard to write the background loop to call the PMBus function every 2 or 3 msec worst case. This is
plenty to meet the PMBus timing requirements. It frees up the CPU for more urgent power supply tasks. It
is also possible to use interrupts to run the PMBus.
10.2.1 Initialization for Polling and Maximum Automatic Acknowledgement
Here are the register settings to disable interrupts and to set up for as much automatic acknowledgement
and PEC calculation as possible:
•
PMBCTRL1 – All zeroes – this is the default, so no write is necessary
•
PMBCTRL2 – Several bits need to be set
–
RX_BYTE_ACK_CNT = 3 – this means up to 3 bytes will be auto acknowledged – it is the default
state of these bits after reset
–
PEC_ENA = 1 – this enables the automatic PEC calculation logic – this is not the default state
–
SLAVE_MASK = 0x7F - This makes the interface auto acknowledge only one address – this is the
default state.
–
SLAVE_ADDR = desired slave address – this defaults to 0x7c
–
The other bits in PMBCTRL2 should be left in the default zero state for this mode
•
PMBCTRL3 – set SLAVE_EN, clear all other bits – this is the default state
–
In slave mode, even if 400 kHz is desired, there’s no need to set the FAST_MODE bit.
–
FAST_MODE only affects the timing of the BUS_FREE bit and, of course, the output clock rate,
both of which are only used in master mode. It has no effect on any slave mode timings.
•
PMBINTM – set all bits to mask off all PMBus interrupts – this is the default state
10.2.2 Initialization for Interrupts and for Manual Acknowledgement
If an interrupt driven PMBus interface is desired, just write ones to the appropriate bits in PMBINTM. Note
that DATA_READY, DATA_REQUEST and EOM are the only ones absolutely required. Some of the other
interrupts are only for master mode, some are for Alert and Control, and some are discretionary for slave
mode.
If manual acknowledgement is desired, there are three bitfields which can be modified, all in PMBCTRL2.
•
RX_BYTE_CNT
–
Default = 3, meaning 3 bytes auto acknowledged, 2 for 2 bytes, and so on
–
These settings are useful if the Master requires invalid data to be NACKed
–
They can be set dynamically as the message comes in.