I.MX6ULL裸机开发笔记6:GPIO控制原理

news/2024/10/19 2:19:18/

目录

一、了解GPIO

二、时钟

三、引脚复用 

四、引脚属性

五、控制GPIO总结

六、硬件原理图

一、了解GPIO

数量

5组GPIO(GPIO1~GPIO5),每组最多32个,共124个

  • GPIO1_IO0——GPIO1_IO31
  • GPIO2_IO0——GPIO2_IO21
  • GPIO3_IO0——GPIO3_IO28
  • GPIO4_IO0——GPIO4_IO28
  • GPIO5_IO0——GPIO5_IO11

数据手册描述

26.2 External Signals

二、时钟

clock_controller module(CCM模块)用于配置芯片的各种外设时钟。跟GPIO相关的时钟主要有CCM_CCGR(0~3)寄存器。

数据手册描述

18.4 System Clocks

 18.6.24 CCM Clock Gating Resgister 1(CCM_CCGR1)

         上图中,第一个address表示的该时钟外设在内存中的位置;外设与内核不同,其中的寄存器位数设置需要从手册中具体去查看;

  • 00:所有模式下都关闭外设时钟
  • 01:只有在运行模式下打开外设时钟
  • 10:保留
  • 11:除了停止模式以外,该外设时钟全程使能

 数据手册描述

18.6.23 CCM Clock Gating Register 0(CCM_CCGR0)

三、引脚复用 

相关寄存器:IOMUXC_SW_MUX_CTL_PAD_XXX

数据手册:

 注意:数据手册上对GPIO引脚的命令,不是严格按照顺序命名的,而是根据Table 28来命名的

32.6.157 SW_MUX_CTL_PAD_GPIO1_IO4 SW MUX Control

Register(IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO04)

 可与看出,设置成0101:ALT5->普通GPIO模式

四、引脚属性

相关寄存器:IOMUXC_SW_PAD_CTL_PAD_XXX

数据手册:

 

 注意:数据手册上对GPIO引脚的命令,不是严格按照顺序命名的,而是根据Table 28来命名

32.5.186 SW_PAD_CTL_PAD_GPIO1_IO04 SW PAD Control Register(IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO04)

 

-HYS(bit16):

-PUS(bit15-bit14):用来设置上下拉电阻的大小

-PUE(bit13):当IO作为输入的时候,这个位用来设置IO使用上下拉还是状态保持器

-PKE(bit12):用来使能或者禁止上下拉/状态保持器功能

-ODE(bit11):IO作为输出的时候,此位用来禁止或者使能开漏输出

-SPEED(bit7-bit6):当IO用作输出的时候,此位用来设置IO速度

-DSE(bit5-bit3):当IO用作输出的时候用来设置IO的驱动能力

-SRE(bit0):设置压摆率

控制GPIO引脚

5组GPIO,每组GPIO有8个相关寄存器

  • GPIOx_GDIR:设置引脚方向
  • GPIO_DR:设置输出引脚的电平
  • ...

每个寄存器有32位,分别控制每位的gpio

26.5.2 GPIO direction register(GPIOx_GDIR)

 -0:输入

 -1:输出

26.5.1 GPIO data register (GPIOx_DR)

 

五、控制GPIO总结

  • 使能GPIO时钟
  • 设置引脚复用GPIO
  • 设置引脚属性(上下拉、速率、驱动能力)
  • 控制GPIO引脚输出高低电平

六、硬件原理图

 

 

 


http://www.ppmy.cn/news/18510.html

相关文章

混乱地铁(Python)

Python——广度优先搜索遍历——混乱地铁问题 混乱地铁问题 问题引入 【问题描述】 在某个城市中地铁网极度混乱。一条地铁线路上有n个地铁站,分别编号为1到n。地铁线路上的每一个站都会停靠地铁,每一个地铁站上都有一个数字m,代表从此站出发乘客必须乘坐的站数。每个地铁站…

【Java开发】Spring Cloud 04 :服务治理Nacos

本章节正式进入 Spring Cloud 环节了,首先介绍微服务架构中一个最重要的原理概念:服务治理,在概念讲解之后,讲解介绍 Nacos 服务注册中心的体系结构。1 服务治理1.1 服务治理介绍首先通过一个例子告诉你服务治理解决了什么问题。比…

视频生成动画数据OpenPose+OpenCV

我们只是使用OpenPose,不包括深度学习和代码的部分,会用就OK。 1.打开OpenPose的官网,直接进入安装页面,地址如下: OpenPose: OpenPose Doc - Installation 2.安装的说明,大家要好好看,我们就…

机器学习(三):人工智能主要分支

文章目录 人工智能主要分支 一、计算机视觉 二、语音识别 三、文本挖掘/分类 四、机器翻译 五、机器人 人工智能主要分支 通讯、感知与行动是现代人工智能的三个关键能力,在这里我们将根据这些能力/应用对这三个技术领域进行介绍: 计算机视觉(CV…

力扣sql简单篇练习(三)

力扣sql简单篇练习(三) 1 查找重复的电子邮箱 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT Email FROM Person GROUP BY Email HAVING count(id)>21.3 运行截图 2 每个产品在不同商店的价格 2.1 题目内容 2.1.1 基本题目信息 2.1.2 示…

【C++】位图 | 布隆过滤器

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉哈希函数…

你知道这些快捷键吗?

今天就给大家带来常用的电脑快捷键,让你的办公和学习效率加倍,一起来看看吧! 快捷键一:快速切换窗口 想要快速切换电脑正在使用的窗口程序,就可以使用“AltTab”键即可快速切换。先按住“Alt”按键,再按“T…

【手写 Vue2.x 源码】第三十三篇 - diff算法-收尾+阶段性总结

一,前言 上篇,diff算法-乱序比对,主要涉及以下几个点: 介绍了乱序比对的方案介绍了乱序比对的过程分析实现了乱序比对的代码逻辑 本篇,diff 算法的阶段性梳理 二,初渲染与视图更新流程 Vue 初渲染时&…