【硬件小达人-那些设计上的小巧思(1)】-Board ID

张开发
2026/4/11 23:42:28 15 分钟阅读

分享文章

【硬件小达人-那些设计上的小巧思(1)】-Board ID
文章目录1. 什么是Board ID现实场景2. 为什么不建议用 “多套固件” 代替 Board ID3. Board ID的实现方式3.1 GPIO电阻编码最常用3.2 ADC 分压电阻3.3 EEPROM / OTP / 专用 ID 芯片存唯一序列号 版本号3.4 PCB 板号丝印生产 / 维修肉眼识别4. 为什么不推荐使用EEPROM4.1 成本贵太多最致命4.2 产线要额外烧录超级麻烦4.3 掉电、虚焊、损坏概率更高4.4 硬件版本变更不好维护4.5 小容量产品根本没必要4.6 那什么时候才用 EEPROM总结作为硬件工程师总归是要有点13格的。而一些小巧思确实也让人感叹 牛 AC1. 什么是Board IDBoard ID 主板的 “硬件身份证号”。当一套 PCB 或者是一套固件需要兼容好几种硬件配置这个时候就需要靠 Board ID来进行区分。现实场景你画一块 PCB有的时候需要应对很多场景。这个和销售策略有很多大关系比如基础班升级版VIP版本。比如有的板子装摄像头有的不装有的用LCD 屏有的用OLED 屏有的电池 3.7V有的外置电源12V 供电有的是V1.0 硬件老版本有的是V2.0 升级版。有的给客户 A有的给客户 B有的给客户C极大概率他们的PCB基本一致只是部分器件不同。软件怎么知道我该跑那些驱动Board ID 是最好的实现方式2. 为什么不建议用 “多套固件” 代替 Board ID很多同学在刚开始接触硬件开发不喜欢做版本兼容 总觉得自己的设计天衣无缝一个版本封神。但是用户需求会改元件成本会变。如果每一次小的变动就需要一个固件版本。少了还好多了呢假设你的产品在各种需求变更之后PCB 版本 3 种屏幕 2 种摄像头 2 种用户不同需求 3种如果使用固件版本区分那就是322*336版本固件再加上生产测试,售后光想想就要爆炸了吧Board ID 是硬件自身的物理编号上电即读、永不丢失、不受固件影响用于启动早期配置、兼容多硬件、防呆防错。固件是独立的属于软信息易被修改、丢失、刷错不能代表硬件真实身份。硬件永远比软件更靠谱3. Board ID的实现方式3.1 GPIO电阻编码最常用2~4 个 GPIO设为输入通过读取外部电平上拉 / 下拉从而得到二进制 ID例3 个 GPIO → 0~7 可区分 8 版硬件3.2 ADC 分压电阻不同电阻组合出不同电压ADC 读 ID。建议选用K级别以上的电阻进行分压。3.3 EEPROM / OTP / 专用 ID 芯片存唯一序列号 版本号存唯一序列号 版本号。 需要对EEPROM进行烧录增加成本以及人工。3.4 PCB 板号丝印生产 / 维修肉眼识别这个每个板子都要加这个是为了看到实物一眼就知道.4. 为什么不推荐使用EEPROM一句话成本高、流程复杂、故障率高、产线麻烦远不如电阻编码省心。4.1 成本贵太多最致命电阻编码24 个 0402 电阻 ≈ 0.01 元EEPROM/OTP/ID 芯片至少 0.31 元量越大差距越恐怖。4.2 产线要额外烧录超级麻烦电阻贴片机一贴就完事EEPROM必须单独烧录 ID增加工序、增加治具、增加出错概率4.3 掉电、虚焊、损坏概率更高I2C 芯片最怕虚焊、干扰、通信失败一旦读不到 ID → 系统起不来、固件不识别电阻只要没贴错永远不会坏4.4 硬件版本变更不好维护改版本 → 换电阻组合就行EEPROM → 要重新烧录、重新管理固件4.5 小容量产品根本没必要Board ID 只需要 3bit8 个版本 就足够用一辈子用芯片 大炮打蚊子4.6 那什么时候才用 EEPROM1. 需要唯一序列号 SN不是版本 ID 2. 需要校准数据、MAC 地址、密钥 3. 需要多块不同机型完全兼容同一固件 否则 99% 的产品 → 电阻编码 Board ID 是最优解。总结硬件上的唯一识别码才是王道谢谢您的阅读如觉得本文尚可还烦请点赞收藏 O(∩_∩)O哈哈~。

更多文章