3.6 KiB
3.6 KiB
Pinmux 派生 CSV 数据结构与验收规范
本规范只约束按需生成的审核 CSV。BSP 代码修改仍以经确认的 GPIO/Pinmux 需求、自动选择并校验的内置目标芯片资料、参考项目源码和实际构建引用为依据。
规范化 JSON
导出脚本接收 UTF-8 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 资料目录自动选择并使用
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 或未连接脚。