jjzjj

立创EDA极速入门(2)——完成一个STM32最小系统板

风正豪 2023-06-21 原文

请提前观看:立创EDA极速入门(1)——熟悉PCB和立创EDA基本操作

邀请加入嵌入式社区,您可以在上面发布问题,博客链接,公众号分享,行业消息,招聘信息等。

立创EDA绘制PCB只有两步,原理图绘制和PCB设计。如果是使用的AD绘制PCB可能需要多原理图库和PCB库的绘制,但是立创EDA已经帮我们处理了,不用担心。

目录

原理图绘制

第一步,找对应器件

常用器件库

元件库

第二步,绘制原理图

PCB设计

(1)将原理图转换为PCB

(2)PCB布局

1,从原理图转换之后的器件摆放

2,布局

3,板框

(3)接线

(4)遇见交叉的两条线

(5)信号线绘制完之后,就是绘制电源线 

1,检测信号线是否绘制完成

2,绘制电源线 

(6)铺铜


原理图绘制

首先你得准备需要画的原理图PDF文档,或者自己在CSDN上找原理图。然后根据这个原理图自己在立创EDA上绘制。

第一步,找对应器件

立创EDA有两个地方可以寻找对应的器件,一个是常用器件库,一个是元件库。

常用器件库

第一步 ,打开常用器件库

 第二步,介绍常用器件

排针和排母

左边这个M是排针(Male),右边是排母(Female)。可以自己选择是多少个孔,不过需要注意,这个是单排的

 这下面这个是双排的

开关 

开关有直插和贴片,两脚和四角的,你选择的时候需要注意是否选择错误。

下面这两个都是四角的,左边是贴片的,右边是直插的。

 如果需要两脚的开关需要在元件库寻找。

元件库

很多时候我们需要在元件库搜索字想要的器件。

第二步,绘制原理图

这里我只介绍3个地方,因为只需要使用这三个地方。学会了这三个地方就可以了,没必要整其他花里胡哨的玩意。

(1)我们在进行器件连接的时候,需要按W来连接不同器件。这个线是有电气属性的,简单来说就是可以导电,之后会导入到PCB中

 (2)我们画原理图需要有分区的意识,这样方便查询。折线可以进行分区,没有电气属性。就只有分区的作用,不能导电

(3)我们分区之后还需要知道这一块区域具体是啥电路,就需要文本。文本唯一作用就是用于提示这一块区域是干什么的

PCB设计

(1)将原理图转换为PCB

完成了原理图设计之后,点击更新/转换原理图到PCB。(注意,这里你必须打开的是原理图的界面!) 

然后点击应用修改

(2)PCB布局

1,从原理图转换之后的器件摆放

因为我们转换之后的PCB是很乱的,所以我们需要对PCB器件进行布局。

(1)刚接触PCB设计的人不知道这些蓝色的线是什么东西。我介绍一下,这个叫做飞线。上面说原理图的时候我说了,按W来连接不同器件,这个线是有电气属性的,简单来说就是可以导电,之后会导入到PCB中。而这个被导入的就是这个蓝色的线。

(2)这个线有什么用呢?有了这个线,我们在绘制PCB的时候,就能够更加方便的进行绘制。不需要画一点点PCB,看一下原理图。

(3)现在我们知道了蓝色的线是什么了。那么我们需要将地线(GND)与电源线(5V,3.3V这种)相关的全部隐藏。至于为什么,之后会讲。

(4)PCB处理地线和电源线,其余的线称之为信号线。信号线尽量在同一层!!!

2,布局

这个时候我们需要切换到原理图界面,框选我们之前选中的分区部分。

1,然后切换到PCB界面,然后找到其中一个USB供电部分的器件。(注意,鼠标靠近与USB供电部分的器件的时候,鼠标回变成一个十字形

2,拖动这一个器件,就是拖动了整个USB供电部分的器件。

3,将USB供电部分的器件摆放在一起。

按照上面这个步骤将所有分区后的器件摆放在一起。然后让飞线尽量减少有交叉。

注意:去耦电容需要摆放在芯片旁边

 

3,板框

布局之后需要设置板框,选中板框,按照布局设置一个合理的板框大小。建议在10*10cm之内,因为这样就可以白嫖嘉立创的板子

 一般板框都需要一个圆角,以为如果板子直接是直角,很容易划伤人。

(3)接线

按住W,接线

 

可以通过拖拽这个线进行改变线的轨迹。

(4)遇见交叉的两条线

我们在画PCB的时候,难免回遇见两条线交叉。那么我们就需要打孔

(5)信号线绘制完之后,就是绘制电源线 

1,检测信号线是否绘制完成

首先我们需要查看是否还有信号线有没有绘制完成。
如果从飞线这里看没发现只剩下电源线和地线,表示信号线已经绘制完成

2,绘制电源线 

电源线绘制和信号线绘制是一样的。只不过线需要粗一些,建议设置为20mil。

(6)铺铜

 注意,顶层和底层都需要铺铜! 所以需要重复如下操作一次(也就是说,顶层和底层都需要铺铜)

 ​​​​​​​​​​​​​​

检查

最后只要在进行一次DRC检查即可。如果是0,那么就没有问题。

注意,有时候,我们在立创广场上直接用别人的板子进行二次修改,DRC发现错误。可能是因为你的设计规则和他的不一样。这个新手不建议过分接触。

有关立创EDA极速入门(2)——完成一个STM32最小系统板的更多相关文章

  1. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  2. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  3. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  4. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  5. ruby - 为什么 SecureRandom.uuid 创建一个唯一的字符串? - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?

  6. ruby-on-rails - Rails - 从另一个模型中创建一个模型的实例 - 2

    我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案

  7. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  8. ruby - 一个 YAML 对象可以引用另一个吗? - 2

    我想让一个yaml对象引用另一个,如下所示:intro:"Hello,dearuser."registration:$introThanksforregistering!new_message:$introYouhaveanewmessage!上面的语法只是它如何工作的一个例子(这也是它在thiscpanmodule中的工作方式。)我正在使用标准的ruby​​yaml解析器。这可能吗? 最佳答案 一些yaml对象确实引用了其他对象:irb>require'yaml'#=>trueirb>str="hello"#=>"hello"ir

  9. ruby - Rails 关联 - 同一个类的多个 has_one 关系 - 2

    我的问题的一个例子是体育游戏。一场体育比赛有两支球队,一支主队和一支客队。我的事件记录模型如下:classTeam"Team"has_one:away_team,:class_name=>"Team"end我希望能够通过游戏访问一个团队,例如:Game.find(1).home_team但我收到一个单元化常量错误:Game::team。谁能告诉我我做错了什么?谢谢, 最佳答案 如果Gamehas_one:team那么Rails假设您的teams表有一个game_id列。不过,您想要的是games表有一个team_id列,在这种情况下

  10. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

随机推荐