如何从其它 EDA 工具迁移到 KiCad(三):Altium 转 KiCad 保姆级教程
“ 从 Altium 转 KiCad,没有办法直接导入工程,只能依次导入原理图、PCB,然后对原理图、PCB进行同步。 ”
我们将导入的项目是 SiFive 的 HiFive1,一个 RISCV 开发板。这是一个相对简单的设计,没有太多原理图,该公司在其网站上提供了 Altium Designer 项目:https://www.sifive.com/boards/hifive1-rev-b
需要导入的设计
1. 导入原理图页导入原理图时,请在独立模式下打开原理图编辑器,而不是通过 KiCad 项目管理器(使用项目管理器导入原理图后会使原项目文件夹混乱,不建议)。在 Windows 上,您可以单击开始菜单并打开原理图编辑器。 点击 文件->导入->非 KiCad 原理图...
在这个示例中,错误在于原理图文件引用的位图图像的绝对路径未找到,但其他部分应该没问题。完成后按 "保存 "键。 注意,如果是 Altium 的文件是平铺的结构,需要重复步骤依次导入每个原理图;如果是层次化的结构,则只需要直接导入顶层的原理图。 确保清理文件前,先关闭原理图编辑器。
最后,你会得到文件夹中的几个文件:- 每个导入的原理图都会生成一个项目
- 每个导入原理图都会包含一个符号库
您并不真正需要这些文件,因此如果您愿意,可以将它们清理掉。除了导入的原理图,真正需要保留的文件只有 empty.kicad_wks 图框文件。个人建议删除除这两个文件之外的所有文件。清理完成,干净多了!现在可以开始导入 PCB 了!2. 导入 PCB
3. 重建原理图
如果您导入的原理图本来就是层次化的,则无需重建。如果您导入的原理图是平铺的结构,则需要进行原理图重建。由于示例中的设计是平铺的结构,因此需要进行重建的操作。
这里使用了空白的图框。点击 “添加层次原理图” 按键添加一个原理图页(Sheet)
将我们之前导入的原理图关联到原理图页,并使用相对路径使项目可移植。如果你像我一样,在导入原理图后删除了符号库和库表,那么你还会得到第三个确认对话框,选择继续加载即可。重复关联操作。最终我们得到了一个完整的原理图。
4. 修复端口(Ports)幸运的是,这个操作很简单。选中层次化标签,右键选择 “修改为全局标签”即可。
现在要确认是否转换了所有标签,可以返回根原理图页,尝试导入层次化原理图引脚。这时会出现一个提示,告诉你没有新的层次化标签要导入。对所有原理图页重复这一操作并确认端口已转换完成。
5. 同步原理图和 PCB
无论您是进行项目导入还是手动分别导入原理图和 PCB。KiCad 用于连接两个元件的唯一标识符都将不匹配。是的,原理图中会有一个 R1,而 PCB 中会有另一个 R1,但对 KiCad 来说,它们都是不相关的。
当您尝试用默认方式 从原理图更新 PCB 时,KiCad 会尝试删除电路板上的所有封装,并用原理图中的封装进行替换。您会看到一些错误,因为有些原理图符号还引用了当前不在库表中的封装(我们稍后会解决这个问题)。
正确的操作方式是在同步时确认勾选 “ 根据原理图的位号将封装重新链接到原理图符号 ” 选项,同时取消 “用原理图中制定的封装替换” 选项。
这样就可以将原理图、PCB中位号相同的对象重新建立关联:
注意,正常情况下以下的选项不应被勾选。比如在进行位号重新标注的时候,如果用位号进行原理图和 PCB 的关联,会产生一些错误的链接。6. 设计规则 DRC 检查
关联完成后,一切就绪。现在可以对 PCB 进行 DRC 检查了。为了确保检查的一致性,进行 DRC 检测时不对 PCB 进行重新铺铜的操作。天呐... 645个错误...
7. 清理工作
重复的层名首先,当我们进入电路板设置时,会看到一个警告,显示有一个重复的层。原因是原始的 Altium 文件有两个制造层。但在 KiCad 中,我们更倾向于确保所有层都有唯一的名称。您只需给重复层取一个不同的名称。例如 "制造 1"。我为此提交了一个bug,因为理想情况下,导入程序应该为我们完成这项工作。
设计规则
目前 Altium 导入程序无法导入设计规则,所以我们必须手动进行修正。
至少应该在 KiCad 的设计规则中匹配以下规则 - 最小间隙 - 最小线宽以及孔环宽度- 最小通孔和孔径。 如果无法使用 Altium,可以根据 DRC 错误推断出这些值。 现在让我们看看剩余的错误...再次运行 DRC 检查......(我们之前有 645+ 个错误......)禁布区域 下图在 Altium 中是 Polygon cutout 区域,即该区域中不可以敷铜:
在 KiCad 导入过程中,polygon cutout 被转换为规则区域,但转换过程中,规则区域的设置错误,导致 DRC 报错:
只须手动对规则区域的禁布规则进行调整即可: 这一 bug 已反馈到社区并会在下一个版本中修复。 现在看一下 DRC 的情况:
铺铜规则设置 下一个 DRC 错误是关于铺铜违反最小间距规则的。 这是由于导入程序不准确造成的。目前导入器导入的是平面的间隙,而不是敷铜间隙。Altium 有一个矩阵用来定义敷铜的间隙。正确的导入间隙应该是最小的间隙 - 5 mil(SMD 焊盘到敷铜的间隙)
因此,我们可以快速更改设计中所有敷铜的间隙:
1. 使用选择过滤器仅筛选敷铜区域
2. 在整个电路板上拖动选择框,选择电路板上的所有区域
3. 使用属性管理器更改所有敷铜的间隙覆盖值
如果您愿意,还可以为其他间隙配置自定义规则。再次运行 DRC 检查......(79 个错误....)带网络的图形对象 在 KiCad 7 中,我们无法将网络赋给图形对象(KiCad 8 将实现这一功能)。对于 Altium 中的带网络的图形对象(比如Solid region),导入程序将其作为图形多边形导入,但会丢失网络。如果我们想保留网络信息,最接近的方法就是使用优先级非常高的区域。 我们需要手动将图形多边形转换为 KiCad 中的敷铜区域,具体操作为: 选中需要转换的多边形 右键点击 “从选区创建 -> 从所选创建区域”
确保已选择 “转换后删除源对象” - 选择正确的网络(本例中为 VDD_5V0)
- 赋予其极高的优先级--确保高于任何其他重叠区域
- 使用较小的 “最小宽度”,以便填充细长的区域
我们可以仅对该区域重新敷铜,而不动其他的敷铜区域: 再看下 DRC 的数量: 未使用层上的对象 这肯定是一个 bug,导入器会在未使用的层上(如下图的 31 层)创建一些莫名其妙的对象: 将来的版本中会修复这个问题。但对于 7.0.7 版本,有个临时的方法解决这一问题: 在电路板设置中,先将 PCB 设为 32 层,然后再重新设回 2 层。 系统会提示你这样会删除层上的对象,是否继续。点击 “是” 解决问题。
好了,终于只有 5 个 DRC 错误了...
特殊的封装:跳线(Solder Jumper) 最后一个错误是和封装相关的,两个不同网络的焊盘之间没有阻焊桥: 正常情况下不同网络焊盘之间应该有阻焊,以防止焊接时焊盘短接,如下图右侧。但示例中的情况类似左图的情况。
但当我们查看这个封装时,发现它的作用就是跳线(Solder Jumper),因此焊盘之间是故意不留阻焊桥的。 要解决这个问题,打开封装的属性,选择 “Allow bridged solder mask apertures between pads” 即可: 好了,终于没有错误了!但还有 249 个 Warning...? 现在就可以尝试吗? 友情提示,使用 nightly build 测试前请先备份您的设计文件,避免因为文件格式的改变无法用现有的版本打开文件(nightly build打开后如保存会自动将文件保存为新的格式)。
|