zynq PS端 GPIO

news2024/11/17 7:36:46

记录一下PS端 GPIO

1. GPIO 简介

        ZYNQ PS 中包含一组丰富的外设,用于和外部设备进行通信。ZYNQ 的 IO 包括对外连接的 GPIO 和内部 PS PL 通信的 AXIO。其中对外的 GPIO 又分为两种:MIO EMIO

        MIO 和 EMIO 只是 GPIO 信号的两种接口,MIO 直连到PSEMIO 则是 PS 扩展到 PL,从 PL 接出的 I/OEMIO 依然属于 PS,只是连接到了 PL,再从 PL 输出信号。所以 MIO 不需要管脚约束,而 EMIO 需要管脚约束。

        MIO I/O 外设连接的基础,软件程序将 I/O 信号路由到 MIO 引脚。由于MIO 引脚数量有限,I/O 外围信号也可以通过 EMIO 接口路由到 PL(包括 PL 设备引脚),用于访问更多的设备引脚(PL引脚)和允许 I/O 外设控制器接口到 PL中的用户逻辑,如下图所示。

        I/O控制器信号的 I/O 复用是不同的,也就是说,一些 IOP I/O Peripheral)信号仅在 MIO 接口上可用,如 USB 外设信号;一些信号在 MIO EMIO 接口上可用,如 UART 信号;而一些接口信号只能在 EMIO 接口上访问,如 UART的 Modem signals 接口信号。 I/O 复用如下图   所示。

2. GPIO 通道

INT_MASK
This register is read-only and shows which bits are currently masked and which are un-masked/enabled.
这个寄存器是只读的,并显示哪些位当前被屏蔽,哪些位未被屏蔽/启用。
INT_EN
Writing a 1 to any bit of this register enables/unmasks that signal for interrupts. Reading from this register returns an unpredictable value.
将1写入此寄存器的任意位,可启用/揭示中断信号。
从这个寄存器中读取会返回一个不可预测的值。
INT_DIS
Writing a 1 to any bit of this register masks that signal for interrupts.
Reading from this register returns an unpredictable value.
对这个寄存器的任意一点写入1都会屏蔽中断的信号。
从这个寄存器中读取会返回一个不可预测的值。
INT_STAT
This registers shows if an interrupt event has occurred or not.
Writing a 1 to a bit in this register clears the interrupt status for that bit.
Writing a 0 to a bit in this register is ignored.
此寄存器显示是否发生了中断事件。
在这个寄存器中写入一个1到一个位可以清除该位的中断状态。
在此寄存器中写入0到某个位将被忽略。
INT_TYPE
This register controls whether the interrupt is edge sensitive or level sensitive.
此寄存器控制中断是对边缘触发还是对电平触发。
INT_POLARITY
This register controls whether the interrupt is active-Low or active High (or
falling-edge sensitive or rising-edge sensitive).
此寄存器控制中断是低电平还是高电平(或下降缘触发或上升缘触发)。
INT_ON_ANY
If INT_TYPE is set to edge sensitive, then this register enables an interrupt event on both rising and falling edges.
This register is ignored if INT_TYPE is set to level sensitive.
如果INT_TYPE被设置为边缘触发,那么将在上升和下降边缘启用中断事件。
如果将INT_TYPE设置为电平触发,则将忽略此寄存器。
DATA_RO
This register enables software to observe the value on the device pin. If the GPIO signal is configured as an output, then this would normally reflect the value being driven on the output. Writes to this register are ignored.
Note: If the MIO is not configured to enable this pin as a GPIO pin, then DATA_RO is unpredictable because software cannot observe values on non-GPIO pins through the GPIO registers.
此寄存器使软件能够观察设备引脚上的值。如果GPIO信号被配置为一个输出,那么这通常会反映在输出上被驱动的值。写入此寄存器将被忽略。
注意:如果MIO没有配置为启用此引脚作为GPIO引脚,那么DATA_RO是不可预测的,因为软件无法通过GPIO寄存器观察非GPIO引脚上的值。
DATA
This register controls the value to be output when the GPIO signal is configured as an output. All 32 bits of this register are written at one time. Reading from this register returns the previous value written to either DATA or MASK_DATA_{LSW,MSW}; it does not return the current value on the device pin.
此寄存器控制当GPIO信号配置为输出时要输出的值。这个寄存器的所有32位都是一次写入的。从此寄存器读取将返回先前写入DATA或MASK_DATA_{LSW,MSW}的值;它不返回设备引脚上的当前值。
MASK_DATA_LSW
This register enables more selective changes to the desired output value.
Any combination of up to 16 bits can be written. Those bits that are not written are unchanged and hold their previous value.
Reading from this register returns the previous value written to either DATA or MASK_DATA_{LSW,MSW}; it does not return the current value on the device pin. This register avoids the need for a read-modify-write sequence for unchanged bits.
此寄存器允许对所需的输出值进行更多选择性的更改。最多16位的任何组合。那些未写入的位保持不变,并保持它们以前的值。从此寄存器读取将返回先前写入DATA或MASK_DATA_{LSW,MSW}的值;它不返回设备引脚上的当前值。这个寄存器避免了对不变的位: 读-修改-写。
MASK_DATA_MSW
This register is the same as MASK_DATA_LSW, except it controls the upper16 bits of the bank.
这个寄存器与MASK_DATA_LSW相同,只是它控制了bank的上16位。
DIRM
Direction Mode. This controls whether the I/O pin is acting as an input or an output.
Since the input logic is always enabled, this effectively enables/disables the output driver. When DIRM[x]==0 , the output driver is disabled.
方向模式。它控制输入/输出引脚是作为输入还是作为输出。
由于输入逻辑总是启用的,因此这可以有效地启用/禁用输出驱动程序。当DIRM[x]==0时,输出驱动程序被禁用。
OEN
Output Enable. When the I/O is configured as an output, this controls whether the output is enabled or not. When the output is disabled, the pin is 3-stated. When OEN[x]==0 , the output driver is disabled.
Note: If MIO TRI_ENABLE is set to 1 , enabling 3-state and disabling the driver, then OEN is
ignored and the output is 3-stated.
输出启用。当I/O配置为输出时,它控制是否启用输出。当输出被禁用时,引脚是三态。当OEN[x]==0时,输出驱动程序被禁用。
注意:如果MIO TRI_ENABLE设置为1,启用三态并禁用驱动程序,则OEN将被忽略,输出为三态。

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

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

相关文章

wangEditor富文本实现自定义插入数据(手把手)

插件版本如下: vue2版本 “@wangeditor/editor”: “^5.1.23”, “@wangeditor/editor-for-vue”: “^1.0.2”, 文件截图如下: 一、plugins/index.js 入口文件,整合模块导出外部使用 import withMention from ./plugin import renderElemConf from ./render-elem import …

ES升级--04--SpringBoot整合Elasticsearch

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 SpringBoot整合Elasticsearch1.建立项目2.Maven 依赖[ES 官方网站:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.8/index.html](…

C++ vector 模拟实现

vector的底层也是一个动态数组,他与 string 的区别就是,string 是专门用来存储字符类数据的,为了兼容C语言,使用C语言的接口,在string的动态数组内都会都开一块空间用来存 \0 ,而vector则不会。 首先我们要…

水电收费远程抄表

1.前言:从传统到现代的改变 水电收费远程抄表,是科学技术在公共服务领域的一次重要运用,它改变了过去人力上门服务抄表的传统模式,提高了高效率,降低了偏差,为群众与企业带来了极大的便利。这种系统运用智…

富途面试题:用面向对象的思想设计人关门的场景

我工作两年后,有一次不成功的富途证券的面试,印象非常深刻,面试官提出了一个看似简单实则充满深意的问题:如何用面向对象的思想设计一个人关门的场景? 我当时是这样设计的,创建两个类:Person和D…

Linux命令那么多,先来一篇文件和目录管理命令!

💡本文建议大家收藏! 文件和目录管理命令 1. ls - 列出目录内容 ls命令是Linux中最常用的命令之一,用于列出目录中的文件和子目录。 ls显示当前目录下的所有文件和目录。 ls -l以长格式列出目录内容,显示文件权限、所有者、大…

云途探索——移动云云日志接入实践

目录 1 前言2 新手入门2.1 前置条件2.2. 配置采集对象及规则2.3 安装Agent2.4 日志管理 3 使用场景3.1 优势3.2 应用场景 4 总结 1 前言 随着人工智能、大数据、物联网以及云计算时代的到来,在日志数据量持续爆增、日志数据日益多样化的今天,传统日志服…

Java(六)——抽象类与接口

文章目录 抽象类和接口抽象类抽象类的概念抽象类的语法抽象类的特性抽象类的意义 接口接口的概念接口的语法接口的特性接口的使用实现多个接口接口与多态接口间的继承抽象类和接口的区别 抽象类和接口 抽象类 抽象类的概念 Java使用类实例化对象来描述现实生活中的实体&…

[数据集][图像分类]家庭场景下的家具分类数据集1010张101类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):1010 分类类别数:101 类别名称:[“bath_bath”,“bath_heated_t…

java版CRM客户关系管理系统源码-CRM客户关系管理系统的技术架构与功能实现

CRM客户关系管理系统的技术架构与功能实现 一、引言 随着市场竞争的日益激烈,客户关系管理(CRM)已成为企业赢得市场、提升客户满意度、促 进业务增长的关键手段。本文旨在介绍一款先进的CRM客户关系管理系统的技术架构与功能实现&#xff0…

C++:类的内存分布

类的成员变量和方法是分开存储的,内存给类实例化出的对象开辟空间时只开辟成员变量所占用的空间。类中的所有方法(成员函数)都会放在代码区,所以类的大小一般只计算类中成员变量的对齐之后大小的综合(如果没有虚函数的…

Java设计模式 _行为型模式_观察者模式

一、观察者模式 1、观察者模式 观察者模式 ( Observer Pattern )是一种行为型模式。 常用于对象间存在一对多关系时,比如,当一个对象被修改时,需要自动通知它的依赖对象。 2、实现思路 (1)、定义被观察者的行为&…

ETLCloud中如何执行SQL脚本

SQL脚本 在数据库管理与数据分析的广阔领域中,SQL(Structured Query Language,结构化查询语言)脚本扮演着举足轻重的角色。作为一门专为关系型数据库设计的编程语言,SQL不仅能够执行数据的检索、更新、插入及删除等基…

算法与数据结构:二叉排序树与AVL树

ACM大牛带你玩转算法与数据结构-课程资料 本笔记属于船说系列课程之一,课程链接: 哔哩哔哩_bilibilihttps://www.bilibili.com/cheese/play/ep66799?csourceprivate_space_class_null&spm_id_from333.999.0.0 你也可以选择购买『船说系列课程-年度会…

便携式应急气象站:应急气象监测装备

TH-BQX5便携式应急气象站,作为现代气象监测的重要装备,以其独特的便携性、高效性和灵活性,在应急气象监测领域发挥着至关重要的作用。这类气象站不仅为灾害预警、环境保护、农业生产等多个领域提供了实时、准确的气象数据,还在突发…

uniapp通过Canvas绘制网格(心电图,坐标纸等可用)

本篇文档是Canvas绘制心电图的第一个部分&#xff0c;想了解详情的可以关注后学习交流。 心电图的最底层需要一个网状底层&#xff0c;来方便进行数据的测量。 一、白底分大、中、小三个区域的网格 1、首先是HTML部分 <!DOCTYPE html> <html lang"en">…

DNS设置(linux)

1.配置dns需要现在/etc/sysconfig/network-scripts/目录下的ifcfg-ens33(后面数字也可能是其他的)中配置DNS 2.编辑/etc/resolv.conf文件&#xff0c;将上面网卡中加的dns服务器ip添加到此文件 vi /etc/resolv.conf重启网络配置 service network restart常用的dns的ip 国内…

qt中实现多语言功能

qt中实现多语言功能 原理&#xff1a; 其本质就是生成ts文件&#xff0c;然后使用Linguist软件手工翻译&#xff0c;再生成qm文件&#xff0c;最后在主程序的开始加载不同的qm文件&#xff0c;实现多语言。 步骤&#xff1a; 修改程序文件 在pro文件中加入说明 TRANSLATI…

通讯录恢复怎么办?保护珍贵联系信息的2个必备技能!

手机通讯录扮演着重要的角色&#xff0c;它不仅仅是一个简单的联系方式列表&#xff0c;更是我们与亲朋好友、同事、业务伙伴等之间关系的见证。万一不慎丢失或误删通讯录&#xff0c;学会通讯录恢复的技能变得非常重要。本文将为你介绍几种保护珍贵联系信息的必备技能&#xf…

这样写代码太优雅了吧

文章目录 优化案例初次优化再次优化看看Spring源码的处理 优化案例 假设一个场景&#xff0c; 开发代码时&#xff0c;需要对类中的方法进行遍历&#xff0c;判断有没有注解NotNull&#xff0c;暂时没有合适的工具类&#xff0c;需要自己手搓一个。 无须多想&#xff0c;分分钟…