文章目录
前言
如何看原理图以及门电路,如何看原理图以及协议类接口(uart,i2c,spi,NAND Flash, LCD),如何看原理图之内存类接口
一、GPIO以及门电路
1. GPIO
重点: 关注如何使用?!
上下拉电阻的食用
2. 门电路
与门,非门,或门,以及其相应的组合,以及及其图示 回归实践即可得
二、协议类
-
你说的,别人能听懂 : 种类 – 双方约定 信号的协议
-
你的语速,要让别人接受:速度 – 双方满足时序要求
关于协议部分, 还是需要自己动手进行去实践,但总的条件就是上面两条
1. UART(universal Async Receive/Transmit)
2. I2C
3. SPI
4. NAND Flash :K9F2G08芯片
- 芯片手册中 会有介绍很多引脚的作用 以及如何利用引脚进行保存读取数据
原理图:
- cle – 高电平 ale–低电平 表示传输的是命令
- cle – 低电平 ale–高电平 表示传输的是地址
- cle – 低电平 ale–低电平 表示传输的是数据
- ce 片选线 低有效
- re we 决定是写数据 还是读数据
- r/b 状态引脚 烧写的状态 成功 会返回一个状态
引脚 说明完全,但是这些引脚该如何组合操作呢? 这个时候 芯片使用手册 也就有了时序图
-
命令传输
-
地址发送
-
写数据(2440芯片的角度描述的 是2440 写数据到nand flash)
-
读数据
注意:这些时序图中,引脚相互之间的转化 也是需要满足一些条件的 相应的芯片使用手册都有约束(2440有针对于nand控制器,对nand控制器做出相应的设置即可);这里的这些时间限制,均是有说明的,而且其参数的设置均是有对应的寄存器!所对应的寄存器有这么多,难道都要一一设置吗,不是的, 2440芯片给予nand flash的寄存器设置是有限的,只要将2440上的寄存器设置相应的合理的值即可
nand flash 总结
如何设置时序?
- 看2440手册 有什么寄存器可以设置哪些寄存器
- 看外设手册 确定取值
- 计算
在芯片设计图中, 关于引脚高低有效:nEN ,/EN, EN的上划线 均表示的是低有效
5. LCD原理图 学会即可举一反三
- 通过原理图 可以得知有以上引脚 以及可以设置相应的gpio引脚 实现相应的功能
- 时钟,行列同步信号,数据线,数据使能,以及背光使能,电源等
- LCD控制器的参数设置,
- 数据的来源,是从ram中来(将地址给到LCD寄存器,然后进行相应的操作)
- 总结
- 原理图接线:引脚对接
- 理解各个引脚:满足相应的协议(上面是典型的几种,以后遇到其他的,可以即学即用)以及时序(弄清 双方 能设置哪些值以及范围(2440 可以设置哪些值,LCD可以取什么值,计算(2440是存在有限的寄存器用于LCD的)))
6. 内存类接口 RAM-LIKE 接口
主要看内存控制器是如何进行工作的,是受cpu操作的,由cpu发出相应的地址信号给到内存控制器,然后 内存控制器根据该地址决定让哪一个片选引脚输出低电平 (2440 内存控制器:这里有一个 memory Map for boot ROM 哪些地址对应哪些片选线)
- 0x00000000 - 0x080000000 : 128M的空间 需要多少条地址线来访问呢?
- 每一个片选引脚对应的地址范围称为一个bank
- 一个bank 128M = 2^7 * 2^20 = 2 ^ 27 即需要使用27个地址线 addr0 - addr26 共27 条
- 补充: cpu 确实是32位的 并不表示 有32条地址线
- eg:cpu访问 A, ************共32位,0-26位是地址线,27-31位是用于表示相应的片选项的(计组中是有所学的)
- 有的ram-like设备 还有地址线, 通过其可以范围其设备, 可以让其地址的bit2 设置为1 ,便表示为高电平
- 不同位宽外设的接线方式
由于 接线以及字节对其的原因,导致低位的addre0/1是无效的 因此 也便用不到了
- 针对以上这些: 内存控制器有哪些是需要设置的?
- 可以根据芯片使用手册进行操作 这也是有说明的
- 取什么值: 也就需要对接外接的芯片设置 看两者的对接
- 可以根据芯片使用手册进行操作 这也是有说明的
- 这里圈出来的是: sdram可以写单个字节,特殊的设计 有现在的功能实现
- Nandflash 就没有 只能将32位全部读出来, 然后在写进去
7. 补充
总结
这里对裸机开发进行了一个学习记录,在这里你将学到:
- 着重于相应模块如何去看相应的芯片使用手册
- 引脚的使用