S32K144 GPIO外设分析

1. S32K144 GPIO外设特性

下面的内容来自于S32K用户手册的翻译,或者网上关于S32K系列的一些pdf文件介绍。有些内容可能会出现理解不到位或者翻译错误方面,如果大家有疑问最好可以查阅用户手册。

  • GPIO和PORT的数量

    从用户手册,对于PCR(引脚控制寄存器)的数量描述,如下表:

在这里插入图片描述

每一个引脚都有一个独立的 PCR 寄存器对应着,那么S32K144型号,对应的GPIO引脚数量有:18+18+18+18+17 = 89,就是说最多有89个引脚

然后PORT的数量,从上面表格也可以知道是:PORTA/PORTB/PORTC/PORTD/PORTE 一共是5个PORT

  • 每个引脚都能够产生中断请求,支持上升沿、下降沿、或者电平(高电平或者低电平)触发中断。

  • 每个引脚都能产生DMA请求。

  • 每个引脚都能在低功耗模式下唤醒MCU

  • 每个引脚都有数字滤波器

  • 可单独控制每个引脚的上下拉电阻

  • 每个IO引脚均可复用为多种功能模式

2. S32K144 GPIO外设相关的两个模块

打开 S32K 的用户手册,可以了解到与GPIO外设相关的有两个模块,分别是:PORT 和 GPIO。下图就是从用户手册截图的这两个模块章节目录:

在这里插入图片描述

从用户手册的介绍以及对应寄存器的描述,大概了解到这两个模块的作用是:

  • PORT:主要是上拉使能控制、引脚功能复用配置、引脚中断配置等功能。不过手册还有一些寄存器的功能还不清楚有什么用。
  • GPIO:就是控制GPIO口的数据输入输出方向、GPIO引脚高低电平的控制等等。

所以,我们在写代码控制GPIO时,需要配置这两个外设,才能正确配置GPIO引脚。

3. PORT模块寄存器

下图是PORT模块的寄存器映射表:

在这里插入图片描述

只是截图了一部分,PCR寄存器是有32个的,每个引脚都有一个对应的寄存器。

3.1 PORT_PCRn寄存器

每个PORT端口,最多都有32个PCR寄存器(不同型号实际数量不一样,前面有截图介绍),一个pin引脚有一个对应的PCR寄存器,所以一个PORT端口,最多可以支持32个引脚。

PCR寄存器位域描述。下面是PCR寄存器的位域截图:

在这里插入图片描述

位域 名称 R/W 描述
0 PS R/W 上下拉选择
0:下拉
1:上拉
1 PE R/W 上下拉使能
0:使能
1:使能
4 PFE R/W 无源滤波器使能
0:使能
1:使能
6 DSE R/W 引脚驱动能力配置
0:低驱动强度
1:高驱动强度
8-10 MUX R/W 引脚的复用功能配置。是配置位普通IO口,还是特定的复用功能引脚
15 LK R/W 锁定PCR寄存器。锁定之后,那么PCR寄存器无法被配置,直到下一次复位
16-19 IRQC R/W I/O引脚中断配置。可配置DMA请求、中断触发模式(上升沿下降沿等)
24 ISF R/W 引脚中断状态标志位。该标志位由 IRQC 配置条件进行触发。硬件置位,软件清零。

3.2 PORT_GPCLR/GPCHR寄存器

全局引脚控制寄存器。每一个 PORT 都有对应的 PORT_GPCLR、PORT_GPCHR寄存器,PORT_GPCLR控制低16个pin引脚,PORT_GPCHR控制高16个pin引脚。这两个寄存器的操作只能是32位操作方式,不能按bit读写。

在这里插入图片描述

如果引脚对应的 GPWE 位写1,那么 GPWD 位配置对应引脚的 PCR 寄存器的值就会被更新。这个寄存器的主要作用就是,对引脚模式相同的配置,可以快速的配置多个引脚。

3.3 PORT_GICLR/GICHR寄存器

全局中断控制寄存器。每个 PORT 同样有这两个寄存器,作用和上面的全局引脚控制寄存器是一样的。对应相同中断模式的引脚配置,这个寄存器可以快速配置多个引脚

在这里插入图片描述

3.4 PORT_ISFR寄存器

Interrupt Status Flag Register,中断状态标志寄存器。这个寄存器记录着所有32个pin引脚的中断状态,当配置的中断发生时,对应的引脚的bit位会被硬件置1。软件写1,对该标志位清0。

还又一些是和数字滤波器有关的寄存器,不一一记录了,到时在代码中了解。

4. GPIO寄存器

GPIO模块寄存器,前面介绍过,主要就是输入输出数据寄存器、方向控制、输入使能控制等作用。下面是 GPIO 寄存器的内存映射表。

在这里插入图片描述

大概介绍下每个寄存器的作用。

  • PDOR:端口数据输出寄存器。就是输出引脚的值
  • PSOR:端口输出置位寄存器。就是设置引脚输出高电平的
  • PCOR:端口输出清除寄存器。设置引脚输出低电平
  • PTOR:端口输出翻转寄存器。配置输出引脚电平翻转,1->0,0->1
  • PDIR:端口数据输入寄存器。可以通过该寄存器读取对应引脚的输入电平
  • PDDR:端口数据方向寄存器。设置引脚是输入还是输出。
  • PIDR:端口输入使能寄存器。对应IO引脚位写1,那么这个引脚的输入功能就被禁止了。

猜你喜欢

转载自blog.csdn.net/luobeihai/article/details/131885253
今日推荐