Armadilloフォーラム

Armadillo-IoT Wi-SUNアドオンモジュール のリセット/ウェイクアップを任意に制御したい。

at_ohno

2016年5月18日 9時54分

大野と申します。

あるお客様とのやり取りの中で、フォーラムの皆様にも、ご参考になりそうな話がありました。
私自身の備忘録も兼ねて、ここに、ご紹介いたします。

Q.
通常使用時に BP35A1 が何らかのトラブルで停止してしまった場合の対策として、
モジュールのリセット端子やWake up端子をon/off制御したいと思っております。
ピン番号 42 信号名 GPIO2 がリセット信号かと思いますが、
この信号をC言語のプログラム上からon/off制御するにはどうすれば良いでしょうか?

A.
基本的には、マニュアルの以下の記事を参考にします。

Armadillo-IoT ゲートウェイ G2 製品マニュアル v2.6.1 HTML版
第22章 Howto | 22.2. GPIOを制御する
http://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produc…

※ 将来の閲覧者は、こちらから最新版のドキュメントを参照してください。
http://armadillo.atmark-techno.com/armadillo-iot-g2/downloads
http://armadillo.atmark-techno.com/armadillo-iot-g3/downloads

こちらのドキュメントには、

/sys/class/gpio/[GPIO]/

…の下のファイルで制御するように説明されていますが、
標準のソースコードでは、BP35A1のRESET端子は、

/sys/class/gpio/

の下に見えない状態になっていますので、ソースコードを修正する必要があります。

linux-3.14-[version]/arch/arm/mach-imx/armadillo_iotg_std_addon/addon_atmark_techno_wi_sun.c

ファイルの下から2行目の

return 0;

…の前に、

addon_gpio_export(addon_data[intf].reset, false);

を挿入して、ビルドしたイメージをArmadillo-IoTに書き込んでください。
Armadillo-IoTにイメージを書き込んで、再起動後、

/sys/class/gpio/BP35A1_RESET_CON1
( CON1にWi-SUNアドオンを接続している場合 )

/sys/class/gpio/BP35A1_RESET_CON2
( CON2にWi-SUNアドオンを接続している場合 )

…の様に、 BP35A1 の RESET 端子の GPIO の名前が見えるようになります。

以降は、先述のマニュアルの [ GPIO ] の部分を、
BP35A1_RESET_CON1 または、 BP35A1_RESET_CON2 に読み替えて、制御してください。

以上、ご参考まで。