【参考手册】IMX6ULL参考手册第28章GPIO翻译

第28章 GPIO

1. 概述(Overview)

GPIO通用输入/输出外设提供专用通用引脚,可配置为输入或输出。
当配置为输出时,可以写入内部寄存器以控制输出引脚上驱动的状态。当配置为输入时,可以通过读取内部寄存器的状态来检测输入的状态。此外,GPIO外设可以产生CORE中断。
GPIO是控制芯片IOMUX的模块之一。
在这里插入图片描述
GPIO功能通过八个寄存器、一个边缘检测电路和中断生成逻辑提供。这八个寄存器是:

  • 数据寄存器(GPIO_DR)
  • GPIO方向寄存器(GPIO_GDIR)
  • PAD采样寄存器(GPIO_PSR)
  • 中断控制寄存器(GPIO_ICR0、GPIO_ICR1)
  • 边缘选择寄存器(GPIO_Edge_SEL)
  • 中断掩码寄存器(GPIO_IMR)
  • 中断状态寄存器(GPIO_IRS)
    这些寄存器细节描述在 5. GPIO内存映射/寄存器定义(GPIO内存映射/寄存器定义)
    每个GPIO输入都有一个专用的边缘检测电路,可以通过软件配置,以检测输入信号上的上升沿、下降沿、逻辑低电平或逻辑高电平。通过在中断屏蔽寄存器(GPIO_IMM)中设置相应的位,可以选择性地屏蔽边缘检测电路的输出。这些合格的输出被加在一起,生成两条1位中断线:
  • GPIOx信号0-15的组合中断指示
  • GPIOx信号的组合中断指示16-31
    此外,GPIO1为其8个低位中断源中的每一个提供可见性(即GPIO1中断n,n=0-7)。但是,来自其他GPIOx的单个中断指示不可用。
    GPIO边缘检测在中断控制单元中进一步描述。

1.1 框图(Block Diagram)

GPIO子系统包含多个GPIO块,可以生成和控制多达32个通用信号。GPIO的框图如所示。
GPIO Block Diagram

1.2 功能(Features)

GPIO包括以下功能:

  • 通用输入/输出逻辑功能:
    • 使用数据寄存器(GPIO_DR)驱动特定数据输出
    • 使用GPIO方向寄存器控制信号的方向(GPIO_GDIR)
    • 通过读取数据,使核心能够对相应输入的状态进行采样焊盘采样寄存器(GPIO_PSR)。
  • GPIO中断功能:
    • 最多支持32个中断
    • 识别中断边缘
    • 向SoC中断控制器生成三个活动高中断

2. 外部信号(External Signals)

参见《IMX6ULL参考手册.pdf》。

3. 时钟(Clocks)

这里的表格描述了GPIO的时钟源。
请参阅时钟控制器模块了解时钟设置、配置和门控信息。

Clock nameClock RootDescription
ipg_clk_sipg_clk_rootPeripheral access clock

4. GPIO功能描述(GPIO Functional Description)

4.1 GPIO功能(GPIO Function)

当IOMUX设置为GPIO模式时,GPIO信号可以作为通用输入/输出。每个GPIO信号可以使用GPIO方向寄存器(GPIO_GDIR)独立地配置为输入或输出。
当配置为输出(GPIO_GDIR位=1)时,GPIO数据寄存器(GPIO_DR)中的数据位中的值在相应的GPIO线上被驱动。当信号被配置为输入(GPIO_GDIR位=0)时,可以从相应的GPIO_PSR位读取输入的状态。

4.2 GPIO PAD 架构 (GPIO pad structure)

在这里插入图片描述

4.2.1 输入驱动器(Input Driver)

输入驱动器特性:

  • 可选施密特触发器或CMOS输入模式
  • Keeper结构,在Core的输入接收器输出端有缓冲区
  • 当I/O电源(OVDD)断电时,接收器处于三态。(接收器输出端的Keeper保持其先前状态)。
4.2.1.1 施密特触发器(Schmitt trigger)

施密特触发器的抗干扰功能如下所示。
在这里插入图片描述

4.2.1.2 输入保持器(Input keeper)

一个简单的锁存器,用于在OVDD断电或第一个反相器为三态时保持输入值。所有焊盘的输入缓冲区保持器始终启用。

4.2.2 输出驱动器(Output Driver)

输出驱动器特性:

  • 可选CMOS开漏输出类型
  • 可选择的pull-keeper启用信号,以启用/禁用上拉/下拉和输出保持器
  • 可选择22K、47K、100K的上拉电阻和100KOhm的下拉电阻。无硅P+多晶硅电阻器用于将电阻变化限制在+/-20%以内。
  • 输出模式下禁用上拉、下拉和焊盘保持器。
  • 每种操作模式下有种驱动强度
  • 额外的2位转换速率控制,可在50、100和200 MHz IO单元操作范围之间进行选择,同时降低开关噪声
    在这里插入图片描述
4.2.2.1 驱动强度(Drive strength)

驱动强度选择可用于使阻抗匹配并获得更好的信号完整性。

4.2.2.2 输出保持器(Output keeper)

在这里插入图片描述

4.2.2.3 上拉/下拉/保持器逻辑(PU / PD / Keeper Logic)

启用Keeper时,上拉和下拉被禁用,焊盘的输出值取决于Keeper。输出保持器由OVDD供电。当核心VDD断电或第一反相器处于三态时,可以保持PAD的状态。
Keeper和Pull不能同时启用。

4.2.2.4 漏极开路(Open drain)

漏极开路是一种允许多个设备通过单线双向通信的电路技术。漏极开路驱动器通常与外部或内部上拉电阻器一起工作,该电阻器将信号线保持在高电平,直到设备吸收足够的电流将线路拉低,通常用于具有多个设备的总线。
在这里插入图片描述

4.3 GPIO编程(GPIO Programming)

4.3.1 GPIO读取模式(GPIO Read Mode)

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

  1. 配置IOMUX以选择GPIO模式(通过IOMUX控制器(IOMUXC))。
  2. 将GPIO方向寄存器配置为输入(GPIO_GDIR[GDIR]设置为0b)。
  3. 从数据寄存器/焊盘状态寄存器读取值。

当GPIO方向设置为输入(GPIO_GDIR=0)时,对GPIO_DR的读取访问不会返回GPIO_DR数据。相反,它返回GPIO_PSR数据,这是相应的输入信号值。

4.3.2 GPIO写入模式(GPIO Write Mode)

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

  1. 配置IOMUX以选择GPIO模式(通过IOMUXC),如果需要通过PSR读取环回焊盘值,还可以启用SION
  2. 配置GPIO方向寄存器输出(GPIO_GDIR[GDIR]设置为1b)。
  3. 将值写入数据寄存器(GPIO_DR)。

4.4 中断控制单元(Interrupt Control Unit)

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

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

5.GPIO内存映射/寄存器定义(GPIO Memory Map/Register Definition)

参见《IMX6ULL参考手册.pdf》。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值