PCB中常见错误大全

2023-11-16

PCB中常见错误大全,唯样商城 给你整得明明白白!线上授权代理商,唯样商城有超10万种现货库存,2000万型号数据库,满足您的元器件正品现货采购需求!

一 原理图常见错误

(1)ERC报告管脚没有接入信号:

     a、创建封装时给管脚定义了I/O属性;

     b、创建元件或放置元件时修改了不一致的grid属性,管脚与线没有连上;

     c、创建元件时pin方向反向,必须非pin name端连线。

     d、而最常见的原因,是没有建立工程文件,这是初学者最容易犯的错误。

upfile

(2)元件跑到图纸界外:没有在元件库图表纸中心创建元件。

(3)创建的工程文件网络表只能部分调入PCB:生成netlist时没有选择为global。

(4)当使用自己创建的多部分组成的元件时,千万不要使用annotate。

二 PCB中常见错误

(1)网络载入时报告NODE没有找到

    a、原理图中的元件使用了PCB库中没有的封装;

    b、原理图中的元件使用了PCB库中名称不一致的封装;

    c、原理图中的元件使用了PCB库中pin number不一致的封装。如三极管:sch中pin number 为e、b、c,而PCB中为1、2、3。

(2)打印时总是不能打印到一页纸上

    a、创建PCB库时没有在原点;

    b、多次移动和旋转了元件,PCB板界外有隐藏的字符。选择显示所有隐藏的字符,缩小PCB, 然后移动字符到边界内。

(3)DRC报告网络被分成几个部分:

表示这个网络没有连通,看报告文件,使用选择CONNECTED COPPER查找。

如果作较复杂得设计,尽量不要使用自动布线。

upfile

三 PCB制造过程中常见错误

(1)焊盘重叠

a、造成重孔,在钻孔时因为在一处多次钻孔导致断钻及孔的损伤。

b、多层板中,在同一位置既有连接盘,又有隔离盘,板子做出表现为:

• 隔离,连接错误

(2)图形层使用不规范

a、违反常规设计,如元件面设计在Bottom层,焊接面设计在TOP层, 使人造成误解。

b、在各层上有很多设计垃圾,如断线、无用的边框、标注等。

(3)字符不合理

a、字符覆盖SMD焊片,给PCB通断检测及元件焊接带来不便。

b、字符太小,造成丝网印刷困难,太大会使字符相互重叠,难以分辨,字体一般>40mil。

(4)单面焊盘设置孔径

a、单面焊盘一般不钻孔,其孔径应设计为零,否则在产生钻孔数据时,此位置出现孔的坐标,如钻孔应特殊说明。

b、如单面焊盘须钻孔,但未设计孔径,在输出电、地层数据时软件将此焊盘做为 SMT焊盘处理,内层将丢掉隔离盘。

(5)用填充块画焊盘

这样虽然能通过DRC检查,但在加工时不能直接生成阻焊数据,该焊盘覆盖阻焊剂不能焊接。

(6)电地层既设计散热盘又有信号线,正像及负像图形设计在一起,出现错误。

(7)大面积网格间距太小

网格线间距<0.3mm,PCB制造过程中,图形转移工序在显影后产生碎膜造成断线,提高加工难度。

upfile

(8)图形距外框太近

应至少保证0.2mm以上的间距(V-cut处0.35mm以上),否则外型加工时引起铜箔起翘及阻焊剂脱落,影响外观质量(包括多层板内层铜皮)。

(9)外形边框设计不明确

很多层都设计了边框,并且不重合,造成PCB厂家很难判断以哪一条线成型,标准边框应设计在机械层或BOARD层,内部挖空部位要明确。

(10)图形设计不均匀

造成图形电镀时,电流分布不匀,影响镀层均匀,甚至造成翘曲。

(11)异型孔短

异型孔的长/宽应>2:1,宽度>1.0mm,否则数控钻床无法加工。

(12)未设计铣外形定位孔

如有可能在PCB板内至少设计2个直径>1.5mm的定位孔。

(13)孔径标注不清

a、孔径标注应尽量以公制标注,并且以0.05递增。

b、对有可能合并的孔径尽可能合并成一个库区。

c、是否金属化孔及特殊孔的公差(如压接孔)标注清楚。

(14)多层板内层走线不合理

a、散热焊盘放到隔离带上,钻孔后容易出现不能连接的情况。

b、隔离带设计有缺口,容易误解。

c、隔离带设计太窄,不能准确判断网络

(15)埋盲孔板设计问题

设计埋盲孔板的意义:

a、提高多层板的密度 30% 以上,减少多层板的层数及缩小尺寸;

b、改善 PCB 性能,特别是特性阻抗的控制(导线缩短,孔径减少);

c、提高 PCB 设计自由度;

d、降低原材料及成本,有利于环境保护。

还有人将这些问题归纳到工作习惯方面,出问题的人常有这些不良习惯。

四 不良习惯

缺乏规划

俗谚说, "如果一个人事前没有计划,便会发现麻烦会找上门。"这当然也适用于PCB的设计。让PCB设计可以成功的许多步骤之一是,选择合适的工具。现今的PCB设计工程师可在市面上找到许多功能强大且易于使用的EDA套件。每一款都有本身独特的能力,优点和局限性。另外,还应该注意,没有一款软件是万无一失的,所以诸如组件封装不匹配的问题是一定会发生的。没有一款单一工具可满足你所有需求的情况是有可能发生的,虽然如此,你还是必须事先下功夫研究,努力找出最适合你需求的最佳产品。网络上的一些信息,可以帮助你快速上手。

沟通不良

尽管将PCB的设计外包给其他厂商的作法正变得越来越普遍,而且往往非常具有成本效益,但这种做法可能不适合复杂度高的PCB设计,因在这种设计中,性能和可靠性是极其关键的。随着设计复杂度的增加,为实时地确保精确的组件布局和布线,工程师和PCB设计者之间的面对面沟通就变得非常重要,这种面对面的沟通将有助于省去日后昂贵的重做(rework)工作。

  

同样重要的是,在设计过程的早期阶段就要邀请PCB板制造商加入。他们可以对您的设计提供初步的反馈,他们可根据其流程和程序让效率最大化,长远来看,这将可帮助你省下可观的时间和金钱。借着让他们知道你的设计目标,及在PCB布局的早期阶段邀请他们参与,你可以在产品投入生产之前即可避免任何潜在的问题,并缩短产品上市的时间。

未能彻底测试早期的原型

原型板可以让你证明你的设计是按照原来的规格在运作。原型测试可以让你在大批量生产之前验证PCB的功能和质量,及其性能。成功的原型测试需要大量的时间和经验,但一个强大的测试计划和一组明确的目标可缩短评估时间,且也可以降低生产相关错误的可能性。如果原型测试过程中发现任何问题,就需要在重新配置过的电路板之上进行第二次的测试。在设计过程的早期阶段将高危险因素纳入,你将可从测试的多次迭代中受益,及早找出任何潜在的问题,降低风险,确保计划可如期完成。

使用低效的布局技术或不正确的组件

更小,更快的设备让PCB设计工程师要为复杂的设计布局,这种设计将采用更小的组件来减少占用面积,且它们也将放得更加靠近。采用一些技术,例如内部PCB层上的嵌入式分立器件,或引脚间距更小的球栅数组(BGA)封装,都将有助于缩小电路板尺寸,提高性能,并保留空间,以便在遇到问题后可以重做。当与具有高引脚数和更小间距的组件搭配使用时,在设计时间选择正确的电路板布局技术是很重要的,如此即可避免在日后出现问题,及尽量降低制造成本。

  

此外,一定要仔细研究,那些你打算使用的替代组件之取值范围和性能特点,即使是那些被标示为可直接插入的替换组件(drop-in replacement)。替换组件特性的微小变化,可能就足以搞砸整个设计的性能。

忘记为你的工作备份

将重要数据备份起来。这还需要我来提醒吗?至少,你应该将你最重要的工作成果和其他难以替代的文件备份起来。尽管大多数的公司每天都会将公司的所有数据备份起来,但一些规模较小的公司可能不会这样做,或者如果你是在家工作的人也不会这样做。现今,将数据备份到云端是如此的方便和便宜,实在没有任何借口不将数据备份起来,将数据保存在安全的处所,以免它被窃、遇到火灾、和其他本地性的灾害。

成为单人岛屿

虽然你可能认为你的设计是完美无瑕的,且犯错根本就不会是你的风格,但很多时候,你的同侪会在你的设计看到一些你没有注意到的错误。有时候,即使你知道了设计的复杂细节,对它接触较少的人可能可以保持一种更客观的态度,并提供宝贵的见解。与你的同侪经常检视你的设计,有助于找到不可预见的问题,并让你的计划保持在正确的轨道上,将费用维持在预算之内。

当然,犯错不可避免,但只要能学到教训,下次就能设计出优秀的产品。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PCB中常见错误大全 的相关文章

  • 从 Visual Studio 交叉编译 ARM7 代码

    是否可以从 Visual Studio 2008 2010 Express 或 Professional 编译 ARM7 如果是这样 可以指导我如何做吗 我读过有关 Yagarto 工具链的其他帖子 这一切是如何融入图片中的 我在这个领域非
  • STM32内部时钟

    我对 STM32F7 设备 意法半导体的 Cortex M7 微控制器 上的时钟系统感到困惑 参考手册没有充分阐明这些时钟之间的差异 SYSCLK HCLK FCLK 参考手册中阅读章节 gt RCC 为 Cortex 系统定时器 SysT
  • armv8 NEON if 条件

    我想了解armv8 NEON内联汇编代码中的if条件 在armv7中 这可以通过检查溢出位来实现 如下所示 VMRS r4 FPSCR BIC r4 r4 1 lt lt 27 VMSR FPSCR r4 vtst 16 d30 d30 d
  • 了解 Azure 事件中心分区使用者模式

    Azure 事件中心使用分区使用者模式中描述的docs https learn microsoft com en us azure event hubs event hubs features 当涉及到现实世界场景时 我在理解该模型的消费者
  • 将 ZeroMQ 交叉编译为 ARM,以便在 MonoTouch iPhone 应用程序配置设置中使用

    我正在尝试在使用 MonoTouch 用 C 开发的 iPhone 应用程序中使用 ZeroMQ 库 我几乎解决了所有的问题 却在最后一道坎倒下了 我正在使用 ZeroMQ 2 1 10 和 C CLR 绑定 包装器 并在 Mac OS X
  • 如何修改内核DTB文件

    Summary 我目前正在为定制板编译 Linux 内核 内核 模块和 DTB 以及一些定制驱动程序 有时 我会编译内核并意识到 DTB 文件中的兼容性字符串不是自定义驱动程序正在寻找的内容 现在 我可以解决此问题的唯一方法是修改 DTS
  • 警告:可加载部分“my_section”位于 ELF 段之外

    我使用 Cortex R4 的 Arm Compiler v6 9 构建了一个 axf elf 文件 但是 当我使用 Arm MCU Eclipse J link GDB 插件将其加载到目标时 它无法加载我的段的初始化数据 如果我使用 Se
  • 适用于arm(cortex-m3)的位置独立可执行文件(-pie)

    我正在使用codesourcery g lite 基于gcc4 7 2版本 为stm32 Cortex m3 编程 我希望动态加载可执行文件 我知道我有两个选择 1 可重定位的elf 需要一个elf解析器 2 具有全局偏移寄存器的位置无关代
  • 小型 ARM 微控制器的 RTOS 内核之间的可量化差异 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有许多不同的 RTOS 可用于微控制器 我专门寻找支持 ARM Cortex M 处理器的 RTOS 另外 我对闭源解决方案不感兴趣 试图从网站
  • 手臂“版本”之间的差异? (仅限 ARMv7)

    基本上我想知道ARMv7l和ARMv7之间的区别hl 我有一个带有armv7l的arm处理器 并且有很多armv7的rpmhl 我完全不知道我必须搜索什么才能获得相关信息 这个 后缀 叫什么 还有其他类型吗 他们的做法有何不同 我假设它指示
  • 用于 RHEL 的 gdb-multiarch

    我正在尝试寻找方法来运行gdb 多架构RHEL 中的命令 我已经安装了用于 ARM 处理的 QEMU 模拟器 我想安装GDB进行调试 我能够安装GDB 多体系结构在 Ubuntu 中运行命令成功 sudo apt get GDB multi
  • ARM架构中不同处理器模式下如何使用内核堆栈?

    据我了解 每个进程都有一个用户堆栈和内核堆栈 除此之外 ARM 架构中的每种模式都有一个堆栈 所以我想知道不同的堆栈和堆栈指针在 ARM 模式下如何工作 另外 何时会使用与进程关联的内核堆栈 何时会使用与进程关联的内核堆栈 当您进行系统调用
  • 如何使用 gcc 编译代码和 ARM Cortex A8 目标进行调用图分析?

    我对这个已经咬牙切齿了 我需要在 ARM 板上进行分析并需要查看调用图 我尝试使用 OProfile Kernel perf 和 Google 性能工具 一切正常 但不输出任何调用图信息 这使我得出结论 我没有正确编译代码 我在编译 C 代
  • 将数据从 Azure HUB-IOT 保存到 Azure SQL 数据库

    我最近创建了一个 Azure Hub IOT 其中我从虚拟设备发送一些数据 我知道数据已到达 因为我可以从终端看到它们 但现在我想获取这些数据并将它们保存到 Azure SQL DataBase 中 我怎样才能做到这一点 如果有人可以向我解
  • GCC ARM 汇编预处理器宏

    我正在尝试使用汇编 ARM 宏进行定点乘法 define MULT a b asm volatile SMULL r2 r3 0 1 n t ADD r2 r2 0x8000 n t ADC r3 r3 0 n t MOV 0 r2 ASR
  • ARM Cortex A8 PMNC 读取在启用后也给出 0.. 有什么想法/建议吗?

    MODULE LICENSE GPL MODULE DESCRIPTION user mode access to performance registers int init arm init void unsigned int valu
  • M1 MacBook Pro 上的 Android Studio 无法使用 ABI armeabi-v7a 模拟系统映像

    我的 M1 Macbook Pro 上的 Android Studio 可以很好地模拟 ABI arm64 v8a 的所有系统映像 API 24 29 30 31 但是 它无法使用 ABI armeabi v7a 运行所有映像 例如 API
  • 交叉编译 Qt 4.7 时出现“非法指令”

    我已经在这个问题上苦苦挣扎了一个多星期了 但仍然找不到解决方案 我正在尝试为 ARM 设备交叉编译 Qt 4 7 嵌入式开源版本 构建过程本身可以顺利完成 但生成的二进制文件似乎包含处理器无法理解的指令 构建主机是 i386 上的 Debi
  • 有没有办法在 Xcode 4 中为 ARM 而不是 Thumb 进行编译?

    如果有很多浮点运算正在进行 Apple 建议针对 ARM 进行编译 而不是针对拇指进行编译 我的整个应用程序几乎是一个大型浮点运算 iOS 应用程序开发工作流程指南中是这样说的 iOS 设备支持两种指令集 ARM 和 Thumb Xcode
  • 产生并处理软件中断

    有人可以告诉我如何在Linux下生成软件中断然后用request irq处理它吗 或者也许这是不可能的 您可以使用软中断来代替 您可以通过编辑 include linux interrupt h 来定义您的 sofirq 然后使用函数 ra

随机推荐

  • MATLAB——参数根轨迹的绘制

  • C# 接口(Interface)

    简介 接口定义了所有类继承接口时应遵循的语法合同 接口定义了属性 方法和事件 这些都是接口的成员 接口只包含了成员的声明 成员的定义是派生类的责任 接口提供了派生类应遵循的标准结构 接口使得实现接口的类或结构在形式上保持一致 抽象类在某种程
  • 双fifo流水线实现3x1024数组数据按列相加

    Vivado版本 2019 2 MATLAB Modelsim版本 Modelsim SE 64 10 7 实验内容 双fifo流水线实现3x1024数组数据按列相加 FIFO First Input First Output 既先入先出
  • 小程序 云函数中file转base64

    mp4文件转base64 云函数中下载文件 const res await cloud downloadFile fileID fileID const base64 data video mp4 base64 res fileConten
  • 计算机编程语言:解释型语言与编译型语言的理解

    一 计算机编程语言 主要分为3类 高级语言 抽象层次更高的便于记忆和表示的英文代码 汇编语言 抽象层次较高的对应机器硬件的cpu指令集 英文缩的助记 符号代码 机器语言 抽像层次最低的由0 1序列所表示的机器码 计算机底层只能识别0 1 所
  • TIMIT数据集无法打开?sph格式转换为wav

    打开TIMIT数据集发现提示无法打开文件 上网搜索发现文件虽然后缀是WAV 但是其实是sph格式 是无法打开的 需要转换为wav 找到一种python方法转换格式 但是不知道为什么sphfile库下载安装了就是无法引用 然后又找到了一个ma
  • Linux 安装Zookeeper

    Linux 安装Zookeeper 下载 wget https mirrors tuna tsinghua edu cn apache zookeeper zookeeper 3 4 14 解压 tar zxvf zookeeper 3 4
  • qt学习笔记2:信号和槽

    信号和槽 实现点击按钮关闭窗口 按钮 gt 点击 gt 窗口 gt 关闭 connect 信号的发送者 发送的具体信号 信号的接收者 信号的处理 信号的处理就是槽 一个是信号的发送方 一个是信号的接收方 信号槽有一个优点 松散耦合 即发送方
  • Vue 复杂json数据在el-table表格中展示(el-table分割数据)

    文章目录 前言 问题背景 实现复杂json数据在el table表格展示 el table column分割线 el table column高度 前言 在做复杂的动态表单 实现业务动态变动 比如有一条需要动态添加的el form item
  • Day29_10 JavaWeb之编码处理、Jsp及Cookie的使用(记住密码)

    目录 一 编码处理 编码处理的意义 请求编码及响应编码 二 Jsp Jsp的概述 html 转换为jsp 三 Cookie Cookie的概述 Cookie细节 四 记住密码的实现 了解什么是会话跟踪技术 记住密码功能实现的思路 一 编码处
  • Python中安装pandas出现问题总结

    1 安装pandas总报超时 这个方法一般都能解决问题 解决方法 pip install 包名 i http pypi douban com simple trusted host pypi douban com 这个是因为你下载的包不对
  • app 自动化测试 - 多设备并发 -appium+pytest+ 多线程

    1 appium python 实现单设备的 app 自动化测试 启动 appium server 占用端口 4723 电脑与一个设备连接 通过 adb devices 获取已连接的设备 在 python 代码当中 编写启动参数 通过 py
  • tmux内外vim主题theme不一致

    每次在tmux里边用vim都觉得好丑 明明外边设置theme了 但是到里边就识别不了 在 tmux conf里添加set g default terminal screen 256color 依然不行 解决方案 使用tmux 2 打开tmu
  • cdh下spark2-yarn运行sparkstreaming获取kafka数据使用spark-streaming-kafka-0-10_2.11报错解决

    报错问题 20 07 15 17 20 51 INFO utils AppInfoParser Kafka version 0 9 0 kafka 2 0 0 20 07 15 17 20 51 INFO utils AppInfoPars
  • 第二十八章 Unity射线检测

    本章节我们介绍一下射线 射线就是从一个固定点向一个方向发射出一条直线 在发射过程中需要判断该射线有没有与游戏物体发送碰撞 射线既可以用来检测射击游戏中武器指向目标 又可以判断鼠标是否指向游戏物体 射线的创建方式 一般使用代码来实现 接下来
  • 使用 Python 创建使用 for 循环的元组列表

    Python 的关键数据结构是列表和元组 元组元素一旦设置 就无法更改 这称为不可变性 但是列表元素可以在初始化后修改 在处理需要组合在一起的数据时 for 循环用于创建元组列表 列表比元组更具适应性 因为它们能够被修改 本教程演示如何使用
  • GDI+ 文本测量方法

    背景 图形类 Graphics 是 GDI 的核心 它提供绘制图形 图像和文本的各种方法 Graphics 中使用 DrawString 方法在指定位置绘制文本或者在一个指定矩形内绘制文本 通过调用 Graphics 对象的 Measure
  • SQL多表查询

    多表查询 基本sql语句 SELECT lt 目标字段 gt FROM lt 数据库表 gt WHERE lt 查询条件 gt GROUP BY lt 分组依据 gt ORDER BY lt 排列依据 gt 多表查询 内连接 返回满足连接条
  • webpack.optimize.CommonsChunkPlugin has been removed,please use config.optimization.splitChunks...

    webpack版本升级报错 webpack optimize CommonsChunkPlugin has been removed please use config optimization splitChunks instead 原因
  • PCB中常见错误大全

    PCB中常见错误大全 唯样商城 给你整得明明白白 线上授权代理商 唯样商城有超10万种现货库存 2000万型号数据库 满足您的元器件正品现货采购需求 一 原理图常见错误 1 ERC报告管脚没有接入信号 a 创建封装时给管脚定义了I O属性