PinForge:一款通用的 MCU 图形化引脚配置器
·
PinForge:一款通用的 MCU 图形化引脚配置器
前言
在嵌入式开发中,引脚配置是一个既重要又繁琐的工作。每个 MCU 都有几十甚至上百个引脚,每个引脚又可能有多个复用功能(MUX)。传统的做法是对着数据手册一张一张看引脚图,记录下每个引脚的分配,不仅效率低,还容易出错。
最近我开发了一个名为 PinForge 的工具,旨在解决这个痛点。它是一个完全在浏览器中运行的通用 MCU 引脚配置器,支持多种芯片封装、CSV/XLSX 导入导出、自动信号分组、图形化映射等功能。
项目特点
1. 通用 MCU 支持
PinForge 不绑定任何特定芯片,你可以:
- 导入现成的引脚数据表(CSV/XLSX)
- 从零开始创建芯片和引脚配置
- 支持 QFP/QFN、DIP、BGA 等多种封装布局
2. 智能信号分组
工具会根据信号名称自动进行分类,比如:
- UART/USART 自动归类到「UART Serial」
- SPI/QSPI 归类到「SPI / Flash」
- CAN 信号归类到「CAN Bus」
- ADC/DAC 分别归类
这让你在配置时可以按功能分组快速查找所需信号。
3. 图形化配置
- 可视化芯片引脚图,支持缩放和平移
- 点选引脚进行功能分配
- 实时检测引脚冲突
- 支持单信号和组模式配置
4. 数据导入导出
- 导入引脚数据表:CSV 或 XLSX(Excel)
- 导出配置:JSON 格式,保存完整的项目状态
- 导出引脚数据表:CSV 格式,可重复使用
技术栈
- React 18 + Vite 5
- Tailwind CSS
- SheetJS (xlsx):前端解析 Excel
- Lucide React:图标库
快速上手
方式一:导入现有引脚数据
- 点击右上角「导入 CSV/XLSX」
- 左侧会自动生成外设/信号列表
- 开启「交互配置模式」后,选择信号并在芯片图上点击引脚完成映射
- 保存时可以选择「导出配置(JSON)」或「导出 CSV」
方式二:从零创建芯片
- 未导入数据时,在左侧选择封装类型与引脚数
- 点击「生成芯片图」
- 点击任意引脚,在右侧面板编辑管脚名、类型、电源以及复用字段
- 点击「导出 CSV」,得到可再次导入的引脚数据表
核心功能实现
CSV 解析器
为了正确处理带引号的 CSV 字段,我实现了一个简单的解析器:
function parseCSVLine(text) {
const result = [];
let current = '';
let inQuotes = false;
for (let i = 0; i < text.length; i++) {
const char = text[i];
if (char === '"') {
inQuotes = !inQuotes;
} else if (char === ',' && !inQuotes) {
result.push(current.trim());
current = '';
} else {
current += char;
}
}
result.push(current.trim());
return result;
}
智能信号分类
通过正则表达式和关键词匹配实现自动分类:
const categorizeSignal = (sig) => {
if (!sig) return 'Unknown';
if (sig.includes('GMAC') || sig.includes('ETH') || sig.includes('MAC')) return 'Ethernet';
if (sig.includes('ADC')) return 'Analog-to-Digital (ADC)';
if (sig.includes('DAC')) return 'Digital-to-Analog (DAC)';
if (sig.includes('UART') || sig.includes('USART') || sig.includes('LPUART')) return 'UART Serial';
if (sig.includes('I2C') || sig.includes('IIC')) return 'I2C Bus';
if (sig.includes('SPI') || sig.includes('FSP') || sig.includes('QSPI')) return 'SPI / Flash';
// ... 更多分类
return 'Other Peripherals';
};
封装布局渲染
支持三种主要封装类型的布局算法:
- QFP/QFN:四边环形排列
- DIP:双排直插排列
- BGA:矩阵排列,带行列坐标
使用技巧
- 平移:按住 Space 拖拽,或在空白处拖拽
- 缩放:按住 Alt 滚轮(或 Ctrl 滚轮)
- 属性面板:支持左右停靠(面板右上角按钮切换)
- 搜索过滤:按关键字搜索信号,或按「未分配/已分配/冲突」筛选
总结
PinForge 是一个轻量级但功能强大的工具,特别适合:
- 需要快速评估多个芯片方案的场景
- 没有官方配置工具的小众芯片
- 需要创建自定义引脚数据表的情况
所有功能都在浏览器端完成,无需安装任何软件,数据也完全保存在本地。
希望这个工具能帮到同样在嵌入式开发中挣扎的朋友们!如果觉得有用,欢迎访问 GitHub 项目主页 (https://github.com/geek2author/PinForge) Star 和 Fork。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)