2.2.1.2.2. PMBus Slave Mode
Stratix® 10 devices can also be configured in the PMBus slave mode with an external power management controller acting as the PMBus master. When you configure the Stratix® 10 device in the PMBus slave mode, you must connect an additional PWRMGT_ALERT pin while connecting the existing PWRMGT_SCL and PWRMGT_SDA pins.
The external PMBus master must poll the state of the PWRMGT_ALERT pin periodically, at an interval not longer than 100 ms. When the PWRMGT_ALERT pin is asserted, the external master uses the Alert Response Address (ARA) flow to deassert the ALERT signal and responds based on the STATUS_BYTE. The external master must also issue the VOUT_COMMAND every 200 ms or less to check for a possible change in the target voltage due to temperature compensation.
Command Name | Command Code | Default | PMBus Transaction Type | Number of Bytes |
---|---|---|---|---|
CLEAR_FAULTS | 03h | — | Send byte | 0 |
VOUT_MODE | 20h | 40h | Read byte | 1 |
VOUT_COMMAND | 21h | — | Read word | 2 |
STATUS_BYTE | 78h | 00h | Read byte | 1 |
Sequence | SDM | PMBus Master | Notes |
---|---|---|---|
1 | Asserts the ALERT signal | — | — |
2 | — | Detects the ALERT signal | — |
3 | — | Initiates the ARA flow | — |
4 | Responds to the ARA flow and provides its address | — | Only the device which has asserted the ALERT signal in step 1 responds to the ARA flow by providing its address. |
5 | Deasserts the ALERT signal | — | The ALERT signal is only deasserted after the SDM responds with its address in the ARA flow. |
6 | — | Reads the STATUS_BYTE | — |
7 | Returns STATUS_BYTE=0 | — | Indicates the FPGA voltage requires an update. |
8 | — | Sends CLEAR_FAULTS | — |
9 | — | Sends VOUT_COMMAND | The VOUT_COMMAND must be received by the SDM within 200 ms after the ALERT signal is asserted. Failure to meet this requirement can cause configuration error. 5 |
10 | Receives the VOUT_COMMAND, responds with the target voltage | — | Calculated based on the temperature, the VID fuse and the coefficient for the direct format (you need to specify this input). |
11 | — | Sets the voltage regulator to the target voltage in step size not greater than 10 mV/10 ms step | — |
Sequence | SDM | PMBus Master | Notes |
---|---|---|---|
1 | Asserts the ALERT signal | — | The SDM detects fault and asserts the ALERT signal. 6 |
2 | — | Detects the ALERT signal | — |
3 | — | Initiates the ARA flow | — |
4 | Responds to the ARA flow and provides its address | — | Only the device which has asserted the ALERT signal in step 1 responds to the ARA flow by providing its address. |
5 | Deasserts the ALERT signal | — | The ALERT signal is only deasserted after the SDM responds with its address in the ARA flow. |
6 | — | Reads the STATUS_BYTE | — |
7 | Returns the STATUS_BYTE when not equal to 0 | — | Indicates that other fault has occurred |
8 | — | Sends CLEAR_FAULTS | To reset the STATUS_BYTE. |
9 | — | Reads the STATUS_BYTE | To confirm that STATUS_BYTE=0 |
10 | — | External master to handle the faults | — |
The Stratix® 10 device in the PMBus slave mode will be sending the VOUT_COMMAND value in the direct format only. To read the actual voltage value, use the following equation to convert the VOUT_COMMAND value from the Stratix® 10 device.
The equation shows how to convert the direct format value where:
- X, is the calculated, real value units in mV;
- m, is the slope coefficient, a 2-byte two's complement integer;
- Y, is the 2-byte two's complement integer received from the Stratix® 10 device;
- b, is the offset, a 2-byte two's complement integer;
- R, is the exponent, a 1-byte two's complement integer
The following example shows how an external power management controller retrieves values from the Stratix® 10 device. Coefficients used in the VOUT_COMMAND are as follows:
- m = 1
- b = 0
- R = 0
If the external power management controller retrieved a value of 0384h, it is equivalent to the following:
X = (1/1) x (0384h x 10-0 - 0) = 900 mV = 0.90 V
The following faults can raise the ALERT signal:
- PMBUS_ERR_RD_TOO_MANY_BYTES (Error with the length of the PMBus/I2C message length)
- PMBUS_ERR_WR_TOO_MANY_BYTES (Error with the length of the PMBus/I2C message length)
- PMBUS_ERR_UNSUPPORTED_CMD (VOUT_COMMAND, VOUT_MODE, READ_STATUS, and CLEAR_FAULTS are the only supported commands in the PMBUS Slave Mode)
- PMBUS_ERR_READ_FLAG (Received duplicate command before being able to respond to the first command)
- PMBUS_ERR_INVALID_DATA (Invalid or malformed PMBus/I2C message)
If any of the above errors are detected, the ALERT signal is raised and bit 1 of the status register is set.