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描述
0PSR/W上下拉选择
0:下拉
1:上拉
1PER/W上下拉使能
0:使能
1:使能
4PFER/W无源滤波器使能
0:使能
1:使能
6DSER/W引脚驱动能力配置
0:低驱动强度
1:高驱动强度
8-10MUXR/W引脚的复用功能配置。是配置位普通IO口,还是特定的复用功能引脚
15LKR/W锁定PCR寄存器。锁定之后,那么PCR寄存器无法被配置,直到下一次复位
16-19IRQCR/WI/O引脚中断配置。可配置DMA请求、中断触发模式(上升沿下降沿等)
24ISFR/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,那么这个引脚的输入功能就被禁止了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React Dva项目中路由跳转的方法

接下来 我们来看看路由跳转 先打开 我们Dva项目 然后我们需要在routes 下创建一个自己的路由,如果您尚未掌握在Dva项目中创建路由,可以参考我的文章 React 在Dva项目中修改路由配置,并创建一个自己的路由 然后 我的项目有两个路由 router.js…

ASFF Learning Spatial Fusion for Single-Shot Object Detection 论文学习

1. 解决了什么问题? 目标检测取得了显著成绩,但是检测不同尺度的目标仍然是一个挑战。金字塔或多层级特征是解决目标检测中尺度变化的常用手段。但对于单阶段目标检测器而言,各特征尺度之间不一致性制约了算法的表现。与图像金字塔相比&…

VMware Workstation 18 Tech Preview - 增强的 Windows 11 虚拟机安全性

VMware Workstation 18 Tech Preview - 增强的 Windows 11 虚拟机安全性 VMware Workstation Tech Preview 2023 请访问原文链接:https://sysin.org/blog/vmware-workstation-18/,查看最新版。原创作品,转载请保留出处。 作者主页&#xf…

Pytorch个人学习记录总结 07

目录 神经网络-非线性激活 神经网络-线形层及其他层介绍 神经网络-非线性激活 官方文档地址:torch.nn — PyTorch 2.0 documentation 常用的:Sigmoid、ReLU、LeakyReLU等。 作用:为模型引入非线性特征,这样才能在训练过程中…

[k8s] command和args

k8s中的command和args可以覆盖docker镜像中的entrypoint和cmd。其中,k8s-command可以覆盖docker-entrypoint,k8s-args可以覆盖docker-cmd。参考Difference between Docker ENTRYPOINT and Kubernetes container spec COMMAND? 了解一下entrypoint的意义…

Spring 更简单的读取和存储对象

目录 1.存储 Bean 对象 1.1 前置⼯作:配置扫描路径 1.2 添加注解存储 Bean 对象 1.2.1 Controller(控制器存储) 1.2.2 Service(服务存储) 1.2.3 Repository(仓库存储) 1.2.4 Component&a…

C++---string

String C语言中的字符串和C中的string类标准库中的string类string类的常用接口string类对象的常见构造string类对象的容量操作string类对象的访问及遍历操作 C语言中的字符串和C中的string类 在C语言中,字符串是一个字符数组,它以空字符\0结尾&#xff…

【数据结构】朴素模式匹配 KMP算法

🎇【数据结构】朴素模式匹配 & KMP 算法🎇 🌈 自在飞花轻似梦,无边丝雨细如愁 🌈 🌟 正式开始学习数据结构啦~此专栏作为学习过程中的记录🌟 文章目录 🎇【数据结构】朴素模式匹配 & K…

【数据架构】Data Fabric 架构是实现数据管理和集成现代化的关键

D&A 领导者应该了解数据编织架构的关键支柱,以实现机器支持的数据集成。 在日益多样化、分布式和复杂的环境中,数据管理敏捷性已成为组织的任务关键优先事项。为了减少人为错误和总体成本,数据和分析 (D&A) 领导者需要超越传统的数据…

MyBatis操作数据库

1.MyBatis是什么? MyBatis 是⼀款优秀的持久层框架,它⽀持⾃定义 SQL、存储过程以及⾼级映射。MyBatis 去除了⼏乎所有的 JDBC 代码以及设置参数和获取结果集的⼯作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接⼝和 Java POJO&#xf…

【机器学习】吃瓜教程 | 西瓜书 + 南瓜书 (1)

文章目录 一、绪论1、什么是机器学习?2、基本术语3、假设空间4、归纳偏好5、发展历程 二、模型评估与选择A、一种训练集一种算法2.1 经验误差 与 过拟合2.2 评估方法a) 留出法b) 交叉验证法c) 自助法d) 调参与最终模型 2.3 性能度量a) 错误率与精度b) 查准率、查全率…

matlab dot()函数求矩阵内积,三维 ,多维 详解

matlab dot()函数求矩阵内积,三维 ,多维 详解 Cdot(A,b,X),这个参数X 只能取1,或者2。1 表示按列,2表示按行,如果没有参数。默认按列。 1)按列优先计算 Cdot(A,B)dot(A,B,1)[a1*b1a4*b4 ,a2*b2a5*b5 ,a…

视频拼接得AI三维生成方案-开端(一)

想使用二维得图像生成三维得空间图像,英伟达有完整得方案,开源,但是三维拼接不一样,只需要二维,并且要实时,如何生成是我每天都在思考得东西。 cnn 提取特征器和自编码 在训练细胞神经网络时,问…

大数据分析案例-基于LightGBM算法构建乳腺癌分类预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

jmeter软件测试实验(附源码以及配置)

jmeter介绍 JMeter是一个开源的性能测试工具,由Apache软件基金会开发和维护。它主要用于对Web应用程序、Web服务、数据库和其他类型的服务进行性能测试。JMeter最初是为测试Web应用程序而设计的,但现在已经扩展到支持更广泛的应用场景。 JMeter 可对服务…

AcWing 244. 谜一样的牛—树状数组、二分

题目链接 AcWing 244. 谜一样的牛 题目描述 分析 这道题挺巧妙的,感觉树状数组方面的题就是比较难想,先分析一下样例,样例中每头牛前面比自己低的牛的数量分别为 0 1 2 1 0牛的高度是1~n的排列,如何分析出每头牛的高度呢&…

API Testing 一个基于 YAML 文件的开源接口测试工具

目录 前言: 如何使用? 本地模式 服务端模式 文件格式 后续计划 前言: API Testing 是一个基于 YAML 文件的开源接口测试工具,它可以帮助开发者快速地进行接口测试。 在选择工具时,可以从很多方面进行考量、对比…

【历史上的今天】7 月 20 日:人类登上月球;数据仓库之父诞生;Mac OS X Lion 发布

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 7 月 20 日,在 2005 年的今天,时任微软全球副总裁的李开复加盟谷歌担任谷歌全球副总裁及中国区总裁。谷歌公司在发布聘请李开复消息的同…

LiveNVR监控流媒体Onvif/RTSP功能-拉转Onvif/RTSP/RTMP/FLV/HLS直播流流媒体服务视频广场页面集成视频播放集成说明

LiveNVR拉转Onvif/RTSP/RTMP/FLV/HLS直播流流媒体服务视频广场页面集成视频播放集成说明 1、视频页面集成1.1、关闭接口鉴权1.2、视频广场页面集成1.2.1、隐藏菜单栏1.2.2、隐藏播放页面分享连接 1.3、其它页面集成 2、播放分享页面集成2.1、获取 iframe 代码2.2、html 集成ifr…

ThreadPoolExecutor自定义线程池|拒绝策略|线程工厂|统一捕获异常

线程池的7大参数含义介绍 corePoolSize:池中一直保持的线程的数量。 maximumPoolSize:池中允许的最大的线程数。 keepAliveTime:当线程数大于核心线程数的时候,线程在最大多长时间没有接到新任务就会终止释放, 最终…