飞思卡尔IMX6处理器的GPIO配置方式
在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
找到数据手册page 2433:
从上图可知:_pad_ctrl_ofs = 0x624
2、_mux_ctrl_ofs、_mux_mode
找到数据手册page 2055的内容:
如上图,_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的取值需参考数据手册page 2654:
此时_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
飞思卡尔IMX6处理器的GPIO配置方式的更多相关文章
- [i.MX]飞思卡尔IMX6处理器的GPIO-IOMUX_PAD说明
在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样: #define MX6Q_PAD_GPIO_19__GPIO_4_ ...
- 飞思卡尔 imx6 GC0308 摄像头驱动配置调试过程
GC0308摄像头驱动程序使用的是linux v4l2协议,通过i2c信号进行控制.GC0308摄像头.对上电时序要求非常严格,一定要依据datasheet初始化摄像头. 本驱动使用的3.10内核,所 ...
- 飞思卡尔imx6开发板Linux下GPIO驱动
控制GPIO_1_28的输出: #define MY_BOMB_GPIO IMX_GPIO_NR(1, 28) 配置为输出方式: gpio_direction_output (MY_BOM ...
- 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Boot配置. 在上一篇文章 Boot简介 里痞子衡为大家介绍了Boot基本原理以及i.MXRT Bo ...
- 痞子衡嵌入式:飞思卡尔Kinetis系列MCU启动那些事(3)- KBOOT配置(FOPT/BOOT Pin/BCA)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔Kinetis系列MCU的KBOOT配置. KBOOT是支持配置功能的,配置功能可分为两方面:一.芯片系统的启动配置:二.KBO ...
- 飞思卡尔开发板-迅为IMX6开兼容单核 双核 四核Plus开发板
飞思卡尔开发硬件接口介绍: 核心板参数 尺寸:51mm*61mm CPU:Freescale Cortex-A9 四核 i.MX6Q,主频 1.2 GHz 内存:2GB DDR3 存储:16GB EM ...
- 痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU启动那些事(2)- Boot配置(BOOT Pin/eFUSE)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列MCU的Boot配置. 在上一篇文章 Boot简介 里痞子衡为大家介绍了Boot基本原理以及i.MXR ...
- 盘点飞思卡尔i.MX多媒体处理器前世今生 (转)
现如今,移动处理器领域,大家关注最多的是德州仪器.高通.展讯.MTK,甚至包括Intel,但是请别忘记飞思卡尔,他的i.MX处理器已经发展到第六代. 那么我们今天就来盘点下i.MX的前世今生吧. i. ...
- 基于飞思卡尔i.MX 6Quad Sabrelite开发板的触摸屏调试
1 概述 本次任务是在飞思卡尔i.MX 6Quqd Sabrelite开发板上调试触屏驱动,触屏芯片是Goodix的gt828芯片,触屏接口是I2C. 操作系统:android 4.0.4 ...
随机推荐
- pandas小记:pandas数据输入输出
http://blog.csdn.net/pipisorry/article/details/52208727 数据输入输出 数据pickling pandas数据pickling比保存和读取csv文 ...
- MTK8127编译sdk出错解决方法
1.按照源码中sdk目录下的howto_build_SDK.txt参考文档的编译方式 $ cd ~/my-android-git $ . build/envsetup.sh $ lunch sd ...
- EJB通过注解方式注入并使用其他EJB或者服务、配置JBoss数据源
通过注解方式注入并使用其他EJB或者服务 真实项目EJB对象很多,EJB之间也可以互相调用, 在项目HelloWorld下新建接口Other在cn.hqu.ejb3下: public interfac ...
- Android必知必会-带列表的地图POI周边搜索
如果移动端访问不佳,请尝试–> Github版 2016-08-22 更新 注意:在 Activity 代码中的onPoiSearched(PoiResult result, int rCode ...
- 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结
剑指Offer--腾讯+360+搜狗校招笔试题+知识点总结 9.11晚7:00,腾讯笔试.选择题与编程.设计题单独计时. 栈是不是顺序存储的线性结构啊? 首先弄明白两个概念:存储结构和逻辑结构. 数据 ...
- IT女孩特不烦恼---九月实习总结
对着岁月落笔,画出一场清风,那是最真的笑容 一溜烟的功夫,小编来实习Android已经四个月了,从刚开始的电商项目到现在的车段子项目,小编渐渐对这个曾经陌生的名字慢慢扭转变成熟悉的面孔,四个月的时间, ...
- 一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)
创建一个基于应用的QtWidget应用程序 这个手册描述了怎样使用QtCreater创建个一个小的Qt应用程序,Text Finder.它是Qt工具Text Finder例子的简写版本.这个应用 ...
- acm入门搜索-石油数目
题意:给出一个N*M的矩形区域和每个区域的状态--有/没有石油,(定义)如果两个有石油的区域是相邻的(水平.垂直.斜)则认为这是属于同一个oil pocket. 求这块矩形区域一共有多少oilpock ...
- (一)SQLite与SQL语句基础
数据库一般分为 关系型和对象型,关系型是主流,对象型数据库是直接把对象存入数据库. 常用关系型数据库: PC:Oracle MySQL SQL Server DB2 嵌入式/移动端:SQLite 本文 ...
- (copy)赋值构造函数的4种调用时机or方法
第一种调用方法: demo #include <iostream> using namespace std; class Text { public: Text() // 无参数构造函数 ...