在Android中通过SPI进行通信

时间:2013-09-10 14:04:03

标签: android spi

目前我正在寻找通过Android在SPI上进行通信的解决方案。我在我的系统上安装了NDK,并使用本机类与我的Wandboard上的GPIO(/ sys / class / gpio / gpioxx / value)进行通信。它工作正常。所以在Android中使用NDK或C代码的原则对我来说很清楚。不幸的是我找不到任何SPI设备/ dev / ....我只找到I²C设备。有人能告诉我,如果android基本上提供SPI吗?如果有可能,我可以在哪里找到设备?我可以像使用Linux一样进行通信吗?

感谢

1 个答案:

答案 0 :(得分:0)

这是一个很老的问题的答案,但对其他人来说仍然很有价值

通常默认情况下未启用/dev/spidev0.0。必须在构建时在内核中启用它,并在运行时在设备树中启用它。

第一步是通过添加来更改linux内核构建配置以启用spidev

CONFIG_SPI_SPIDEV=y

然后在设备树(dts文件之一)中,向要映射到的spi设备添加spidev叶。

这是高速连接器上的hilimy960和spi3的示例,其他板子会略有不同

&spi3 {
    /* On High speed expansion */
    label = "HS-SPI1";
    status = "okay";
    spi-cpol=<0>;
    spidev@1 {
       spi-max-frequency = <5000000>;
        compatible = "rohm,dh2228fv";
        pl022,com-mode = <2>;
    }
};

您将能够使用简单的/dev/spidev0.0cat > /dev/spidev0.0来读取和写入设备cat </dev/spidev0.0,但是ioctl必须用于更复杂的选项,例如重新配置速度,更改极性和全双工写入/读取。