请选择 进入手机版 | 继续访问电脑版
查看: 1446|回复: 2

[分享] i.MX RT1050学习笔记4-IO系统

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2021-3-31 14:46:07 | 显示全部楼层 |阅读模式
    i.MX RT1050学习笔记4-IO系统

    1 前言
    在介绍GPIO之前,不得不先提一下IOMUX和IOMUXC,先简单的介绍一下IOMUX和IOMUXC的关系,简单的来说就是IOMUXC控制着IOMUX,两者相当于是RT1050的两个部件。


    2 PAD
    因为i.MX RT1050与i.MX6ULL源自一个平台,所外设基本上相同,所以在GPIO上也是沿用了i.MX6ULL一个机制。下图为IO的结构图。
    2.1.png
    从上图可以看出整个GPIO结构主要有三个部分,分别是IOMUXC、IOMUX、IORING三个部分,下面我们具体来介绍一下三个部分分别代表着什么。


    2.1 IORING
    这个部分可以理解成为GPIO的模拟硬件部分,接收来自其他模块的控制数据以及具体通道信号。除了我们常见的方向控制、输出控制等,具体还包括其他的各种电气属性配置,具体包括有 :

    ①输出部分
    a) DSE 驱动能力
    DSE 可以调整芯片内部与引脚串联电阻R0 的大小,从而改变引脚的驱动能力。例如,R0 的初始值为260 欧姆,在3.3V 电压下其电流驱动能力为12.69mA,通过DSE 可以把R0 的值配置为原值的1/2、1/3…1/7 等。

    b) SRE 压摆率配置
    压摆率是指电压转换速率,可理解为电压由波谷升到波峰的时间。增大压摆率可减少输出电压的上升时间。RT1052 的引脚通过SRE 支持低速和高速压摆率这两种配置。

    c) SPEED 带宽配置
    通过SPEED 可以设置IO 的带宽,分别可设置为50MHz、100MHz 以及200MHz。带宽的意思是能通过这个IO 口最高的信号频率,通俗点讲就是方波不失真,如果超过这个频率方波就变正弦波。但是这个带宽要区别于IO 的翻转速率,IO 的翻转速率的信号来自于GPIO 这个外设,而IO 的带宽只是限制了IO 口引脚的物理特性,IO 口的信号可以来自于内部定时器输出的PWM信号,也可以来自于GPIO 翻转输出的信号,两者相比之下,PWM信号的频率是远远高于GPIO 翻转输出的信号频率。

    d) ODE 开漏输出配置
    通过ODE 可以设置引脚是否工作在开漏输出模式。在该模式时引脚可以输出高阻态和低电平,输出高阻态时可由外部上拉电阻拉至高电平。开漏输出模式常用在一些通讯总线中,如I2C。

    ②输入部分
    a) HYS 滞后使能
    RT1052 的输入检测可以使用普通的CMOS 检测或施密特触发器模式(滞后模式)。施密特触发器具有滞后效应,对正向和负向变化的输入信号有不同的阈值电压,常被用于电子开关、波形变换等场合。

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


    2.2 IOMUX
    IOMUX是RT1050的多路复用器,它控制着每个引脚的信号通道切换。RT1052 的芯片每个GPIO 都通过IOMUX 支持多种功能,例如一个IO 可用于网络外设ENET 的数据接收引脚,也可以被配置成PWM外设的输出引脚,这样的设计大大增加了芯片的适用性,这样可选的功能就是由IOMUX 实现的。IOMUX 相当于增加了多根内部信号线与IO 引脚相连,最多有8 根,也就是说一个IO 最多可支持8 种可选的功能。


    2.3 IOMUXC
    IOMUXC是整个IO系统的核心部分,不仅控制着IOMUX的信号通道开关,而且还控制着IORING中的各种电气属性。不同于一般MCU,一个寄存器可能控制很多IO口, 对于RT1050,每一个IO口都有两个寄存器,分别是负责配置复用功能的MUX寄存器和负责配置IO电气属性的PAD寄存器。命名规则如下:
    2.2.png

    上表中,XXXX代表具体IO的引脚名字,例如在NXP官网DEMO板中,使用引脚GPIO_AD_B0_09驱动LED灯,我们则可以在参考手册的IOMUXC 章节中找到它的这两个寄存器:IOMUXC_SW_MUX_CTL_PAD_ GPIO_AD_B0_09 以及IOMUXC_SW_PAD_CTL_PAD_ GPIO_AD_B0_09。
    下面以这两个寄存器为例说明一下每个寄存器的作用。

    ①    IOMUXC_SW_MUX_CTL_PAD_ GPIO_AD_B0_09
    2.3.png


    可以看到,该寄存器主要有两个可配置项,分别是SION 和MUX_MODE,其中SION
    用于设置引脚在输出模式下同时开启输入通道;MUX_MODE 可配置该引脚为ALT0~ALT7 这8 个复用功能,其中就包括了接下来我们所用的GPIO1_IO09功能,也就是GPIO功能。

    ②    IOMUXC_SW_PAD_CTL_PAD_ GPIO_AD_B0_09
    2.4.png
    2.5.png
    2.6.png
    可以看出通过配置PAD寄存器就可以配置这个IO的具体电气属性,也就是之前说到的各种属性。


    3 GPIO
    GPIO就是RT1050众多外设中的其中一个外设,这也是所有MCU最为常见的一个外设,相比较于其他MCU也是相差无几,无外乎配置GPIO的方向、控制GPIO输出电平以及读取GPIO状态,相关寄存器有:

    2.7.png

    4 应用实例
    下面我们结合官方的DEMO来介绍一下使用RT1050 GPIO功能的步骤(因为官方DEMO的使用的SDK库操作,封装层较多,在这里就不贴代码了)。
    ①配置GPIO时钟。(关于GPIO使用的时钟分支大家可以参考官方文档《i.MX RT1050 Processor Reference Manual》中的“Table 14-4. System Clocks, Gating, and Override”查阅,然后进行时钟配置,时钟相关知识大家可参考我的上一篇文章:小猫爪:i.MX RT1050学习笔记3-CCM)
    ②配置IO复用,NXP官方SDK包提供函数IOMUXC_SetPinMux来进行配置,实际操作的是MUX寄存器。
    ③配置IO电气属性,NXP官方SDK包提供函数IOMUXC_SetPinConfig来进行配置,实际操作的是PAD寄存器。
    ④配置IO方向以及状态等。

    ————————————————
    版权声明:本文为「小猫爪」的原创文章


    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-3-31 14:57:00 | 显示全部楼层
    i.mx 家庭的产品,多少还是有些血脉的。
    学习了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
     楼主| 发表于 2021-3-31 15:36:42 | 显示全部楼层
    jobszheng5 发表于 2021-3-31 14:57
    i.mx 家庭的产品,多少还是有些血脉的。
    学习了

    是的
    签到签到
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-19 08:54 , Processed in 0.117804 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表