Armadilloフォーラム

Armadillo-IoT G3L デジタル出力追加

kazukitakahashi

2019年2月12日 18時52分

Armadillo-IoT G3Lで、外にデジタル出力(出力のGPIO)を出すことはできないでしょうか?

Armadillo-IoT G3Lから一本信号線を外に出して、High/Lowを出力し制御したい装置がございます。
理想はCON4 シリアルインターフェースの5,6番ピンを出力のGPIOにすることなのですが、おそらくRS422専用なので無理
保障外になってもかまわないので、CON5 デバッグシリアルインターフェースや他の空き端子、スルーホールなど
ケースを開けて、中の基板にはんだ付けするような改造の形でも、出力GPIOを外に一つ追加することはできないでしょうか。

コメント

at_koseki

2019年2月12日 19時59分

古関です。

> Armadillo-IoT G3Lで、外にデジタル出力(出力のGPIO)を出すことはできないでしょうか?
> Armadillo-IoT G3Lから一本信号線を外に出して、High/Lowを出力し制御したい装置がございます。
以下、外付けのリモートI/Oモジュールを使ったhowtoもございますが、
コスト高になってしまいますし、簡易的にできる手段があるといいですよね。。。

https://armadillo.atmark-techno.com/howto/connect-armadillo-iot-g3l-wit…

> 理想はCON4シリアルインターフェースの5,6番ピンを出力のGPIOにすることなのですが、おそらくRS422専用なので無理
はい。
ご指摘の通りここはRS485/422専用で
トランシーバーも間に入っておりGPIOにはできません。

> 保障外になってもかまわないので、CON5デバッグシリアルインターフェースや他の空き端子、スルーホールなど
> ケースを開けて、中の基板にはんだ付けするような改造の形でも、出力GPIOを外に一つ追加することはできないでしょうか。
保証対象外となりますが、以下案となります。
記載いただきましたとおり、CON5デバッグシリアルインターフェースを使うのが楽そうです。

以下、CTS/RTSの以下2ピンを、GPIOに割り当てる場合の手順例です。
USBシリアル変換アダプタの5、7ピンのケーブルを抜いてしまうのが良さそうです。。
※ ごめんなさい、手順の実動作確認はしていません。

* UART_DBG_CTS_B -> GPIO1_IO05
* UART_DBG_RTS_B -> GPIO1_IO04

Linux-Kernelの arch/arm/boot/dts/armadillo_x1l.dts を変更
ビルドして、Armadillo-IoT G3Lの "armadillo_iotg_g3l.dtb" を書き換え。
---------------------------------------------------------------------
pinctrl_lpsr_uart5: lpsr_uart5grp {
fsl,pins = <
MX7D_PAD_GPIO1_IO07__UART5_DCE_TX 0x00
MX7D_PAD_GPIO1_IO06__UART5_DCE_RX 0x70
MX7D_PAD_GPIO1_IO05__UART5_DCE_RTS 0x10 ※削除
MX7D_PAD_GPIO1_IO05__GPIO1_IO5 0x00 ※追加
MX7D_PAD_GPIO1_IO04__UART5_DCE_CTS 0x00 ※削除
MX7D_PAD_GPIO1_IO04__GPIO1_IO4 0x00 ※追加
>;
};
---------------------------------------------------------------------

書き換え後、Armadillo-IoT G3Lを起動して以下のコマンドを実行
# echo 5 > /sys/class/gpio/export
# echo 4 > /sys/class/gpio/export

GPIO1_IO05 を out にしてhigh/lowする
# echo out > /sys/class/gpio/gpio5/direction
# echo 1 > /sys/class/gpio/gpio5/value
# echo 0 > /sys/class/gpio/gpio5/value

> ・・他の空き端子、スルーホールなど
こちらも確認してみましたが、ちょうどいいのがありませんでした。
CON6は改造が楽そうですが、JTAG専用ピンでGPIOにはできません。

よろしくお願いします。

kazukitakahashi

2019年2月13日 9時24分

情報提供ありがとうございます。
この内容で検討してみます。

y.nakamura

2019年2月13日 11時20分

中村です。

横から失礼します。

> 記載いただきましたとおり、CON5デバッグシリアルインターフェースを使うのが楽そうです。
...
> USBシリアル変換アダプタの5、7ピンのケーブルを抜いてしまうのが良さそうです。。

このコネクタに、これの7Pのが使えそうです。
http://www.aitendo.com/product/1221

少し前にArmadilloとは関係のない別件の探しものをしていて
(そのときに探していたのは在庫切れの6Pでした)、
「これ、Armamadilloで使えるじゃん!」とメモしておいたものです。

--
なかむら

kazukitakahashi

2019年2月13日 17時28分

重ね重ねありがとうございます。
USBシリアル変換アダプタのケーブルを切るか
ケーブル部分だけ購入できないか検討していたので助かります。

kazukitakahashi

2019年3月5日 10時48分

ご教示頂いた方法で
Armadillo-IoT G3L、CON5デバッグシリアルインターフェースのフロー制御用端子を
GPIOとして動作させることができました。

ただ、OS起動からアプリが出力のGPIOとして制御を開始するまで
当該端子の出力が安定しませんでした。(0.5V程度が継続)

GPIOの初期値が入力だからでしょうか?
できれば、立ち上げ時はきれいなLOWを出力してほしいのですが
GPIOとしたこの端子の初期値も設定する方法はないでしょうか。