i.MX6UL開發板 管腳復用的參數配置方法(PINMUX)
本次開發使用的硬件平臺為飛凌嵌入式OKMX6UL-C開發板(產品詳情:www.powerye.cn/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。