历史上的今天
返回首页

历史上的今天

今天是:2024年10月18日(星期五)

正在发生

2019年10月18日 | imx6系列--引脚复用及特性设置(设备树)

2019-10-18 来源:eefocus

一 简介 


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

推荐阅读

史海拾趣

问答坊 | AI 解惑

预热式沐浴水箱水位自控器

此电路结构简单,取材容易,性能可靠,操作方便。工作原理:假设水箱内没有水,需要进水预热,只要将K1合上(见下图),则绿色指示灯亮,电磁阀经J1-2常闭触点得电而开阀进水,待水箱内水升至平面S1时,BG1、BG2组成的复合管得正向偏压而驱动继电 ...…

查看全部问答>

fopen打开的文件,如何实现当文件达到一定大小后,重头进行覆盖写入

我的那个文件要求记录5000条记录,超过5000条时,重头开始写入,用新的记录覆盖掉旧的记录。fopen就那几种打开方式,我试了下,好像都不支持。如果以“a+“的方式打开,然后用seek去定位,然后再写入也不行,仍然会加到文件尾。各位有没有什么好的 ...…

查看全部问答>

usb驱动问题!!!dispatch_level在callusbdi下不可用!!急急急!!

callusbdi windows wdm设备驱动程序开发指南(chris cant) 在dispatch_level调用出现死等,但是在passive_level正常 书上也说只能在Passive_level调用,是什么原因呢,怎样才能在dispatch_level调用呢? 高手快来啊 NTSTATUS CallUSBDI(IN PDEV ...…

查看全部问答>

DOS下启用图形加速卡.

怎样在DOS下不用VGA,启用图形加速卡呢?…

查看全部问答>

【MSP430共享】晶化箱温度控制系统设计

设计了一种基于Ms P 4 3 0处理器的温控系统, 介绍了系统主要硬件, 重点介绍了温度控制系统及其算法的实现, 这里采用的是史密斯一 模糊自调整 P I D控制系统, 该系统通过对传统的史密斯预估器进行改良, 将该模糊自调整P I D控制器引入史密斯控 ...…

查看全部问答>

12864读函数问题

YM12864R读函数为什么读不出正确的数据,总是0xff,调了好久都没弄好,网上也有人有同样的问题,但是好像都没有解决,急求帮助uchar LcdRdata(void){ uchar getdata; RS=1; WRD=1; P0=0xff; E=0; E=1; delay(100); getdata=P0; E=0; return getdata ...…

查看全部问答>

易电源游戏看做事态度

我在早上9点半玩易电源拼图游戏,发现电容电感问题,明显是错误的,而且后来更正过来了,那么在之前得100分的朋友们,你们难道没有发现这个简单的错误吗?如果发现了,为什么还跟着错?难道就为了那100分?为了奖品机会? 作为技术人员,发现问题 ...…

查看全部问答>

瑞萨RL78开发工具_原厂的培训教程

瑞萨RL78开发工具_原厂的培训教程 …

查看全部问答>

基于安卓/苹果的物品防盗管家,用于对随身箱包和贵重物品进行管理

利用手机作为监控终端,既简便又易用,同时如果手机被人拿走的话,通讯断开,手机和开发模块都会报警。 1. 通过蓝牙与手机进行数据互联,若发送报警信息或是“心跳同步”时,通讯没有相应,则发送方进行报警 2. 检测光线有强烈变化时,进行报警 ...…

查看全部问答>

EEWORLD大学堂----Atmel SAM L21 超低功耗测试

Atmel SAM L21 超低功耗测试:https://training.eeworld.com.cn/course/37Atmel 在2014年11月的Electronica 展会上, 现场展示了SAM L21的CoreMark基准测试。…

查看全部问答>