I.MX6U的IO设置概观

I.MX6U的IO设置概观

这里只从整体上进行概览式的表观描述,不追求描述的准确性,侧重于整体的抽象表达。
使用过MCU/SOC的应该都有一个对芯片的IO/PIN有一个抽象的理解:IO/PIN是MCU/SOC和外部电路连接的接口、具有特定的功能、拥有特定的电气属性。
IO/PIN在使用时,在软件层级是通过片内外设的相关寄存器来操作的,可能的外设包括(GPIO、ADC、DAC、PWM、UART、SPI、IIC、MII、MIPI等等)。
但是很容易被忽略的是,IO/PIN本身也是一种“外设”,如同DMA外设、TIM外设、RTC外设、设备总线外设。是外设(除内核以外的其实都属于外设,芯片封装内的是片内外设,芯片外的是片外外设),在使用时就需要进行配置、操控。

一、I.MX6U的IO需要设置哪些东西

IO这个外设,在使用时很特殊,通常都时需要配合其他片上外设来使用的,毕竟它的主要功能就是连接片内、片外。所以在使用时很重要的一部分就是配置它如何和其他外设进行搭配、协同。大体上需要配置的东西包括:IO复用、IO电气。

  1. IO复用:可理解为IO用于什么功能,也就是和什么外设做配合使得外部的物理PIN能和对应的外设关联起来。
  2. IO电气:可理解为当IO用于某种功能时,应该配置成什么样的电气属性。

二、I.MX6U的IO需要通过哪些寄存器组设置

  1. 设置复用
    在I.MX6U中要设置IO的复用属性,需要在对应的IOMUXC寄存组的SW MUX Control类寄存进行设置。这类寄存器通常被命名为 IOMUXC_SW_MUX_CTL_PAD_XXX或者IOMUXC_SNVS_SW_MUX_CTL_PAD_XXX。通常可以在这类寄存中的MUX Mode单元设置复用模式。
  2. 设置电气
    在I.MX6U中要设置IO的电气属性,需要在对应的IOMUXC寄存组的SW PAD Control类寄存进行设置。这类寄存器通常被命名为 IOMUXC_SW_PAD_CTL_PAD_XXX或者IOMUXC_SNVS_SW_PAD_CTL_PAD_XXX。通常可以在这类寄存中的子单元中通常可以设置 速度设置、驱动能力设置、压摆率设置等。

三、I.MX6U的IO需要设置时钟么?

在I.MX6U的设计中,时钟属性是与IO配合实现功能的外设需要配置的。IO这个“外设”是不需要的。

四、I.MX6U的IO和GPIO的关系

某种程度来说IO可以堪称是GPIO的某个子组成部分,当IO不用于GPIO功能,复用为其他片内外设的IO时,能够与其他片内外设构成逻辑整体。

五、小结

其实这个概观描述中涉及到IO和外设的逻辑关系,不仅仅适用于I.MX6U系列SOC,对于其他的MCU/SOC也是可以的。

你可能感兴趣的:(嵌入式,学习日记,嵌入式,IO,GPIO,I.MX6U,MCU,SOC)