系统相关
首页 > 系统相关> > linux-如何在BeagleBoneBlack上启用和使用SPI

linux-如何在BeagleBoneBlack上启用和使用SPI

作者:互联网

我有一个BeagleBoneBlack Wireless,我想使用SPI(和I2C).我发现很难获得有关如何在BBB上设置和使用SPI的明确说明.首先,我不清楚BBB的默认配置是什么.我似乎有两个SPI设备:

$ls /dev/spi*
/dev/spidev1.0  /dev/spidev1.1  /dev/spidev2.0  /dev/spidev2.1

我似乎也有I2C:

$ls /dev/i2c*
/dev/i2c-0  /dev/i2c-1  /dev/i2c-2

对我来说,这些总线是否实际上多路复用到引脚还是不清楚.如果将它们连接到引脚,那么究竟是哪条总线?

我尝试使用引脚多路复用信息(from here)进行检查,该信息告诉我对于SPI1芯片选择0,我应该使用偏移量为0x19C的引脚,因此我查询了该引脚的模式:

$sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 44e1099c
pin 103 (44e1099c.0) 00000002 pinctrl-single

它以模式2返回,这对我来说不是很有用(不是SPI).我尝试遵循有关为此设置一个覆盖层(from here)的说明,但是这需要对我的内核进行一些调整,即使那时似乎也没有帮助.

请有人指出一些更清楚的指令,理想情况下,使其与我使用的内核版本(4.4.30)相匹配吗?

解决方法:

经过大量挖掘之后,我发现BBB的最新版本(肯定是我拥有的无线版本)使用universal cape设备树形覆盖,似乎现在添加/移除覆盖不是处理引脚配置的首选方法.

现在可以使用config-pin实用程序完成引脚配置,这确实对我有用.例如,要使SPI0可访问(设备驱动程序已存在):

config-pin P9.17 spi
config-pin P9.18 spi
config-pin P9.21 spi
config-pin P9.22 spi

这在启动过程中不是持久的,因此我将其添加到了.profile中.我怀疑有一种更整洁的方法,它可能会返回到设备树覆盖,但这就是我开始所需要的.

很难找到有关这种新的引脚配置方法的文档.

标签:spi,beagleboneblack,linux
来源: https://codeday.me/bug/20191111/2020834.html