01-怎么看原理图

01-怎么看原理图之GPIO

设置为不同类型的GPIO端口

输出引脚

在这里插入图片描述

上图左侧:电源作为输出源,提供高低电压

上图右侧:GPIO端口可以配置为输出引脚,提供高低电压

输入引脚

在这里插入图片描述

上图左侧:用万用表读取连接点的电压

上图右侧:GPIO端口配置为输入端口,读取连接点的电压

1.引脚设置为输入,那么该引脚可以通过寄存器读取该引脚的状态,是高电平还是低电平(比较典型的按键,程序通过引脚的状态来判断按键是否按下);

2.引脚设置为输出,那么该引脚可以通过写寄存器使引脚输出高电平或者低电平(比较典型的Led灯引脚,程序通过写寄存器来让引脚输出高低电平,来达到Led亮的目的)

中断引脚

在这里插入图片描述

上图:2440配置为响应按键中断,在按键按下时,CPU能立刻收到该信号,并做出响应处理

比方:你耳朵没有聋(耳朵为中断源),当你正在学习,别人喊你帅哥(耳朵产生中断信号),你会停下手中的笔(保存现场),抬起头邪魅一下(耳朵中断的处理方法),然后下笔继续学习(恢复现场)

上拉电阻

在这里插入图片描述

上图左侧:在这个NPN三极管中,基极输出0,发射机被截止,集电极悬空,无法判断集电极的电压

上图右侧:在这个NPN三极管中,基极输出0,发射机被截止,集电极存在上拉电阻,可以确定集电极的电压为3.3V

用在PGIO端口上的上拉电阻

在这里插入图片描述

上图左侧:1)开关闭合,引脚读取的输入是低电平。2)开关松开,引脚悬空,无法确定高低电平

上图右侧:1)开关闭合,引脚读取的输入是低电平。2)开关松开,由于存在上拉电阻,引脚读取的输入是高电平(能确定开关的状态)

怎么用操作GPIO

以输出引脚-点亮LED1举例:

  • 将GPIO端口配置为输出引脚
  • 设置寄存器,设置输出高电平还是低电平

查看原理图

在这里插入图片描述

原理图中:

  • 名称相同的节点,实际是连接在一起的
  • nLED_1 前面的n表示低电平有效

从原理图中看出GPF4端口控制LED1,并且在输出低电平的时候点亮LED1

查看用户手册

在这里插入图片描述

在这里插入图片描述

从寄存器的名字可以看出

  • GPFCON寄存器用于配置PGIO端口,端口是输入、输出、还是中断
  • GPFDAT寄存器:1)端口为输出端口时,用于写值,设置输出的内容。2)端口为输入端口时,用于读取输入的内容
  • GPFUP寄存器:端口连接有上拉电阻

GPF4控制LED1

  • GPFCON[9:8] 设置为 01,就将GPF4配置为输出端口
  • GPFDAT[4] : 该位设置为0,就输出低电压,点亮LED

门电路

看一下大概长什么样子
在这里插入图片描述

协议类接口

协议类接口遵循的原则

你说的别人能听懂双发约定信号的协议
你的 语速要让别人接受双方满足时序要求

02-怎么看原理图之协议类接口-UART

在这里插入图片描述

Q:串口一根线发送数据,一根线接收数据,在数据线上传输的只有0和1两种状态,那串口是怎么传输大于两个状态的数据?

通过jz2440发送字符’A’到PC,举例

在串口通信之前,双发需事先约定通信协议,例如PC机通过串口连接到jz2440,需要事先知道jz2440的串口是如何设置的,然后根据jz2440的串口设置,设置PC端的串口通信软件

在这里插入图片描述

约定项:

  • 波特率:一秒钟有多少个周期
  • 数据位:发送一个数据占多少位
  • 停止位:发送完一个数据之后,休息多少个周期
  • 校验位:检验发送的一个数据是否传输错误
  • 等等,还有很多可以约定的项 (可以约定,但是通信双发可以不使用这些约定项)

下面的图示,仅约定了波特率、数据位、停止位

在这里插入图片描述

时间含义
T0在jz2440上的串口无数据传输时,TxD维持高电平
T1当有数据要发送时,TxD将维持1个周期的低电平,同时PC也知道jz2440要发送数据了
T2 ~ T9'A’字符为0x0100,0001,每一个周期发送1位数据
T10数据发完,维持一周期高电平(因为约定了数据位、停止位,PC知道T10高电平表示停止位)

03-怎么看原理图之协议类接口-I2C

在这里插入图片描述

看上图的I2C设备原理图可知

  • IIC设备对外有两接口:SCL,SDA

I2C设备通过IIC总线连接在一起,jz2440中的I2C控制器与I2C连接线大致如下

在这里插入图片描述

I2C之间怎么传递数据:字符’A’:0x0100,0001

在这里插入图片描述

时刻含义
0在该时刻,I2C控制器无数据发送,SDA和SCL保持高电平
开始信号准备发送:SCL为高电平,SDA有高电平向低电平跳变,开始传输数据
1 ~ 8发送数据:SCL发出脉冲:SDA数据在SCL低电平期间才能变化,SDA数据在SCL高电平才能传输
ACKI2C控制器在该时刻不驱动SDA,由AT24C02A驱动,拉低SDA,意味数据接收到了

I2C总线上可以挂接多个设备,意味着每个设备都有自身的标记-设备地址当I2C接收到自己的地址时,才进行数据的回应,像不像arp

在这里插入图片描述

下面的图示是I2C先找到指定的I2C设备,再进行读写

步骤:

  • 指定要访问的I2C设备的地址,指定对该I2C的访问是读还是写
  • 被访问的I2C设备回复ACK
  • 发送要访问设备中数据的地址,被访问设备回复ACK
  • 如果是写,则发送要写的数据给被访问的设备,被访问设备回复ACK
  • 最后发送结束信号,表示结束数据传输

在这里插入图片描述

从哪里获取要访问的I2C设备的地址:对应I2C设备的用户手册

在这里插入图片描述

后门的三位对应I2C的引脚确定 A0、A1、A2

在这里插入图片描述

具体被访问的I2C设备怎么通信,还需参考I2C的用户手册

在这里插入图片描述

  • 17
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值