米尔电子
直播中

jf_39110170

1年用户 343经验值
擅长:可编程逻辑 嵌入式技术 EDA/IC设计
私信 关注
[技术]

【米尔-TIAM62开发板-接替335x-试用评测】+(四)手把手根据硬件配置 CPU 功能管脚

接上三篇:

【米尔-TIAM62开发板-接替335x-试用评测】+(一)手把手配置Yocto - 米尔电子

【米尔-TIAM62开发板-接替335x-试用评测】+(二)配置U-Boot步骤实战

【米尔-TIAM62开发板-接替335x-试用评测】+(三)手把手创建Uboot设备树与内核设备树实战

感谢电子发烧友william hill官网 提供的试用平台,感谢深圳市米尔科技有限公司提供的试用机会,感谢深圳市米尔科技有限公司茜茜的周日及时回复和帮助!感谢深圳市米尔科技有限公司提供的技术支持与帮助!

谢谢!
根据您的硬件配置 CPU 功能管脚内容可是硬件控制的大魔法啊!让我这个电子迷来给你解读一下,如何根据硬件配置来控制功能引脚。哎呀,这段内容确实有点硬核呢,让我也有点小紧张了。不过没关系,让我们尝试用幽默的方式解读一下。

首先,想象一下你的电脑是一座高科技的房子。CPU是房子的心脏,负责处理所有的任务。而GPIO就像是房子的门窗,负责与外界的交流。
image.png

MYD-YM62X板上的IO管脚就像是房子的门窗钥匙,定义在设备树文件里。而TI的引脚配置宏定义就像是一把神秘的万能钥匙,可以打开这些门窗。

现在,我们来看一下如何使用这把钥匙。首先,你需要查看引脚配置规则。这个规则就像是一段密码,只有知道密码的人才能操作这把钥匙。
image.png

在这里,AM62X_IOPAD和AM62X_MCU_IOPAD就像是房子的不同房间的门窗钥匙。pa是钥匙的编号,val是门窗的开关状态,muxmode是门窗可以打开的方向。

比如说,引脚配置AM62X_IOPAD(0x0094, PIN_INPUT, 7),就像是设置了一个房间的门窗只能从外面打开,而且这个房间还没有电灯,只能从外面看里面。
image.png

最后,我们还可以在设备树上配置gpio。这就像是给房子增加新的门窗。在myd-y62x-common.dtsi文件里,我们可以打开设备树这个大门,然后定义新的gpio设备节点,比如开启一扇新的窗户。

这样一来,你是不是感觉科技也没有那么高深莫测了?希望这个比喻能让你轻松理解这段复杂的科技内容!如果你还有其他问题,随时可以在下方的评论区告诉我哦!虽然我上班很忙,但是下班后我会第一时间为您解答的!现在,我们以一个实例来了解功能管脚的控制实现。这个实例是关于MYD-YM62X板的功能管脚配置。这些配置信息大部分定义在一个叫做“arch/arm64/boot/dts/myir/myd-ym62x-common.dtsi”的设备树文件中。

在讲解实例之前,我们先来看一下TI的引脚配置宏定义。这些宏定义在文件“arch/arm64/boot/dts/myir/k3-pinctrl.h”中。下面我们要介绍的就是一个配置的实例。

  1. 查看pinctrl配置规则

TI的引脚配置格式是这样的:
#define AM62X_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
#define AM62X_MCU_IOPAD(pa, val, muxmode) (((pa) & 0x1fff)) ((val) | (muxmode))
image.png

其中:
AM62X_IOPAD代表A53域的引脚配置,AM62X_MCU_IOPAD代表R5侧的引脚配置。
pa:PADCONFIG寄存器地址复用寄存器偏移地址。
val:引脚上下拉等属性的配置。
muxmode:表示引脚可以复用成哪些功能。

例如,引脚配置如下:
AM62X_IOPAD(0x0094, PIN_INPUT, 7)
通过datasheet手册可知设置GPIO0_36为gpio输入功能。

  1. 在设备树上配置gpio

下面我们将使用DTS文件来进行设备硬件资源的申请及分配。用户可以在myd-y62x-common.dtsi文件下操作DTS,定义gpio设备节点如下:
gpioctr_device{
compatible = "myir,gpioctr";
#pinctrl-names = "default";
#pinctrl-0 = <&pinctrl_gpio_blue>;
status = "okay";
gpioctr-gpios = <&main_gpio0 31 0>;
};

看到这里,可能有些朋友会觉得有些头晕。别担心,这些复杂的配置和定义其实都是为了更好地控制和管理我们的硬件资源。只要我们理解了每个步骤的意义和作用,就可以更好地利用这些工具来为我们服务。这真的是一个复杂的问题呢!那么,让我用一种轻松有趣的方式给你解释一下这个过程吧!
image.png

首先呢,要实现一个功能引脚的控制,就像在一家高级餐厅里点菜一样,需要经过一系列的步骤。首先,你要看看菜单(也就是硬件配置),然后决定你要吃什么(也就是选择功能)。接着,你需要告诉厨师(驱动程序)你要吃什么,然后厨师就会开始烹饪(实现应用)。最后,美食就会送到你的桌子上(也就是功能引脚被控制)。
image.png

那么,在这个过程中,我们先来看看怎么配置菜单吧。在MYD-YM62X板上,这些IO引脚的定义都在一个设备树文件里,就像菜单上的菜名都在一张纸上一样。然后,我们再看看TI的引脚配置宏,就像你在餐厅里看看菜品的图片和描述一样。

接下来,我们来看看怎么在设备树上配置GPIO吧。这就像是在餐厅里点菜一样,你需要告诉服务员你要吃什么菜(比如你要吃鸡肉还是牛肉),然后服务员就会把你的订单送到厨房。在这个过程中,你需要知道每个菜品对应的价格(也就是每个引脚对应的配置)。
image.png

最后,你就可以享受你的美食了!就像你已经完成了引脚的配置一样,现在你可以使用这个功能引脚了!这个报告让我突然想起了小时候在电器说明书上看到的一堆复杂的威廉希尔官方网站 图和英文缩写。现在看来,这不就是我亲爱的硬件朋友们在谈论“引脚配置”、“驱动开发”和“应用实现”吗?对于门外汉的人来说,这简直就是黑魔法啊!话说回来,这个“MYD-YM62X”板子上的引脚配置好像在玩一个寻宝游戏,它们都隐藏在那个叫“设备树文件”的地方。而那些看似无聊的宏定义,原来都是宝藏的钥匙啊!什么?你问我怎么知道的?哎呀,这可是秘密,嗯...秘密武器!那个“TI pinctrl 配置格式”简直就像一道密码,破解它就能掌握引脚配置的魔法。看来,每个引脚都像是一个小世界,背后都有一套复杂的规则和秘密。哎呀,这让我想起了电影《黑客帝国》里的代码雨,是不是每个引脚都像是一个小小的绿色代码雨呢?

希望这个解释能帮助你更好地理解这个过程!
谢谢!

本人在本william hill官网 内的试读[经验] :

《电子工程师必备——九大系统威廉希尔官方网站 识图宝典》+附录2化整为零和集零为整威廉希尔官方网站 分析方法

《运算放大器参数解析与LTspice应用仿真》+学习心得4第三章专用放大器

《Android Runtime源码解析》+深入体会第六章ART的执行(4)

希望上面的内容对您能有所帮助!

还没吃饭

2023年12月9日

更多回帖

发帖
×
20
完善资料,
赚取积分