硬件---14---PCB学习:PCB封装库及布局操作
一PCB封装元素的组成与介绍
二实例-贴片0603封装的创建
1封装命名
找不到封装库创建页面,可以配合右下角的Panels去找。
找到0603电阻或者电容的PCB封装,根据提供尺寸去设计PCB的封装。
<1>双击PCB器件封装
<2>命名
2放置焊盘,为画封装做铺垫
<1>放置一个焊盘
<2>双击焊盘
<3>将焊盘的层选择到Top Layer
3调整封装大小
<1>双击封装
<2>将封装更改为方形
<3>0603的封装尺寸是0.8mm(31.496mil)和0.965mm(37.992mil)。X和Y的尺寸反了。
Ctrl+M可以测量绘制的长短,取消按键是Shift+C
4画对称焊盘
将此焊盘复制并粘贴,使两个焊盘重叠在一起,选中上面的焊盘,按快捷键M,选择获得X/Y偏移量。
修改中心点快捷键
编辑(E)->设置参考(F)->中心©
双击封装修改管脚号后为左1右2,完成全部修改如下:
5画丝印层
丝印层的要求
<1>切换到丝印层 Top Overlay
<2>画线
<3>双击画中的线,宽度改为6mil
绘制过程中的注意
<1>根据丝印层要求,左右两侧距离中心点0.8mm,上下两侧距离中心点0.4mm。但是绘制完后丝印层与阻焊层存在冲突,不要让它们产生重叠。
<2>双击丝印线,按快捷键M,选则通过X/Y移动对象,就可以把丝印线放到目标位置。
<3>移动后的对象通过复制,选中中心位置,然后粘贴,按X/Y实现对称。就可以实现对称复制。
<4>拖拽线的时候按住ctrl有助于线条延长的平稳
最后绘制结果如下:
课程中的芯片封装设计以及USB接口封装设计直接略过了,所有市面上流通的器件一般封装都可以直接拿过来用,极个别情况需要自己画,这种情况应该是几乎没有的,一般情况下在立创商城、云汉芯城都可以找到目标器件的封装。
三常用封装的调用
一般情况下在购买相关器件的网站上就有相应的器件原理图和PCB封装,直接下载复制用就可以了。
1如何调用其他PCB中的封装
<1>如果封装是在封装库里面直接复制使用即可
<2>如果封装是在PCB中,使用快捷键生成PCB库,快捷键:设计(D)->生成PCB库§
复制好后需要在:工具(T)->封装管理器(G)将封装都对应好
四PCB导入及常见导入报错解决办法
1PCB的导入
导入这个网表的时候一定要导入两次,避免出现某些问题。
导的时候先暂时点执行变更,不点验证变更。
2PCB生成时,某些器件没有电气线怎么回事
<1>如果报错unknow pin的时候,考虑一下工具->封装管理器是否没有配置好,如果封装没有配置对,就会没有电气线从而报错。
<2>封装添加后仍然报错,看看原理图库中器件的引脚号是否在绘的时候都标注好(有时候只标注了管脚名称),修改好后做更新如下:更新原理图。
<3>确定原理图管脚号和PCB管脚号都能对应上,如果PCB的有问题,修改完后更新需要
凡亿总结
在找某个器件的时候使用快捷键J->C
五常见绿色报错的消除
快捷键shift+s会切换PCB设计视图中网络的显示状态。如果网络当前显示,那么按下该快捷键会将其隐藏;如果网格当前被隐藏,按下该快捷键则会将其显示出来。
1绿色报错
绿色报错的根本原因就是违背了规则,快捷键设计(D)->规则®
Design Rules->Electrical->Clearance-< Clearance 表示间距规则
在同一封装会出现下面这种绿色报错
通过改变规则的内容避免这种报错,勾选下面中的忽略同一封装内的焊盘间距就可以了。
或者测量一下封装管脚间的距离,修改一下最小间距,修改成6mil。
2设计规则检查的暂时关闭
在实际布线前如果去除了绿色报错大概率还会存在一些白色报错,为了增加客观性,可以暂时把设计规则检查部分内容进行关闭。
<1>快捷键工具(T)->设计规则检查(D)
<2>Rules To Check
右键选择在线DRC-全部关闭、批量DRC-关闭所有。
回到电气性能:Electrical,在线DRC-启用所有,批量DRC-启用所有
最后快捷键工具(T)->复位错误标志(M)
六、PCB板框的评估及叠层设置
1板框的评估
<1>选中所有的器件
<2>工具
<3>器件摆放
<4>在矩阵区域排列
执行这个命令后,在PCB板子上面画一个矩形框,就可以将器件全部移动进去。
2重新定义原点
<1>编辑(E)
<2>原点(O)
<3>设置(S)
<4>设置好的原点
3绘制边框
<1>切换到机械一层 Mechanical 1
<2>放置普通线条而不是带电气的线条
<3>放置好后对线条进行取整处理,快捷键Q可以进行单位切换。
<4>复制粘贴的方法
4重新定义板框
在选中四个边框的任何一面时,按Tab可以将所有边框进行选中
设计(D)->板子形状(S)->按照选择对象定义(D)
<4>弄好后的板框
5修改板子的四个角
将板子边框的四个角进行1mm的位移处理
放置§->圆弧(A)->圆弧边沿(E)
全部弄好后,按着上面的方式从新生成板框
6叠层处理
设计(D)->层叠管理器(K)
两层板一般还用不太上层叠管理器
七交互式模块化布局规划
1分屏处理
<1>鼠标右键
<2>垂直分割
分割的另一面选择PCB界面
2交互选择
交互选择本质上是你在水平或者垂直分割的时候,在原理图中选中某些器件,在PCB中会高亮,反之亦然。
这样可以将某一模块的全部器件都分布在一起。
右面选中了电源相关的内容,左侧PCB上面就产生了高亮。
交互选择后可以通过,之前用到的快捷键:工具->器件摆放->在矩形区域排列,将不同模块进行分别放置。
布局前可以把全部的飞线都关闭掉:快捷键N->H(隐藏连接)->A(全部)
将各个模块进行分离
3将电源和地进行分类处理
一般在布线完除电源和地以外的其他线后,才会处理电源,一方面是电源和地比较多,另一方面是可以通过铺铜进行更有效的导通,因此先创建一个类进行隐藏。
快捷键:D(设计)->C(类)
创建电源和地的类
<1>右键Net Classes 创建一个新类
<2>命名后的新类
<3>在左侧选中电源和地后移到右面去
<4>移动后的成员
可以通过右下角的Panels,找到PCB选项就可以看类
<1>PCB页面
<2>右键VCC_GND类
<3>连接
<4>隐藏
<5>效果
按住Ctrl键+方向键可以对选中的器件位置进行一些微调
4.PCB布局
器件的锁定
将位置定好的器件进行锁定,双击器件,进行锁定。
排针距离板边缘2.5mm.
完成PCB布局的板子
相关文章:

硬件---14---PCB学习:PCB封装库及布局操作
一PCB封装元素的组成与介绍 二实例-贴片0603封装的创建 1封装命名 找不到封装库创建页面,可以配合右下角的Panels去找。 找到0603电阻或者电容的PCB封装,根据提供尺寸去设计PCB的封装。 <1>双击PCB器件封装 <2>命名 2放置焊盘ÿ…...
什么是MyBatis
MyBatis 简介 MyBatis 是一个流行的 Java 持久层框架(Persistence Framework),它主要用于简化数据库操作,提供了对数据库的映射支持,使得开发人员能够通过简单的配置和映射文件来执行数据库操作(如增、删、…...

开发技术-Java改变图片格式
图片上传页未做控制,导致上传的是GIF格式,导致图片识别失败。需要将GIF格式转为JPEG格式。 代码,是找AI写的,记录一下: import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; im…...

基于DockerCompose搭建Redis主从哨兵模式
linux目录结构 内网配置 哨兵配置文件如下,创建3个哨兵配置文件 # sentinel26379.conf sentinel26380.conf sentinel26381.conf 内容如下 protected-mode no sentinel monitor mymaster redis-master 6379 2 sentinel down-after-milliseconds mymaster 60000 s…...

aioice里面candidate固定UDP端口测试
环境: aioice0.9.0 问题描述: aioice里面candidate固定UDP端口测试 解决方案: /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…...
Git使用教程-分支使用/合并分支提交
Git使用教程-分支使用 文章目录 Git使用教程-分支使用一、分支(branch)的基本操作:二、查看分支:参考 一、分支(branch)的基本操作: git clone https://.git git status …...
单元测试使用记录
什么是单元测试 简单来说就是对一个类中的方法进行测试,对输出的结果检查判断是否符合预期结果 但是在多年的工作中,从来没有哪个项目中真正系统的用到了单元测试,因此对它还是很陌生的,也就造成更加不会在项目中区使用它。 如何…...

LabVIEW实时信号采集与频谱分析
系统通过LabVIEW与PXIe硬件结合,实现高精度模拟信号的实时采集、频谱分析与可视化显示。核心功能包括采样率配置、快速傅里叶变换(FFT)、功率谱图生成及动态缩放调整,同时支持信号平均与噪声抑制。系统设计灵活,适用于…...

OpenCV(python)从入门到精通——运算操作
加法减法操作 import cv2 as cv import numpy as npx np.uint8([250]) y np.uint8([10])x_1 np.uint8([10]) y_1 np.uint8([20])# 加法,相加最大只能为255 print(cv.add(x,y))# 减法,相互减最小值只能为0 print(cv.subtract(x_1,y_1))图像加法 import cv2 as…...
基础2:值类型与右值引用
1.函数返回 在讲解右值之前,要知道下面这个函数要进行几次拷贝以及为什么? int get_x() {int x 20;return x; }int aget_x(); 答案:两次 # 第一次 int tmpa; # 第二次 int xtmp;2.左值与右值 🍏2.1 能取地址操作的就是左值 …...

GitHub年度报告发布!Python首次超越JavaScript
全球开发者数量激增,GenAI 项目呈爆炸式增长趋势,推动编程语言的应用格局也发生了巨大变化,最新的 GitHub Octoverse 报告来了! 1、Python 首次超越 JavaScript,成为 GitHub 平台最顶级编程语言 不同于流传“AI 即将取…...

EdgeX Message Bus 消息总线
EdgeX Message Bus 消息总线 一、概述 EdgeX MessageBus 内部消息总线,用于 EdgeX 服务之间的内部通信。 EdgeX 服务是指来自 EdgeX 的任何核心/支持/应用程序/设备服务或使用 EdgeX SDK 构建的任何自定义应用程序或设备服务。 EdgeX MessageBus 用于内部 EdgeX 服务与服务之间…...

【JavaEE进阶】关于Maven
目录 🌴什么是Maven 🌲为什么要学Maven 🎍创建一个Maven项目 🎄Maven核心功能 🚩项目构建 🚩依赖管理 🎋Maven Help插件 🍀Maven 仓库 🚩本地仓库 Ὢ…...
YOLOv9-0.1部分代码阅读笔记-autoanchor.py
autoanchor.py utils\autoanchor.py 目录 autoanchor.py 1.所需的库和模块 2.def check_anchor_order(m): 3.def check_anchors(dataset, model, thr4.0, imgsz640): 4.def kmean_anchors(dataset./data/coco128.yaml, n9, img_size640, thr4.0, gen1000, verboseTrue…...

Electronjs+Vue如何开发PC桌面客户端(Windows,Mac,Linux)
electronjs官网 https://www.electronjs.org/zh/ Electron开发PC桌面客户端的技术选型非常适合已经有web前端开发人员的团队。能够很丝滑的过渡。 Electron是什么? Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.…...

谷歌浏览器 安装谷歌浏览器特定版本后禁止自动更新
问题描述 我们通过离线安装谷歌浏览器后,第一次打开浏览器时会默认下载最新版本,等到我们重启浏览器后它会自动更新。在项目中为了能固定浏览器版本,所以要禁止谷歌浏览器的更新,网上找了好多方法都没用,自己摸索出来…...
Linux计算时间差
Linux计算时间差 1、Linux计算时间差2、时间差的应用 1、Linux计算时间差 在Linux中,计算时间差通常是为了统计、监控或调试。时间差可以用来衡量任务执行的时间,或者两个事件之间的间隔。例如,响应时间、执行时间、定时任务与延时处理等 以…...

Python的3D可视化库【vedo】2-5 (plotter模块) 坐标转换、场景导出、添加控件
文章目录 4 Plotter类的方法4.7 屏幕和场景中的坐标点转换4.7.1 屏幕坐标转为世界坐标4.7.2 世界坐标转为屏幕坐标4.7.3 屏幕坐标取颜色 4.8 导出4.8.1 导出2D图片4.8.2 导出3D文件 4.9 添加控件4.9.1 添加内嵌子窗口4.9.2 添加选择区4.9.3 添加比例尺4.9.4 为对象添加弹出提示…...
【VUE】13、安装nrm管理多个npm源
nrm(npm registry manager)是一个 npm 源管理器,它允许用户快速地在不同的 npm 源之间进行切换,以提高包管理的速度和效率。以下是对 nrm 使用的详细介绍: 1、安装nrm 在使用 nrm 之前,需要先确保已经安装…...
【SQL/MySQL 如何使用三种触发器】SQL语句实例演示
触发器介绍 – 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...