关于BMC SMC命令字获取所有传感器读值的疑问
收藏回复举报
关于BMC SMC命令字获取所有传感器读值的疑问
t('forum.solved') 已解决
新人帖
发表于2026-03-02 13:20:31
0 查看

当前在openubmc中适配920L/920模组SMC命令字。发现920L和920的模组SMC命令字GET_SENSOR_ALL返回的数据差异较大。

1.首先在 鲲鹏模组SMC命令字 看到S920X08和S920L08的命令字GET_SENSOR_ALL都是返回8个相同传感器。

cke_12850.png

cke_6311.png

按表格的方法计算1v8_cpu的寄存器值: 1.8 * 32767 / 2.5 = 23592.24

所以1v8_cpu的寄存器正常值应在23592左右;

以此类推计算其他ADC传感器的寄存器值

0v9_vddavs的寄存器正常值应在11796左右

3v3_vcc的寄存器正常值应在21626左右

vcc_12v0的寄存器正常值应在26213左右

stby_1v8的寄存器正常值应在23592左右

stby_3v3的寄存器正常值应在21626左右

2.在920模组上执行GET_SENSOR_ALL指令获取所有传感器

硬件环境:S920X08模组

uid:00000001020302064399

cpld版本:0.15

cke_39737.png

图片中返回的是10进制数据,具体对应关系如下:

已将十进制数转换为十六进制表示:

十进制        十六进制

80                  0x50

93                  0x5d

56                  0x38

43                  0x2b

101                0x65

83                  0x53

79                 0x4f

103               0x67

55                  0x37

92                  0x5c

21                 0x15

83                  0x53

每个传感器占两个字节,如下:

传感器两个字节的10进制16进制16进制转化成10进制
1v8_cpu93      800x5d5023888
0v9_vddavs43      560x2b3811064
3v3_vcc83      1010x536521349
vcc_12v0103    790x674f26447
stby_1v892      550x5c3723607
stby_3v383      210x531520789

实际电压:

23888 / 32767 *2.5 = 1.8226

11064 / 32767 * 2.5 = 0.8443

21349 / 32767 * 2.5 * 2 = 3.2575

26447 / 32767 *2.5 * 6 = 12.1068

23607 / 32767 * 2.5 = 1.8012

20789 / 32767 * 2.5 * 2 = 3.1726

显然,实际电压是在正常范围内。

3.在920L模组上执行GET_SENSOR_ALL指令获取所有传感器

硬件环境:S920L08模组

uid:00000001020302080020

cpld版本:0.06

cke_323333.png

十进制        十六进制

68                0x44

92                0x5C

119              0x77

46                 0x2E

251             0xFB

102            0x66

175             0xAF

126             0x7E

30                0x1E

113             0x71

170             0xAA

101             0x65

每个传感器占两个字节,如下:

传感器

两个字节的10进制

16进制

16进制转化成10进制

1v8_cpu

92      68

0x5c44

23620

0v9_vddavs

46      119

0x2e77

11895

3v3_vcc

102      251

0x66fb

26363

vcc_12v0

126    175

0x7eaf

32431

stby_1v8

113     30

0x711e

28958

stby_3v3

101      170

0x65aa

26026

1v8_cpu:23620 / 32767 * 2.5 = 1.8022

0v9_vddavs:11895 / 32767 * 2.5 = 0.9076

3v3_vcc :26363 / 32767 * 2.5 * 2 = 4.0222

vcc_12v0 :32431 / 32767 * 2.5 * 6 = 14.8422

stby_1v8:28958 / 32767 * 2.5 = 2.2096

stby_3v3 :26026 / 32767 *2.5 * 2 = 3.9714

显然:3v3_vcc、vcc_12v0、stby_1v8和stby_3v3寄存器读数存在问题。

4.问题:920L、920和920S模组SMC命令字GET_SENSOR_ALL返回的传感器是否一致?

我要发帖子