裸机开发基础总结


前言

如何看原理图以及门电路,如何看原理图以及协议类接口(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. 补充

在这里插入图片描述


总结

这里对裸机开发进行了一个学习记录,在这里你将学到:

  • 着重于相应模块如何去看相应的芯片使用手册
  • 引脚的使用
  • 28
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值