单片机 > 单片机程序设计 > 详情

imx6系列--引脚复用及特性设置(设备树)

发布时间:2020-08-26 发布时间:
|

一 简介 


IOMUX:让IC的多个功能模块共享一个引脚。 

每个模块都需要设置每个引脚的性能,如上下拉 高阻等,对于每个引脚都有高达8个复用选项。 


相关寄存器: 

32位的复用控制寄存器(IOMUXC_SW_MUX_CTL_PAD_ or IOMUXC_SW_MUX_CTL_GRP_) ,用于选择复用模式。 

32位的引脚控制寄存(IOMUXC_SW_PAD_CTL_PAD_ orIOMUXC_SW_PAD_CTL_GRP_) ,用于配置每个引脚特性。 

32位通用寄存器(GPR0 to GPR13) 

32位输入选择寄存器 xxxxx_INPUT,用于选择输入信号。


模块功能简图 

datasheet:相关章节 

Chapter 4: External Signals and Pin Multiplexing 引脚复用 

Chapter 31: IOMUX Controller (IOMUXC) 引脚复用控制器


二 驱动文件相关


寄存器配置宏: /arch/arm/boot/dts/Imx6ul-pinfunc.h 

举例详解:


#define    MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05                0x0030 0x02BC 0x0000 5 0


其对应意义: 


即:复用控制寄存器IOMUXC_SW_MUX_CTL_PAD_SNVS_TAMPER5 的偏移地址:30h offset 

引脚控制寄存器IOMUXC_SW_PAD_CTL_PAD_SNVS_TAMPER5 的偏移地址:2BCh offset 

输入寄存器的偏移地址:无,则写0 ; 有则写相应的 偏移地址。例如:IOMUXC_UART6_RX_DATA_SELECT_INPUT:64Ch offset 

复用模式值:见 datasheet的Chapter 4: External Signals and Pin Multiplexing 章节,则,写5 

输入值:输入寄存器值xxxx_INPUT。 

读取设备树文件:/drivers/pinctrl/Pinctrl-imx.c


设备树设置: 

例如:


pinctrl_uart4: uart4grp {

    fsl,pins = <

        MX6UL_PAD_LCD_CLK__UART4_DCE_TX     0x1b0b1

        MX6UL_PAD_LCD_ENABLE__UART4_DCE_RX  0x1b0b1

        /*设置为引脚流控*/

        //MX6UL_PAD_LCD_HSYNC__UART4_DTE_RTS    0x1b0b1

        //MX6UL_PAD_LCD_VSYNC__UART4_DTE_CTS    0x1b0b1

        /*设置为普通GPIO*/

        MX6UL_PAD_LCD_HSYNC__GPIO3_IO02     0xb0b0

        MX6UL_PAD_LCD_VSYNC__GPIO3_IO03     0xb0b0

    >;

};


注:最后一个值 为该引脚的性能配置值,可根据需求修改。 0x80000000表示无效配置,即取默认配置。0x4xxxxxxxxx,表示设置了SION软件标志位。


    0x80000000 is special and means "I don't know and don't change from the default"

    Bit 30 set to 1 means: software input on (SION) whcih means that the logical value of an output can be read back

关键字:imx6系列  引脚复用  特性设置  设备树

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC单片机基础知识之二