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