HumansXドキュメントセンター 公式サイトへ ↗

1. ピン定義と応用

開発ボード上の 40PIN 機能ピンのインターフェース定義については、本節をご参照ください。

ハードウェア使用上の注意

  • RDK の 40PIN が提供する GPIO は 3.3V ロジック信号で、最大耐電圧は 3.46V です。
  • RDK の 40PIN の 3.3V は最大 800mA、5V は最大 500mA の出力に対応しています。上記の最大出力電流で使用する場合、RDK の入力アダプターは最低 25W の負荷能力に対応している必要があります。
  • 周辺機器を接続する際は、40PIN 上の電源・グランド・信号レベルの関係に十分注意してください。過電圧、過電流、ESD などが発生すると、RDK に回復不能な損傷を与える可能性があります。
  • ジャンパーワイヤー(デュポンケーブル)で RDK と他の機能ボードを接続する際は、RDK 製品の電源が切れていることを確認してください。

ピン多重化(マルチプレクス)の設定

40PIN のピンは、本節に示すとおりデフォルトで UART、SPI、I2C、I2S などの特殊機能が有効になっています。特定のピンを GPIO 機能として設定する必要がある場合は、srpi-config 設定ツールで設定してください。

なお、srpi-config プログラムは フルスクリーンのコマンドラインウィンドウ で実行する必要があります。手順は以下のとおりです。

sudo srpi-config

3 Interface Options -> I3 Peripheral bus config を選択し、以下のバス設定画面に進みます。

RDK X5 では、一部のインターフェースに多重化関係があります。

同じグループの多重化機能では、いずれか 1 つの機能を有効にした場合にのみ有効になります。

多重化機能がすべて無効の場合、そのインターフェースは通常の GPIO 機能として動作します。

多重化機能の例は以下のとおりです。

インターフェース機能 1 インターフェース機能 2
uart3 i2c5
i2c0 pwm2
spi2 pwm0
spi2 pwm1
i2c1 pwm3

okay は該当ピンを専用機能として設定し、disabled はそのピンの専用機能を無効にして GPIO として使用できるようにします。設定は 再起動 後に有効になります。

  • キーボードの上下キーで機能項目を選択し、Enter キーで機能を切り替えます
  • キーボードの左右キーで Select / Exit を選択し、Enter キーで確定します

40PIN 定義

開発ボードには 40PIN の標準インターフェースが用意されており、周辺機器の拡張が容易に行えます。デジタル IO は 3.3V レベルで設計されています。40PIN インターフェースの定義は以下のとおりです。

  • RDK X5

GPIO 読み書き操作の例

動画:https://www.bilibili.com/video/BV1rm4y1E73q? p=16

開発ボードの /app/40pin_samples/ ディレクトリには、GPIO 入出力テスト、PWM、I2C、SPI、UART などのテストを含む、各種 40PIN ピン機能のテストコードがあらかじめ用意されています。テストプログラムはすべて Python で記述されています。詳細は本節の他のモジュールをご参照ください。

/app/40pin_samples/button_led.py を例にとると、このプログラムは 37 番ピンを入力に、31 番ピンを出力に設定し、37 番ピンの入力状態に応じて 31 番ピンの出力状態を制御します。

環境準備

ジャンパーワイヤーで 37 番ピンを 3.3V または GND に接続し、ハイ/ローレベルを制御します。

実行方法

button_led.py プログラムを実行して、GPIO 読み書きプログラムを起動します。

sunrise@ubuntu:~$ cd /app/40pin_samples/
sunrise@ubuntu:/app/40pin_samples$ sudo python3 ./button_led.py

## 预期效果
通过控制`37`号管脚的高低电平,可以改变 `31`号管脚的输出电平值。

```bash
sunrise@ubuntu:/app/40pin_samples$ sudo python3 ./button_led.py
Starting demo now! Press CTRL+C to exit
Outputting 0 to Pin 31
Outputting 1 to Pin 31
Outputting 0 to Pin 31