仅对英特尔可见 — GUID: loo1551083312723
Ixiasoft
5.1.2.2. PMBus Slave模式
英特尔Agilex 7器件也可以通过用作PMBus master的外部电源管理控制器在PMBus slave模式下进行配置。通过PMBus与英特尔Agilex 7器件交互的外部电源管理控制器必须支持时钟延长(clock stretching)。外部电源管理控制器负责驱动所有PMBus传输,查询FPGA的目标电压要求,并与电压适配器进行交互,以将它们配置为FPGA的目标电压。
对于具有PWRMGT_ALERT的PMBus slave模式, 您必须对外部PMBus流程遵循以下列出的指南:
- 图:外部PMBus Master和具有PWRMGT_ALERT信号的PMBus Slave模式下的FPGA之间的握手流程
- 图:外部PMBus Master和PMBus Slave模式下的FPGA之间的握手时序图(PWRMGT_ALERT)
- 表:当PWRMGT_ALERT信号置位,STATUS_BYTE=0时的外部PMBus Master的阶段流程
- 表:当PWRMGT_ALERT信号置位,STATUS_BYTE不等于0时的外部PMBus Master的阶段流程
图 24. PMBus Slave模式
命令名称 | 命令代码 | 默认值 | PMBus传输类型 | 字节数 |
---|---|---|---|---|
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 |
图 25. 外部PMBus Master和具有PWRMGT_ALERT信号的PMBus Slave模式下的FPGA之间的握手流程
序列 | SDM | PMBus Master | 注释 |
---|---|---|---|
1 | 置位PWRMGT_ALERT信号 | — | — |
2 | — | 检测PWRMGT_ALERT信号 | — |
3 | — | 启动ARA流程 | — |
4 | 响应ARA流程并提供其地址 | — | 只有在step 1中置位了PWRMGT_ALERT信号的器件才通过提供其地址对ARA流程进行响应。 |
5 | 置低PWRMGT_ALERT信号 | — | PWRMGT_ALERT信号仅在SDM在ARA流程中的以其地址作出响应后才被置低。 |
6 | — | 读取STATUS_BYTE | — |
7 | 返回STATUS_BYTE=0 | — | 指示FPGA电压需要更新。 |
8 | — | 发送CLEAR_FAULTS | — |
9 | — | 发送VOUT_COMMAND | VOUT_COMMAND必须在PWRMGT_ALERT信号置位后的200ms之内被SDM接收到,否则将导致配置错误。14 |
10 | 接收VOUT_COMMAND,以目标电压作出响应 | — | 根据温度,VID fuse和直接格式的系数进行计算(您需要指定此输入)。 |
11 | — | 以不大于10mV/10ms的步长将电压调节器设置为目标电压 | — |
序列 | SDM | PMBus Master | 注释 |
---|---|---|---|
1 | 置位PWRMGT_ALERT信号 | — | SDM检测到故障并置位PWRMGT_ALERT信号。15 |
2 | — | 检测PWRMGT_ALERT信号 | — |
3 | — | 启动ARA流程 | — |
4 | 响应ARA流程并提供其地址 | — | 只有在step 1中置位了PWRMGT_ALERT信号的器件才通过提供其地址对ARA流程进行响应。 |
5 | 置低PWRMGT_ALERT信号 | — | PWRMGT_ALERT信号仅在SDM在ARA流程中的以其地址作出响应后才被置低。 |
6 | — | 读取STATUS_BYTE | — |
7 | 当不等于0时返回STATUS_BYTE | — | 指示出现其他故障 |
8 | — | 发送CLEAR_FAULTS | 复位STATUS_BYTE。 |
9 | — | 读取STATUS_BYTE | 确认STATUS_BYTE=0 |
10 | — | 处理故障的外部master | — |
图 26. 外部PMBus Master和PMBus Slave模式下的FPGA之间的握手时序图(PWRMGT_ALERT)
PMBus slave模式下的英特尔Agilex 7器件只以直接格式发送VOUT_COMMAND值。要读取实际电压值,请使用以下公式转换英特尔Agilex 7器件的VOUT_COMMAND值。
图 27. 直接格式公式
此公式显示如何转换直接格式值,其中:
- X,是计算出的实际值(mV);
- m,是斜率系数,是一个2字节的二进制补码整数;
- Y,从英特尔Agilex 7器件接收到的2字节的二进制补码整数;
- b,是偏移量,一个2字节的二进制补码整数;
- R,是指数,一个1字节的二进制补码整数
如下示例显示了外部电源管理控制器如何从英特尔Agilex 7器件检索数值。VOUT_COMMAND中使用的系数如下所示:
- m = 1
- b = 0
- R = 0
如果外部电源管理控制器检索到一个值0384h,则其等同于:
X = (1/1) x (0384h x 10-0 - 0) = 900 mV = 0.90 V
14 当SDM没有在指定时间内接收到VOUT_COMMAND而触发一个错误时,您必须重启器件才能从错误中恢复。如果不重启器件,那么将无法成功配置器件。
15
以下故障会引发PWRMGT_ALERT信号:
- PMBUS_ERR_RD_TOO_MANY_BYTES (PMBus/I2C消息长度的错误)
- PMBUS_ERR_WR_TOO_MANY_BYTES (PMBus/I2C 消息长度的错误)
- PMBUS_ERR_UNSUPPORTED_CMD (VOUT_COMMAND,VOUT_MODE,READ_STATUS和CLEAR_FAULTS是PMBUS Slave Mode中仅支持的命令。)
- PMBUS_ERR_READ_FLAG (在能够响应第一个命令之前接收到重复命令)
- PMBUS_ERR_INVALID_DATA (无效或格式错误的PMBus/I2C消息)
如果检测到以上任何错误,那么就会引发PWRMGT_ALERT信号,并且状态寄存器的bit 1被设置。