查看: 18166|回复: 14

[分享] 【经验分享】飞思卡尔IMX6处理器的GPIO配置方式

[复制链接]

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3275
最后登录
1970-1-1
发表于 2014-6-24 09:21:20 | 显示全部楼层 |阅读模式
在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

找到数据手册:

1.jpg

从上图可知:_pad_ctrl_ofs = 0x624

2_mux_ctrl_ofs_mux_mode

找到数据手册的内容:
2.jpg
如上图,_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
希望对大家有帮助~~

imx6 GPIO配置.pdf (263.71 KB, 下载次数: 354)
回复

使用道具 举报

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3275
最后登录
1970-1-1
 楼主| 发表于 2014-6-24 09:25:04 | 显示全部楼层

RE:【经验分享】飞思卡尔IMX6处理器的GPIO配置方式

支持一下~~
回复 支持 反对

使用道具 举报

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3275
最后登录
1970-1-1
 楼主| 发表于 2014-9-19 15:42:33 | 显示全部楼层
为何没有人顶一下呢
回复 支持 反对

使用道具 举报

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3275
最后登录
1970-1-1
 楼主| 发表于 2014-9-19 15:42:54 | 显示全部楼层
自己支持一下哈~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2020-6-20 16:19
  • 签到天数: 46 天

    连续签到: 1 天

    [LV.5]常住居民I

    3

    主题

    270

    帖子

    0

    高级会员

    Rank: 4

    积分
    591
    最后登录
    2023-1-9
    发表于 2016-9-24 22:11:49 | 显示全部楼层
    谢谢,明白了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2017-10-19 11:01
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    49

    帖子

    0

    注册会员

    Rank: 2

    积分
    146
    最后登录
    2018-5-8
    发表于 2016-11-8 09:25:22 | 显示全部楼层
    谢谢,正在学习
    有点累
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    6

    帖子

    0

    注册会员

    Rank: 2

    积分
    51
    最后登录
    2020-4-26
    发表于 2016-11-18 18:02:43 | 显示全部楼层
    感谢分享!
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    24
    最后登录
    2017-7-26
    发表于 2017-5-26 14:07:12 | 显示全部楼层
    非常感谢楼主分享,先收下,以后用的着
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    14
    最后登录
    2020-2-6
    发表于 2017-6-8 10:36:42 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-12-5 15:26
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    44
    最后登录
    2018-12-7
    发表于 2018-3-16 17:51:56 | 显示全部楼层
    你好,现在正在学习,刚刚开始,请问一下,IO口配置好之后,是直接在程序里使用这个宏定义就行了吗?
    签到啊~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 14:05 , Processed in 0.106320 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表