Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

DDR 内存 SPD 读写 API

快速开始

通过串口(波特率 115200)使用 JSON 格式与设备通信,支持 DDR3/DDR4/DDR5 内存 SPD 的读写操作。

API 格式

所有请求均使用 JSON 格式,所有键必须存在,不需要的参数值可设为空字符串 ""

{
  "spdaddr": "50",
  "type": "ddr5",
  "cmd": "read",
  "addr": "0",
  "value": "",
  "number": "3"
}

参数说明

基础参数

参数说明可选值是否必填值
spdaddrSPD 设备地址50 - 57(PMIC 为 48根据命令
type内存类型ddr3 / ddr4 / ddr5✅ 必填
cmd操作命令read / write / srswp / ota✅ 必填
addr字节地址十六进制(如 "0", "10"根据命令
number读取字节数数字字符串(如 "3"根据命令
value数据值十六进制字符串(如 "AB12CD"根据命令

各命令所需参数

命令spdaddrtypeaddrnumbervalue
read-
write-
srswp--
ota----

✅ 表示需要填写值,- 表示值可为空字符串 ""

特殊说明

  • DDR5 的 128 位寄存器或 PMIC 寄存器访问时,type 设为 ddr3
  • DDR3 仅支持解除写保护操作
  • 写保护操作中,value 全为 0 可解除所有 Block 写保护

操作示例

1. 读取数据

从指定地址读取指定数量的字节。

请求

{
  "spdaddr": "50",
  "type": "ddr5",
  "cmd": "read",
  "addr": "0",
  "value": "",
  "number": "3"
}

响应

AB12CD

2. 写入数据

向指定地址写入数据。

请求

{
  "spdaddr": "50",
  "type": "ddr5",
  "cmd": "write",
  "addr": "0",
  "value": "AB12CD",
  "number": ""
}

响应

OK

3. OTA 更新

启动 OTA 更新。

请求

{
  "spdaddr": "",
  "type": "",
  "cmd": "ota",
  "addr": "",
  "value": "",
  "number": ""
}

响应

OK

4. 写保护控制

DDR5 写保护

value 为 4 位十六进制,转换为二进制对应 Block 0-15(1 开启,0 关闭)。

请求

{
  "spdaddr": "50",
  "type": "ddr5",
  "cmd": "srswp",
  "addr": "",
  "value": "FFFF",
  "number": ""
}

示例说明

  • "FFFF" → 所有 Block 写保护
  • "0000" → 解除所有写保护
  • "000F" → Block 0-3 写保护

DDR4 写保护

value 为 2 位十六进制,低 4 位对应 Block 0-3(1 开启,0 关闭)。

请求

{
  "spdaddr": "50",
  "type": "ddr4",
  "cmd": "srswp",
  "addr": "",
  "value": "0F",
  "number": ""
}

示例说明

  • "0F" → Block 0-3 写保护
  • "00" → 解除所有写保护

DDR3 写保护

仅支持解除写保护。

请求

{
  "spdaddr": "50",
  "type": "ddr3",
  "cmd": "srswp",
  "addr": "",
  "value": "00",
  "number": ""
}

响应

OK

常见问题

Q: 所有键都必须存在吗?
A: 是的,所有 6 个键(spdaddrtypecmdaddrvaluenumber)都必须存在,不需要的参数值设为空字符串 ""。其中 typecmd 的值始终必须填写。

Q: 如何访问 PMIC 寄存器?
A: 设置 spdaddr"48"type"ddr3"

Q: 写保护的 Block 编号如何对应?
A: 将十六进制 value 转换为二进制,从右到左依次对应 Block 0, 1, 2...

Q: 如何确认操作成功?
A: 读操作返回数据,写操作和写保护操作返回 OK


技术支持

如有问题,请联系技术支持或查阅详细文档。