Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
DIOT Monitoring Module
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
6
Issues
6
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
Snippets
Snippets
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
DIOT Monitoring Module
Commits
2524efd8
Commit
2524efd8
authored
Oct 25, 2021
by
Christos Gentsos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Doc: document the LINEAR16 format (implemented for VOUT in
00dc1498
)
parent
00dc1498
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
6 deletions
+40
-6
firmware.rst
doc/source/firmware.rst
+40
-6
No files found.
doc/source/firmware.rst
View file @
2524efd8
...
...
@@ -63,13 +63,14 @@ The full list of PMBus and extended commands implemented by the
MoniMod can be found in :numref:`Tables %s <pmbus_cmds>` and
:numref:`%s <ext_cmds>`.
All physical quantities are expressed in the 16-bit PMBus Linear data
format (:numref:`linear_fmt`), instead of the Direct format PMBus also
supports, (which is somewhat more complex). An 11-bit mantissa (Y) and
a 5-bit exponent (N), expressed in 2's complement, form a
floating-point number X according to :math:`X = Y \cdot 2^N`.
All physical quantities (except output voltage, which is discussed
below) are expressed in the 16-bit PMBus Linear data format (LINEAR11,
:numref:`Linear`), instead of the (somewhat more complex) Direct
format PMBus also supports. An 11-bit mantissa (Y) and a 5-bit
exponent (N), expressed in 2's complement, form a floating-point
number X according to :math:`X = Y \cdot 2^N`.
.. _
linear_fmt
:
.. _
Linear
:
.. figure:: figures/latex/linear.png
:align: center
...
...
@@ -77,6 +78,17 @@ floating-point number X according to :math:`X = Y \cdot 2^N`.
The PMBus Linear data format
The output voltages use a different, 21-bit format, called LINEAR16
(in contrast to the 16-bit LINEAR11, the names are derived from the
mantissa width). This format comprises a 5-bit 2's complement
exponent, reported by the 5 MSBs of the VOUT_MODE_ command; and a
16-bit unsigned mantissa, reported by READ_VOUT_. Many COTS PSUs use
LINEAR11 for everything, and this behavior is also possible using a
compile-time switch. In the MoniMod, the exponential factor for the
LINEAR16 format is fixed to -10, so the voltages reported can be
obtained with :math:`X = Y \cdot 2^-10`, where Y is the 16-bit value
returned by READ_VOUT_.
.. _pmbus_cmds:
.. table:: PMBus commands implemented by the MoniMod
...
...
@@ -88,6 +100,8 @@ floating-point number X according to :math:`X = Y \cdot 2^N`.
+--------------+--------------------+------------------------+-------------+----------------------+
| 1A | QUERY | Block w / r proc. call | 1 | query cmd props |
+--------------+--------------------+------------------------+-------------+----------------------+
| 20 | VOUT_MODE | Byte read | 1 | read voltage format |
+--------------+--------------------+------------------------+-------------+----------------------+
| 3A | FAN_CONFIG_1_2 | Byte write / read | 1 | config fans 1&2 |
+--------------+--------------------+------------------------+-------------+----------------------+
| 3B | FAN_COMMAND_1 | Word write / read | 2 | set fan 1 speed |
...
...
@@ -189,6 +203,24 @@ The QUERY command takes a command code as an argument and replies with
information on the command: whether it is supported, if read or write
is supported, and what data format it works with.
.. _VOUT_MODE:
VOUT_MODE
~~~~~~~~~
| Command code: **20**
| Transaction type: **Byte read**
| Data length: **1**
The VOUT_MODE command reports the format the device uses for measured
voltage related data. The 3 MSBs indicate whether that's Linear_
(0b000), VID (0b001) or Direct (0b010), and in the Monimod's case it's
always 0b000 for Linear format. The 5 MSBs return either 0x16, for
LINEAR16 format used (fully PMBus-compliant operation, fixed
:math:`2^-10` exponential); or 0x00, for LINEAR11 format used (common
for COTS PSUs). See Linear_ for more details on the specifics of these
formats.
FAN_CONFIG_n_m
~~~~~~~~~~~~~~
...
...
@@ -242,6 +274,8 @@ The FAN_COMMAND_n commands set the desired speed of the attached
fans. The value set is either in RPMs (when the fan is configured to
be controlled like that) or duty cycle, in the range 0--1000.
.. _READ_VOUT:
READ_VOUT
~~~~~~~~~
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment