i.MX6ULL GPIO

主要参照《iMX6ULL参考手册》中第 28 章:Chapter 28 General Purpose Input/Output (GPIO)。

一、概述

GPIO通用输入输出外设提供专用的通用引脚,可以配置为输入输出

配置为输出时,可以写入内部寄存器控制输出引脚上驱动的状态。当配置为输入时,可以通过读取内部寄存器的状态检测输入的状态。此外,GPIO外围设备可以产生CORE中断

GPIO是控制芯片IOMUX的模块之一。
在这里插入图片描述
GPIO功能通过八个寄存器一个边缘检测电路中断产生逻辑提供。

这八个寄存器是:

  • Data register (GPIO_DR)
  • GPIO direction register (GPIO_GDIR)
  • Pad sample register (GPIO_PSR)
  • Interrupt control registers (GPIO_ICR1, GPIO_ICR2)
  • Edge select register (GPIO_EDGE_SEL)
  • Interrupt mask register (GPIO_IMR)
  • Interrupt status register (GPIO_ISR)

这些寄存器在GPIO内存MapRegister定义中有详细描述。每个GPIO输入端都有一个专用边缘检测电路,可以通过软件配置该电路来检测输入信号的上升沿下降沿逻辑低电平逻辑高电平。通过在中断掩码寄存器(GPIO IMR)中设置相应的位,可以选择性地屏蔽边缘检测电路输出。这些合格的输出被连接在一起以生成两条1位中断线。

  • 组合中断指示为GPIOx信号0 - 15
  • 组合中断指示GPIOx信号16 - 31

此外,GPIO1提供了对其8个低阶中断源可见性(即GPIO1中断n,对于n = 0 - 7)。然而,来自其他GPIOx的单个中断指示是不可用的。

GPIO边缘检测将在中断控制单元中进一步描述。

GPIO的整体功能将在GPIO功能描述中进一步描述。

1、结构图

GPIO子系统包含多个GPIO块,可以产生控制多达32个通用信号

GPIO软件的框图如图28-2所示。
在这里插入图片描述

2、特点

GPIO包括以下特性:

  • 通用输入输出逻辑功能
    • 使用数据寄存器(GPIO DR)驱动特定的数据输出
    • 使用GPIO方向寄存器(GPIO GDIR)控制信号的方向
    • 通过读取pad样本寄存器(GPIO PSR),使核心能够对相应输入的状态进行采样
  • GPIO中断功能
    • 支持多达32个中断
    • 标识中断边缘
    • 向SoC中断控制器生成三个active-high中断

二、外部信号

这里的表格描述了GPIO的外部信号。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、时钟

这里的表描述了GPIO的时钟源。

请参阅时钟控制器模块的时钟设置,配置和门控信息。
在这里插入图片描述

四、GPIO功能描述

本节提供了块的完整功能描述。

1、GPIO 功能

IOMUX设置为GPIO模式时,GPIO信号可以作为通用输入输出。每个GPIO信号可以单独配置使用GPIO方向寄存器(GPIO GDIR)的输入输出

配置为输出(GPIO GDIR位= 1)时,GPIO数据寄存器(GPIO DR)中的数据位的值驱动到相应的GPIO上。当一个信号被配置为输入(GPIO GDIR位= 0)时,可以从对应的GPIO PSR位读取输入的状态

2、GPIO pad 结构

在这里插入图片描述

1、输入驱动

输入驱动特性:

  • 可选择施密特触发器CMOS输入模式
  • 在输入接收端输出到核心的缓冲器结构。
  • 当IO供应(OVDD)断电时,接收器是三状态的。(接收输出的Keeper保持它以前的状态)。

2、输出驱动

输出驱动特性:

  • 可选择CMOS开式漏极输出类型
  • 可选择的下拉保持器使能信号,使能上拉下拉输出保持器
  • 可选择的上拉电阻22K, 47K, 100K和一个下拉电阻100KOhm。
  • 在输出模式下,上拉下拉pad保持器被禁用。
  • 每个操作模式有七个驱动强度
  • 额外的2位转换速率控制,可在50、100和200兆赫兹IO单元操作范围内选择,降低开关噪声。

在这里插入图片描述

1、驱动强度

驱动强度的选择可以使阻抗匹配,得到更好的信号完整性。

2、输出保持

一个简单的锁存器来保存输入值。
在这里插入图片描述

3、PU / PD / Keeper Logic

当Keeper使能时,上拉下拉被禁用,pad的输出值取决于Keeper。输出保持器由OVDD提供动力。当核心VDD断电或第一个逆变器为三态时,pad的状态可以保持不变

Keeper 和 Pull 不能同时启用。

4、开漏

开放式漏极是一种电路技术,它允许多个设备在单线上进行双向通信。开式漏极驱动器通常使用一个外部内部上拉电阻来保持信号线高,直到设备吸收足够的电流将信号线拉低,通常用于有多个设备的总线。
在这里插入图片描述

3、GPIO编程

1、GPIO读模式

读取输入信号编程顺序如下:

1、配置IOMUX为GPIO模式。

2、配置输入的GPIO方向寄存器。

3、从数据寄存器中读取值。

2、GPIO写模式

驱动输出信号的编程顺序如下:

1、配置IOMUX选择GPIO模式,如果需要通过PSR读取回环 pad 值,也可以启用SION

2、配置GPIO方向寄存器输出。

3、将值写入数据寄存器。

4、中断控制单元

除了通用的输入输出功能外,GPIO外设中的边缘检测逻辑还可以反映在配置为输入(GDIR位= 0)的给定GPIO信号是否发生了转换中断控制寄存器(GPIO_ICR1和GPIO_ICR2)可以用来独立配置每个输入信号中断条件(低到高过渡、高到低过渡、)。关于GPIO_ICR1和GPIO_ICR2的设置,请参见GPIO内存映射寄存器定义。

中断控制单元由32个中断控制子单元组成,每个子单元处理单个中断线

五、GPIO内存映射寄存器定义

有8个32位GPIO寄存器。所有寄存器都可以从IP接口访问仅支持32位访问

GPIO的内存映射如下表所示。
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值