H3 GPIO笔记

2023-11-17

NanoPi-NEO-Core最近买了一块,这个板子使用全志H3。查看H3的数据手册,把GPIO这部分做个笔记。

H3有7组GPIO,如下

分别是PA,PC,PD,PE,PF,PG,PL.没有PB这一组

PA有22个端口

PC有19个端口

PD有18个端口

PE有16个端口

PF有7个端口

PG有14个端口

PL有12个端口

其中两组IO支持中断。PA和PG支持中断

PIO的基址为0x01c2_0800

抛却中断配置,主要PIO的寄存器有4个,Pn_CFG, Pn_DAT,Pn_DRV,Pn_PUL

每组IO有4个Pn_CFG寄存器,Pn_CFG0-Pn_CFG3,每4bit配置一个端口模式

                           PA有22个端口,则需要4×22=88bit,则需要配置寄存器Pn_CFG0-Pn_CFG2

                例如PA的端口0配置,在Pn_CFG0的bit2-0,bit3保留位

 Pn_CFG地址计算:基址+n*36+(0-3)*4.

例如:

        PA_CFG0地址=0x01c2_0800 + 0×36 +0×4=0x01c2_0800

        PA_CFG1地址=0x01c2_0800 + 0×36 +1×4=0x01c2_0804

        PA_CFG2地址=0x01c2_0800 + 0×36 +2×4=0x01c2_0808

        PA_CFG3地址=0x01c2_0800 + 0×36 +3×4=0x01c2_080c

        ....

        PC_CFG0地址=0x01c2_0800 + 1×36 +0×4=0x01c2_0824

每组IO有1个Pn_DAT寄存器,每一bit代表IO的状态。当IO配置输出,写此寄存器改变输出状态,当配置输入,读此值代表输入状态。

Pn_DAT地址计算:基址+n*36+(4)*4

例如:

        PA_DAT地址=0x01c2_0800 + 0×36 +4×4=0x01c2_0810

        PC_DAT地址=0x01c2_0800 + 1×36 +4×4=0x01c2_0834

        .....

每组IO由2个Pn_DRV寄存器。此寄存器中每2bit表示一个IO的驱动能力。共有level0-level3

Pn_DRV 地址计算:基址+n*36+(5,6)*4

例如:

PA_DRV0地址=0x01c2_0800 + 0×36 +5×4=0x01c2_0814

PA_DRV1地址=0x01c2_0800 + 0×36 +6×4=0x01c2_0818

每组IO有2个Pn_PUL寄存器,此寄存器中每2bit表示IO上下拉配置。2'b00:上下拉禁止,2'b01:上拉,2'b10:下拉,2'b11:保留

Pn_PUL地址计算:基址+n*36+(7,8)*4

例如:

PA_PUL0地址=0x01c2_0800 + 0×36 +7×4=0x01c2_081c

PA_PUL1地址=0x01c2_0800 + 0×36 +8×4=0x01c2_0820

综上所述,每组IO有9个寄存器,所占空间9×4=36=0x24字节空间

io中断寄存器

只有PA和PG支持中断

 每组IO的中断,也是4类寄存器:PA_INT_CFG,PA_INT_CTL,PA_INT_STA,PA_INT_DEB

PA_INT_CFG0-3:每4bit配置一个IO的中断类型

        4'b0000:上升沿

        4'b0001:下降沿

        4'b0010:高电平

        4'b0011:低电平

        4'b0100:双边沿

        其它:保留

PA_INT_CTL:每bit控制中断的使能和禁止

PA_INT_STA:中断状态,每一bit表示中断状态,挂起或者没有中断挂起

PA_INT_DEB:中断防抖设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

H3 GPIO笔记 的相关文章

  • 伸手党福利文,Python入门大全

    文章目录 一 自学时间安排 Day1 Day15 Python语言基础 Day16 Day20 Python语言进阶 Day31 Day35 Linux操作系统 Day35 Day40 数据库基础和进阶 Day41 Day55 实战Djan
  • 编写函数对字符串进行反向排列

    1 题目 编写一个函数 reverse string char string 递归实现 实现 将参数字符串中的字符反向排列 不是逆序打印 要求 不能使用C函数库中的字符串操作函数 比如 char arr abcdef 逆序之后数组的内容变成

随机推荐

  • Sqlite数据库增删改查

    1 应用部分 package com example language import androidx appcompat app AppCompatActivity import android content ContentValues
  • 超级全的停用词整理

    一切看似逝去的 都不曾离开 你所给与的爱与温暖 让我执着地守护着这里 尤而小屋 一个温馨的小屋 小屋主人 一手代码谋求生存 一手掌勺享受生活 欢迎你的光临 人民 末 末 啊 阿 哎 哎呀 哎哟 唉 俺 俺们 按 按照 吧 吧哒 把 罢了 被
  • Vim编辑器使用

    一 Vim 编辑器简介 vi 编辑器是 Linux 里最基本的文本编辑器 系统自动安装了 vi 而 vim 是 vi 的加强版 vi 不显示高亮颜色语法 vim 能显示高亮颜色语法 如果系统没有自动安装 vim 需自行下载安装 二 Vim
  • Python实现登录接口测试

    一 准备数据 1 获得测试路径 即URL 2 准备测试数据 获取方式 二 可以先使用postman测试 调通后再使用Python实现 三 编写Python
  • MATLAB绘图函数fplot详解

    MATLAB绘图函数fplot详解 一 fplot基本语法 fplot不同于plot 主要用来根据函数表达式和自变量所属区间来直接绘制函数曲线 不需要给出像plot需要给出的自变量和因变量的数组 因此当函数表达式已知的情况 使用fplot绘
  • 倚天服务器里怎么修改装备,倚天私服完整GM命令

    倚天私服完整GM命令 本文出处 网游动力作者 本站发布时间 2009 07 26阅读次数 save命令 save XXX 手动保存玩家数据 save all 手动保存当前地图所有玩家数据 a命令 a ymir 999 调整ymir等级为99
  • 观察者模式和发布订阅模式

    观察者模式与发布订阅模式的区别 1 观察者模式中只有观察者和被观察者 发布订阅模式中有发布者 订阅者 调度中心 2 观察者模式是被观察者发生变化时自己通知观察者 发布订阅模式是通过调度中心来进行分布订阅操作 vue2中响应式数据就是由Obj
  • 【大数据技术】Spark MLlib机器学习特征抽取 TF-IDF统计词频实战(附源码和数据集)

    需要源码和数据集请点赞关注收藏后评论区留言私信 特征抽取 TF IDF TF IDF是两个统计量的乘积 即词频 Term Frequency TF 和逆向文档频率 Inverse Document Frequency IDF 它们各自有不同
  • QT笔记- 对QSring字符串内容进行过滤筛选或对QLineEdi的可输入内容进行控制,使其不含某些字符、只含某些字符或只含特定格式的字符串,如只含字母数字和下划线

    QSring字符串内容的过滤筛选 QString类函数contains 用于判断字符串中是否含有某些字符 其有两个重载函数 第一个是简单筛选 第二个是使用 正则表达式 之后有解释 进行筛选 两函数原型为 bool QString conta
  • protocol buffer 编解码

    平时的开发中使用pb格式协议较多 大致了解了一下pb的编解码 即序列化和反序列化 本文参考官方文档 https developers google com protocol buffers docs encoding hl zh cn 先看
  • Word去除多余的页眉

    word去除多余的页眉 1 在正式页眉开始的页面点击鼠标 此时光标位于要删除页眉下划线页的首部 2 单击上方菜单栏的 页面布局 分隔符 分节符 下一页 3 在正式页眉开始的地方双击鼠标 进入 页眉编辑 状态 4 单击 页眉和页脚 将 链接到
  • SVN时代...

    SourceForge开始全面支持Subversion 这真是个好消息 这预示着CVS独霸天下的时代快要结束 SVN时代就要来临 和CVS比起来 SVN的确很强大 这就像它的出现就是为了取代CVS一样 它的目标快要实现了 具体的功能特性大家
  • Cocos2d-x 3.17.1 Android Studio环境搭建和创建编译项目和真机调试

    eclipse NDK参考 https www cnblogs com l d d p 6531557 html 最近项目上需要用Cocos2d x在Android智能硬件上进行开发 很早之前搭建过Cocos2d x3 15 1 Eclip
  • 利用IDM实现百度云满速下载

    一 IDM Internet Download Manager 简称 IDM 是一种将下载速度提高5倍的工具 可以恢复和安排下载 由于连接丢失 网络问题 计算机关机或意外停电等原因 全面的错误恢复和恢复功能将重新启动中断或中断的下载 简单的
  • MATLAB绘制正弦函数与余弦函数的线性组合曲线

    h0 figure toolbar none position 200 150 450 350 name 实例11 x 0 pi 20 2 pi y1 sin x y2 cos x h1 stem x y1 y2 画出线性组合的图 hold
  • SQL注入——学生选课系统注入

    目录 前言 一 实验环境 二 实验步骤 1 万能密码 2 堆叠注入 3 报错注入 4 时间盲注 前言 本次实验利用教师指定的学生选课管理系统进行SQL注入 包含万能密码登录 堆叠注入 报错注入和时间盲注 一 实验环境 Windows10虚拟
  • QT 15--获取任何种类文件的某些文件属性:大小、创建时间、上次修改时间等等

    1 首先说一些 如果是mainwindow的QT工程 如果打算做自己手写ui 界面的话 该如何将自己写的内容添加到mainwindow界面呢 方法为 新建一个widget类 然后将所有零件都用布局布置好后 只需将总布局添加到widet 然后
  • KMP时间复杂度分析

    比较过程分析 比较次数 比较次数 红色 蓝色 蓝色部分是相比暴力求解 节省下的比较次数 周期 从比较次数可以看出 呈现 1 1 1 1 5 这样的周期 一个周期内的比较次数 8 周期长度 5 周期个数 n 5 比较总次数 周期个数 一个周期
  • 学成在线笔记+踩坑(10)——课程搜索、课程发布时同步索引库。

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 牛客面试题 java黑马笔记 目录 1 检索模块 需求分析 1 1 全文检索介绍
  • H3 GPIO笔记

    NanoPi NEO Core最近买了一块 这个板子使用全志H3 查看H3的数据手册 把GPIO这部分做个笔记 H3有7组GPIO 如下 分别是PA PC PD PE PF PG PL 没有PB这一组 PA有22个端口 PC有19个端口 P