裸机开发基础总结


前言

如何看原理图以及门电路,如何看原理图以及协议类接口(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
    评论
Smart210是一款兼具高性能和高可靠性的裸机开发板,适用于嵌入式系统和物联网应用的快速开发裸机开发是指在无操作系统的环境下,直接通过硬件和软件编程完成应用的开发过程。对于Smart210来说,裸机开发可以充分发挥其性能优势和硬件资源,在没有操作系统的限制下,实现更高效的应用程序。 Smart210的裸机开发过程中,需要对其搭载的ARM Cortex-A8处理器进行编程。首先,我们需要了解Smart210的硬件平台,包括芯片架构、内存、外设接口等。然后,通过汇编语言或C语言等编程语言,利用编译器和调试工具,直接控制硬件资源,完成应用程序的设计和编写。在裸机开发中,开发者需要自行实现系统的初始化、任务调度、中断处理等功能,以及与硬件进行交互的驱动程序的编写。 裸机开发可能相对复杂和困难,因为需要手动管理硬件资源、处理底层细节,并且没有操作系统提供的抽象层和功能库,需要更多的开发工作量和技术知识。然而,裸机开发也有其优势,比如更高的性能和更少的资源占用,更灵活的控制和调试能力,以及更接近硬件的开发体验。 总之,Smart210裸机开发是一种高效和灵活的开发方式,适用于对性能要求较高、对硬件控制要求较多的应用场景。通过充分利用Smart210的硬件资源和裸机开发的优势,可以实现更加自由和高效的嵌入式系统和物联网应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值