i.MX6UL开发板 管脚复用的参数配置方法(PINMUX)
本次开发使用的硬件平台为飞凌嵌入式OKMX6UL-C开发板(产品详情:www.forlinx.com/69.htm),其它板卡请酌情参考使用,具体实现操作步骤如下:
arch/arm/boot/dts/imx6ul-pinfunc.h中有
arch/arm/boot/dts/imx6ul-14x14-evk.dts中有
将管脚的配置展开即: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,如图:
pad_ctrl_ofs为 0x03E4,并根据此配置pad_ctrl 为0x1b0b1(配置上拉电阻、频率等等),如图:
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。