查看: 297|回复: 5

[原创] 飞思卡尔IMX6处理器的GPIO配置方式

[复制链接]

140

主题

1

好友

1734

积分

进士

Rank: 5Rank: 5

  • TA的每日心情
    开心
    2016-11-9 11:46
  • 签到天数: 80 天

    [LV.6]常住居民II

    发表于 2016-8-6 10:15:16 |显示全部楼层
      在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))
      这个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_ofsMUX控制寄存器的偏移地址(16进制), 用于选择引脚的功能
      _mux_modeMUX模式,bit0~3,范围0~7
      _select_input_ofsSELECT_INPUT寄存器偏移地址(16进制)
      _select_inputDaisy Chain模式, bit0~1,范围0~3
      _pad_ctrlbits 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)
      供货情况:
      天嵌科技提供专业嵌入式板卡和行业解决方案。如有需要,可以联系天嵌科技的销售人员。
      销售电话:020-38219416 38373101
      技术支持:020-38219416转807 820
      网址:http://www.embedsky.com
      官方淘宝:https://embedsky.taobao.com/

    回复

    使用道具 举报

    无效楼层,该帖已经被删除

    0

    主题

    0

    好友

    54

    积分

    童生

    Rank: 2

    该用户从未签到

    发表于 2016-8-8 14:13:18 |显示全部楼层
    已学习
    回复

    使用道具 举报

    0

    主题

    0

    好友

    57

    积分

    童生

    Rank: 2

    该用户从未签到

    发表于 2016-8-15 09:08:35 |显示全部楼层
    辛苦了,以后请多多分享
    回复

    使用道具 举报

    0

    主题

    0

    好友

    61

    积分

    童生

    Rank: 2

  • TA的每日心情
    奋斗
    2016-8-17 17:27
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-8-17 17:27:49 |显示全部楼层
    天嵌的i.mx6q还不错,各方面的模块都有的。听说EMMC也升级了,现在我正在更新内核
    回复

    使用道具 举报

    0

    主题

    0

    好友

    52

    积分

    童生

    Rank: 2

    该用户从未签到

    发表于 2016-8-23 15:45:06 |显示全部楼层
    更新了,资料升级了吧?去那里问
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-4 12:03 , Processed in 0.100326 second(s), 14 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部