访问和控制 ODYSSEY - X86J41x5 的 40 针 GPIO
本教程演示了如何在 Linux(Ubuntu)下访问和控制 ODYSSEY - X86J41x5 的 40 针 GPIO。通过本教程,您可以轻松开始使用 ODYSSEY - X86J41x5 构建您的物联网项目!
40 针 GPIO 引脚图
Ubuntu 18.04
Ubuntu 20.04

Ubuntu 22.04

GPIO
ODYSSEY - X86J41x5 的默认引脚配置为功能模式,例如引脚 3 默认设置为 I2C 模式,而不是 GPIO 模式。如果您希望默认使用 GPIO 模式,请参考以下内容。
40-Pin GPIO 配备了双向电平转换器,使用时电流不得超过 1 mA。这意味着 IO 电流非常低。
您可以使用 GPIO 或通过 Linux sysfs GPIO 接口将功能模式引脚更改为 GPIO。以下示例以引脚 7 为例,以下代码将点亮连接到引脚 7 的 LED 模块:
sudo -i
cd /sys/class/gpio
echo 337 > export
cd gpio337
echo "out" > direction
echo 1 > value

关闭 LED:
echo 0 > value
使用完 GPIO 后,需要取消导出:
echo "in" > direction
cd ..
echo 337 > unexport
中断
要在 ODYSSEY - X86J41x5 上测试中断,请按照以下说明操作:
这里我们使用 python-periphery 来访问用户空间 Linux 中的 GPIO 接口(Linux GPIO 编号)。
- 安装 python3-pip。
sudo apt install python3-pip
- 安装 python-periphery。
sudo pip3 install python-periphery
-
下载 IRQtest 测试脚本到本地。
-
切换到下载脚本的目录并运行测试脚本:
sudo python3 IRQtest.py

将引脚更改为默认 GPIO 模式
如果您希望 40-pin 默认设置为 GPIO,可以通过 BIOS 设置更改。
-
重启 ODYSSEY - X86J41x5 并在启动时持续按下 DEL 键进入 BIOS 菜单。
-
导航到 Advanced -> HAT Configuration。
-
根据需要将功能 GPIO 更改为 GPIO 模式!

注意: 您还可以将其他 GPIO 设置为默认输出。
使用 Grove Base Hat 进行简单控制
您还可以使用适用于 Raspberry Pi 的 Grove Base Hat 进行简单的数字信号控制。例如,目前无法使用 I2C 和 UART 端口(Grove Base Hat for Odyssey-X86 的固件正在开发中,很快会发布)。
以下以 Grove Base Hat 的 D5
端口为例:
注意: 这里指的是 Raspberry Pi 的 BCM 编号系统 -> BCM5
。因此,目前要在 Odyssey-X86 上使用,需要确定其物理引脚,实际上是物理 引脚编号 29
。参考:Raspberry Pinouts。
因此,连接到 Odyssey-X86 的 Grove Base Hat 上使用 D5 的物理引脚是 29,即 Linux GPIO 415
。
现在,我们可以使用与上述相同的方法来控制此 GPIO:
sudo -i
cd /sys/class/gpio
echo 415 > export
cd gpio415
echo "out" > direction
echo 1 > value

取消导出时,按照之前的步骤操作即可。
UART
要检查 ODYSSEY - X86J41x5 上的 UART 设备,请运行以下命令:
ls /sys/bus/pci/devices/0000\:00\:18.?/dw-apb-uart.*/tty/ | grep tty

ttyS4
与 40-pin 接头上的 UART 引脚(引脚 8 和引脚 10)相关联。要从这些引脚访问,请执行以下操作:
sudo apt install screen
sudo screen /dev/ttyS4/ 115200
I2C
ODYSSEY - X86J41x5 的默认 I2C 速度为 1MB/s,无法配置。
要识别 ODYSSEY - X86J41x5 上的 I2C 端口,可以执行以下命令:
- i2c_designware.0 -> 引脚 27 和 28 (I2C6_SDA 和 I2C6_SCL) 的 I2C 通道
ls /sys/bus/pci/devices/*/i2c_designware.0/ | grep i2c
- i2c_designware.1 -> 引脚 3 和 5 (I2C5_SDA 和 I2C5_SCL) 的 I2C 通道
ls /sys/bus/pci/devices/*/i2c_designware.1/ | grep i2c

要检测连接到 I2C 通道 0 的外设,请执行以下命令:
sudo apt install i2c-tools
sudo i2cdetect -r -y 0

注意: 对于 I2C 通道 1,将最后一个参数从 0 改为 1。
SPI
可以通过运行以下命令识别 SPI 设备:
ls /sys/bus/pci/devices/0000\:00\:19.*/pxa2xx-spi.*/spi_master/ | grep spi

在用户空间启用 SPI
要启用用户访问 SPI 设备,请按照以下步骤操作:
-
下载 此处的 zip 文件 并解压到本地。
-
进入解压后的目录:
chmod +x acpi-add acpi-upgrades install_hooks
sudo ./install_hooks && sudo acpi-add spidev*
- 重启 ODYSSEY - X86J41x5。
现在,您可以在 /dev
中检查 SPI 设备:
ls /dev/spi*

技术支持与产品讨论
感谢您选择我们的产品!我们为您提供多种支持渠道,以确保您使用我们的产品时体验顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。