Altium Designer:如果项目变得复杂,该怎么办?

问候! 我认为,任何从事电子产品开发的工程师,或者只是业余爱好者/ DIY /制造商,都在尝试发展自己的技能,随着项目的复杂性不断提高。 在某个时候,一个人达到的水平使他觉得项目变得非常复杂,需要大量时间来开发,并且您需要为此做些事情-您需要优化工作。 今天,我将告诉您如何提高Altium Designer 18(以下称为AD或AD18)中的智能工作效率,并节省时间,精力和金钱。



引言


现在为那些不知道Altium Designer是什么的人提供一些信息。 这是三种流行的专业CAD系统之一,可让您开发几乎任何复杂的电子设备。 剩下的两个软件包是Mentor Expedition(可能还有PADS)和Allegro Cadence。 这3个软件包中的每一个都有其优点和缺点以及有条件的专业化。 今天将没有比较,所以我只说为什么我自己选择Altium:

  • 该程序的出色设计和周到的界面简直是无与伦比。 只要看看竞争对手,一切都会变得清晰起来。 是的,当您每天花几个小时工作时,设计和可用性至关重要。 它还简化了初学者的学习过程,因为在易于理解且合乎逻辑的CAD中学习非常容易;
  • 直接使用诸如SolidWorks之类的机械“钛”的能力。 我们可以简单地从AD中完全打开板,并将其添加为组件的一部分,而不会降低质量。 通过STEP再见转换。 对于我,当然对您来说,这很重要,因为 电子设备不仅是带有组件的电路板,而且几乎总是如此。 此功能使您可以轻松地制作整个设备的装配模型,并防止模具设计和制造中的错误(每个3-5千美元);
  • 俄语中存在足够大量的信息,这提供了相当低的进入门槛。 这是Altium在CIS中独占something头的主要原因。 尝试通过Mentor或Cadence用俄语找到一些东西,立即想学习在其中工作;
  • 在独联体和亚洲,大多数公司都在Altium工作,在美国,它们拥有很大的市场份额。 在欧洲,他们喜欢SolidWorks PCB,后者是相同的内置AD。 它有什么作用? 如果您决定从事电子开发领域的工作,就可以轻松找到工作。

是的,是的,我没有谈论各种各样的仿真功能,工具等,但这不是必需的。 上面从技术角度描述的所有3个CAD系统都能够做大致相同的事情,只是具有不同程度的便利性和拐杖。

我想学习如何在Altium中工作,但这使我感到恐惧


有一次,在2011-2012年,我第一次有机会在广告界工作,这对我来说似乎很酷,但令人恐惧,因为 那时英语对我来说是一个障碍,总的来说不清楚如何使用英语。 为了克服我对大量工具和功能的恐惧,同志的视频帮助了我。 Sabunina(感谢他),这是youtube上的俄语版,介绍了一些基本的基本知识,使您可以开始精通掌握。 在过去的6年中,俄语中有关于AD的更多信息,因此入门门槛变得更低,所以请不要害怕和学习。

为了使您更轻松地掌握Altium Designer,我提供了一些我自己的“姜饼”:

  • 视频培训课程的周期在这里 。 这些视频的时长很长,但是包含有关基本功能的全面信息(至少他们这么说),并且可以使任何学生轻松设计他们的第一个设备;
  • Altium Designer库- 在这里 。 在这里,您将找到所有无源元件(电阻,电容器等),以及大量流行的晶体管,二极管和微电路,包括MK和FPGA。 从一开始创建库需要很多时间,所以希望我可以节省很多时间。

如果在学习过程中您遇到任何问题和遇到的困难,那么您可以私下给我写信,如果可能的话,我会尝试回答所有人。

项目什么时候变得复杂?


任何一个或多或少严肃的项目,无论是程序的源代码还是电子设备的电路图,总会有一条线陷入混乱之中,该项目变得难以理解,难以验证和测试,它一发不可收拾。
对于每个开发人员而言,此界限都是不同的:一个人可以完全理解一个包含1000个组件的设备,而另一个则开始犯错,并且难以完成200个组件的项目。 通常,对电子组件数量的估计有些主观,但它使我们能够了解问题的一般本质。

根据以上内容,我们可以得出以下结论:
当开发人员有必要采取措施来保持项目源代码的可读性和可理解性时,项目就会变得复杂。

在某个时刻之前,您当然可以对任何东西进行评分,并以任何方式以任何方式在图表上“绘制”,例如,如下所示:


一切融合在一起,电路变得马虎,最终这将导致路径弯曲或错误,他们没有立即注意到这种混乱,因此切断了板上的导体并焊接了鼻孔。

让我们再看一个杰作-公元制造的arduino电路:


你觉得怎么样 这让我很伤心。我看着R2和R3,它们似乎是I2C的悬挂器,但是这个I2C在哪里,它们对我来说应该是个谜,我必须寻找它又长又乏味,以及使用少量组件的方案是什么和简单,但已经很混乱。

现在,作为替代,我作品中的一个示例(可点击):


看一下图表,我想您至少立即了解入口在哪里,出口在哪里是“箭头”提示,而我们不是阿拉伯人,我们从左到右阅读(包括图表)。 该模块具有一项功能-三相共模滤波器,仅此而已。 该方案是精心完成的,在文档中占1张。 1张-1个功能。

实际上,我上面写的是琐事,虽然很重要,但可以使生活更轻松,但仍然很琐碎。 尽管希望您能理解一般的意识形态,但现在让我们总结一下如何“做”:

  • 封装原理也适用于电路: 每个模块执行一个简单的任务 。 一个模块在文档中通常是一张纸,例如一些A3。
  • 电路图应以相同的方式仔细地进行。 将来工作时的准确性将得到充分回报。 当您在面试中展示一个可以理解,精心执行的方案时,您会立即获得良好的印象。 他们立刻看到手,通常不喜欢。
  • 即使有成千上万个组件,也不要使用大于A2的工作表。 如果您想粘贴A1,则说明您做错了。 可能您需要选择图中的一些模块并将它们转移到单独的工作表中。

你在批评吗? 建议!


现在,在批评了别人之后,有必要提出一个替代方案“如何去做”。 应该理解,本文中描述的作者的主观意见是基于工作经验和他对世界的看法。

我建议像所有普通人一样,使我们首先通过驴子来制作该计划不良版本,然后英勇地解决所有问题并达到可接受的状态。 走吧

在Altium Designer中创建一个项目。 例如,在其中,我将描述一个6相降压DC / DC转换器。 我将有6个电源通道和1个MK用于控制所有相位。 每个电源通道将如下所示(可点击):



我最初正确绘制的电源通道本身。 如果仔细看,我在电路上有一个信号输入-左侧有2个PWM +带GND的VCCIN,有一个输出-VCC5V和GND。 模块本身执行一项任务-将VCCIN转换为5V。 然后我们做得不好...

在这里,我们遇到了第一个限制-一个通道几乎占据了A3的整个工作表,我们有6个通道,因此,如果我将工作表增加到A2,它仍然不适合。 您可以将工作表增加到A1-非常好,因为我们现在经验不足的开发人员,所以我们遵循这样的路径并观察下图(可单击):



看来现在很清楚-共有6条电路,下面有一个MK。 那只是计划的30%,还需要什么? MK绑定+反馈? 当然可以! 设备应该与外界通信吗? 当然,要添加RS485。 嗯,您仍然需要驱动器供电,也就是说,您需要从VCCIN获取+ 12V电压并为此添加DC / DC! 另一个MK ...他还需要1个DC / DC,现在又添加了所有这些-外观(可点击):



很明显那里是什么? 如果我最初没有提到该设备的功能? 除此之外,他是否还笨拙地绘制了电路的笨拙部分? 并且如果库中的UGO组件最初是歪曲的? 害怕吗 那是一样的...

怎么办


现在让我们想一想...在该设备中,总共有150个组件,在我与电力电子设备相关的平均项目中,它们通常为1500至4000,也就是说,当您想像有10张以上的A1纸并且它们都被弄乱和堵塞时,您可以想象到灾难的规模。 错误是不可避免的!

我们进一步思考。 首先要做的是形成模块。 我都形成了,因为 我只是从一种家用工艺品中复制它们,但是却弄坏了一个模块-在I2C上运行的EEPROM存储器。 我犯了与Arduino方案相同的错误,该如何做:



如您所见,我将一个存储芯片放在一个“堆”中,该块阻挡了功率电容器,功率电容器将靠近该电容器并上拉至+ 3.3V。 现在,根据该方案,我不必寻找捆绑存储器芯片所需的所有组件,它们都集中在一个地方。 顺便说一句,不必为每个小芯片分配单独的工作表,但是EEPROM不是单独的模块,而是微控制器绑定的一部分。 带捆扎的MK-现在,这是一个值得单独使用的模块。

让我们继续...我们有重复的电路部分,例如,2个绝对相同的通道用于在运算放大器(OA)上进行反馈,另外6个更加相同的电源通道。 这也可以优化。

另一个聪明的想法是,如果所有6个降压通道都相同,则它们的轨迹可能会相同。 必须使用。 也许您可以为一个模块分道扬and,然后其余5个说“好,重复”? 事实证明,AD使我们能够大大简化生活。

让我们做的漂亮!


电子设备从哪里开始? 当然有个主意。 如何将这个想法变成切实的东西? 例如,您可以绘制一个框图,其中将显示宏功能。 无需非常聪明,只需在板上画一张纸或一张纸即可:



在工作表上适合我们设备的所有功能。 首先,该电路使我们能够了解设备的基本工作原理:有一个6通道电源部分(降压),由MCU控制,该部分通过运放(Amp。)产生2个反馈信号,如此还有两个用于自供电的dc / dc和一个用于与世界进行通信的Modbus接口。 其次,根据该方案,可以立即看到现成的功能块。

现在,我们需要在AD中创建5张A3,并将电路的相应部分转移到每张纸上,但是在此之前,我们需要考虑将在AD中使用的连接和电路的类型:

  • 电源端口

    此类型在整个项目中都是全局的。 也就是说,如果我们将这样的端口放在一张纸上而在另一张纸上,则它们将合并为一个名为“ VCC3V3”的电路。 因此,另外,不需要连接不同片材上的电源电路。 这种类型的端口仅定义电源和接地(GND);
  • 净负债

    用于在电路中命名特定电路的工具。 具有相同名称(NetLabel)的链在单个表内和外部都组合在一起。 我们将使用该工具kosher,即仅用于在一张纸中指定名称和连接;
  • 放置端口

    用于模块间连接的工具。 与NetLabel用于连接模块/工作表内部不同,该端口用于与“外部世界”进行通信。 我们将模块彼此连接,除了电源和地(GND)之外的所有其他电路。


现在我们需要使用Place Port设置信号,该信号将超出模块范围。 例如,对于带有运算放大器的模块,它将如下所示:



现在,我们的模块已完全成为电路的逻辑部分:它具有一个输入(INPUT),一个输出(ADC-OUT)和2个全局连接(电源端口)-GND和VCC3V3。 没什么 我们将对其他模块执行相同的操作,并通过转到工具->注释->注释原理图 ,然后单击更新更改列表 ,将数字自动分配给符号(指示符):



接下来,点击接受更改,然后在打开的窗口中点击执行更改



我们关闭了额外的窗口,发现我们的名称(D?,R?,C?等)收到了唯一的编号。 完成操作后,我们得到一个这样的项目-PDF

怎么了 我认为没有人会争辩-一切都很整洁,一眼就知道它是如何工作的,图中没有垃圾。 现在,这仍然适用于小型企业-我们需要以某种方式在一张纸上创建6个通道,并且通常将所有内容放在一起。

为此,创建一个新工作表,我将其命名为Main design ,但是名称可以是任何东西。 在此工作表中,我们将有一个以前手工绘制的框图。 要创建模块,请转到Place-> Sheet Symbol 。 现在,让我们将元素设置为整个项目的样式,即字体(我有ISOCPEUR),框架的宽度和颜色,指示符等,并在模块中写下工作表的名称:



现在,右键单击我们的模块(橙色正方形),然后转到图纸符号动作->同步图纸条目和端口 ,将打开一个窗口:



在其中,我们看到了我们的位置端口列表。 我们选择所有内容,然后单击Add Sheet Entries ,将其安装在我们的模块中并设置字体的常规类型,我们得到以下模块:



现在,我们对剩余的4个模块重复相同的操作,并在输出中得到以下结构:



这里需要注意两点:

  • 尝试进行同步时,带有dc / dc的第5张纸(第5页)没有检测到“放置端口”,如果您查看模块图,它们实际上不存在,只有电源端口。 但是! 必须确保将模块取出,否则此表中的组件将根本不会出现在板上;
  • 请注意,“放置端口”工具具有方向性参数:输入,输出和双向。 您应该正确确定信号的端口类型,例如,PWM-H端口是MCU模块的输出(输出),而是Buck模块的输入(输入)。


克隆


现在我们已经创建了所有模块,我们需要增加它们的数量,以便为功率部分获得6个通道,为运算放大器获得2个通道。 俗话说,即使您被吃掉了,总会有两个出口,这种情况也不例外。 我将展示两种方式:

  • 复制到手
    这里的一切都很简单-普通的复制粘贴。 选择我们的模块,Ctrl + C和Ctrl + V-我们得到一个新模块。 只需简单地将指示符编号从M3更改为M6。 然后,我们连接所有内容并获得电路的中间版本:



    我复制了运算放大器模块,添加了两个连接器以及GND和VCCIN总线,它们现在是全局的,并在找到它们的所有模块中立即连接。 在这种情况下,将它们分别拖动到“放置端口”是没有意义的。 我还连接了除Buck模块以外的所有外部电路,在该电路上,我将演示第二种更紧凑的方法。
  • 绝地复制
    与以前的版本相比,这里的所有内容都很难理解,但是更易于实现,最重要的是更加称职。 使用REPEAT指令将创建多个通道。 为此,我们无需指定M1,而是编写REPEAT命令(BUCK,1、6) 。 该团队将创建从BUCK1到BUCK6的指定渠道,即我们的6件商品。 点击Enter ,查看AD如何创建所需数量的频道:



    现在您需要连接电路。 我将从一个简单的例子开始-所有通道上的OUT-5V输出应合并,因为 我们所有的相位都作为一个转换器提供一个共同的输出。 为此,我们只需从“放置端口”绘制一个普通电路并将其连接到输出连接器:



    现在,您需要告诉AD,我们的PWM-H端口不是一个端口/电路,而是6个独立的通道。 为此,请单击名称为PWM-H的Place Port并在名称为的列中写入REPEAT(PWM-H) ,这将创建6个不同的链:



    现在,您需要从位置端口输出名称为REPEAT(PWM-H)的常规链(Ctrl + W),并使用NetLabel工具将此链命名为PWM-H。 然后,有必要从电路中删除总线,并将其命名为PWM-H [1..6] 。 因此,我们从一个端口导出了6个不同的电路,它们的名称分别为PWM-H1,PWM-H2等:



    接下来,我们将PWM-H总线[1..6]连接到上半桥晶体管的MCU模块上的总线输出。 对于较低的晶体管,也需要执行类似的步骤,只是丢掉总线,最后我们将得到以下形式的电路:



    现在我们已经了解了Zen,现在让我们用运算放大器重新制作Jedi模块,以免留下复制粘贴形式的拐杖。 结果,我们得到了电路图的最终版本:



这是我们将以电路图结束的地方,最终结果是PDF 。 如您所见,最简单的方案出来了,只有两张半空的A3纸,任何时间和精力都很少的业余无线电操作员都可以解决。

每次跟踪可节省数十个工时


在现代现实中,当组件(微电路)的集成度很高时,电路图的开发将花费越来越少的时间。您已经不经常遇到90%的模拟怪兽,这很好。设备开发过程中的“弱点”仍然是印刷电路板(PCB)的设计。现代CAD系统提供了许多不同的工具来减少开发电路板的人工成本,而这恰恰是本文的主要目的。

正如我之前指出的,我们的设备中有几个重复的模块:降压和运算放大器。如果您看一下现代设备,那么很多设备都会有很多这样的重复,例如,其中所有通道都相同的4通道示波器。当然,我们可以用手跟踪每个通道,并且可以简化我们的生活。

文章中先前描述的所有内容都简称为- 多渠道方案听起来简单而有品味。我们创建了这样的电路图,现在它使我们可以执行以下操作-分离一个降压通道的电路,然后只需将组件(布局)的位置和所有导体的位置复制到其余5个。首先,将我们所有的组件从电路图转移到带有电路板的文件中,单击“ 设计”->“更新PCB文档”现在单击“ 执行更改”,结果我们得到了这样的印刷电路板:







如您所见,板上有6个红色区域,称为房间。每个房间都有一个通道的电子组件,仅此而已。现在,您需要设置房间的尺寸,即指示我们的通道的组件将占据哪个特定区域并进行细节布局。看起来像这样:



因此,每个通道的组件都将定位并占据这样一个区域。是的,我不喜欢这里的东西。丝网印刷层中的组件名称(白色字母)没有端到端编号,而是以“ Room_Name”格式编号,即,我们有电阻R6_BUCK1,R6_BUCK2等。我想避免使用前缀“ _BUCK1”,并且每个组件都有自己的编号。按Ctrl + L,然后转到“ 注释选项”菜单,我们在其中看到这样的菜单:现在,您需要选择编号选项$ ComponentPrefix $ GlobalIndex并单击“确定”。单击全部重设放弃所有值,然后单击注释指定。



正如我们在BUCK2通道中看到的那样,组件将其名称从R6_BUCK2更改为R6,R7等更熟悉的名称:



仍然可以通过单击Accept Changes接受更改,并在打开的窗口中单击Execute Changes确认所有内容我们已经将所做的更改从电路转移到了Design-> Update PCB Documet电路板上结果,我们观察到“人性化”的称呼并没有占据整个电路板,而是胡扯:



具有适当的布局和称号,我们继续进行布线-我们将追踪一个BUCK6房间内的电路,并得到以下图片:



我没有繁殖所有东西,GND保持不变,因为 通常用一个多边形填充。足以进行演示。现在执行以下操作:

  • Design -> Rooms -> Cope Room Format
  • Altium Choose source room , , BUCK6
  • altium ChooseDestination Room , . BUCK-.
  • Apply To Specified Channel , , , .
  • !


我没放过,点击了两个频道,因为在某些情况下,例如,并非所有通道都相同。请记住,CPU主板上的VRM,一方面通常有3-4个阶段,另一方面又有3-4个阶段。就我而言,一个接线可以是三相,而另一接线则可以是3相。我认为一般意识形态是可以理解的。现在让我们看一下结果:我们观察到3个相同的通道,最重要的是,我在所有通道上花费的时间都为1。在这种抽象情况下,我节省了6倍的时间,但是在实际问题中,降低人工成本的过程大致相同。是的,这不是一个不重要的因素-如果您用手进行6个通道,则由于相同的工作类型,“眼睛会被洗掉”,并且很可能会出错或绘制布局曲线。





总结


- . — , .

Source: https://habr.com/ru/post/zh-CN426951/


All Articles