草庐IT

AD20中集成库、原理图库以及封装库的区别与联系

Gymstruggle 2023-08-27 原文

文章目录


前言

在学习了AD20中集成库、原理图库以及封装库的建立后,对三者的作用以及之间的联系有了更加深入地了解,现总结如下。

1. 三库描述

1.1 原理图库

文件的后缀为 .SchLib ,在该文件中可以画原理图中我们所需要的而在现有的库文件中没有的某些元器件的原理图,比如某些芯片、运放的原理图。

原理图库中器件的原理图其存在的目的仅仅是为了构建正确的原理图,表明原理图中各个器件的电气连接关系,因此,同一个器件其原理图可以画成不同的样子,其大小形状等没有严格的限制,只要能正确表明其电气特性即可。

在AD提供的集成库中点击某些器件就可以看到该器件的原理图。如下图所示:

1.2 封装库

文件的后缀为 .PcbLib ,在该文件中可以画各个器件的封装。所谓的封装实际上就是各个器件的实物图,对于PCB而言,我们最终需要在上面焊接各个器件,器件的大小是固定的,引脚排列以及封装形式也是固定的,因此在画封装库时不能像画原理图库那样随便,画封装库必须按照严格的尺寸去画。

也就是说,在画原理图库时,我们想怎么画就怎么画,只要自己觉得舒服并能正确构建原理图就可以;而在画封装库时,必须按照数据手册中提供的器件的尺寸去画各个器件的封装。

另外,还需注意,原理图中以及原理图库中每个器件都有对应的封装,有些器件比如贴片电感、贴片电容,尽管它们的原理图不同,但是可以使用同一个封装0805。

在AD提供的集成库中点击某些器件就可以看到该器件的封装(2D和3D可以转换)。如下图所示:

1.3 集成库

文件的后缀为 .IntLib ,在该文件实际上就是将原理图库和封装库结合在了一起。在该库中的器件,既有其原理图又有其封装。

2. 三库区别

原理图库中只有元器件的原理图,没有元器件的封装(后期可以添加);

封装库中只有元器件的封装,没有元器件的原理图;

集成库中既有元器件的原理图,又有元器件的封装。也就是说集成库 = 原理图库 + 封装库

3. 三库联系

我们可以在原理图库中为各个元器件在Footprint属性中添加封装。这时,尽管文件的后缀仍然是 .SchLib,但实际上,它已经变为一个集成库。如下:

而对于在原理图库中没有添加封装的元器件,其本身只有原理图。如下:

尽管我们可以在原理图库中添加封装,但是我们并不能在封装库中添加原理图。

对于集成库,其建立过程无非就是建立一个原理图库文件,一个封装库文件,然后分别在两个文件中建立元器件的原理图和封装,然后再在原理图库文件中添加各个器件的封装,最后将两个文件进行编译连接在一起(从 .LibPkg 变为 .IntLib)。大家可以点击这里!有具体的建立集成库的视频教程!

总结

集成库、原理图库以及封装库三者各有各的特点。集成库实际上就是原理图库和封装库的结合,可以将原理图库中各个元器件添加封装后变为集成库。
相较而言,原理图库和封装库使用起来更加的灵活,而集成库灵活性更低,这是因为集成库中的元器件均有固定的封装,而原理图库中的元器件我们可以更加方便的在原理图中改变其封装。当然,对于集成库中的元器件,我们也可以删除其封装,更新成另一种封装,但是一定要注意引脚对应问题!

有关AD20中集成库、原理图库以及封装库的区别与联系的更多相关文章

  1. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  2. ruby - 触发器 ruby​​ 中 3 点范围运算符和 2 点范围运算符的区别 - 2

    请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是

  3. ruby-on-rails - `a ||= b` 和 `a = b if a.nil 之间的区别? - 2

    我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行

  4. ruby - 这两个 Ruby 类初始化定义有什么区别? - 2

    我正在阅读一本关于Ruby的书,作者在编写类初始化定义时使用的形式与他在本书前几节中使用的形式略有不同。它看起来像这样:classTicketattr_accessor:venue,:datedefinitialize(venue,date)self.venue=venueself.date=dateendend在本书的前几节中,它的定义如下:classTicketattr_accessor:venue,:datedefinitialize(venue,date)@venue=venue@date=dateendend在第一个示例中使用setter方法与在第二个示例中使用实例变量之间是

  5. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  6. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  7. 阿里云国际版免费试用:如何注册以及注意事项 - 2

    作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。​关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐

  8. spring.profiles.active和spring.profiles.include的使用及区别说明 - 2

    转自:spring.profiles.active和spring.profiles.include的使用及区别说明下文笔者讲述spring.profiles.active和spring.profiles.include的区别简介说明,如下所示我们都知道,在日常开发中,开发|测试|生产环境都拥有不同的配置信息如:jdbc地址、ip、端口等此时为了避免每次都修改全部信息,我们则可以采用以上的属性处理此类异常spring.profiles.active属性例:配置文件,可使用以下方式定义application-${profile}.properties开发环境配置文件:application-dev

  9. ruby - 这两段代码有什么区别? - 2

    打印1:defsum(i)i=i+[2]end$x=[1]sum($x)print$x打印12:defsum(i)i.push(2)end$x=[1]sum($x)print$x后者是修改全局变量$x。为什么它在第二个例子中被修改而不是在第一个例子中?类Array的任何方法(不仅是push)都会发生这种情况吗? 最佳答案 变量范围在这里无关紧要。在第一段代码中,您仅使用赋值运算符=为变量i赋值,而在第二段代码中,您正在修改$x(也称为i)使用破坏性方法push。赋值从不修改任何对象。它只是提供一个名称来引用一个对象。方法要么是破坏性

  10. ruby - Ruby 中 .next 和 .succ 的区别 - 2

    Ruby中的Fixnum方法.next和.succ有什么区别?看起来它的工作原理是一样的:1.next=>21.succ=>2如果有什么不同,为什么有两种方法做同样的事情? 最佳答案 它们是等价的。Fixnum#succ只是Fixnum#next的同义词。他们甚至在thereferencemanual中共享同一block. 关于ruby-Ruby中.next和.succ的区别,我们在StackOverflow上找到一个类似的问题: https://stacko

随机推荐