我有一个BeagleBoneBlack无线,我想使用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)吗?
答案 0 :(得分:3)
经过深入挖掘后,我发现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
。我怀疑有一种更简洁的方式,可能会返回到设备树覆盖,但这是我需要开始的。
很难找到关于这种更新的引脚配置方法的文档。
答案 1 :(得分:0)
首先,您应该检查设备树配置。 uEnv.txt中有准备使用的配置。你也可以像这样改变
https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/spi