当前位置: 首页 > news >正文

硬件---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封装命名 找不到封装库创建页面&#xff0c;可以配合右下角的Panels去找。 找到0603电阻或者电容的PCB封装&#xff0c;根据提供尺寸去设计PCB的封装。 <1>双击PCB器件封装 <2>命名 2放置焊盘&#xff…...

什么是MyBatis

MyBatis 简介 MyBatis 是一个流行的 Java 持久层框架&#xff08;Persistence Framework&#xff09;&#xff0c;它主要用于简化数据库操作&#xff0c;提供了对数据库的映射支持&#xff0c;使得开发人员能够通过简单的配置和映射文件来执行数据库操作&#xff08;如增、删、…...

开发技术-Java改变图片格式

图片上传页未做控制&#xff0c;导致上传的是GIF格式&#xff0c;导致图片识别失败。需要将GIF格式转为JPEG格式。 代码&#xff0c;是找AI写的&#xff0c;记录一下&#xff1a; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; im…...

基于DockerCompose搭建Redis主从哨兵模式

linux目录结构 内网配置 哨兵配置文件如下&#xff0c;创建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端口测试

环境&#xff1a; aioice0.9.0 问题描述&#xff1a; aioice里面candidate固定UDP端口测试 解决方案&#xff1a; /miniconda3/envs/nerfstream/lib/python3.10/site-packages/aioice import hashlib import ipaddress import random from typing import Optional import…...

Git使用教程-分支使用/合并分支提交

Git使用教程-分支使用 文章目录 Git使用教程-分支使用一、分支&#xff08;branch&#xff09;的基本操作&#xff1a;二、查看分支&#xff1a;参考 一、分支&#xff08;branch&#xff09;的基本操作&#xff1a; git clone https://.git git status …...

单元测试使用记录

什么是单元测试 简单来说就是对一个类中的方法进行测试&#xff0c;对输出的结果检查判断是否符合预期结果 但是在多年的工作中&#xff0c;从来没有哪个项目中真正系统的用到了单元测试&#xff0c;因此对它还是很陌生的&#xff0c;也就造成更加不会在项目中区使用它。 如何…...

LabVIEW实时信号采集与频谱分析

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

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))# 减法&#xff0c;相互减最小值只能为0 print(cv.subtract(x_1,y_1))图像加法 import cv2 as…...

基础2:值类型与右值引用

1.函数返回 在讲解右值之前&#xff0c;要知道下面这个函数要进行几次拷贝以及为什么&#xff1f; int get_x() {int x 20;return x; }int aget_x(); 答案&#xff1a;两次 # 第一次 int tmpa; # 第二次 int xtmp;2.左值与右值 &#x1f34f;2.1 能取地址操作的就是左值 …...

GitHub年度报告发布!Python首次超越JavaScript

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

EdgeX Message Bus 消息总线

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

【JavaEE进阶】关于Maven

目录 &#x1f334;什么是Maven &#x1f332;为什么要学Maven &#x1f38d;创建一个Maven项目 &#x1f384;Maven核心功能 &#x1f6a9;项目构建 &#x1f6a9;依赖管理 &#x1f38b;Maven Help插件 &#x1f340;Maven 仓库 &#x1f6a9;本地仓库 &#x1f6a…...

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是什么&#xff1f; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.…...

谷歌浏览器 安装谷歌浏览器特定版本后禁止自动更新

问题描述 我们通过离线安装谷歌浏览器后&#xff0c;第一次打开浏览器时会默认下载最新版本&#xff0c;等到我们重启浏览器后它会自动更新。在项目中为了能固定浏览器版本&#xff0c;所以要禁止谷歌浏览器的更新&#xff0c;网上找了好多方法都没用&#xff0c;自己摸索出来…...

Linux计算时间差

Linux计算时间差 1、Linux计算时间差2、时间差的应用 1、Linux计算时间差 在Linux中&#xff0c;计算时间差通常是为了统计、监控或调试。时间差可以用来衡量任务执行的时间&#xff0c;或者两个事件之间的间隔。例如&#xff0c;响应时间、执行时间、定时任务与延时处理等 以…...

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&#xff08;npm registry manager&#xff09;是一个 npm 源管理器&#xff0c;它允许用户快速地在不同的 npm 源之间进行切换&#xff0c;以提高包管理的速度和效率。以下是对 nrm 使用的详细介绍&#xff1a; 1、安装nrm 在使用 nrm 之前&#xff0c;需要先确保已经安装…...

【SQL/MySQL 如何使用三种触发器】SQL语句实例演示

触发器介绍 – 触发器是与表有关的数据库对象&#xff0c;指在insert/update/delete之前(BEFORE)或之后(AFTER)&#xff0c;触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容&#xff0c;这与其他的数据库是相似的。现在触发器还只…...

Docker容器五种网络驱动模式详解

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

netfilter简介及流程图

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

Vue 前端代码规范

在 Vue 前端开发中&#xff0c;遵循代码规范可以提高代码的可读性、可维护性和团队协作效率。以下是一些详细的 Vue 前端代码规范&#xff0c;涵盖了多个方面&#xff1a; ### 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&#xff08;Trusted Information Security Assessment Exchange&#xff09;认证是由德国汽车工业协会&#xff08;VDA&#xff09;主导开发的一种信息安全评估标准。该认证旨在确保汽车供应链中的信息安全&#xff0c;帮助汽车产业链中的企业保护其敏…...

Python中所有子图标签Legend显示详解

在数据可视化中&#xff0c;图例&#xff08;legend&#xff09;是一个非常重要的元素&#xff0c;它能够帮助读者理解图表中不同元素的含义。特别是在使用Python进行可视化时&#xff0c;matplotlib库是一个非常强大的工具&#xff0c;能够轻松创建包含多个子图的图表&#xf…...

python脚本中使用git命令

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

本地maven项目打包部署到maven远程私库

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