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 に読み替えて、制御してください。
以上、ご参考まで。