76 lines
3.6 KiB
Markdown
76 lines
3.6 KiB
Markdown
# Pinmux 派生 CSV 数据结构与验收规范
|
|
|
|
本规范只约束按需生成的审核 CSV。BSP 代码修改仍以经确认的 GPIO/Pinmux 需求、自动选择并校验的内置目标芯片资料、参考项目源码和实际构建引用为依据。
|
|
|
|
## 规范化 JSON
|
|
|
|
导出脚本接收 UTF-8 JSON 对象:
|
|
|
|
```json
|
|
{
|
|
"project_name": "项目名称",
|
|
"rows": [
|
|
{
|
|
"pin_number": "A12",
|
|
"function_name": "CAM_RST0",
|
|
"pin_name": "PAD_MIPI_TXM4",
|
|
"is_gpio": true,
|
|
"active_level": "低有效",
|
|
"fmux_register": "0x030010A4",
|
|
"fmux_current": "3",
|
|
"fmux_default": "0",
|
|
"fmux_list": "0:XGPIOA_20; 1:CAM_MCLK0; 3:GPIOA_20; MIPI:TXM4"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
| JSON 字段 | 最终列 | 规则 |
|
|
|---|---|---|
|
|
| `pin_number` | 引脚号 | BGA 球位优先;非 BGA 填封装脚号 |
|
|
| `function_name` | 功能名称 | 原理图网络名或经核实的板级用途 |
|
|
| `pin_name` | 引脚名称 | 芯片手册中的 Pad 名 |
|
|
| `is_gpio` | 不输出 | 当前用途是否为通用 GPIO,不是 Pad 是否支持 GPIO |
|
|
| `active_level` | 有效电平 | GPIO 为 `高有效`、`低有效`或`待确认`;非 GPIO 为 `null` |
|
|
| `fmux_register` | FMUX寄存器 | 完整地址或手册定义的寄存器名 |
|
|
| `fmux_current` | FMUX当前值 | 当前用途对应编号;不确定填 `待确认` |
|
|
| `fmux_default` | FMUX默认值 | 手册复位默认值;不确定填 `待确认` |
|
|
| `fmux_list` | FMUX_list | `编号:功能`,以 `; ` 分隔;可保留特殊模式说明 |
|
|
|
|
## 资料提取
|
|
|
|
- 先定位主芯片全部分单元页面和封装表,再沿导线、网络标签、页间端口及器件连接确认每个信号脚用途。
|
|
- 芯片 XLSX 由 [内置 GPIO 资料目录](builtin-gpio-pinout.md)自动选择并使用 `query_builtin_pinout.py` 解析;禁止绕过 manifest 的型号映射和 SHA-256 校验直接借用相近表格。
|
|
- PDF 优先使用保布局文本提取;文本层错位或原理图密集时,将关键页面转为图像核查。
|
|
- 为候选 Pad 保留来源页码或工作表行号,至少覆盖型号、封装、球位、Pad、FMUX 地址、默认值、编号映射和特殊模式。
|
|
|
|
## 有效电平判定
|
|
|
|
仅在 `is_gpio=true` 时判定:
|
|
|
|
- GPIO 直接连接使能、复位、LED、按键或驱动器时,依据器件逻辑及真实电流路径判断。
|
|
- 奇数级 NPN/NMOS 共射或共源级通常造成逻辑反相;P 沟道高边电路还要结合栅极驱动方向。
|
|
- 上拉且按下接地的按键通常低有效;`RSTN`、`RESET#`、`CS_N` 是低有效线索,但仍需核对中间反相级。
|
|
- 上下拉可能只定义上电安全态,不能单独作为有效电平结论。
|
|
- 证据冲突或信号链不完整时填 `待确认`,并说明缺少的证据。
|
|
|
|
非 GPIO 当前用途必须填 `null`,即使该 Pad 可以复用为 GPIO。
|
|
|
|
## 多 FMUX 筛选
|
|
|
|
`FMUX_list` 中,以字符串开头或 `; ` 后出现的 `0:` 到 `7:` 为编号选项。至少有两个不同编号才输出。
|
|
|
|
- 保留:`0:GPIOA_1; 2:PWM_1; 3:UART1_TX`
|
|
- 排除:`0:GPIOA_1; MIPI:RX0`
|
|
|
|
## 验收清单
|
|
|
|
- 文件名为安全化的 `<项目名称>_pinmux.csv`,编码为 UTF-8 BOM。
|
|
- 表头严格为八列,顺序不变。
|
|
- 每个球位最多一行,且每行至少有两个不同编号 FMUX 选项。
|
|
- GPIO 有效电平不是 `null`;非 GPIO 有效电平恰为 `null`。
|
|
- `FMUX当前值`为编号时,该编号存在于 `FMUX_list`。
|
|
- 球位、Pad、寄存器和默认值来自匹配型号及封装的资料。
|
|
- `待确认`、`UNKNOWN` 和功能冲突均在交付信息中逐项列出;型号或封装不匹配时禁止生成最终 CSV,只交付差异与冲突清单。
|
|
- 不包含电源、地、EPAD、NC 或未连接脚。
|