历史上的今天
返回首页

历史上的今天

今天是:2024年10月23日(星期三)

正在发生

2019年10月23日 | Freescales i.mx6开发板配置IOMUX-迅为电子

2019-10-23 来源:51hei

为什么IOMUXSoc芯片上有很多引脚,每个引脚对应特定的功能。例如控制电机需要控制电机的功能引脚1和引脚2,控制传感器需要控制传感器功能的引脚3和引脚4。对于使用Soc芯片的需求方来说,可能只是控制电机,或者只是控制传感器。这样Soc芯片上的4个引脚就浪费了2个引脚。为了能提供更多的功能,减少引脚的浪费,可以把引脚1,2和引脚3,4合并,通过复用引脚来解决问题。


i.mx6的Soc芯片提供IOMUX机制就是用来解决引脚复用的问题。
如何确定使用引脚12,还是使用引脚34,是下面要介绍的主要内容 
需要的概念Pad 对应的是Soc芯片上的引脚
Signal 对应的是控制电机的功能


需要配置的寄存器

  • Pad控制寄存器

  • Mux控制寄存器

  • Select Input寄存器


配置IOMUX的必备工具

  • 芯片原理图

  • 芯片软件手册

  • 内核源代码


配置步骤1. 查看原理图下面是USB转串口芯片的原理图,我们需要配置UART1_RX这个接口。
 
uart.jpeg

通过UART1_RX,我们可以在i.mx6的原理图中找到对应的引脚CSI0_DAT11。
 
imx6soc.jpeg

2. 查找软件手册(引脚功能)软件手册第4章
查找CSI0_DAT11,可以得到两个重要的信息

  • Pad的控制寄存器名称 SW_PAD_CTL_PAD_CSI0_DATA11

  • CSI0_DAT11的功能UART1_RX_DATA 用于查找其他两个寄存器


  • uartfunction.jpeg

查找UART1_RX_DATA,可以得到两个寄存器

  • Mux的控制寄存器名称 IOMUX_SW_MUX_CTL_PAD_CSI0_DATA11

  • Select Input的寄存器名称 IOMUXC_UART1_UART_RX_DATA_SELECT_INPUT


  • uartmuxoption.jpeg

3. 查找软件手册(IOMUX功能配置)软件手册第36章, 介绍了IOMUX需要配置寄存器的所有信息。
根据三个寄存器的名称进行查找

  • Pad的控制寄存器名称 SW_PAD_CTL_PAD_CSI0_DATA11

  • Mux的控制寄存器名称 IOMUX_SW_MUX_CTL_PAD_CSI0_DATA11

  • Select Input的寄存器名称 IOMUXC_UART1_UART_RX_DATA_SELECT_INPUTIOMUX_SW_PAD_CTL_PAD_CSI0_DATA11偏移地址:654h
    Pad控制寄存器主要用于控制引脚的上拉电阻,下拉电阻和电压控制


  • pad.jpeg

IOMUX_SW_MUX_CTL_PAD_CSI0_DATA11偏移地址:284h
配置MUX_MODE的模式为ALT3,就能使用UART1_RX_DATA的功能
 
mux.jpeg

IOMUXC_UART1_UART_RX_DATA_SELECT_INPUT偏移地址:920h
 
selectinput.jpeg

三 源码配置配置IOMUX的过程,实际上就是向指定的设备地址写入配置值的过程。
内核代码提供专门的宏 IOMUX_PAD,用来把IOMUX的配置进行拼装,然后写入到指定的设备地址中。
IOMUX_PAD 定义文件  ~/android/kernel_imx/arch/arm/plat-mxc/include/mach/iomux-v3.h
/* *      build IOMUX_PAD structure * * This iomux scheme is based around pads, which are the physical balls * on the processor. * * - Each pad has a pad control register (IOMUXC_SW_PAD_CTRL_x) which controls *   things like driving strength and pullup/pulldown. * - Each pad can have but not necessarily does have an output routing register *   (IOMUXC_SW_MUX_CTL_PAD_x). * - Each pad can have but not necessarily does have an input routing register *   (IOMUXC_x_SELECT_INPUT) * * The three register sets do not have a fixed offset to each other, * hence we order this table by pad control registers (which all pads * have) and put the optional i/o routing registers into additional * fields. * * The naming convention for the pad modes is MX35_PAD___ * If  or  refers to a GPIO, it is named * GPIO__ * * IOMUX/PAD Bit field definitions * * MUX_CTRL_OFS:            0..11 (12) * PAD_CTRL_OFS:           12..23 (12) * SEL_INPUT_OFS:          24..35 (12) * MUX_MODE + SION:        36..40  (5) * PAD_CTRL + NO_PAD_CTRL: 41..58 (18) * SEL_INP:                59..62  (4) * reserved:                 63    (1)*/#define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs,  _sel_input, _pad_ctrl)                  (((iomux_v3_cfg_t)(_mux_ctrl_ofs) << MUX_CTRL_OFS_SHIFT) |                       ((iomux_v3_cfg_t)(_mux_mode) << MUX_MODE_SHIFT) |                                 ((iomux_v3_cfg_t)(_pad_ctrl_ofs) << MUX_PAD_CTRL_OFS_SHIFT) |                   ((iomux_v3_cfg_t)(_pad_ctrl) << MUX_PAD_CTRL_SHIFT) |                                 ((iomux_v3_cfg_t)(_sel_input_ofs) << MUX_SEL_INPUT_OFS_SHIFT) |                 ((iomux_v3_cfg_t)(_sel_input) << MUX_SEL_INPUT_SHIFT))参数

  • _pad_ctrl_ofs  pad控制寄存器的偏移地址

  • _mux_ctrl_ofs mux控制寄存器的偏移地址

  • _mux_mode    mux的模式

  • _sel_input_ofs input寄存器的偏移地址

  • _sel_input       input的类型

配置通过软件手册查找到三个寄存器的地址, 使用IOMUX_PAD配置代码。

  • SW_PAD_CTL_PAD_CSI0_DATA11 偏移地址 0x654

  • IOMUX_SW_MUX_CTL_PAD_CSI0_DATA11 偏移地址 0x284

  • IOMUXC_UART1_UART_RX_DATA_SELECT_INPUT 偏移地址 0x920

文件  ~/android/kernel_imx/arch/arm/plat-mxc/include/mach/iomux-mx6q.h
#define _MX6Q_PAD_CSI0_DAT11__UART1_RXD                                 IOMUX_PAD(0x0654, 0x0284, 3, 0x0920, 1, 0)上面的内容描述了从原理图查找指定引脚,到软件手册找到Mux,Pad,SelInput的寄存器配置信息,再到内核代码如何进行配置的全部映射关系。


推荐阅读

史海拾趣

GS Technology公司的发展小趣事
如心电图机、脑电图机等,用于显示生物电信号。
鸿展光电(GPO)公司的发展小趣事

随着科技的不断进步和市场需求的变化,维峰电子始终将技术创新作为公司发展的核心驱动力。公司投入大量资金和人力,在研发方面取得了显著成果。近年来,公司成功申请并获得了多项国家专利,包括外观设计专利、发明专利和实用新型专利等。这些专利的获得不仅提升了公司的技术竞争力,也为客户提供了更加优质的产品和服务。

Comtronic Gmbh-Verbindungstechnik公司的发展小趣事

维峰电子(WCON)于2002年在广东成立,由创始人李文化带领的团队共同创立。创业初期,公司面临着资金短缺、技术落后和市场竞争激烈等多重挑战。然而,团队凭借着对电子连接器行业的深刻理解和坚定信念,不断研发新产品,优化生产工艺,逐渐在市场中站稳脚跟。他们通过不懈努力,成功开发出多款具有竞争力的电子连接器产品,为公司后续的发展奠定了坚实基础。

Aavid Thermalloy公司的发展小趣事

维峰电子(WCON)于2002年在广东成立,由创始人李文化带领的团队共同创立。创业初期,公司面临着资金短缺、技术落后和市场竞争激烈等多重挑战。然而,团队凭借着对电子连接器行业的深刻理解和坚定信念,不断研发新产品,优化生产工艺,逐渐在市场中站稳脚跟。他们通过不懈努力,成功开发出多款具有竞争力的电子连接器产品,为公司后续的发展奠定了坚实基础。

迪一电子公司的发展小趣事

随着数字化和智能化技术的不断发展,迪一电子公司意识到必须跟上时代的步伐。于是,公司开始推进数字化转型和智能化生产。通过引入先进的生产设备和信息系统,优化生产流程,提高生产效率。同时,公司还注重人才培养和引进,建立了一支高素质的技术和管理团队。这些努力使迪一电子在数字化和智能化方面取得了显著成果,提高了公司的竞争力和市场地位。

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

Dongguan City Niuhang Electronics Co.LTD成立于2012年,当时的中国电子行业正处于快速发展期。创始人李小芹凭借对半导体技术的深刻理解和市场需求的敏锐洞察,决定专注于二极管、桥式整流器等产品的研发与封装。公司成立初期,面临着资金短缺、技术储备不足等挑战,但李小芹凭借坚定的信念和不懈的努力,带领团队攻克了一个又一个技术难关,逐步在市场上树立了良好的口碑。

问答坊 | AI 解惑

全面认识存储器(RAM与DRAM)

下面这篇文章相当全面的介绍了各种RAM的基本原理读写及区别. 好像也是从各个地方收集到一起的,不过组织还可以.可惜是PDF格式而且带框的,不知道如何弄下来.如果你对RAM认识还不够的话,强烈推荐你看看. http://www.dz3w.com/info/basic/memory/index ...…

查看全部问答>

看看TI高层如何管理自己的时间

德州仪器(TI)全球特殊应用产品部大中国业务策略拓展副总裁 林坤山 林坤山博士以数字信号处理器(DSP)先锋著称,是早期的DSP博士之一,曾于70年代后期在美国新墨西哥与田纳西大学任教。拥有12项专利的林博士,曾在国际会议与期刊杂志上发表超过5 ...…

查看全部问答>

简述滤波器的发展历程及前景

滤波器的发展历程   ---凡是有能力进行信号处理的装置都可以称为滤波器。在近代电信设备和各类控制系统中,滤波器应用极为广泛;在所有的电子部件中,使用最多,技术最为复杂的要算滤波器了。滤波器的优劣直接决定产品的优劣,所以,对 ...…

查看全部问答>

tornado 工程中如何编译汇编代码(*.s)?

我用Makefile是可以编*.s代码的,但工程中就是不可以. 不知为何? …

查看全部问答>

请帮忙推荐arm9开发板

要求如下 1、支持wince6 2、带有电话、gprs、短信模块 3、ARM9 CPU 总的来说就是方便我能用这个开发板进行一款基于wince6平台的手机开发,价格2000以内吧,如果有性价比更好的,价格高一些也可以,谢谢大家了!…

查看全部问答>

有满足如下要求的串口调试工具吗?

1.在单机上调试串口通讯, 2.不连接串口的收发针脚, 在这种情况下,有没有什么调试工具可以模拟串口的通讯?…

查看全部问答>

lm3s9b96上接3g上网卡或wifi的usb 开发

本人新人一个。。 以前不做这块的,刚去一个新单位,领导要开发这么一个东西。 主要目的就是通过usb口接的3g或wifi模块同外部设备进行数据传输。   大家有什么方案建议之类的没有? 例程最好了。学习文档之类的也非常感谢。   多 ...…

查看全部问答>

dsp 28335

有谁能告诉我警告的意思? <Linking> warning: creating output section "PartIdRegsFile" without a SECTIONS    specification …

查看全部问答>