历史上的今天
返回首页

历史上的今天

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

正在发生

2021年04月01日 | 飞思卡尔IMX6 gpio配置方法

2021-04-01 来源:eefocus

使用imx6 的gpio时候需要关注board-mx6q_sabresd.h中的内容


本文以MX6Q_PAD_CSI0_DAT10__UART1_RXD进行详细说明:


(1)用source insight查看MX6Q_PAD_CSI0_DAT10__UART1_RXD


#define  MX6Q_PAD_CSI0_DAT11__UART1_RXD

(_MX6Q_PAD_CSI0_DAT11__UART1_RXD | MUX_PAD_CTRL(MX6Q_UART_PAD_CTRL))

主要由 _MX6Q_PAD_CSI0_DAT11__UART1_RXD | MUX_PAD_CTRL组成

(2)查看:_MX6Q_PAD_CSI0_DAT11__UART1_RXD 



#define _MX6Q_PAD_CSI0_DAT11__UART1_RXD

IOMUX_PAD(0x0654, 0x0284, 3, 0x0920, 1, 0)

(3)查看 IOMUX_PAD

#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))

(4)产看 MUX_PAD_CTRL


#define MUX_PAD_CTRL(x) ((iomux_v3_cfg_t)(x) << MUX_PAD_CTRL_SHIFT)

(5)可以发现 MUX_PAD_CTRL的意思和 IOMUX_PAD 的_pad_ctrl参数是一个意思。


(6)IOMUX_PAD的参数意思分别如下


_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


控制寄存器的取值(具体内容通过MUX_PAD_CTRL)


(7)查看datasheet:对应可以找到 (0x0654, 0x0284, 3, 0x0920, 1, 0)参数的具体意思

(8)在iomux-v3.h可以看个控制寄存器的具体取值:


#define NO_PAD_CTRL (1 << 17)

#define NO_PAD_I 0

#define NO_MUX_I 0

#ifdef CONFIG_SOC_IMX6Q

#define PAD_CTL_LVE (1 << 22)

#define PAD_CTL_LVE_MASK (1 << 22)

#define PAD_CTL_DDR_SEL_LPDDR2 (2 << 18)

#define PAD_CTL_DDR_SEL_DDR3 (3 << 18)

#define PAD_CTL_DDR_SEL_MASK (3 << 18)

#define PAD_CTL_HYS (1 << 16)

#define PAD_CTL_PUS_100K_DOWN (0 << 14)

#define PAD_CTL_PUS_47K_UP (1 << 14)

#define PAD_CTL_PUS_100K_UP (2 << 14)

#define PAD_CTL_PUS_22K_UP (3 << 14)

#define PAD_CTL_PUE (1 << 13)

#define PAD_CTL_PKE (1 << 12)

#define PAD_CTL_ODE (1 << 11)

#define PAD_CTL_SPEED_LOW (1 << 6)

#define PAD_CTL_SPEED_MED (2 << 6)

#define PAD_CTL_SPEED_HIGH (3 << 6)

#define PAD_CTL_DSE_DISABLE (0 << 3)

#define PAD_CTL_DSE_240ohm (1 << 3)

#define PAD_CTL_DSE_120ohm (2 << 3)

#define PAD_CTL_DSE_80ohm (3 << 3)

#define PAD_CTL_DSE_60ohm (4 << 3)

#define PAD_CTL_DSE_48ohm (5 << 3)

#define PAD_CTL_DSE_40ohm (6 << 3)

#define PAD_CTL_DSE_34ohm (7 << 3)

#define PAD_CTL_SRE_FAST (1 << 0)

#define PAD_CTL_SRE_SLOW (0 << 0)

(9)最终通过32位的寄存器地址配置32位的寄存器把gpio配置好


推荐阅读

史海拾趣

Fagor Electrónica公司的发展小趣事

然而,随着市场竞争的加剧和技术的快速变革,Fagor Electrónica也面临着前所未有的挑战。为了应对这些挑战,公司不断加大研发投入,积极引进先进技术和管理经验。同时,Fagor Electrónica还加强了与供应商和客户的合作,以共同应对市场变化。这些努力使得公司在激烈的市场竞争中保持了领先地位。

台湾町洋(dinkle)公司的发展小趣事

町洋始终坚守品质至上的原则,从原材料采购到生产流程再到成品检验,每一个环节都严格把关。这种对品质的执着追求使得町洋的产品在市场上享有极高的声誉。客户对町洋产品的信任和认可也成为了公司最宝贵的财富。

Catalyst公司的发展小趣事

随着电子行业的快速发展,Catalyst公司不断追求技术创新和突破。在某次关键的技术研发中,公司成功攻克了一项行业难题,推出了一款具有划时代意义的新产品。这款产品不仅性能卓越,而且具有极高的性价比,迅速赢得了市场的广泛认可。Catalyst凭借这一技术突破,成功引领了市场潮流,进一步巩固了其在行业内的领先地位。

Crystal Clear Technology公司的发展小趣事

面对全球电子市场的竞争压力,Crystal Clear Technology决定加快国际化步伐。公司先后在多个国家设立研发中心和生产基地,利用当地的资源和优势,提升产品的竞争力和生产效率。同时,公司还积极参与国际展览和交流活动,与国际同行建立广泛的合作关系,为公司的发展注入了新的活力。

BCD Semi(Diodes)公司的发展小趣事

在电子行业的发展过程中,市场波动和风险挑战是不可避免的。某一年,全球半导体市场出现了严重的产能过剩,导致产品价格大幅下跌。面对这一挑战,BCD Semi(Diodes)公司及时调整生产策略,优化产品结构,降低生产成本,成功度过了这一行业寒冬。

Boundary Devices公司的发展小趣事

近年来,电子行业面临着诸多变革和挑战,如物联网的快速发展、人工智能的崛起等。面对这些变革,Boundary Devices积极调整战略,加强在物联网和人工智能领域的研发投入,推出了一系列符合市场趋势的新产品。同时,公司还加强与高校和研究机构的合作,共同推动电子行业的创新与发展。

问答坊 | AI 解惑

职位是有负面作用的

郁郁不得志的人在千方百计地寻找着成功的良方,但年少得志的诸位也一定要小心了,有很多人不是栽在逆境中,而是栽在了小有所成上面。“先胖不算胖,后胖压塌炕”,我时刻在以此警惕自己,少年时代的过于顺利其实可能蕴含着年长后的巨大危机。人一生 ...…

查看全部问答>

【labview】chinese中级Design Pattern - Producer Consumer

【labview】Design Pattern - Producer Consumer chinese 中级 [ 本帖最后由 安_然 于 2010-5-24 15:54 编辑 ]…

查看全部问答>

全球首款可录制3D影像电视8月发售

本帖最后由 jameswangsynnex 于 2015-3-3 19:56 编辑    7月22日消息,松下公司21日宣布,将于8月27日发售两款具有录制和播放3D影像功能的等离子电视机“3DVIERA”。松下公司称,这是全球首款集合3D电视和录像功能于一体的新机型。 与分别购置 ...…

查看全部问答>

请教关于90092的使用

本人现在用C8051F020的SPI口线对90092进行控制,对90092进行初始化成功,但是不知道如何在屏幕上叠加字符. 比如用SPIWR()这个子程序对90092发送控制命令. 怎样才能在屏幕上有叠加字符显示?请朋友们帮帮忙,谢谢啦!急!…

查看全部问答>

redhat9.0重新编译内核(2.4.20)后USB键盘无法使用的问题?

小弟现在做linux上的framebuffer驱动,在RH9上编译,内核版本也没有动,用的RH9自带的源代码。在重新编译内核时都正常,重启后, grub菜单出现2.4.20-8custom,选择后启动,到出现xwindows登录界面后,该输入用户名密码时,键盘无法使用。之前在gru ...…

查看全部问答>

VHDL的语法测试题

1.        简述VHDL语句a <= Transport b XOR c AFTER m; 完成的主要功能。2.        分析以下程序段的主要功能:process    begin    if (clk’event and clk=’1’)   ...…

查看全部问答>

【请教】MMA7455 SPI方式读取的数据怎么计算?谢谢

接的是STC的单片机,先谢谢大家了!!!用的代码也附上:另外我中断0和中断1的管脚没接,会不会影响读取数据。数据: E代表精度,K是校验和,中间的三个数据分别是XYZ轴的数据,请问下怎么计算加速度和角度?非常感谢E 0208 023 90048 KE02080 ...…

查看全部问答>

MSP430F149 脉冲捕捉问题求助

如何用TimeB 的TB2实现脉冲捕捉,写了一个超声波程序,用TB0捕捉跳变沿好使,可是用别的就不好使了,大家指导一下啊,谢谢了…

查看全部问答>

学模拟+RS-232\RS-485转换的实际应用

本帖最后由 dontium 于 2015-1-23 11:41 编辑 博文链接: deyisupport./blog/ ... /rs-232-rs-485.aspx 该博文从RS485的原理开始介绍,接着进一步介绍应用领域,应用前景,最后对一个满足工业应用的电路进行分析,论述了一些应用常见 ...…

查看全部问答>