can使能上拉 gpio_IMX6ULL 的 GPIO 操作方法
来源:百问网
作者:韦东山
本文字数:1652,阅读时长:4分钟
- CCM: Clock Controller Module (时钟控制模块)
- IOMUXC : IOMUX Controller,IO 复用控制器
- GPIO: General-purpose input/output,通用的输入输出口
1、IMX6ULL 的 GPIO 模块结构
参考资料:芯片手册《Chapter 28: General Purpose Input/Output (GPIO)》
有 5 组 GPIO(GPIO1~GPIO5),每组引脚最多有 32 个,但是可能实际上并没有那么多。
- GPIO1 有 32 个引脚:GPIO1_IO0~GPIO1_IO31;
- GPIO2 有 22 个引脚:GPIO2_IO0~GPIO2_IO21;
- GPIO3 有 29 个引脚:GPIO3_IO0~GPIO3_IO28;
- GPIO4 有 29 个引脚:GPIO4_IO0~GPIO4_IO28;
- GPIO5 有 12 个引脚:GPIO5_IO0~GPIO5_IO11;
GPIO 的控制涉及 4 大模块:CCM、IOMUXC、GPIO 模块本身,框图如下:
2、CCM 用于设置是否向 GPIO 模块提供时钟
参考资料:芯片手册《Chapter 18: Clock Controller Module (CCM)》
GPIOx 要用 CCM_CCGRy 寄存器中的 2 位来决定该组 GPIO 是否使能。哪组 GPIO 用哪个 CCM_CCGR 寄 存器来设置,请看上图红框部分。
CCM_CCGR 寄存器中某 2 位的取值含义如下:
① 00:该 GPIO 模块全程被关闭
② 01:该 GPIO 模块在 CPU run mode 情况下是使能的;在 WAIT 或 STOP 模式下,关闭
③ 10:保留
④ 11:该 GPIO 模块全程使能
GPIO2 时钟控制:
GPIO1、GPIO5 时钟控制:
GPIO3 时钟控制:
GPIO4 时钟控制:
3、IOMUXC:引脚的模式(Mode、功能)
参考资料:芯片手册《Chapter 32: IOMUX Controller (IOMUXC)》。
对于某个/某组引脚,IOMUXC 中有 2 个寄存器用来设置它:
① 选择功能:
IOMUXC_SW_MUX_CTL_PAD_ :Mux pad xxx,选择某个 pad 的功能
IOMUXC_SW_MUX_CTL_GRP_:Mux grp xxx,选择某组引脚的功能
某个引脚,或是某组预设的引脚,都有 8 个可选的模式(alternate (ALT) MUX_MODE)。
比如:
② 设置上下拉电阻等参数:
IOMUXC_SW_PAD_CTL_PAD_:pad pad xxx,设置某个 pad 的参数
IOMUXC_SW_PAD_CTL_GRP_:pad grp xxx,设置某组引脚的参数
比如:
4、GPIO 模块内部
我们暂时只需要关心 3 个寄存器:
① GPIOx_GDIR:设置引脚方向,每位对应一个引脚,1-output,0-input
② GPIOx_DR:设置输出引脚的电平,每位对应一个引脚,1-高电平,0-低电平
怎么编程
5、读 GPIO
翻译一下:
① 设置 CCM_CCGRx 寄存器中某位使能对应的 GPIO 模块 // 默认是使能的,上图省略了
② 设置 IOMUX 来选择引脚用于 GPIO
③ 设置 GPIOx_GDIR 中某位为 0,把该引脚设置为输入功能
④ 读 GPIOx_DR 或 GPIOx_PSR 得到某位的值(读 GPIOx_DR 返回的是 GPIOx_PSR 的值)
6、写 GPIO
翻译一下:
① 设置 CCM_CCGRx 寄存器中某位使能对应的 GPIO 模块 // 默认是使能的,上图省略了
② 设置 IOMUX 来选择引脚用于 GPIO
③ 设置 GPIOx_GDIR 中某位为 1,把该引脚设置为输出功能
④ 写 GPIOx_DR 某位的值
需要注意的是,你可以设置该引脚的 loopback 功能,这样就可以从 GPIOx_PSR 中读到引脚的有实 电平;你从 GPIOx_DR 中读回的只是上次设置的值,它并不能反应引脚的真实电平,比如可能因为硬件 故障导致该引脚跟地短路了,你通过设置 GPIOx_DR 让它输出高电平并不会起效果。
「新品首发」STM32MP157开发板火爆预售!首批仅300套
点击“了解更多”相关章节
can使能上拉 gpio_IMX6ULL 的 GPIO 操作方法相关推荐
- can使能上拉 gpio_单片机GPIO输入电压不可过大,最好使能上拉
可用肖特基二极管,正向串联进电路,防止引脚接到高于3v电压上,倒流进芯片内部,烧毁芯片. 肖特基二极管,正向导通电压较小,一般0.2v. 可串联进电源线中,防止正负接反. 如果需要接入5v电压到单片机 ...
- TI芯片GPIO的内部上拉
TI的DSP芯片,GPIO的内部上拉在默认情况下是使能的(能够配置为PWM输出的GPIO除外,这类GPIO默认情况下内部上拉被禁用).对于在默认情况下内部上拉被使能的GPIO来说,有些情况下,需要对其 ...
- # STM32系列-串口-uart-软件引脚内部上拉 或者 外部电阻上拉-原因问题的搜寻
# STM32系列-串口-uart-引脚上拉-原因问题的搜寻 前言-(知道一个结论正确,也要知道它为什么正确) 问题描述 查找过程 (1)上网查资料 (2)请教大佬 (3)查代码-找手册-验证 一些参 ...
- 上拉电阻和下拉电阻的区别
在初学arduino时,感觉最难理解的概念就是上拉电阻和下拉电阻了,不过你一旦理解了这个,后面的大部分都比较简单了! 简介 在数字逻辑电路中,一个信号不是0,就是1.正是因为这样,数字电路的设计才简单 ...
- 上拉电阻与下拉电阻总结 与 GPIO框图分析
文章目录 一.相关概念介绍 IO引脚的三态输出之高阻态---将逻辑门与系统其他部分隔离,电平外部控制 IO引脚输出模型 推挽电路 与 开漏电路---单独开漏无高电平驱动能力 二.上下拉电阻原理介绍 什 ...
- wringPi 初始化GPIO 为上拉_敏矽微电子Cortex-M0学习笔记04-GPIO详解及应用实例
前面我们已经对敏矽微电子的基于cortex m0内核的ME32F030R8T6的基本功能做了介绍,然后详细讲解了开发环境MDK的安装,pack包的安装,工程的建立及程序的仿真,紧接着讲解了ME32F0 ...
- STM32 GPIO的输入、输出模式的介绍应用总结(模拟/浮空/上拉/下拉/推挽/开漏)
GPIO的输入.输出总结 一.输入模式 1.GPIO_Mode_AIN(==模拟输入==) 2.GPIO_Mode_IN_FLOATING(==浮空输入==) 3.GPIO_Mode_IPD(==下拉 ...
- wringPi 初始化GPIO 为上拉_你彻底弄清GPIO内部结构和各种模式了吗?
据说能将处理器的GPIO(General Purpose Input and Output)内部结构和各种模式彻底弄清楚的人并不多?那现在就让多一点 GPIO的功能,简单说就是可以根据自己的需要去配置 ...
- wringPi 初始化GPIO 为上拉_GPIO接口
//阅读完大约10min //本文中的正文,改编自以下链接评论,由于非常全面明晰,所以我将之采纳. STM32的I/O口的8种工作模式-OpenEdv-开源电子网www.openedv.com 前言 ...
最新文章
- 组装简历必备的9大要件
- 操作系统都是用c语言写的吗,用C语言写关于操作系统的一个问题。
- 2-hadoop-Hadoop以及生态
- vue 筛选组件_记一个复杂组件(Filter)的从设计到开发
- 华为智慧屏鸿蒙挂安卓9,荣耀先行!华为智慧屏9月发布:搭鸿蒙系统和自研芯片...
- python中for用法_python中for的用法探索
- $.getJSON()不执行回调函数
- 九度OJ 1340:小A的计算器 (进制转换)
- python字典练习_python字典练习
- css携程讲解,【译】CSS的布局数学:读懂calc – 携程设计委员会
- 超级棒的手机流量管理软件,节约流量有技巧
- html页面小宠物代码大全,纯css3实现宠物小鸡实例代码
- 前端框架介绍篇(小白专属)
- java面试题(记录与分享)二
- 我的世界服务器修改个人游戏模式吗,我的世界1period;12指令更改模式 | 手游网游页游攻略大全...
- vuepress build error: window is not defined
- { content-visibility: auto; contain-intrinsic-size: 1px 5000px;}
- vba 云服务器,EXCEL服务器中VBA接口函数介绍
- 如何将本地的代码上传到github
- 从U盘运行Linux操作系统的三种方法
热门文章
- 模仿JavaAppArguments.java示例
- 武汉大学2013年数学分析考研试题参考解答
- 使用js实现换肤功能
- 第二届(2009年)中国信息技术应用学术研讨会征文延期通知
- [Leedcode][JAVA][第72题][动态规划]
- Java学习笔记13-1——SpringMVC
- html 常用字符,html 常用特殊字符
- 亿嘉和机器人上市了吗_亿嘉和上半年收入持续增长,拟7亿元定增加码主业研发...
- javascript中打印对象显示[object object]_js如何打印object对象
- mysql 5.6 修改端口_mysql5.6.24怎么修改端口号