首页 > 其他分享 >NXP RT1052--GPIO复用寄存器

NXP RT1052--GPIO复用寄存器

时间:2022-12-07 10:38:07浏览次数:34  
标签:GPIO1 NXP 引脚 -- RT1052 配置 PAD 寄存器 GPIO


GPIO配置,参考文档:IMXRT1050RM.pdf

以GPIO1_IO01为列。

GPIO1基地址:GPIOn base address: 401B_8000h + (n-1)×4000h =401B_8000h (n=1)

如下图,则GPIO1的地址

/* GPIO1 寄存器地址,强制转换成指针 */
#define GPIO1_DR *(unsigned int*)(GPIO1_BASE+0x00)
#define GPIO1_GDIR *(unsigned int*)(GPIO1_BASE+0x04)
#define GPIO1_PSR *(unsigned int*)(GPIO1_BASE+0x08)
#define GPIO1_ICR1 *(unsigned int*)(GPIO1_BASE+0x0C)
#define GPIO1_ICR2 *(unsigned int*)(GPIO1_BASE+0x10)
#define GPIO1_IMR *(unsigned int*)(GPIO1_BASE+0x14)
#define GPIO1_ISR *(unsigned int*)(GPIO1_BASE+0x18)
#define GPIO1_EDGE_SEL *(unsigned int*)(GPIO1_BASE+0x1C)

NXP RT1052--GPIO复用寄存器_引脚

 

GPIO复用IOMUX:

IOMUX 由其左侧的 IOMUXC 控制(C 表示 Controler), IOMUXC 提供寄存器给用户进行配置,它又分成 MUX Mode(IO 模式控制)以及 Pad Settings(Pad 配置)两个部分:
 MUX Mode 配置
MUX Mode 就是用来配置引脚的复用功能,按上面的例子,即是具体是用于网络外设 ENET 的数据接收,还是用于 PWM 外设的输出引脚,当然,也可以配置成普通的 IO 口,仅用于控制输出高低电平。
 Pad Settings 配置
Pad Settings 用于配置引脚的属性,例如驱动能力,是否使用上下拉电阻,是否使用保持器,是否使用开漏模式以及使用施密特模式还是 CMOS 模式等。关于属性的介绍会在后面给出,在学习各种外设时,也将会接触到这些属性在不同场合下的应用。在 IOMUXC 外设中关于 MUX Mode 和 Pad Settings 寄存器。
 

IOMUXC 控制类型

寄存器名称

MUX Mode

IOMUXC_SW_MUX_CTL_PAD_XXXX

Pad Settings

IOMUXC_SW_PAD_CTL_PAD_XXXX

 

以GPIO1_IO09为例:则为IOMUXC_SW_MUX_CTL_PAD_ GPIO_AD_B0_09 以及
IOMUXC_SW_PAD_CTL_PAD_ GPIO_AD_B0_09

 

/* IOMUXC 基地址 */
 #define IOMUXC_BASE (unsigned int)(0x401F8000u)

 /* MUX 模式选择寄存器 IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B0_09 ,强制转换成指针*/
#define IOMUXC_MUX_GPIO_AD_B0_09 *(unsigned int*)(IOMUXC_BASE + 0xE0 )

/* PAD 属性设置寄存器 IOMUXC_SW_PAD_CTL_PAD_GPIO_AD_B0_09 ,强制转换成指针*/
#define IOMUXC_PAD_GPIO_AD_B0_09 *(unsigned int*)(IOMUXC_BASE + 0x2D0 )

NXP RT1052--GPIO复用寄存器_寄存器_02

NXP RT1052--GPIO复用寄存器_寄存器_03

 

IOMUXC_SW_MUX_CTL_PAD_ GPIO_AD_B0_09

该寄存器主要有两个配置域,分别是 SION 和 MUX_MODE,其中 SION用于设置引脚在输出模式下同时开启输入通道。MUX_MODE 的配置有其他几种模式。
 

NXP RT1052--GPIO复用寄存器_寄存器_04

NXP RT1052--GPIO复用寄存器_引脚_05

 

SW_PAD_CTL_PAD_GPIO_AD_B0_09引脚属性寄存器。

HYS 设置使用施密特模式的滞后功能, PUS 配置上下拉电阻的阻值,其它的还包含 PUE、 PKE、 ODE、 SPEED、 DSE 及
SRE 的配置。
 

 

NXP RT1052--GPIO复用寄存器_#define_06

NXP RT1052--GPIO复用寄存器_#define_07

NXP RT1052--GPIO复用寄存器_寄存器_08

 

当输出缓冲区使能时,引脚被配置为输出模式。在输出缓冲区中,又包含了如下的属性配置:
 DSE 驱动能力
DSE 可以调整芯片内部与引脚串联电阻 R0 的大小,从而改变引脚的驱动能力。例如, R0 的初始值为 260 欧姆,在 3.3V 电压下其电流驱动能力为 12.69mA,通过 DSE 可以把 R0 的值配置为原值的 1/2、 1/3…1/7 等。
 SRE 压摆率配置
压摆率是指电压转换速率,可理解为电压由波谷升到波峰的时间。增大压摆率可减少输出电压的上升时间。 RT1052 的引脚通过 SRE 支持低速和高速压摆率这两种配置。压摆率是大信号特性,下面的带宽是小信号特性。
 SPEED 带宽配置
通过 SPEED 可以设置 IO 的带宽,分别可设置为 50MHz、 100MHz 以及 200MHz。带宽的意思是能通过这个 IO 口最高的信号频率,通俗点讲就是方波不失真,如果超过这个频率方波就变正弦波。但是这个带宽要区别于 IO 的翻转速率, IO 的翻转速率的信号来自于 GPIO 这个外设,而 IO 的带宽只是限制了 IO 口引脚的物理特性, IO 口的信号可以来自于内部定时器输出的 PWM 信号,也可以来自于GPIO 翻转输出的信号,两者相比之下, PWM 信号的频率是远远高于 GPIO 翻转输出的信号频率。况且 1052 没有高速 GPIO, GPIO 的翻转率约为 10M, 1060 系列则有高速 GPIO, GPIO 翻转速率达到了逆天的 150M。 但要使用 1060 的快速GPIO,需要改用 GPIO 编号。
 ODE 开漏输出配置
通过 ODE 可以设置引脚是否工作在开漏输出模式。在该模式时引脚可以输出高阻态和低电平,输出高阻态时可由外部上拉电阻拉至高电平。开漏输出模式常用在一些通讯总线中,如 I2C。
 

当输入缓冲区使能时,引脚被配置为输入模式。在输入缓冲区中,又包含了如下的属
性配置
 HYS 滞后使能
RT1052 的输入检测可以使用普通的 CMOS 检测或施密特触发器模式(滞后模式)。施密特触发器具有滞后效应,对正向和负向变化的输入信号有不同的阈值电压,常被用于电子开关、波形变换等场合,如检测按键时,使用施密特模式即可起到消抖的功能。
 

Pull/Keeper 上下拉、保持器
引脚的控制逻辑中还包含了上下拉、保持器的功能。芯片内部的上拉和下拉电阻可以将不确定的信号钳位在高、低电平,或小幅提高的电流输出能力,上拉提供输出电流,下拉提供输入电流。注意这些上下拉配置只是弱拉,对于类似 I2C 之类的总线,还是必须使用外部上拉电阻。 RT1052 芯片的电源模块中包含转换器,当转换器停止工作时,保持器会保持输入输出电压。
上下拉、保持器可以通过如下属性配置:
 PUS 上下拉配置
PUS 可配置项可选为 100K 欧下拉以及 22K 欧、 47K 欧及 100K 欧上拉。
 PUE 上下拉、保持器选择
上下拉功能和保持器功能是二选一的,可以通过 PUE 来选择。
 PKE 上下拉、保持器配置
上下拉功能和保持器还通过 PKE 来控制是否使能。
注意,当引脚被配置为输出模式时,不管上下拉、保持器是什么配置,它们都会被关闭。
 

 

最后:

1配置复用模式

/* 设置 MUX 寄存器为 0x05,表示把引脚用于普通 GPIO */

SW_MUX_CTL_PAD_GPIO_AD_B0_09 = (unsigned int)0x05
 

2、设置PAD 属性配置

/* 设置 PAD 寄存器控制引脚的属性 */
IOMUXC_PAD_GPIO_AD_B0_09 = (unsigned int)0x000B0;

/* 属性配置说明:
十六进制数 0x000B0 = 二进制数 0b0000 0000 0000 1011 0000
*/

/* bit0: SRE: 0b0 压摆率: 慢压摆率
bit1~bit2: -: 0b00 寄存器保留项
 bit3~bit5: DSE: 0b110 驱动强度: R0/6 (仅作为输出时有效 )
 bit6~bit7: SPEED:0b10 带宽 : medium(100MHz)
 bit8~bit10: -: 0b000 寄存器保留项
 bit11: ODE: 0b0 开漏配置: 关闭
 (开漏高阻态常用于总线配置,如 I2C )
 bit12: PKE: 0b0 拉/保持器配置: 关闭
 bit13: PUE: 0b0 拉/保持器选择: 关闭了上下拉及保持器,任意值无效
 bit14~bit15: PUS: 0b00 上拉/下拉选择: 关闭了上下拉及保持器,任意值无效
 bit16: HYS: 0b0 滞回器配置: 关闭
 (仅输入时有效,施密特触发器,使能后可以过滤输入噪声)
 bit17~bit31: -: 0b0 寄存器保留项
 */

 

GPIO 的 GDIR 方向寄存器的说明《General Purpose Input/Output(GPIO)》章节
GDIR 寄存器中的每个数据位控制 GPIO 端口其中一个引脚的方向,为 1 时表示输出,为 0 时表示输入

/* 设置 GPIO1_09 引脚的方向,使用输出模式 */
GPIO1_GDIR |= (unsigned int)(1<<9);

控制时把 GPIO1 对应的 GDIR 寄存器的 bit9 赋值为 1, 即可把它设置为输出模式,它表示的就是 GPIO1 端口的 GDIR 寄存器指针,并且包含“ * ”取指针操作。

 用(1<<9)这种运算来表示。如 bit10 为 1 的数字,则用(1<<10)表示。

 使用“|=”这种位操作方法是为了避免影响到寄存器中的其它位。GPIO1_GDIR = (unsigned int)(1<<9);

而使用“|=”只会修改 bit9,其它寄存器位不变。


NXP RT1052--GPIO复用寄存器_引脚_09

控制引脚输出电平

DR 数据寄存器中的每个数据位控制 GPIO 端口其中一个引脚的电平,为 1 时表示高电平,为 0 时表示低电平。
 

1/* 控制引脚为高电平,关闭 LED 灯 */

GPIO1_DR |= (unsigned int)(1<<9);

 /* 控制引脚为低电平,点亮 LED 灯 */
 GPIO1_DR &=~ (unsigned int)(1<<9);

NXP RT1052--GPIO复用寄存器_寄存器_10


 

 

 

标签:GPIO1,NXP,引脚,--,RT1052,配置,PAD,寄存器,GPIO
From: https://blog.51cto.com/u_15904120/5917879

相关文章

  • 一文看懂NXP汽车电机控制解决方案(NXP整理)
    ​​http://www.nxpic.org/module/forum/thread-605815-1-1.html​​ 导读随着国内汽车市场的飞速发展,各大汽车厂商对汽车电机控制相关产品的需求迎来了井喷,他们对产品节......
  • 基于msm8909调试mcp2515 can芯片
    在高通msm8909上调试mcp2515芯片,使用的模块是飞凌嵌入式的mcp2515模块原理图1、飞线,需要电压转换芯片,使用的是TXB1080芯片(TXS1080针对spi有问题),5V供电mcp2515,转换芯片一端电......
  • mysql中的doube buffer write小结
    mysql这玩意,其实还真不少东西值得学习的,这不遇到了一个之前忽视的新概念:doublebufferwrite,经过查看,小结如下,原文参考​​​http://www.mysqlperf......
  • excrt
    求解同余方程组最小整数解:\[\left\{\begin{matrix}x\equiva_1\pmod{m_1}\\x\equiva_2\pmod{m_2}\\\cdots\\x\equiva_n\pmod{m_n}\end{matrix}\right.\]设......
  • C++-2数据类型-笔记
    2数据类型C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存2.1整型作用:整型变量表示的是整数类型的数据C++中能够表示整型的类型有以下......
  • TAP控制器几个状态的说明-截取转载
       第二眼看着附图,你会发现,其实整个状态机不过分为三个部分:信道选择部分、数据信道和指令信道。所谓的信道选择,就是图中最顶上由四个状态组成的矩形,分别对应着四个......
  • Freertos LWIP协议tcp client无法连接服务端
    参考​​https://jingyan.baidu.com/article/e52e36154ae4f740c60c5106.html​​   现在大多的单片机使用LwIP协议来实现互联网功能,但是在刚刚学习时发现有个问题就是,L......
  • 网站都变成灰色了,它是怎么实现的?
    网站都变成灰色了,它是怎么实现的?沉默王二已于 2022-12-0212:53:08 修改21821收藏453分类专栏:编程技术文章标签:前端htmljava于 2022-12-0......
  • DCDC直流隔离升压12V24V48V转600V800V1100V2500V3000V高压稳压输出电源模块
    特点●效率高达 80%●2*2英寸标准封装●单双电压输出●价格低●大于600V高压,稳压输出●工作温度:-40℃~+85℃●阻燃封装,满足UL94-V0要求●温度特性好●可直接......
  • 年薪90W的CIO都爱看的可视化报表,原来这么简单!10分钟轻松上手
    今年的寒风有多冷,前端程序员们应该都深有体会。就我来说,身边已经有不少同事被裁,朋友圈也时不时看到求捞的信息。概率太高,发生的太过接近,我本人也是担惊受怕,在工作之余学习做......