将外围设备移植到AndroidThings - 引脚选择

时间:2017-05-04 12:57:47

标签: porting raspberry-pi3 android-things

我正在尝试将一些代码移植到AndroidThings。目前它使用“GPIO 3(SCL)”作为Raspberry Pi上的引脚。 https://github.com/mattdh666/rpi-led-matrix-panel/blob/master/RgbMatrix.h#L206

然而在AndroidThings上,相同的引脚是“I2C1(SCL)”,因此我无法使用peripheralManService.openGpio("BCM3")引用它 see here for Pinout diagram

    try {
        gpioSerialClock = service.openGpio("BCM3"); // Throws Caused by: android.os.ServiceSpecificException: Unknown I/O name BCM3
    } catch (IOException e) {
        throw new IllegalStateException(e);
    }

我应该将我的电线移动到使用标记为GPIO的Raspberry Pi上的另一个引脚吗?是否有任何后果:/我的外设想要使用BCM3,因为它是串行时钟

enter image description here

如果需要,可以对所选引脚进行更直观的解释:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您移植的代码假设所有连接的引脚都是纯GPIO引脚。它明确地驱动每个引脚的所有引脚转换。在这方面,您只需要13个可用的GPIO端口即可连接到RGB矩阵。您只需对布线进行适当调整,以使示例中的引脚编号与您选择的端口相匹配。

这不是处理来自Android Things的通信的最有效方式(许多往返和I / O循环),但它应该作为一个开始。理想情况下,您可以从SPI或I2C总线驱动时钟串行数据(如果协议匹配),以减少开销并提高传输速率。