i.MX6UL开发板 管脚复用的参数配置方法(PINMUX)

隐身守侯 提交于 2020-04-12 09:27:59

NXP Cortex-A7 i.MX6UltraLite 的外设资源非常丰富。但是,需要提醒大家的是,这些接口是不能同时使用的,为了提供芯片的性价比, CPU厂家引入了PINMUX的架构,简单说就是引脚存在复用,以上说的这些接口,只用了大约114个引脚,每个引脚最大可以有9 种功能,每个功能有可以出现在不同的引脚上面。
本次开发使用的硬件平台为飞凌嵌入式 OKMX6UL-C 开发板(产品详情: www.forlinx.com/69.htm),其它板卡请酌情参考使用, 具体实现操作步骤如下:

arch/arm/boot/dts/imx6ul-pinfunc.h 中有

wps8458.tmp.jpg

wps8469.tmp.jpg

arch/arm/boot/dts/imx6ul-14x14-evk.dts 中有

wps846A.tmp.jpg

将管脚的配置展开即:0x0158 0x03E4 0x0000 1 0 0x1b0b1

  0x0158     |     0x 03E4     |     0x000 0        |      0x 1         |      0x0     |  0x1b0b1

mux_ctrl_ofs | pad_ctrl_ofs | sel_input_ofs | mux_mode | sel_input | pad_ctrl

  以上参数在参考手册怎么确定的呢?

 下面 以 LCD_DATA16复用为UART7_DCE_TX 为例说明复用管脚参数配置的方法。

 注: 下述参考手册为《 IMX6ULRM.pdf》。

 对于复用管脚的配置,应该在手册管脚复用的章节 ( IOMUXC) 中查找。但是在确定 pad name才方便,于是定义在 External Signals and Pin Multiplexing 章节,搜索 MX6UL_PAD_LCD_DATA16__UART7_DCE_TX 的中间部分 “ LCD_DATA16 ”可以直接跳转至LCD_DATA16引脚的寄存器章节。 

 其中 mux_ctrl_ofs  为 0x0158,mux_mode为ATL1,如图:

wps847A.tmp.jpg

    pad_ctrl_ofs 为  0x03E4,并根据此配置pad_ctrl  为 0x1b0b1 (配置上拉电阻、频率等等),如图:

wps848B.tmp.jpg

 input_ofs 查找 IOMUXC章节以SELECT_INPUT结尾的部分,中间选择UART7_DCE_RTS ,如果没有这里 sel_input_ofs=0x000即可,对应的sel_input为0即可。

 如果有例如 MX6UL_PAD_ENET1_RX_ER__UART7_DCE_RTS ,如下图,所以 ENET1_RX_ER的sel_input_ofs=0x650。 所以 ENET1_RX_ER ( MX6UL_PAD_ENET1_RX_ER__UART7_DCE_RTS ) 的 sel_input=0x1 。

wps848C.tmp.jpg

wps848D.tmp.jpg

更多i.MX6UL信息请关注 FETMX6UL-C核心板 详情

原文链接:https://www.forlinx.com/article_view_205.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!