当前位置: 首页 > news >正文

[i.MX]飞思卡尔IMX6处理器的GPIO-IOMUX_PAD说明

在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样:
#define MX6Q_PAD_GPIO_19__GPIO_4_5                              \
                                (_MX6Q_PAD_GPIO_19__GPIO_4_5| MUX_PAD_CTRL(NO_PAD_CTRL))
其中_MX6Q_PAD_GPIO_19__GPIO_4_5定义为:
  #define _MX6Q_PAD_GPIO_19__GPIO_4_5         \  
         IOMUX_PAD(0x0624, 0x0254, 5, 0x0000, 0, 0)
这个IOMUX_PAD宏是定义GPIO的关键宏,其原型为:
#define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs,   
       _sel_input, _pad_ctrl)
IOMUX_PAD宏有6个参数,每个参数的意思是:
  
参数
  
  
含义
  
  
_pad_ctrl_ofs  
  
  
控制寄存器的偏移地址(16进制)
  
  
_mux_ctrl_ofs
  
  
MUX控制寄存器的偏移地址(16进制), 用于选择引脚的功能
  
  
_mux_mode
  
  
MUX模式,bit0~3,范围0~7
  
  
_select_input_ofs   
  
  
SELECT_INPUT寄存器偏移地址(16进制)
  
  
_select_input  
  
  
Daisy Chain模式, bit0~1,范围0~3
  
  
_pad_ctrl
  
  
bits to be set in register _pad_ctrl_ofs for  configuration selection
  
具体的含义要结合IMX6数据手册【Chapter 36 IMOUX Controller(IOMUXC)】的内容。
以下就GPIO_19这个管脚的配置进行说明:
1、_pad_ctrl_ofs
找到数据手册:
 
从上图可知:_pad_ctrl_ofs = 0x624
2、_mux_ctrl_ofs、_mux_mode
找到数据手册的内容:
如上图,_mux_ctrl_ofs取值为0x254,_mux_mode范围为000~110
只有_mux_mode = 0时,_select_input_ofs和_select_input才有效,其余时候_select_input_ofs和_select_input 都为0。
3、_select_input_of、_select_input
当_mux_mode = 0时,_select_input_ofs的取值需参考数据手册:
 
此时_select_input_ofs=0x8e8,_select_input=0x1
4、_pad_ctrl
_pad_ctrl一般取值为0
综上所述,GPIO_19的配置宏定义如下:
  #define _MX6Q_PAD_GPIO_19__KPP_COL_5            \  
         IOMUX_PAD(0x0624, 0x0254, 0, 0x08E8, 1, 0)  
#define _MX6Q_PAD_GPIO_19__ENET_1588_EVENT0_OUT     \  
         IOMUX_PAD(0x0624, 0x0254, 1, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__SPDIF_OUT1           \  
         IOMUX_PAD(0x0624, 0x0254, 2, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__CCM_CLKO         \  
         IOMUX_PAD(0x0624, 0x0254, 3, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__ECSPI1_RDY           \  
         IOMUX_PAD(0x0624, 0x0254, 4, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__GPIO_4_5         \  
         IOMUX_PAD(0x0624, 0x0254, 5, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__ENET_TX_ER           \  
         IOMUX_PAD(0x0624, 0x0254, 6, 0x0000, 0, 0)  
  #define _MX6Q_PAD_GPIO_19__SRC_INT_BOOT         \  
         IOMUX_PAD(0x0624, 0x0254, 7, 0x0000, 0, 0)

 

以上的宏定义来自imx6的linux源码的arm/arch/palt-mxc/include/mach/iomux-mx6q.h
希望对大家有帮助~~

转载于:https://www.cnblogs.com/Ph-one/p/11612866.html

相关文章:

  • error: cannot connect to daemon解决办法
  • 通过adb操作安卓亮屏、设置背光亮度、解锁、打开app
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • MIPS 指令集(共31条)
  • WPF 程序无法触摸操作?我们一起来找原因和解决方法!
  • Exception.Data 为异常添加更多调试信息
  • 使 32 位程序使用大于 2GB 的内存
  • 如何向整个 Git 仓库补提交一个文件
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • 优化 UWP 中图片的内存占用
  • UWP 中的 LaunchUriAsync,使用默认浏览器或其他应用打开链接
  • WPF/UWP 绑定中的 UpdateSourceTrigger
  • 深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分)
  • 深入了解 WPF Dispatcher 的工作原理(PushFrame 部分)
  • DependencyProperty.UnsetValue 的正确打开方式
  • 【笔记】你不知道的JS读书笔记——Promise
  • Javascript编码规范
  • Meteor的表单提交:Form
  • Promise面试题2实现异步串行执行
  • ReactNative开发常用的三方模块
  • React系列之 Redux 架构模式
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • Spring声明式事务管理之一:五大属性分析
  • Vue官网教程学习过程中值得记录的一些事情
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 高度不固定时垂直居中
  • 后端_ThinkPHP5
  • 京东美团研发面经
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 如何合理的规划jvm性能调优
  • 使用 @font-face
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • ionic入门之数据绑定显示-1
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #DBA杂记1
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转)ABI是什么
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .net 中viewstate的原理和使用
  • .net分布式压力测试工具(Beetle.DT)
  • .NET中winform传递参数至Url并获得返回值或文件
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • @EnableAsync和@Async开始异步任务支持
  • @PreAuthorize注解
  • @拔赤:Web前端开发十日谈
  • [ C++ ] STL---stack与queue
  • [ JavaScript ] JSON方法
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [Angular 基础] - 数据绑定(databinding)