seeed社製Wio Terminalを買ってみました。40ピンのGPIOヘッダ(ソケット)があり、ピン配置はラズパイ互換となっています。
そこで、Wi-SUNインタフェースボードとの接続実験を行ってみました。
と言っても、繋ぐ信号はUARTのTxD、RxD、(無線モジュール用)リセットの3本のみです。
4連休の後半2日を使って、最終的に疎通確認までできましたが、単純なところで躓いてしまいました。(できれば、もう少し先に進めたかったんですが…)
ハードウェア
- Wio Terminalと接続するGPIOヘッダには、足の長い連結ソケットを使います。
- 無線モジュールを載せたところ。載せる部品はこれだけです。
- Wio Terminalとの接続には、無線モジュールがあって高さが足りないため、連結ソケットを2つ使います。
- 反対側から見た図
ソフトウェア
- 開発環境には、いつものVSCode+PlatformIOを使います。
[env:seeed_wio_terminal]
platform = atmelsam
board = seeed_wio_terminal
framework = arduino
ハマったところ
- 無線モジュールのリセット信号にはGPIO18を使ってるんですが、出力ポートにできず、解決に時間がかかってしまいました。(下記のコードは、GPIO18ポートを100ms間LOWレベルにするもの)
pinMode(BCM18, OUTPUT);
digitalWrite(BCM18, LOW);
delay(100);
digitalWrite(BCM18. HIGH);
- 結論としては、ライブラリが間違ってました。(具体的には、variant.h)
- GitHub上では8/14に公開されたv1.7.9で対応されていますが、PlatformIO環境で読み込まれるライブラリのバージョンがv1.7.6となっています。(2020/9/22現在)
- 最後に、回避コードを示しておきます。(PlatformIO環境のライブラリ・バージョンがv1.7.9以降になったら、BCM18を使えばよい。)
pinMode(PIN_I2S_SCK, OUTPUT);
digitalWrite(PIN_I2S_SCK, LOW);
delay(100);
digitalWrite(PIN_I2S_SCK. HIGH);