硬件---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来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只…...

Docker容器五种网络驱动模式详解
Docker 网络用于在容器之间以及容器与外部网络之间提供通信功能。它允许容器在隔离的网络环境中运行,同时也能根据需要与其他容器或外部网络进行交互。通过使用网络驱动,Docker 可以创建不同类型的网络,以满足各种应用场景的需求。 传统上&am…...

netfilter简介及流程图
Netfilter 是 Linux 内核中用于网络包过滤和操作的框架,由 Rusty Russell 于1998年创立,旨在改进旧的 ipchains 和 ipfwadm 实现。它采用模块化设计,具有良好可扩展性,并在2000年3月合并进Linux 2.3.x内核版本。 Netfilter的主要…...

Vue 前端代码规范
在 Vue 前端开发中,遵循代码规范可以提高代码的可读性、可维护性和团队协作效率。以下是一些详细的 Vue 前端代码规范,涵盖了多个方面: ### 1. **项目结构** - **目录结构**:- src/ 目录下应包含 components/、views/、store/、router/、ass…...

JAVA:组合模式(Composite Pattern)的技术指南
1、简述 组合模式(Composite Pattern)是一种结构型设计模式,旨在将对象组合成树形结构以表示“部分-整体”的层次结构。它使客户端对单个对象和组合对象的使用具有一致性。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什么是组合模式 组合模式…...

js常用方法之: 预览大图(uniapp原生方法封装)
方法: //预览图片 pic可传单个图片地址字符串 或 图片数组(带index) previewPic: function(pic, index) {if (!pic) return;if (index undefined) {let array [];array.push(pic);uni.previewImage({urls: array,current: array[0]});} else {uni.previewImage({urls: pic,…...

python 高级用法
1、推导列表 ans [ x for x in range(6)] print(ans)ans [ x for x in range(6) if x > 2] print(ans)ans [ x*y for x in range(6) if x > 2 for y in range(6) if y < 3] print(ans) 2、map 函数 a list(map(list,"abc")) print(a) b list(map(ch…...

TISAX认证最新消息
一、TISAX认证概述 TISAX(Trusted Information Security Assessment Exchange)认证是由德国汽车工业协会(VDA)主导开发的一种信息安全评估标准。该认证旨在确保汽车供应链中的信息安全,帮助汽车产业链中的企业保护其敏…...

Python中所有子图标签Legend显示详解
在数据可视化中,图例(legend)是一个非常重要的元素,它能够帮助读者理解图表中不同元素的含义。特别是在使用Python进行可视化时,matplotlib库是一个非常强大的工具,能够轻松创建包含多个子图的图表…...

python脚本中使用git命令
python脚本中使用git命令 一、背景 在做项目输入文件的版本管理的时候,我发现我需要用到库上面的文件来作为版本管理比较的输入,通常情况下,我是先根据tag将两个版本的文件拉取到本地,然后放进我的工程里在运行脚本来完成版本的比较,但是我发现这样其实很麻烦,所以就想着…...

本地maven项目打包部署到maven远程私库
目的:在自己的maven项目中,要把当前maven项目部署到maven私库,供其他人引入依赖使用。 首先要确保你当前能访问到你的私库,能拉私库的maven依赖即可。 maven部署命令: mvn deploy:deploy-file -Dmaven.test.skiptrue -…...