来源:百问网

作者:韦东山

本文字数: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 操作方法相关推荐

  1. can使能上拉 gpio_单片机GPIO输入电压不可过大,最好使能上拉

    可用肖特基二极管,正向串联进电路,防止引脚接到高于3v电压上,倒流进芯片内部,烧毁芯片. 肖特基二极管,正向导通电压较小,一般0.2v. 可串联进电源线中,防止正负接反. 如果需要接入5v电压到单片机 ...

  2. TI芯片GPIO的内部上拉

    TI的DSP芯片,GPIO的内部上拉在默认情况下是使能的(能够配置为PWM输出的GPIO除外,这类GPIO默认情况下内部上拉被禁用).对于在默认情况下内部上拉被使能的GPIO来说,有些情况下,需要对其 ...

  3. # STM32系列-串口-uart-软件引脚内部上拉 或者 外部电阻上拉-原因问题的搜寻

    # STM32系列-串口-uart-引脚上拉-原因问题的搜寻 前言-(知道一个结论正确,也要知道它为什么正确) 问题描述 查找过程 (1)上网查资料 (2)请教大佬 (3)查代码-找手册-验证 一些参 ...

  4. 上拉电阻和下拉电阻的区别

    在初学arduino时,感觉最难理解的概念就是上拉电阻和下拉电阻了,不过你一旦理解了这个,后面的大部分都比较简单了! 简介 在数字逻辑电路中,一个信号不是0,就是1.正是因为这样,数字电路的设计才简单 ...

  5. 上拉电阻与下拉电阻总结 与 GPIO框图分析

    文章目录 一.相关概念介绍 IO引脚的三态输出之高阻态---将逻辑门与系统其他部分隔离,电平外部控制 IO引脚输出模型 推挽电路 与 开漏电路---单独开漏无高电平驱动能力 二.上下拉电阻原理介绍 什 ...

  6. wringPi 初始化GPIO 为上拉_敏矽微电子Cortex-M0学习笔记04-GPIO详解及应用实例

    前面我们已经对敏矽微电子的基于cortex m0内核的ME32F030R8T6的基本功能做了介绍,然后详细讲解了开发环境MDK的安装,pack包的安装,工程的建立及程序的仿真,紧接着讲解了ME32F0 ...

  7. STM32 GPIO的输入、输出模式的介绍应用总结(模拟/浮空/上拉/下拉/推挽/开漏)

    GPIO的输入.输出总结 一.输入模式 1.GPIO_Mode_AIN(==模拟输入==) 2.GPIO_Mode_IN_FLOATING(==浮空输入==) 3.GPIO_Mode_IPD(==下拉 ...

  8. wringPi 初始化GPIO 为上拉_你彻底弄清GPIO内部结构和各种模式了吗?

    据说能将处理器的GPIO(General Purpose Input and Output)内部结构和各种模式彻底弄清楚的人并不多?那现在就让多一点 GPIO的功能,简单说就是可以根据自己的需要去配置 ...

  9. wringPi 初始化GPIO 为上拉_GPIO接口

    //阅读完大约10min //本文中的正文,改编自以下链接评论,由于非常全面明晰,所以我将之采纳. STM32的I/O口的8种工作模式-OpenEdv-开源电子网​www.openedv.com 前言 ...

最新文章

  1. 组装简历必备的9大要件
  2. 操作系统都是用c语言写的吗,用C语言写关于操作系统的一个问题。
  3. 2-hadoop-Hadoop以及生态
  4. vue 筛选组件_记一个复杂组件(Filter)的从设计到开发
  5. 华为智慧屏鸿蒙挂安卓9,荣耀先行!华为智慧屏9月发布:搭鸿蒙系统和自研芯片...
  6. python中for用法_python中for的用法探索
  7. $.getJSON()不执行回调函数
  8. 九度OJ 1340:小A的计算器 (进制转换)
  9. python字典练习_python字典练习
  10. css携程讲解,【译】CSS的布局数学:读懂calc – 携程设计委员会
  11. 超级棒的手机流量管理软件,节约流量有技巧
  12. html页面小宠物代码大全,纯css3实现宠物小鸡实例代码
  13. 前端框架介绍篇(小白专属)
  14. java面试题(记录与分享)二
  15. 我的世界服务器修改个人游戏模式吗,我的世界1period;12指令更改模式 | 手游网游页游攻略大全...
  16. vuepress build error: window is not defined
  17. { content-visibility: auto; contain-intrinsic-size: 1px 5000px;}
  18. vba 云服务器,EXCEL服务器中VBA接口函数介绍
  19. 如何将本地的代码上传到github
  20. 从U盘运行Linux操作系统的三种方法

热门文章

  1. 模仿JavaAppArguments.java示例
  2. 武汉大学2013年数学分析考研试题参考解答
  3. 使用js实现换肤功能
  4. 第二届(2009年)中国信息技术应用学术研讨会征文延期通知
  5. [Leedcode][JAVA][第72题][动态规划]
  6. Java学习笔记13-1——SpringMVC
  7. html 常用字符,html 常用特殊字符
  8. 亿嘉和机器人上市了吗_亿嘉和上半年收入持续增长,拟7亿元定增加码主业研发...
  9. javascript中打印对象显示[object object]_js如何打印object对象
  10. mysql 5.6 修改端口_mysql5.6.24怎么修改端口号