历史上的今天
返回首页

历史上的今天

今天是:2025年04月01日(星期二)

正在发生

2021年04月01日 | 飞思卡尔IMX6处理器的GPIO配置方式

2021-04-01 来源:eefocus

在linux或android系统中,假如我们要配置飞思卡尔IMX6处理器的GPIO管脚,比如是GPIO_19这个管脚,那么要像这样:


#define  MX6Q_PAD_GPIO_19__GPIO_4_5

(_MX6Q_PAD_GPIO_19__GPIO_4_5 | MUX_PAD_CTRL(NO_PAD_CTRL))


其中_MX6Q_PAD_GPIO_19__GPIO_4_5定义为:


#define _MX6Q_PAD_GPIO_19__GPIO_4_5

IOMUX_PAD(0x0624, 0x0254, 5, 0x0000, 0, 0)


这个IOMUX_PAD宏是定义GPIO的关键宏,其原型为:


#define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs, 

_sel_input, _pad_ctrl)


IOMUX_PAD宏有6个参数,每个参数的意思是:


参数


含义


_pad_ctrl_ofs 


控制寄存器的偏移地址(16进制)


_mux_ctrl_ofs


MUX控制寄存器的偏移地址(16进制), 用于选择引脚的功能


_mux_mode


MUX模式,bit0~3,范围0~7


_select_input_ofs   


SELECT_INPUT寄存器偏移地址(16进制)


_select_input 


Daisy Chain模式, bit0~1,范围0~3


_pad_ctrl


bits to be set in register _pad_ctrl_ofs for configuration selection


具体的含义要结合IMX6数据手册【Chapter 36 IMOUX Controller(IOMUXC)】的内容。


以下就GPIO_19这个管脚的配置进行说明:


1、_pad_ctrl_ofs


找到数据手册page 2433:

从上图可知:_pad_ctrl_ofs = 0x624


2、_mux_ctrl_ofs、_mux_mode


找到数据手册page 2055的内容:

如上图,_mux_ctrl_ofs取值为0x254,_mux_mode范围为000~110


只有_mux_mode = 0时,_select_input_ofs和_select_input才有效,其余时候_select_input_ofs和_select_input 都为0。


3、_select_input_of、_select_input

当_mux_mode = 0时,_select_input_ofs的取值需参考数据手册page 2654:

此时_select_input_ofs=0x8e8,_select_input=0x1


4、_pad_ctrl


_pad_ctrl一般取值为0


综上所述,GPIO_19的配置宏定义如下:


#define _MX6Q_PAD_GPIO_19__KPP_COL_5

IOMUX_PAD(0x0624, 0x0254, 0, 0x08E8, 1, 0)

#define _MX6Q_PAD_GPIO_19__ENET_1588_EVENT0_OUT

IOMUX_PAD(0x0624, 0x0254, 1, 0x0000, 0, 0)

#define _MX6Q_PAD_GPIO_19__SPDIF_OUT1

IOMUX_PAD(0x0624, 0x0254, 2, 0x0000, 0, 0)

#define _MX6Q_PAD_GPIO_19__CCM_CLKO

IOMUX_PAD(0x0624, 0x0254, 3, 0x0000, 0, 0)

#define _MX6Q_PAD_GPIO_19__ECSPI1_RDY

IOMUX_PAD(0x0624, 0x0254, 4, 0x0000, 0, 0)

#define _MX6Q_PAD_GPIO_19__GPIO_4_5

IOMUX_PAD(0x0624, 0x0254, 5, 0x0000, 0, 0)

#define _MX6Q_PAD_GPIO_19__ENET_TX_ER

IOMUX_PAD(0x0624, 0x0254, 6, 0x0000, 0, 0)

#define _MX6Q_PAD_GPIO_19__SRC_INT_BOOT

IOMUX_PAD(0x0624, 0x0254, 7, 0x0000, 0, 0)


以上的宏定义来自imx6的linux源码的arm/arch/palt-mxc/include/mach/iomux-mx6q.h

推荐阅读

史海拾趣

HOPERF公司的发展小趣事

随着技术的不断积累和市场的日益扩大,HOPERF开始着手整合产业链资源。公司不仅在ASIC芯片设计和MEMS传感芯片设计方面持续深耕,还逐步构建起包括封装测试校准技术、应用服务在内的完整产业链。同时,HOPERF积极实施全球化战略,在全球范围内招募顶尖研发设计人才,其中60%的专家级工程师来自德国、美国、瑞士等国际一流企业。这些举措极大地提升了公司的研发实力和市场竞争力,为公司的全球化发展奠定了人才和技术基础。

Esc Electronics Corp公司的发展小趣事

在全球环保意识日益增强的背景下,Esc积极响应绿色环保的号召,致力于推动绿色电子产业的发展。公司采用环保材料和节能技术生产产品,减少对环境的影响。同时,Esc还积极参与环保公益活动和社会责任项目,推动企业与社会的和谐发展。这些努力不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

请注意,以上故事均为虚构内容,仅用于展示电子行业公司可能的发展路径和故事框架。如有需要,请根据实际情况进行调整和补充。

AND Displays公司的发展小趣事

随着公司规模的扩大和实力的增强,AND Displays开始实施国际化战略。公司在全球范围内设立了多个研发中心和生产基地,以便更好地满足不同地区客户的需求。同时,公司还加强了与国际同行的交流与合作,共同推动显示技术的创新与发展。通过全球布局和资源整合,AND Displays逐渐成为了全球显示行业的领军企业之一。

以上五个故事从不同角度展示了AND Displays公司在电子行业中的发展历程和成就。这些故事不仅反映了公司的技术实力和市场竞争力,也体现了公司对环保、可持续发展等社会责任的关注和担当。

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

为了进一步提升技术水平和市场竞争力,Dongguan City Niuhang Electronics Co.LTD积极开展国际合作与交流。公司与多家国际知名半导体企业建立了紧密的合作关系,共同开展技术研发和市场拓展。通过与国际同行的交流与合作,公司不仅学到了先进的技术和管理经验,还拓宽了国际市场渠道,为公司的长远发展奠定了坚实基础。

BOWEI公司的发展小趣事

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

ETAL公司的发展小趣事

随着全球环保意识的提高,ETAL也积极响应号召,将绿色环保理念融入到生产和经营中。公司采用了环保材料和清洁能源,减少了对环境的污染。同时,ETAL还注重节能减排和资源循环利用,努力降低生产成本和提高资源利用效率。这些措施不仅有助于保护环境,还为公司带来了长期的经济效益。

问答坊 | AI 解惑

CN3063-专为太阳能供电方案

概述:             CN3063是可以用太阳能电池供电的单节锂电池充电管理芯片.该器件 内部包括功率晶体管,应用时不需要外部的电流检测电阻和阻流二极管.         内 ...…

查看全部问答>

cofdm 无线应急指挥调度系统

cofdm产品   无线应急指挥调度系统…

查看全部问答>

仪表放大器设计指南

本帖最后由 paulhyde 于 2014-9-15 03:59 编辑 仪表放大器设计指南,希望对做仪器仪表的同学有所帮助!  …

查看全部问答>

摩托罗拉的MC9S08AC16的I/O口带负载能力是多少呀?

如题。 刚刚用这个东西,翻了规格书也不知道。 MC9S08AC16的I/O究竟可以驱动多大的电流,希望各位可以给出一个精确的数据。 谢谢啦。…

查看全部问答>

CAN总线概况与原理

一、概述       对于一般控制,设备间连锁可以通过串行网络完成。因此,BOSCH公司开发了CAN总线(Controller Area Network),并已取得国际标准化组织认证(ISO11898),其总线结构可参照I SO/OSI参考模型。同时,国际上一些大的半导体 ...…

查看全部问答>

网络收音机有人做不?

网络收音机有人做不? 我想玩玩…

查看全部问答>

WinCE 文件夹属性

Directory(\"\\123\"):-Directory(\"war3 \") 可以在mycomputer目录下创建一个文件夹,请问这个文件夹的属性要怎么设置 ?…

查看全部问答>

我在fedora9上的交叉编译

编译embedded flash出现了impossible constraint in `asm\'错误,不知道怎么解决,是修改makefile文件么?…

查看全部问答>

求助t-DMB的音频AAC++负载

本人最近在做T-DMB项目,想问问AAC++方面的!   我现在把SL包解析后获得SL包负载数据是如何组织的?我要对AAC++解码,该如何处理SL包的负载? 有搞过这方面的大侠吗?给点提示,定重谢! 我最想知道到底解析音频SL包后的数据是啥格 ...…

查看全部问答>