English
Language : 

LTM4676_15 Datasheet, PDF (57/78 Pages) Linear Technology – Dual 13A or Single 26A Module Regulator with Digital Power System Management
LTM4676
Applications Information
PMBus
WRITE
CMD
DECODER
DATA
MUX
CALCULATIONS
S
PENDING
R
CMDS
WRITE COMMAND
DATA BUFFER
PAGE
0x00
•••
0x21
VOUT_COMMAND
••
•
MFR_RESET 0xFD
x1
INTERNAL
PROCESSOR
FETCH,
CONVERT
DATA
AND
EXECUTE
4676 F08
Figure 8. Write Command Data Processing
Two distinct parallel blocks manage command buffering
and command processing (fetch, convert, and execute)
to ensure the last data written to any command is never
lost. Command data buffering handles incoming PM-
Bus writes by storing the command data to the Write
Command Data Buffer and marking these commands for
future processing. The internal processor runs in parallel
and handles the sometimes slower task of fetching, con-
verting and executing commands marked for processing.
Some computationally intensive commands (e.g., timing
parameters, temperatures, voltages and currents) have
internal processor execution times that may be long
relative to PMBus timing. If the part is busy processing a
command, and new command(s) arrive, execution may
be delayed or processed in a different order than received.
The part indicates when internal calculations are in process
via bit 5 of MFR_COMMON (‘calculations not pending’).
When the part is busy calculating, bit 5 is cleared. When
this bit is set, the part is ready for another command. An
example polling loop is provided in Figure 8 which ensures
that commands are processed in order while simplifying
error handling routines.
When the part receives a new command while it is busy,
it will communicate this condition using standard PMBus
protocol. Depending on part configuration it may either
NACK the command or return all ones (0xFF) for reads. It
may also generate a BUSY fault and ALERT notification,
or stretch the SCL clock low. For more information refer
to PMBus Specification v1.1, Part II, Section 10.8.7 and
SMBus v2.0 section 4.3.3. Clock stretching can be enabled
by asserting bit 1 of MFR_CONFIG_ALL. Clock stretching
will only occur if enabled and the bus communication
speed exceeds 100kHz.
PMBus busy protocols are well accepted standards, but
can make writing system level software somewhat com-
plex. The part provides three ‘hand shaking’ status bits
which reduce complexity while enabling robust system
level communication.
The three hand shaking status bits are in the MFR_
COMMON register. When the part is busy executing an
internal operation, it will clear bit 6 of MFR_COMMON
(‘chip not busy’). When the part is busy specifically
because it is in a transitional VOUT state (margining hi/lo,
power off/on, moving to a new output voltage set point,
etc.) it will clear bit 4 of MFR_COMMON (‘output not in
transition’). When internal calculations are in process, the
part will clear bit 5 of MFR_COMMON (‘calculations not
pending’). These three status bits can be polled with a
PMBus read byte of the MFR_COMMON register until all
three bits are set. A command immediately following the
status bits being set will be accepted without NACKing or
generating a BUSY fault/ALERT notification. The part can
NACK commands for other reasons, however, as required
by the PMBus spec (for instance, an invalid command or
data). An example of a robust command write algorithm
for the VOUT_COMMANDn register is provided in Figure 9.
// wait until bits 6, 5, and 4 of MFR_COMMON are all set
do
{
mfrCommonValue = PMBUS_READ_BYTE(0xEF);
partReady = (mfrCommonValue & 0x68) == 0x68;
}while(!partReady)
// now the part is ready to receive the next command
PMBUS_WRITE_WORD(0x21, 0x2000); //write VOUT_COMMAND to 2V
Figure 9. Example of a Command Write of VOUT_COMMAND
It is recommended that all command writes (write byte,
write word, etc.) be preceded with a polling loop to avoid
the extra complexity of dealing with busy behavior and
unwanted ALERT notification. A simple way to achieve this
is by creating SAFE_WRITE_BYTE() and SAFE_WRITE_
WORD() subroutines. The above polling mechanism allows
one’s software to remain clean and simple while robustly
communicating with the part. For a detailed discussion
of these topics and other special cases please refer to
the application note section located at www.linear.com/
designtools/app_notes.
4676fc
For more information www.linear.com/LTM4676
57