查看: 1680|回复: 0

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

[复制链接]

该用户从未签到

发表于 2017-12-1 16:24:01 | 显示全部楼层 |阅读模式
分享到:

NXP Cortex-A7 i.MX6UltraLite 的外设资源非常丰富。但是,需要提醒大家的是,这些接口是不能同时使用的,为了提供芯片的性价比,CPU厂家引入了PINMUX的架构,简单说就是引脚存在复用,以上说的这些接口,只用了大约114个引脚,每个引脚最大可以有9种功能,每个功能有可以出现在不同的引脚上面。

本次开发使用的硬件平台为飞凌嵌入式OKMX6UL-C开发板,其它板卡请酌情参考使用,具体实现操作步骤如下:

arch/arm/boot/dts/imx6ul-pinfunc.h中有
arch/arm/boot/dts/imx6ul-14x14-evk.dts中有
将管脚的配置展开即:0x0158  0x03E4 0x0000 1 0 0x1b0b1
    0x0158     |     0x03E4    |     0x0000       |      0x1        |      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。



回复

使用道具 举报

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

本版积分规则

关闭

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



手机版|小黑屋|与非网

GMT+8, 2024-4-27 09:35 , Processed in 0.113677 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.