Files

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 或未连接脚。