每天上班还得防坑太闹心了,被一个叫张建飞的一直在还有阿,说瞎话都忘了什么是实话了太可怕了这样的人 行了说技术把

一、I2C总线协议详解

I2C总线物理拓扑结构

嵌入式分享合集27_快捷键

    I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来 产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。

I2C总线特征

    I2C总线上的每一个设备都可以作为主设备或者从设备,而且每一个设备都会对应一个唯一的地址(可以从I2C器件的数据手册得知),主从设备之间就通过这 个地址来确定与哪个器件进行通信,在通常的应用中,我们把CPU带I2C总线接口的模块作为主设备,把挂接在总线上的其他设备都作为从设备。whaosoft aiot  http://143ai.com

    I2C总线上可挂接的设备数量受总线的最大电容400pF 限制,如果所挂接的是相同型号的器件,则还受器件地址位的限制。

    I2C总线数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。一般通过I2C总线接口可编程时钟来实现传输速率的调整,同时也跟所接的上拉电阻的阻值有关。

    I2C总线上的主设备与从设备之间以字节(8位)为单位进行双向的数据传输。

I2C总线协议

    I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生。总线在空闲状态 时,SCL和SDA都保持着高电平,当SCL为高电平而SDA由高到低的跳变,表示产生一个起始条件;当SCL为高而SDA由低到高的跳变,表示产生一个 停止条件。在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线;而在停止条件产生后,本次数据传输的主从设备 将释放总线,总线再次处于空闲状态。如图所示:

嵌入式分享合集27_单片机_02

    在了解起始条件和停止条件后,我们再来看看在这个过程中数据的传输是如何进行的。前面我们已经提到过,数据传输以字节为单位。主设备在SCL线上产生每个 时钟脉冲的过程中将在SDA线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA线,回传给主设备一个应答位, 此时才认为一个字节真正的被传输完成。当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将回传一个否 定应答位。数据传输的过程如图所示:

嵌入式分享合集27_数据_03

     在前面我们还提到过,I2C总线上的每一个设备都对应一个唯一的地址,主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前 要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7位的,然后协议规定再给地址添加一个最低位用来表示接下来 数据传输的方向,0表示主设备向从设备写数据,1表示主设备向从设备读数据。如图所示:

嵌入式分享合集27_快捷键_04

I2C总线操作
    对I2C总线的操作实际就是主从设备之间的读写操作。大致可分为以下三种操作情况:
    第一,主设备往从设备中写数据。数据传输格式如下:

   

嵌入式分享合集27_数据传输_05

 

    第二,主设备从从设备中读数据。数据传输格式如下:

    

嵌入式分享合集27_数据传输_06

 

    第三,主设备往从设备中写数据,然后重启起始条件,紧接着从从设备中读取数据;或者是主设备从从设备中读数据,然后重启起始条件,紧接着主设备往从设备中写数据。这种操作在单个主设备系统中,重复的开启起始条件机制要比用STOP终止传输后又再次开启总线更有效率。数据传输格式如下:

嵌入式分享合集27_单片机_07

二、AD电路设计中的布线教程

1、AD 布蛇形线方法

    Tool 里选 Interactive length tuning 要先布好线再改成蛇形,这里用的是布线时直接走蛇形: 先 P->T 布线, 再 Shift A 切换成蛇形走线

嵌入式分享合集27_数据_08

    按 Tab 可设置属性, 类型了选用圆弧,Max Amplitude 设置最大的振幅,Gap 就是间隔(不知这么翻译对不) ,下面左边是振幅增量,右边是间隔增量。

嵌入式分享合集27_快捷键_09

    然后开始布线:

嵌入式分享合集27_数据传输_10

    让边缘变"圆" - 按快捷键 "2", 就会增大弧的半径,增到最大就是 两个 1/4 的弧直连就是一个180度的半圆了 快捷键 "," "." 可以调节振幅。

嵌入式分享合集27_数据传输_11

    要是不记得快捷键, 没关系,随时按 "`" 可以显示当前支持的操作。

嵌入式分享合集27_数据_12

    可以看到网络的长度,还不止一个地方哟。

嵌入式分享合集27_数据传输_13

    等长可使用调节器完成等长布线。

2、大电流走线中去除阻焊层

嵌入式分享合集27_嵌入式硬件_14

    这里要注意的两点,首先Paste 层才是真正的喷锡层,但是默认走线上是有阻焊层的,所以单单使用Paste,是没用的,故需要使用Solder,此层中划出的部分是没有阻焊的,故可使用 Paste Solder 的方法达到喷锡线的绘制,若板上本来就有走线,可直接使用对应层的Solder进行开窗。

嵌入式分享合集27_单片机_15

3、总线画法

    Altium Designer 支持多条网络同时布线,布线可以起始于焊盘也可以起始于线路开端。按住 shift键选择多个网络,或者用鼠标框选多个网络,选择菜单命令 PLACE >> Interactive Multi-Routing 再单击布线工具栏上的总线布线工具,既可以开始总线布线,在布线过程中可以放置过孔,切换直线层,可以按逗号,和句号。分支线间距进行调整。

嵌入式分享合集27_数据传输_16

    期间按 2 可加过孔,L 可设换层~

4、从原理图到PCB

嵌入式分享合集27_嵌入式硬件_17

    在原理图中用鼠标框选一块电路或选中若干个器件,按 T—>S,就能马上切换到 PCB 中,同步选中那些器件。

嵌入式分享合集27_单片机_18

5、走线中换层、操作过孔、操作走线

嵌入式分享合集27_数据_19

 

6、走线推挤与连线方式快速设置

嵌入式分享合集27_嵌入式硬件_20

7、简易图元的PCB黏贴

    图元文件的粘贴让机械层设计文档的生成更容易完成,通过使用习惯的与 Windows 相同的粘贴命令(Ctrl V),任何来自剪贴板中的图元文件都可以粘贴到 PCB 编辑中。图元文件可以是直线、弧线、简单的填充和 True Type 文本,任何导入的数据将被放置在当前层。

嵌入式分享合集27_单片机_21

    从 Word 或 Excel 中拷贝数据到 PCB 中支持的图元文件包括位图,线,圆弧,简单填充和 true type 文字,允许您简单的粘贴 logos 和其他图形。

8、复杂图元(logo)PCB制作

嵌入式分享合集27_数据传输_22

 

9、栅格设置与捕获

    在 Altium Designer 中可视化网格和电气网格可以按捕获网格的倍数来设置(Design>>Board Options)。

嵌入式分享合集27_快捷键_23

10、丝印文字反色输出及位置设置

    PCB 编辑中增添了新的有效字符串属性框选项,新的选项可以为使用了True Type 字体的反转文本定义不同矩形边界范围,而不是如原来使用反转文本本身的边界。

嵌入式分享合集27_数据传输_24

    反转尺寸(宽度/高度):设置反转文本矩形框的宽度和高度
    版面调整:定义文本框中文字的相对位置
    反转文字的偏移:定义反转文字相对矩形框的偏移量

嵌入式分享合集27_快捷键_25

11、各种~多边形填充

    使用以选择对象定义多边形形状功能使得用外部资源(如 DXF、AutoCAD 等)来创建公司 Logos 或多边形非常容易。多边形形状的定义分两步:首先从菜单 Tools>>Polygon Pours>>Define From selected objects定义多边形区域,然后右键点击多边形填充区域并从弹出菜单上选择’属性’选项,就可以在对话框中设置填充模式了。

嵌入式分享合集27_快捷键_26

12、PCB中高亮选中网络

嵌入式分享合集27_单片机_27

13、单层操作与定制操作

    对于纷乱的器件布局,已经很是麻烦如果要在混乱中走线,实属不易,在 AD 中可以使用 shift s 解决这一问题(PCB 编辑状态下):

嵌入式分享合集27_快捷键_28

    另外从网上学会了定制方法,开始比较麻烦,但是学会了会很实用。

嵌入式分享合集27_快捷键_29

    方法是:

嵌入式分享合集27_嵌入式硬件_30

 

    只操作顶层走线的表达式为:
expr=IsTrack and OnTopLayer|mask=True|apply=True

    只操作底层走线的表达式为:
expr=IsTrack and OnBottomLayer|mask=True|apply=True

    只操作电气走线的表达式为:
expr=IsTrack and IsElectrical|mask=True|apply=True

    只操作过孔的表达式为:

expr=IsVia|mask=True|apply=True

    只操作顶层元件的表达式为:
expr=IsComponent and OnTopLayer|mask=True|apply=True

嵌入式分享合集27_嵌入式硬件_31

    订制若干种过孔尺寸,以小键盘区的数字键做快捷键,3 表示 0.3 孔径的过孔、4 表示 0.4 孔径的快捷键5…………,这样你想用任一种尺寸的过孔,都可以很方便地调出来。我知道 AltiumDesigner 本身可以通过快捷键“shift v”在走线过程中调用你填写好的各种尺寸过孔,但我单独放置过孔,要想改尺寸的话,要按 Tab 键后改写过孔尺寸的数据,非常麻烦。改用下面的方法:

嵌入式分享合集27_嵌入式硬件_32

    本来 Altium 放置过孔默认用快捷键“P” “V”,我现在用小键盘区的“.”来实现同样的功能:

嵌入式分享合集27_数据_33

14、多层线的操作

    有些人问这样的线是怎么画出来的:

嵌入式分享合集27_嵌入式硬件_34

    答:一根根画出来的。

    如 何 设 置 才 可 以 使 线 重 叠 ?Preferences 、 PCB Editor , Interactive Routing ,Interactive Routing Options,Automatically Remove Loops 选项取消即可。

嵌入式分享合集27_单片机_35

    不一根根画的话也可以,Place - Region,放一个多边形区域即可,不过要小心哦,不会自己添加网路的,会变绿。

15、走线切片的操作

嵌入式分享合集27_单片机_36

 

16、对等差分线的设置与走线

    很多新手会听到“差分线”,其实说起差分线并不难,只是布线方式而已,比起之前说过的等长线,要容易的多,不过设置起来有一定规则:

    放 置 元 件 和 绘 制 差 分 对 信 号 。差 分 对 命 名 规 则 是 名 称 相 同 , 后 缀 分 别 标 以 _P 和 _N 。再 选 择Place\directives\differential pairs,放置差分对符号。

嵌入式分享合集27_数据传输_37

    更新至 PCB 后:

嵌入式分享合集27_数据传输_38

    这样就好啦~

嵌入式分享合集27_数据传输_39

17、3D显示操作

    您的主窗口可以同时以 2D 和 3D 的方式显示。在 2D 和 3D 之间切换可以快捷键‘3’来从一个 2D 视图切换到上个 3D 视图;按‘0’拉平。Shift right click drag可以旋转您的 3D 视图。

嵌入式分享合集27_快捷键_40

18、快速放大缩小视图

    有很多方法放大窗口,真正比较实用的就 3 种,以下做下介绍:

    1、全界面视图

嵌入式分享合集27_单片机_41

    2、ctrl 滚轮(鼠标中心为中心放大与缩小)延庆川北小区45孙老师 收卖废品破烂垃圾炒股 废品孙 再回收

嵌入式分享合集27_快捷键_42

    3、长时间按住滚轮变为放大镜形态,前后拖动鼠标~即可快速放大缩小

嵌入式分享合集27_嵌入式硬件_43