Beaglebone绿色SPI通信

时间:2016-11-09 21:12:33

标签: linux linux-device-driver beagleboneblack spi

我在使用SPI工作Beagle Bone green方面遇到了一些麻烦。 首先,我正在运行内核版本4.4.9。

xgate@beaglebone:~/spitest$ uname -a
Linux beaglebone 4.4.9-ti-r25 #1 SMP Thu May 5 23:08:13 UTC 2016 armv7l GNU/Linux

现在,我确实将SPIDEV0配置添加到/ sys / devices / platform / bone_capemgr / slots:

xgate@beaglebone:/lib/firmware$ echo BB-SPIDEV0 > /sys/devices/platform/bone_capemgr/slots 
xgate@beaglebone:~/spitest$ cat /sys/devices/platform/bone_capemgr/slots
0: PF----  -1
1: PF----  -1
2: PF----  -1
3: PF----  -1
4: P-O-L-   0 Override Board Name,00A0,Override Manuf,BB-SPIDEV0
5: P-O-L-   1 Override Board Name,00A0,Override Manuf,BB-SPIDEV1

现在当我打开/dev/spi1.0,它应该是带有SPI0_CS0的P9头上的SPI0,并使用linux write()函数写入文件时,引脚上没有任何反应(我尝试与之通信)一个SPI设备,我的逻辑分析仪也显示没有发生任何事情。)

我在这里遗漏了什么吗?我现在已经用了很长一段时间了,我很惊讶没有那么多可以找到的东西。让我觉得我很不走运,它不起作用。

任何人都可以请教我这个吗? 在此先感谢:)

编辑: 看到我不清楚我是如何测试的,这是我用来测试SPI的程序:

#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>

int main()
{
    int fd;
    unsigned char buf = 0xA1;

    fd = open("/dev/spidev1.0", O_RDWR);
    if(fd < 0) printf("spi failed to open\n");

    while(1)
    {
        write(fd,&buf,1);
    }

    close(fd);

    return 0;
}

EDIT2:已修复!通过将此行添加到/boot/uEnv.txt:

解决了该问题
cape_enable=bone_capemgr.enable_partno=BB-SPIDEV0

显然,SPI在启动后手动添加到插槽后不起作用。

0 个答案:

没有答案