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
ドキュメント