BBB学习(九):BBB引脚功能互查表的用法

一、前言

前节介绍了BBB普通IO口的操作,同时也完成了程序对IO口输入状态的检测。实际上,BBB众多端口都是可以配置的,比如有的端口可以是普通IO口,同时它也可以是I2C接口。因此我们需要知道当前IO口是什么配置,同时如果需要配置我们要怎么配制才行,这就要用到BBB引脚功能互查表了。例如:

https://elinux.org/Beagleboard:Cape_Expansion_Headers

BBB扩展端口中可以作为数字IO口的有以下端口:

image

而如果用到EMMC或HDMI则是以下端口:

image

二、查看BBB相关端口配置

BBB端口状态:/sys/kernel/debug/pinctrl/44e10800.pinmux/pins

可以将上述路径设置成环境变量$PINS,方法是:在/etc/profile文件最后添加一行 export PINS=/sys/kernel/debug/pinctrl/44e10800.pinmux/pins。重启或执行命令source /etc/profile 生效,可以通过echo $PINS cat $PINS查看引脚状态

image

三、对照BBB端口功能表

https://github.com/derekmolloy/boneDeviceTree/tree/master/docs

该链接是BBB端口功能的对照表路径。如下图红框内是主要的配置说明:

image

引脚的配置用一个字节(即8个bit来表示),每一个位控制一个功能,如下图所示:

image

在PINS中可以看到相关引脚的配置,拿第一个为例:

image

pin0的地址为:0x44e10800,配置值为0x31,转化为二进制为:0011 0001,填入表格中对照如下:

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
slew Control Receive Active Pullup/pulldown enable Pullup/down Mux mode mux mode mux mode
0 0 0 1(pull up) 1(enable) 0 0 1

其中0x31中的3开启了引脚上拉功能,mux mode为001,可以知道该引脚的功能mode为1,此时查询引脚定义,根据其引脚地址,可引脚功能表中找到0x44e10800

image

由此可见,该引脚为P8_25,其引脚工作模式mode为1:

image
image
查表可知,mode1为:mmc1_dat0, 因此可判断该引脚默认是用来与eMMC通讯的。

四、总结

本节介绍了BBB引脚功能表用法,可以通过BBB相关pin相关文件判断当前引脚处于什么样的功能。对后面学习device tree时配置引脚状态也有一定的帮助。


猜你喜欢

转载自blog.csdn.net/b5w2p0/article/details/79211291
bbb