当前位置: 首页 > article >正文

General Purpose I/O Ports and Peripheral I/O Lines (Ports)

文章目录

  • 1. 介绍
  • 2. 框图
  • 3. 主要功能
    • 3.1 输入输出模式控制
    • 3.2 输出状态控制
      • 3.2.1 OUT寄存器
      • 3.2.2 OMR寄存器(常用)
      • 3.2.3 OMSR和OMSRx寄存器(置1)
      • 3.2.4 OMCR和OMCRx寄存器(清0)
    • 3.3 输入状态寄存器
    • 3.4 Pin控制器选择
    • 3.5 Pad和LVDS配置
    • 3.6 紧急停止功能

1. 介绍

基本功能和STM32的GPIO基本一致,常用的输入、输出模式均支持,Ifx GPIO具体支持的功能如下:

  • 一个Port最多控制16个端口
  • 每个端口线有输出使能
  • 每个输出端口支持7个复用功能
  • 支持输出端口直接受外设控制
  • 每个IO特性可控,如驱动能力、IO速度、上下拉、推挽或者开漏输出、TTL/CMOS自动输入电平选择
  • 支持紧急停止功能,允许关闭SMU配置的或者特殊端口的输出驱动
  • 对支持LVDS功能的端口,将控制LVDS特性,允许在LVDS和CMOS模式间切换

其中第4、6、7相较STM32的GPIO比较特殊。

2. 框图

在这里插入图片描述

3. 主要功能

正常使用重点关注OMR和IOCR寄存器即可。

3.1 输入输出模式控制

共有四组IOCRx寄存器,用于控制输入(三态、上拉、下拉)和输出(开漏、推挽、复用)模式
在这里插入图片描述
在这里插入图片描述

注意:此处没有设置模拟输入的选项,具体是通过PDISC寄存器进行区分该引脚是模拟还是数字输入。
在这里插入图片描述

3.2 输出状态控制

Ifx提供了多个寄存器控制某个引脚的状态。

3.2.1 OUT寄存器

通过OUT寄存器可以直接控制当前Port组所有Pin的状态。
缺点:实际应用中,经常只会控制其中一个GPIO,使用该寄存器,需要先读在改,否则会影响其他Pin。
在这里插入图片描述

3.2.2 OMR寄存器(常用)

通过该寄存器,可以对某个Pin进行保持、清0、置1、翻转功能(个人认为翻转功能比较好用)。
在这里插入图片描述
通过PSx和PCLx不同组合方式实现不同功能:
在这里插入图片描述

3.2.3 OMSR和OMSRx寄存器(置1)

前者设置整个Port组所有的Pin为高电平,后者将16个Pin分为4组进行设置。
在这里插入图片描述
OMSRx共四个寄存器
在这里插入图片描述

3.2.4 OMCR和OMCRx寄存器(清0)

与OMSR寄存器思路一致,前者是用于置1,后者用于清0.
在这里插入图片描述
在这里插入图片描述

3.3 输入状态寄存器

没啥特殊的,不管GPIO是输入输出功能,该寄存器都能读取GPIO端口状态
在这里插入图片描述

3.4 Pin控制器选择

除GPIO模块可以控制输入输出引脚外,可以将Pin控制权限直接释放给其他外设模块,例如Eth\SCR模块。
在这里插入图片描述

3.5 Pad和LVDS配置

Pad一般情况下使用默认配置即可。LVDS主要针对速率要求较高的场景,例如QSPI 20Mbps的通信场景。
在这里插入图片描述在这里插入图片描述

LVDS使用较少,相关资料,见手册,此处不做过多介绍。
以QSPI CLK为例,需注意普通的GPIO,最多能输出20M的时钟,在往上,物理波形很差,通信内容无法保证,使用支持LVDS Pad的引脚(例如P22.1)可以达到40M(粗略测试的数据,仅功参考)。

是否支持LVDS可以通过芯片手册判断
在这里插入图片描述

3.6 紧急停止功能

配合ES模块使用,当出现紧急停止信号,将特定引脚的输出功能切换为输入功能。
Emergency Stop (ES)
在这里插入图片描述


http://www.kler.cn/news/364571.html

相关文章:

  • 跨平台 OTT 项目使用 Google Analytics 替代 KPI log
  • Docker快速安装Grafana
  • APP综合应用之业务场景脚本测试任务(5)--多重继承与总结
  • 网络编程(21)——通过beast库快速实现http服务器
  • 【AscendC算子开发】笔记2 算子高级开发和调试调优
  • 数据挖掘示例
  • JVM成神之路
  • 测试学习-测试分类
  • Spring Boot框架中小企业设备监控系统开发
  • c++中虚函数表属于类还是属于对象?
  • Ubuntu20.04 更新Nvidia驱动 + 安装CUDA12.1 + cudnn8.9.7
  • 【数据结构与算法】力扣 46. 全排列
  • 中国人寿财险青岛市分公司引领科技金融新风尚
  • HarmonyOS 5.0应用开发——应用打包HAP、HAR、HSP
  • 新160个crackme - 082-phox.1
  • Elasticsearch在分布式集群中进行数据分片的策略能否完全避免数据热点?数据分片分布不均会导致性能瓶颈吗?如何通过实践优化分片分布?
  • 本地生活平台开发搭建方案 同城O2O电商平台推广运营
  • OpenCV视觉分析之运动分析(2)背景减除类:BackgroundSubtractorKNN的使用
  • 缓存雪崩是什么
  • SparseRCNN 模型,用于目标检测任务
  • 云计算行业应用实训室建设方案
  • es 常用命令(已亲测)
  • Unity编辑器 连接不到SteamVR问题记录
  • 一个批量输出PDF页数的python程序
  • 常用MQ组件选型时需要考虑的问题
  • 独家大模型经典面试秘籍:问题答案超详细,收藏此文就够咯