Jiaying888168的博客_狗炜别叫我打游戏_CSDN博客
(19条消息) 如何看懂原理图_Jiaying888168的博客-CSDN博客_原理图怎么看的懂1.https://blog.csdn.net/Jiaying888168/article/details/99654761
2.【文末福利】手把手教您学会PADS Logic原理图设计(一)_零件 (sohu.com)
原理图分类
1、GPIO(general peripheral input output)和门电路
1.1 输入、输出引脚、上拉电阻、三极管
1.2 与门、或门、非门
上拉电阻结合三极管
此时2440输出0,三极管不导通,输出1,三极管导通。
此时如果在上拉电阻下面接个LED灯,另外一端接3.3v,当输出1时LED亮
上拉电阻结合输入引脚
如果按键不接上拉电阻,那么在按键没有按下的情况下,2440读的电平是未知的。无法确定其状态。
接入上拉电阻,当没有按下时,2440引脚读到的是高电平,当按下时,输入引脚读到的是低电平。
总结:上拉电阻结合输入功能,可以确定其状态。
2、协议类
2.1 串口
2.2 IIC
2.3 SPI
2.4 NAND
2.5 LCD
串口(universal async receive transmit)
协议:双方要有共同的语言,这样你说什么我才能知道。另外还要有时序同步,你说的太快,我也听不清楚。
串口时序图
平时,串口发送线是高电平的,当要向串口发送消息时,拉低串口发送线(起始位),此时PC端发现RX接收线由高电平变为低电平,那么PC端就知道串口即将有数据发送。那么PC端等待多久开始接收数据呢。这就需要双方在发送和接收前进行约定,这些约定就是串口波特率、数据位、停止位、奇偶校验位等。发完起始位,开始发送8位的数据,例如A:0x41,刚好8bit,同时PC机接收到的就是0x41;发完数据后,至少拉高一个T的时间(停止位),这个T跟波特率有关。
如果在发送数据之前都要人工操作这些时序,估计会疯掉。
2440中就有一个串口控制器,只要把串口的参数填写好,将要发送的数据发送到对应的寄存器,控制器就会自动产生这些时序,将数据发送出去。
一般只需要三条线---发送线,接受线,地线
特点用途:串行异步通信,双方时钟不用一样,只需要设置波特率等信息。适合单片机与单片机通信。但是串口通信慢,波特率9600bps,也就是说每秒只能传输9600bit,相当于每秒传输1.2KB。spi可以达到5MHZ,也就是说每秒5000000bit,相当于每秒传输610KB
i2c总线
同样双方也要遵循一定的协议,还有时间。时钟是发送方给定的。一般为主机
接线:主机的sck接从机的sck,sda接从机的sda
时序图
同样也是需要起始位信号的,在时钟线保持高电平的状态下,数据线由高拉低,接收方就知道即将由数据产生。每次传输的也是8bit数据,在时钟线高电平时,数据线的数据必须保持稳定,因为此时接收方将采集此时数据线上的电平,这也表明数据只能在时钟线低电平下改变,当8bit数据传输完毕后,时钟线保持高电平,数据线由低变为高电平,发出停止信号。
i2c还有一个ack信号,主机在发完8bit之后,就不驱动总线了,由从机将数据线拉低,此时主机探测到数据线变为低电平,就知道从机已经接收完毕了。一般,i2c数据线和时钟线都会接一个上拉电阻,2440没有驱动时,总线自然就变为高电平。
i2c可以接多个外设,当要使用该外设时,需要先发送对应设备的地址,选中该设备。
特点用途:可以寻址,可以在一条总线上挂载多个设备,相比于spi线更少,特别是在挂载多个设备时。
spi总线
同样双方也要遵循一定的协议,还有时间。时钟是发送方给定的。一般为主机
接线:主机的sck接从机的sck,mosi接从机的miso,io口接ss
在与从机通信之前,主机需要通过片选引脚选中该芯片,然后通过mosi发送数据给从机,每次可以传输8bits,也可以通过miso接收从机的数据,是一个全双工同步的通信协议。
一般spi用作读写存储芯片,在读之前都需要先发送spi芯片手册给定的指令,再发送读取地址,再接收数据。写的话,也是需要发出写指令,发出地址,再发出写的数据。
时序图
原理图
总结:对于通信协议,首先要遵循时钟,对于串口,双方要设置波特率,对于iic和spi单片机要根据外接芯片的最大时钟频率设置对应的时钟。其次还需要知道双发约定的数据格式,需要注意的就是最高有效位先发还是低位先发。对于iic和spi还需要根据芯片手册,找到对应数据格式,因为这两种通信协议往往是操作存储器,需要涉及到芯片大小,还有寻址的问题。
NAND FLASH
原理图
从原理图看出NAND FLASH没有地址的,那么如何作为一个存储芯片,如何访问它的地址呢。又如何读写数据呢。
既然nand可以支持读写操作。并且跟2440连接的只有7根线。根据nand芯片手册可以解决以下存在以下问题:
1、什么时候发命令
CLE线为高电平表示发命令
2、什么时候发地址
ALE线为高电平表示发地址
3、什么时候发数据
CLE、ALE都为低电平时表示发送数据
4、什么时候可以进行写数据
WE为低电平表示可以写数据
5、什么时候可以进行读操作
RE为低电平表示可以读数据
6、如何选中该芯片进行操作
CE线为低电平时表示选中
7、写数据时,如何得知已经写完毕
读取R/B状态引脚,高电平表示准备就绪,低电平表示正在工作
知道引脚后,如何将这些引脚组合起来,实现功能
这时候,就需要时序图加持了。
发命令时序:
首先2440将CE拉低选中该nandflash,接着将CLE拉高,将命令放到io线上,此时再拉高we写信号线,nandflash就会去读取命令值。
发地址时序:
同样也需要选中芯片,然后将地址数据放到io线上,等待we写信号的上升沿到达,nand将地址信息读入寄存器。这里需要注意的是,nandflash需要发送行地址和列地址才能操作地址,行地址一般对应page地址。
写数据时序:
首先还是拉低ce,io准备好数据,在写信号的上升沿来临时将数据写到nand flash
这些时序图对于时间也是有要求的,一般是由控制器来控制这些时序的。
TACLS表示拉高CLE多长时间后,才能拉低we,对应nandflash芯片手册的写命令,TACLS对应于tcls-twp,通过查找时序要求后,发现两个的值都是12ns,也就是说TACLS可以设置为最小值,以此类推,其他参数设置也是由芯片时序决定的。
LCD
1、LCD工作基本条件
首先,LCD要有工作电压吧,好,先给它供电,让芯片内部工作;其实,要想让LCD发光显示,还要给它额外的背光电源。
2、显示原理
LCD控制器根据控制信号,不断的从显存地址中取出数据,送给电子枪,电子枪将颜色值,打入LCD屏中。
3、引脚接口
了解了LCD大致的工作原理后,需要进一步明白LCD芯片有哪些个引脚,这样才能跟cpu搭积木。这一步需要看LCD芯片手册,还需要根据原理图,明白每个引脚是连接到cpu哪些个引脚上的。这一步是为了能找到控制LCD芯片的引脚。
有时,在引脚命名上,并不一定完全一样,例如现在连接DE连接在VM上,直接去LCD芯片里面寻找,可以得到这是一个数据使能引脚,熟悉LCD知道,这个引脚可以决定电子枪移动时是否取值。
有时在原理图上,芯片上的引脚名称可能在LCD芯片上没有对应,此时应该找到它的连接对象,也许就可以找到关联,例如引脚8,NC连接VLINE,在LCD上芯片上并没有找到对应功能引脚,但是通过寻找连接引脚,VLINE是HSYNC,在LCD芯片找到这是LCD的水平同步信号引脚
以此类推,可以将所有引脚的功能搞明白。
4、时序图
有了上面的基础,也知道引脚的连接,那么接下来,就需要将这些引脚统一管理起来,让它们可以协同完成LCD的显示工作。时序图就是规定LCD控制器与LCD通信的协议。什么时候发什么信号,维持多久,这些都是时序图来规定的。
可以大致看出来每个Vsync信号有多个Hsync信号,也就是显示所有行。一个Hsync信号可以显示一行数据。其中一些时间参数,像thb表示一个水平信号发出后,需要等待多长时间后才可以使能数据引脚。
5、配置LCD控制器
同样在2440的芯片手册上,也应该对应有相应的时序图,所有的时序参数都是需要根据LCD芯片所规定的参数进行设置,有时外设规定的时序是ns单位,但是LCD控制器中设置的是MHZ单位,这就需要做换算处理。
对于LCD的设置需要注意下面几个点:
1、时钟,这个关乎LCD的脉冲
2、一行像素点的个数
3、行数