赞
踩
主要参照《iMX6ULL参考手册》中第 28 章:Chapter 28 General Purpose Input/Output (GPIO)。
GPIO通用输入输出外设提供专用的通用引脚,可以配置为输入或输出。
当配置为输出时,可以写入内部寄存器以控制输出引脚上驱动的状态。当配置为输入时,可以通过读取内部寄存器的状态来检测输入的状态。此外,GPIO外围设备可以产生CORE中断。
GPIO是控制芯片IOMUX的模块之一。
GPIO功能通过八个寄存器、一个边缘检测电路和中断产生逻辑提供。
这八个寄存器是:
这些寄存器在GPIO内存MapRegister定义中有详细描述。每个GPIO输入端都有一个专用的边缘检测电路,可以通过软件配置该电路来检测输入信号的上升沿、下降沿、逻辑低电平或逻辑高电平。通过在中断掩码寄存器(GPIO IMR)中设置相应的位,可以选择性地屏蔽边缘检测电路的输出。这些合格的输出被连接在一起以生成两条1位中断线。
此外,GPIO1提供了对其8个低阶中断源的可见性(即GPIO1中断n,对于n = 0 - 7)。然而,来自其他GPIOx的单个中断指示是不可用的。
GPIO边缘检测将在中断控制单元中进一步描述。
GPIO的整体功能将在GPIO功能描述中进一步描述。
GPIO子系统包含多个GPIO块,可以产生和控制多达32个通用信号。
GPIO软件的框图如图28-2所示。
GPIO包括以下特性:
这里的表格描述了GPIO的外部信号。
这里的表描述了GPIO的时钟源。
请参阅时钟控制器模块的时钟设置,配置和门控信息。
本节提供了块的完整功能描述。
当IOMUX设置为GPIO模式时,GPIO信号可以作为通用输入输出。每个GPIO信号可以单独配置为使用GPIO方向寄存器(GPIO GDIR)的输入或输出。
当配置为输出(GPIO GDIR位= 1)时,GPIO数据寄存器(GPIO DR)中的数据位的值被驱动到相应的GPIO上。当一个信号被配置为输入(GPIO GDIR位= 0)时,可以从对应的GPIO PSR位读取输入的状态。
输入驱动特性:
输出驱动特性:
驱动强度的选择可以使阻抗匹配,得到更好的信号完整性。
一个简单的锁存器来保存输入值。
当Keeper使能时,上拉和下拉将被禁用,pad的输出值取决于Keeper。输出保持器由OVDD提供动力。当核心VDD断电或第一个逆变器为三态时,pad的状态可以保持不变。
Keeper 和 Pull 不能同时启用。
开放式漏极是一种电路技术,它允许多个设备在单线上进行双向通信。开式漏极驱动器通常使用一个外部或内部的上拉电阻来保持信号线高,直到设备吸收足够的电流将信号线拉低,通常用于有多个设备的总线。
读取输入信号的编程顺序如下:
1、配置IOMUX为GPIO模式。
2、配置输入的GPIO方向寄存器。
3、从数据寄存器中读取值。
驱动输出信号的编程顺序如下:
1、配置IOMUX选择GPIO模式,如果需要通过PSR读取回环 pad 值,也可以启用SION。
2、配置GPIO方向寄存器输出。
3、将值写入数据寄存器。
除了通用的输入输出功能外,GPIO外设中的边缘检测逻辑还可以反映在配置为输入(GDIR位= 0)的给定GPIO信号上是否发生了转换。中断控制寄存器(GPIO_ICR1和GPIO_ICR2)可以用来独立配置每个输入信号的中断条件(低到高过渡、高到低过渡、低或高)。关于GPIO_ICR1和GPIO_ICR2的设置,请参见GPIO内存映射寄存器定义。
中断控制单元由32个中断控制子单元组成,每个子单元处理单个中断线。
有8个32位GPIO寄存器。所有寄存器都可以从IP接口访问。仅支持32位访问。
GPIO的内存映射如下表所示。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。