嵌入式系统硬件设计与实践(第一步下载eda软件)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
现实生活中,我们经常发现有的人定了很多的目标,但是到最后一个都没有实现。这听上去有点奇怪,但确实是实实在在发生的事情。朋友们虽然有了目标,但是往往第一步都还没有迈出去,就打起了退堂鼓。
所以,对于想学习硬件设计的朋友来说,第一步就是下载eda软件。早期读书的时候,大家都用protel,现在国内很多人慢慢开始用lceda。就我个人而言,基本上算半路出家,所以也就习惯了用lceda。目前lceda有标准版本、专业版本,对于需求不高、器件不多的人,其实标准版就可以了;而对于有复杂电路需求的人来说,建议还是用专业版本。
1、设定合理的目标
在学习eda软件之前,设定合理的目标是非常有必要的。归根到底,每一行要学深学透,都需要花费很多的时间,但是每个人的时间和精力都是有限的。那么这个时候,就需要对时间进行分配下,问一下自己,愿意花多少时间来学习硬件设计。
这里面,我总结了一下,主要分四个层次。第一个层次,看得懂原理图。大部分公司并不要求嵌入式软件工程师画原理图,所以这个层次只是相当于要求软件工程师看得懂原理图,甚至可以画一些简单的原理图交给硬件工程师进行补充和修正就可以了。
第二个层次,独立设计原理图。独立设计,这意味着自己可以完成所有的原理图的绘制工作。比如说输入、输出、电源、晶振、复位、屏幕、摄像头等等。相比较第一层,这一层要求更加细致和具体,它要求工程师知道信号细节、器件选型、功率估算等等。硬件工程师拿着这个原理图,基本直接进行layout pcb设计就好了。
第三个层次,设计原理图和一般的pcb。这个时候,工程师可以应付所有的原理图设计了,并且进行一般的pcb设计了。之所以是一般的pcb设计,这主要是因为对于复杂的pcb设计,工程师实在精力有限,不可能方方面面照顾到,无法像专业的硬件工程师考虑到所有的细节。那什么样的pcb设计,软件工程师是可以完全自己应付的呢?比如说51电路设计、mcu设计、ad设计、da设计、soc的底板设计,这些都没有问题。但是如果是复杂的soc核心板、高速电路、高端fpga开发板,建议原理图自己出,找专门的硬件工程师直接layout就可以了,毕竟术业有专攻。
第四个层次,这个层次的软件工程师几乎可以干所有硬件工程师干的活了。不是说不可以,但是中间花费的精力和时间是否值得,就要自己权衡了。个人建议大家根据自己的兴趣爱好,灵活选择这四个层次来作为自己的目标。
2、下载eda软件
可以直接访问lceda.cn,选择下载标准版,或者是专业版。大家可以从标准版学起,只要标准版学好了,完全可以实现上面前三个层次的目标。
此外,lceda支持网页版本和离线软件版本,可以根据需求灵活来选择。
3、原理图和pcb
虽然我们最终实现的目标是pcb,但是需要用原理图来建模。原理图本身其实就是对真实的电子元器件进行建模处理,至于真实的元器件是什么样,根本不重要,它所要考虑的就是器件之间信号是怎么流通的,用eda的专有名词来说,这就是构建网络。
但是到了pcb阶段就不一样了,以电容为例,选用的电容是什么材质的、分不分正负、尺寸大小多少、贴在顶层还是底层、信号从哪一层走,这都是实实在在需要考虑的问题。
4、根据初中物理知识画第一个原理图
电路不复杂,就是一个利用一个电源来点亮一个二极管的led灯。中间为了防止短路,增加一个电阻;为了演示开关功能,增加一个开关。
器件和期间之间的信号都是用绿色的连线完成的。如果两者有相连,代表相互是导通的;如果不相连,则代表相互之间是不导通的。
5、 第一个pcb图
上面原理图中的每一个元器件都有自己的封装。所谓的封装,就是这些元器件对应的真实形态是什么样的,大小、正负、pin引脚个数等等。这些所有的元器件放到一个pcb上面,用铜线连在一起,那就构成了pcb电路图了。
这个pcb图和原理图差不多,只是连线部分换成了红色的。可以在此基础上铺一层铜,这样pcb电路图更好看点,
细心的同学可以发现,这里led1和key1之间的连线没有了。这主要是因为整个电路板做了铺铜处理。上面的电路板,大家如果还是觉得不好看,可以看下2d效果,
2d效果不过瘾的话,可以看下3d效果,
有了这个3d效果,其实与最终我们想要的效果本身已经很接近了。
6、打板和购买元器件
有了原理图和pcb图,这个时候怎么加工成pcb板子呢。目前网上打板子的地方很多,大家可以找到很多的代工厂。但是我们怎么把文件导出来,转成代工厂需要的文件呢,这就需要用eda工具,将pcb转成gerber文件,
把这个gerber文件交给pcb厂家,它就可以做出板子来了。下面的问题就是统计一下,需要购买哪些元器件了。eda也可以帮助我们导出bom元器件,
有了这个bom表,就可以拿着它去各大电商网站买零件了。接着有了pcb、有了从从电商买过来的元器件,下面要做的就是拿起烙铁自己焊接了。一番操作之后,硬件设计就上路了,自己的第一块pcb也就可以完成了。
相关文章:

嵌入式系统硬件设计与实践(第一步下载eda软件)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 现实生活中,我们经常发现有的人定了很多的目标,但是到最后一个都没有实现。这听上去有点奇怪,但确实是实实在在…...

Portraiture4免费磨皮插件支持PS/LR
Portraiture 4免去了繁琐的手工劳动,选择性的屏蔽和由像素的平滑,以帮助您实现卓越的肖像润色。智能平滑,并删除不完善之处,同时保持皮肤的纹理和其他重要肖像的细节,如头发,眉毛,睫毛等。 一键…...

Python学习笔记202302
1、numpy.empty 作用:根据给定的维度和数值类型返回一个新的数组,其元素不进行初始化。 用法:numpy.empty(shape, dtypefloat, order‘C’) 2、logging.debug 作用:Python 的日志记录工具,这个模块为应用与库实现了灵…...
2023年大数据面试开胃菜
1、kafka的message包括哪些信息一个Kafka的Message由一个固定长度的header和一个变长的消息体body组成,header部分由一个字节的magic(文件格式)和四个字节的CRC32(用于判断body消息体是否正常)构成。当magic的值为1的时候,会在magic和crc32之间多一个字节…...
优雅的controller层设计
controller层设计 Controller 层逻辑 MVC架构下,我们的web工程结构会分为三层,自下而上是dao层,service层和controller层。controller层为控制层,主要处理外部请求。调用service层,一般情况下,contro…...
同步、通信、死锁
基础概念竞争资源引起两个问题死锁:因资源竞争陷入永远等待的状态饥饿:一个可运行程序由于其他进程总是优先于它,而被调用程序总是无限期地拖延而不能执行进程互斥:若干进程因相互争夺独占型资源而产生的竞争关系进程同步…...

【聚类】谱聚类解读、代码示例
【聚类】谱聚类详解、代码示例 文章目录【聚类】谱聚类详解、代码示例1. 介绍2. 方法解读2.1 先验知识2.1.1 无向权重图2.1.2 拉普拉斯矩阵2.2 构建图(第一步)2.2.1 ϵ\epsilonϵ 邻近法2.2.2 k 近邻法2.2.3 全连接法2.3 切图(第二步…...
最牛逼的垃圾回收期ZGC(1),简介
1丶什么是ZGC? ZGC是JDK 11中引入的一种可扩展的、低延迟的垃圾收集器。ZGC最主要的特点是:在非常短的时间内(一般不到10ms),就可以完成一次垃圾回收,而且这个时间是与堆的大小无关的。另外,ZGC支持非常大…...

微服务的Feign到底是什么
Feign是什么 分区是一种数据库优化技术,它可以将大表按照一定的规则分成多个小表,从而提高查询和维护的效率。在分区的过程中,数据库会将数据按照分区规则分配到不同的分区中,并且可以在分区中使用索引和其他优化技术来提高查询效…...

JavaScript 正则表达式
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。什么是正则表达式?正则表达式是由一…...
【批处理脚本】-1.15-文件内字符串查找命令find
"><--点击返回「批处理BAT从入门到精通」总目录--> 共7页精讲(列举了所有find的用法,图文并茂,通俗易懂) 在从事“嵌入式软件开发”和“Autosar工具开发软件”过程中,经常会在其集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中,…...

【手撕面试题】JavaScript(高频知识点二)
目录 面试官:请你谈谈JS的this指向问题 面试官:说一说call apply bind的作用和区别? 面试官:请你谈谈对事件委托的理解 面试官:说一说promise是什么与使用方法? 面试官:说一说跨域是什么&a…...
Web学习1_HTML
在学校期间学的Web知识忘了一些,很多东西摸棱两可,现重新系统的学习一下。 首先下载安装完vsc后并下载拓展文件live server(模拟一个服务器) Auto Rename Tag(在写网页时,自动对齐前后标签)在设…...
华为OD机试真题Java实现【靠谱的车】真题+解题思路+代码(20222023)
靠谱的车 题目 程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。 出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。 比如: 23再多一块钱就变为25; 39再多一块钱变…...

【C++入门(下篇)】C++引用,内联函数,auto关键字的学习
前言: 在上一期我们进行了C的初步认识,了解了一下基本的概念还学习了包括:命名空间,输入输出以及缺省参数等相关的知识。今天我们将进一步对C入门知识进行学习,主要还需要大家掌握我们接下来要学习的——引用…...

基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网运行策略研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
2023年全国最新保安员精选真题及答案8
百分百题库提供保安员考试试题、保安职业资格考试预测题、保安员考试真题、保安职业资格证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 81.以下各组情形都属于区域巡逻中异常情况的是()。 A&#x…...
JavaScript高级程序设计读书分享之6章——MapSet
JavaScript高级程序设计(第4版)读书分享笔记记录 适用于刚入门前端的同志 Map 作为 ECMAScript 6 的新增特性,Map 是一种新的集合类型,为这门语言带来了真正的键/值存储机制。Map 的大多数特性都可以通过 Object 类型实现,但二者之间还是存在…...

改进的 A*算法的路径规划(路径规划+代码+毕业设计)
引言 近年来,随着智能时代的到来,路径规划技术飞快发展,已经形成了一套较为成熟的理论体系。其经典规划算法包括 Dijkstra 算法、A算法、D算法、Field D算法等,然而传统的路径规划算法在复杂的场景的表现并不如人意,例…...
Tina_Linux存储性能参考指南
OpenRemoved_Tina_Linux_存储性能_参考指南 1 概述 1.1 编写目的 介绍TinaLinux 存储性能的测试方法和历史数据,提供参考。 1.2 适用范围 Tina V3.0 及其后续版本。 1.3 相关人员 适用于TinaLinux 平台的客户及相关技术人员。 2 经验性能值 Flash 性能与实…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...

初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...

结构化文件管理实战:实现目录自动创建与归类
手动操作容易因疲劳或疏忽导致命名错误、路径混乱等问题,进而引发后续程序异常。使用工具进行标准化操作,能有效降低出错概率。 需要快速整理大量文件的技术用户而言,这款工具提供了一种轻便高效的解决方案。程序体积仅有 156KB,…...
基于Uniapp的HarmonyOS 5.0体育应用开发攻略
一、技术架构设计 1.混合开发框架选型 (1)使用Uniapp 3.8版本支持ArkTS编译 (2)通过uni-harmony插件调用原生能力 (3)分层架构设计: graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...