我有一个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我不清楚这些巴士是否真的是多路接驳,抑或没有真正的接驳服务。如果它们连接到引脚上,具体是哪一种总线?
我尝试使用引脚多路复用信息(从这里开始)来检查这一点,该信息告诉我对于SPI1芯片选择0,我应该使用一个偏移量为0x19C的引脚,所以我在该引脚上查询了模式:
$ sudo cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pins | grep 44e1099c
pin 103 (44e1099c.0) 00000002 pinctrl-single它作为模式2返回,对我来说不是很有用(它不是SPI)。我试着按照关于为这个(从这里开始)设置一个覆盖的说明进行操作,但是这需要对我的内核进行一些调整,甚至在那时似乎也没有帮助。
请有人向我指出一些说明,使这一点更清楚,理想的情况下,符合我正在使用的内核版本(4.4.30)?
发布于 2017-03-30 11:59:49
在深入研究之后,我发现BBB的最新版本(当然是我拥有的无线版本)使用了万向披风设备树覆盖,似乎添加/删除覆盖层现在并不是处理引脚配置的首选方法。
现在可以使用config-pin实用程序完成引脚配置,这对我确实有效。例如,要使SPI0可访问(设备驱动程序已经存在):
config-pin P9.17 spi
config-pin P9.18 spi
config-pin P9.21 spi
config-pin P9.22 spi这在引导过程中并不持久,所以我将它添加到我的.profile中。我怀疑有一种更整洁的方式,它可能返回到设备树覆盖,但这是我需要开始的。
关于这种新的引脚配置方法的文档很难找到。
发布于 2017-03-27 20:58:23
首先,您应该签出设备树配置。可以在uEnv.txt中使用配置。你也可以像这样用手换衣服
https://learn.adafruit.com/setting-up-io-python-library-on-beaglebone-black/spi
SPIDEV
https://stackoverflow.com/questions/42935068
复制相似问题