夜雨聆风学习资料网

ARTICLE · 1156722

电子设计:创建新的 PCB 文档

电子设计:创建新的 PCB 文档

“ 以 AD19 为例,讨论在创建整合库(library),完成原理图绘制 (schematic capture),并进行编译(compiling)后的转换设计。本文讲述,创建新的 PCB 文档,(栅格、相对原点与叠层的)初始设置,以及板形的详细创建,以及通过 ECO 进行转换的过程。”

编译设计并产生 ECO,转换设计到 PCB

  1. 编译设计(compiling design)的过程,就是创建连接性的过程,也就是创建 UDM 的过程。编译,与原理图和 pcb 编辑器都是分离的。

  2. Altium Designer 将“编译设计”,也称为“验证设计”。因为它通过“Error Report(原理验证)”,以及“Connection Matrix(电气类型)”的设置,进行 Error Checks,结果将表示在 Message panel(信息面板)。

  3. “编译(compiling)”这个术语,AD 解释为“模拟(或者应该说借用)软件术语”。由于其功能仅用于创建连接性(与高级编程语言比较过于狭隘),因此这个术语,这里认为是有点勉强。通过阅读 AD 帮助文档的一些模糊的只言片语,似乎可以推测,Altium Designer 设计团队,很可能发明了一套简单的脚本语言,用来表示不同的处理过程/动作,这也可能是其称为“编译”的主要原因 - 这里的学习理解,仅供参考。

  4. 如果全部错误被解除(all errors are resolved),被编译的原理图设计,就准备好,通过一系列 ECOs(Engineering Change Orders),转换到(transferred to)目标 PCB 文档。

  5. 承担 ECOs 产生过程的是比较器引擎(comparator engine),它标识原理图设计与 PCB 之间的每个不同。

  6.  使用比较器引擎的途径去标识不同,意味着你不仅直接在原理图与 PCB 之间工作(而无需使用媒介 netlist 文件,注:这是早期 Protel99SE 的工作模式),也意味着同样的途径,能被用来,在设计的任何曲幕/阶段(stages)同步原理图与 PCB。而且它在源与目标文件之间,还是双向的。

  7. ECO 产生以及比较器(comparator),也可以在 Project Options 对话框中配置。讨论:通常的设计很少会进行设置 Comparator 与 ECO,这应属于对“转换”过程的解剖式地配置,可能也属于 AD 设计团队炫技的部分。

  8. 此外,Comparator  与 ECO,还能将 Class(比如由 Bus,Harness,或者使用者通过指令自定义),也转换到 PCB。

  9. 补充:默认的 Class 包括,每个原理图页的 Component classes 与 Rooms,以及每个设计内的 bus 的 Net Classes。

01

—

创建“空板(blank PCB)”

  1. 将新的 PCB 加入到已经创建的 Project 之中。

  2. 注:在这里的实践测试中,它(最可能在计算机内存中)产生了 PCB1.PcbDoc 文档。因为在 Project 面板中,将光标移动到它的文件名之上时,与早前文章中提及的,已经建立的 schematic 文档不同,它没有显示,任何文档所在文件夹的位置提示工具栏。

  3. 注意 AD 文档提出的要求是,该新建的 PCB 文档名,应当与工程名相同(通过 Save As 命令来命名)。

  4. 因为,新建 PCB 文档,动了整个工程框架,也需要在工程名称上右键并 “Save Project”。注:这里测试 “Save All” 命令也有效。

02

—

默认空板配置

默认板参数:

  1. 大小:AD 自动化(设计)软件,创建了默认的板型为 6x4 inch,即 6000x4000mil,也就是 150x100mm 大小。注:大致上是成年人的手掌面积大小。

  2. 板层:通过 View Configuration 面板,以及 Layer Stack Manager 对话框,都能检查到“信号与平面层”只有两层(top 与 bottom)。所以,软件默认创建双层板。更直接点,观看 Properties 面板的 Board Information,也能直接看到这是双面板。

  3. 整板捕获栅格(Global Board Snap Grid):这里的测试中,打开 Grid Manager 对话框,检查“笛卡尔栅格编辑器”,可见默认选择 5mil(这里的实测参数,与 AD19 离线文档的说明一致),步进倍速为 5x。

  4. 原点:在这里的测试中,默认的双面空板的原点,位于左下角。坐标 (1000, 1000)mil。

03

—

修改空板配置

修改参数步骤:

  1. 栅格:根据这里的习惯,修改单位为公制 “mm”(理由见本公众号早前的文章,此外 AD 文档本身也给了使用公制的理由 - 尽管 AD19 默认空板配置仍是英制)。并将 Grid 修改为:0.025mm,步进 10x。此设置与这里早前创建(元件)整合库,制作封装模型时的 Grid 一致。

  2. 解释一下参数选择的理由:虽然 1mil 的生产工艺,在现在(2026年)是一个高难度且不必要的工艺(AD19 帮助文档建议线宽与线距为 0.25mm/10mil 工艺;via 建议 0.6/1mm=24/40mil - 这对珠三角的任何一个厂,想必都是手拿把掐)。

    1. 但在制作元件库时,为了在有限的尺寸中,画出元件符号封装的精确弧线,因此这里使用上述 Grid。

    2. 而保证 schematic 与 pcb 文档的 Grid 与 Lib 中使用的 Grid 的一致,是这里的设计习惯(早前文章曾提及,Grid 不一致,将导致移动原理图中选定对象时,可能发生接线/wire 的错误移动)。

    3. 而且早前的文章里,也提及了该设置参数,曾被其他讨论者在实践中使用。

  3. 原点:使用Edit » Origin » Set 命令,将(相对)原点坐标,定位在 PCB 板的左下角。

  4. 板(叠)层(Layer Stack):修改默认双面板为四层板。

    1. 打开 Layer Stack Manager 对话框,选中 signal layer(信号层),检查其 Properties 面板,勾选 “叠层对称(Stack Symmetry)”。- 这样才能待会增加 layer/层时,成对加入。

    2. 使用 Edit » Add Layer,加入 Signal,这将出现成对信号层加入。保存 Layer Stack Manager 的设置。

    3. 返回 PCB 编辑器,在 View Configuration 面板中,将新增的两个信号层 layer1/2 的 View(眼睛)按钮使能。这样在 PCB 编辑器的下方才能新增 layer1/2 层,进行画板。

    4. 根据以上操作,默认 layer1 靠近 top,而 layer2 靠近 bottom layer。

  5. 对 Layer Stack Manager 的参数解释:

    1. 默认的 core 介质层的厚度参数(0.32um),是可以无视的。实践中,它通常被 1.2mm 与 1.6mm 的板厚决定(见下图的 AD19 文档的贴图)。

    2. 默认的阻焊层的厚度参数(0.01mm),也不太符合当前工艺。通常它可能是 25um(见下图)。如果没有向 PCB 厂约定此参数,这里过去的工作经验中,它可能任由工厂定制,弄不好给出 15um。这样的话,就不得不在下单时特别做工艺要求(虽然不清楚 15um 是不是也没有任何问题,但它似不符常规配置)。

    3. 默认的铜厚(1Oz=35um),这没有什么问题(除非板上有大电流)。

    4. 实践中,是否应该如下图般,对上述参数进行约定,也未必。因为这可能完全依赖市场与工厂的板材 - 最终由协商或过去经验下,向工厂做工艺要求而决定。

04

—

定义板形(Board Shape)

4.1 默认板形(Board Shape)

  1. 在 PCB 编辑器中,板形(Board Shape)定义了板的边界,或范围。

  2. 板形(Board Shape)是 PCB 对象,也称为 Board Outline(板框),本质上是封闭多边形(closed polygon)。

  3. 如之前图示,当新建 PCB 文档时,它是黑色区域。在 properties 中,它具有默认 size:6000x4000mil。

4.2 板形(board shape)分裂为多板区(multiple board regions)

  1. 板区(Board Region)这个术语,是用来描述板上的使用者自定区,可以分配特定的叠层(unique layer stack)。

  2. 当新板被创建时,默认具有单一板区 - 即板形的外框(outline of board shape)。你能分裂这个单一默认板区为多重区,分配特定的叠层。

  3. 如下图所示,板形已被分为三个区分的板区:上圆圈,中间条,下圆圈。这些区(regions),通过放置两条水平的蓝色分裂虚线(Split Lines),得以创建。

  4. 注意这些橙色虚线,它们是可弯曲线(bending lines),因为这个刚柔(rigid-flex)设计,当它们被装配后,将会被折叠。

  5. 译注:刚柔设计(软硬结合板设计),是流行的个人便携设备,折叠手机,摄像头部件等,使用的设计方案。因此,AD19,通过板形可分裂为(具有不同叠层)多个板区的方式,可以进行刚柔(多板)设计。

4.3 三种模式(Board Planning,2D Layout,3D Layout)设计板形

讨论:板形(Board shape)设计入口

  1. 说来也奇怪,AD19 的板形(Board Shape)设计的入口,是从 View 主菜单的三个不同模式进入的。

  2. 这可能存在某种“菜单组合炫技”的技巧,即在 View 菜单中选中“模式”,然后相应的在该模式下,使用各自的,可能更新的“Design”与“File” 等菜单进行设计。

PCB 编辑器的 View 菜单,具有三个 PCB 编辑器工作模式:
  • Board Planning Mode (1)
    2D Layout Mode (2)
    3D Layout Mode (3)
  1. View » Board Planning Mode (1),编辑刚柔板区:在本例中,“刚柔(rigid-flex)设计”,正是从 Board Planning Mode(1)进入,放置分裂线(Split Line),编辑板区名(board region name),分配叠层(layer stack),放置并定位可弯曲线(bending line)。

  2. View » 2D Layout Mode (2),从MCAD文件中导入:可选择外框(outline)从 MCAD 工具(如 DWG/DXF 文件)导入(import),通过  File » Import » DXF/DWG ,并使用 Edit » Select » All on Layer,在机械层中选中这些图元(译注:导入后的外框),然后使用 Design » Board Shape » Define from selected objects 命令构建板形。

  3. View » 3D Layout Mode (3),从 3D 文件(如 STEP)中导入:可导入 STEP 模型(.step 或 .stp)放置 3D body(Place » 3D Body),然后在 Properties 的 Generic 的 3D Model Type 区,选择 Embed Model 或 Link to Models,在 Source 区输入所需的 STEP 模型。设计的 PCB 产品在本例中如下图所示:

05

—

更简单地定义板形(Board Shape)实践

5.1 简单的板形交互编辑(Interactively Editing)

正如新建 PCB 板形是 6000x4000mil 矩形,对于一个多边形对象板形,交互修改(interactively modify)板形更简单:
  1. View » Board Planning Mode (1) 进入板计划模式。

  2. Design » Edit Board Shape ,并拖动边框或顶点即可。
5.2 使用 Jump Location(跳跃定位)重定(redefining)板形
  1. 设 PCB 左底定位设置原点/origin(Edit » Origin » Set)。
  2. 切换工作空间到 Board Planning Mode(View » Board Planning Mode)。
  3. 选择 Design » Redefine Board Shape并释放鼠标。
  4. 通过 Jump 菜单的 Jump to Location 对话框,反复定义多边形的顶点。
5.3 从选中对象定义板形(任意非矩形板)
  1. 在 keepout 层放置一系列的,线迹/tracks(与针对曲形板的弧线/arcs)。注意:根据这里经验,keepout 的线/track 与 弧/arc,应使用 keepout 子菜单中的图元,进行绘制。
  2. 这种方式,同时作为布放(placement)与走线(rounting)的隔离栏(keep-away barrier),也是有用的。译注:与早期版本 Protel99SE 不同,keepout 不再具有外框的角色。从本文可知,keepout 层现在的作用,就是“隔离栏”。
  3. 这些线迹/tracks 与弧线/arcs,可以通过Edit » Select » All on Layer 被选中。
  4. 然后,使用 Design » Board Shape » Define 命令,从选中对象创造板形(board shape)。
  5. 注意:根据这里经验,如此定义板形后,重新定义相对原点,如果原点设置在多边形(与弧形)内部区域,光标在合适的中心位置摸索,软件会自动提供一个准星符号,协助放置相对原点(PCB 的编辑空间的左下角,被 Altium Designer 称为绝对原点)。
  6. 讨论:如同上述从 MCAD 文件中导入外框(outline)到机械层,然后选中图元(封闭的外框),并定义板形的方式。只要能够自绘对象,然后选中并定义为板形即可。而这里选中 keepout layer 来绘制,更具有意义。

06

—

转换设计(从 Schematic Capture 到 PCB Layout)

前述:

  • 创建整合库,原理图绘制,编译,定义板形,在本临时系列中讲述的这一系列动作,都最终为 PCB 文档制作服务。

  • Altium Designer 把这个过程叫作“设计转换(design transfer)”,大概指从 Schematic 编辑器到 PCB 编辑器,并执行编译后的连接性的传递的过程。- 这里的学习理解,仅供初学者参考。

  • 讨论:当然,工具仅是工具,上述专业动作很容易掩盖这样一件事实,即专业工具使用的熟练程度,不等于设计能力的高低。电子工程师设计有效原理图,并基于设计规则(包括电气性能约束)制作 PCB 的能力,才是核心。提示此点,为学习自省。

  • 对于简单的单原理图页设计,为该页创建 compoment class (并产生不同的 room 安置不同原理图页中,尚未正式 layout 的元件)是没有必要的。在 Project Options 的 Class Generation tab 的 Component Classes 将前面的默认勾选/checks 框,取消即可。而 room 中的默认勾选可保留(它已不起作用,check 状态为 disabled)。

转换步骤:
  1. 设计在 schematic 编辑与与 PCB 编辑器之间,直接转换;而无需媒介 netlist 文件创造(译注:这应与早期的 Protel99SE 版本进行比较)。可以分别执行两种不同的命令(根据你的项目实践,命令中的工程名会有不同):
    • 基于 schematic 编辑器,Design » Update PCB Document Multivibrator.PcbDoc。注意:根据这里的项目实践,如果没有上文所述,创建新的 PCB 文档的过程,这个菜单不会出现。
    • 基于(上文所述新创建的)PCB 编辑器:Design » Import Changes from Multivibrator.PrjPcb。
  2. 上述指令将,编译设计并创建一系列的 ECOs(Engineering Change Orders),这将会:
    • 执行 ECOs,列出设计中使用的全部元件(compoment),与其需求的封装(footprint)。如若不然,将有 error 产生。
    • 执行 ECOs,创造全部(与元件 pins 连接的)网络列表。如果 pins 不能被加入到网络(nets),将有 error 产生(比如未发现封装,或封装中的焊盘/pads不匹配符号的pins)。
    • 附加的设计数据(比如 net 与 compoment class),将被转换。
  3. 上述指令将编译设计,并打开 ECO 对话框:
    说明:对于需要在 PCB 中制造出的每个变化,都会创造一个 ECO,因此它(ECO)与原理图匹配。
  4. 点击 Validate Changes。如果改变被验证,对于每个改变,绿色的检查框(check)在 Status 列表中将会显示。如果改变未验证,关闭对话框,检查 Mesages 面板并解除错误/erros。
    • 实践:AD19 测试,这个 check 框无法每次准确与编译结果同步,有时实际上编译仍有 error,但仍然出现了绿色 checked。
    • 但是在该对话框的下方,如果编译存在 error,则总是会提示信息:“Warning:Errors occurred during compilation of the project! Click here to review them before continuing(跳转)”。点击跳转即去往 message panel 检查编译错误信息。
    • 实践发现,即使存在编译错误,点击 “Execute Changes”,仍然可以向 PCB 编辑器进行转换设计。AD 设计团队是在太宽容了,是否采纳 errors 并解除,完全取决于设计者。这里需要重视。
    • 因此,还是遵循早前文章中的设计步骤,完成原理图一定单独进行编译(compilation),这一定会带来结果(errors/warnings 或 successed),可前往 message panel 进行检查。
    • 讨论:为什么会出现这样“宽容的”验证错误但仍可转换的行为?这里理解,其与早前文章中提及的一个无法避免的常规错误有关,即封装中某元件的 pins 的电气特征被定义为“input”,那么,哪怕原理图中这个脚位什么都不接(floating),也会提示 error。- 而本质上,这是个常见现象(该 pin 功能并未使用),所以 AD 设计团队,很可能基于这样的例子,不会对编译(验证)错误的设计,禁止其转换到 PCB。不晓得 AD26 是否已经有了新的设计思路与变化。- 理解仅供参考。
  5. 验证全部的改变后,点击 Execute Changes,将这些改变送去 PCB 编辑器。当每个改变被执行,在对话框的 Done 柱上,将会显示 check/检查。
  6. 当全部变换都被完成,PCB 将在 ECO 对话框下被打开;点击 Close 关闭对话框。元件将被定位在板外(网络皆已准备),准备好去布放于板中。

07

—

总结

  1. 本文讲述从 schematic 编辑器,向 PCB 编辑器,转换(transfer)设计的过程。

  2. 其核心是基于比较器(Comparator),对每个变化产生 ECO。然后将 ECO 向 PCB 编辑器进行传递(传递的对象包括元件,网络,class  等)。

  3. 这个传递的过程,从原理图编辑器出发,使用的命令是:Design » Update PCB Document Multivibrator.PcbDoc。

  4. 这个过程中,ECO 对话框将会持续开启(除非主动关闭),通过对话框,可以验证设计(理解为主动编译并报告结果 message panel)。

  5. 注意到验证过程中,这里发现 ECO 的 check 通过并不能表示具有正确的编译,必须观察对话框底部的信息提示,检查是否出现错误,并根据跳转去向 message panel。当然,根据早前文章的完整工作步骤,提前对原理图文档进行编译并检查结果,则是非常可靠的。

  6. 完成全部验证后,即可在对话框中点击“执行”按钮,打开在对话框下的 PCB 编辑器,则被刷新全部改变。关闭 ECO 对话框,则可以开始 PCB layout 过程。

  7. 这时,前述文章提及的“检查连接性”,即利用 navigation panel,cross probe,cross select,在不同文档(主要是原理图文档与pcb 文档)的选中高亮,即可执行。

  8. 这时,可通过 3D view,进行 Altium Designer 特有的优点,观察 PCB 的 3D 构型。

  9. 而在这样的转换之前,本文讨论了,配置 PCB 的 grid,相对原点,叠层,并重定义了板形(board shape)。并粗略介绍了,Board Plan Mode 下,AD19 拓展了“刚柔(rigid-flex)设计”的能力。

相关学习资料