Armadilloフォーラム

入力電圧取得について

user

2018年8月1日 19時05分

お世話になっております。
小林です。

現在、Armadillo-IoT G2を連続運転させ、
10秒ごとに入力電圧値をクラウドサーバに送信する
というようなシステムを動作させているのですが、
本日、クラウドに送信される電圧値を確認すると、値が"0.000"となっておりました。
(これまでは11~12あたりの値が送信されておりました)

電圧値の取得には
/sys/bus/iio/devices/iio:device0/in_voltage_scale
/sys/bus/iio/devices/iio:device0/in_voltage_raw
この2つのファイルを参照していたのですが、持ち帰ったG2を確認すると、
/sys/bus/iio/devices/以下のファイル構成が
/iio:device0/in_voltage-voltage_scale
/iio:device0/in_voltage0-voltage1_raw
/iio:device0/in_voltage0_raw
/iio:device0/in_voltage1_raw
/iio:device1/in_voltage_raw
/iio:device1/in_voltage_scale

となっておりました。
(これまで参照していた/iio:device0/in_voltage_rawが無くなっていたため、電圧値が取得できていなかったようです。)

なお、正しい電圧値の情報は
/iio:device1/in_voltage_raw
に書き込まれており、他のファイルはそれぞれ以下のようになっておりました。
/iio:device0/in_voltage-voltage_scale → 1.220703125
/iio:device0/in_voltage0-voltage1_raw → 0
/iio:device0/in_voltage0_raw → 0
/iio:device0/in_voltage1_raw → 0
/iio:device0/in_voltage_scale → 1.220703125

目標としては、従来どおりに
/iio:device0/in_voltage_scale
/iio:device0/in_voltage_raw
を参照して電圧値を取得できるよう復旧したいのですが、
対処法等ございましたら教えていただけますでしょうか。

なお、それぞれのシンボリックリンク先は以下のようになっておりました。
iio:device0 -> ../../../devices/platform/imx35-cspi.2/spi_master/spi2/spi2.0/iio:device0/
iio:device1 -> ../../../devices/platform/i2c-gpio.3/i2c-3/3-0054/iio:device1/

コメント

at_mizo

2018年8月2日 11時14分

溝渕です。

> 電圧値の取得には
> /sys/bus/iio/devices/iio:device0/in_voltage_scale
> /sys/bus/iio/devices/iio:device0/in_voltage_raw
> この2つのファイルを参照していたのですが、持ち帰ったG2を確認すると、
> /sys/bus/iio/devices/以下のファイル構成が
> /iio:device0/in_voltage-voltage_scale
> /iio:device0/in_voltage0-voltage1_raw
> /iio:device0/in_voltage0_raw
> /iio:device0/in_voltage1_raw
> /iio:device1/in_voltage_raw
> /iio:device1/in_voltage_scale
>
> となっておりました。
> (これまで参照していた/iio:device0/in_voltage_rawが無くなっていたため、電圧値が取得できていなかったようです。)

"iio:device0"と"iio:device1"が入れ代わっているようです。
# IIOデバイス(アドオンモジュール等)を接続しましたか?

> 目標としては、従来どおりに
> /iio:device0/in_voltage_scale
> /iio:device0/in_voltage_raw
> を参照して電圧値を取得できるよう復旧したいのですが、
> 対処法等ございましたら教えていただけますでしょうか。

ADコンバーターの IIO デバイス名を確認して、制御対象のIIOデバイスを確認
すると実現できると思います。

ADコンバーターの IIO デバイス名は "3-0054"です。
https://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produ…

どうしてもiio:device0から制御する必要がある場合は、Linuxカーネルのドラ
イバ登録順を変更(ソースコードをカスタマイズ)して、必ずADコンバーターが
最初に登録されるようにする必要があります。

user

2018年8月2日 13時18分

溝渕さん

お世話になっております。小林です。
情報ありがとうございます。

> "iio:device0"と"iio:device1"が入れ代わっているようです。
> # IIOデバイス(アドオンモジュール等)を接続しましたか?
確かに、アドオンモジュールDA00を接続しておりました。

このため、iio:device0で認識されていたADコンバータが
iio:device1に割り当てられていたのですね。
 
 
 
> ADコンバーターの IIO デバイス名を確認して、制御対象のIIOデバイスを確認
> すると実現できると思います。

> ADコンバーターの IIO デバイス名は "3-0054"です。
> https://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produ…
マニュアルに記載されていたのですね。
調査が足りませんでした。すみません。
 
 
iio:device1の内容を読み取るよう対応することで解決できました。ありがとうございます。

user

2018年8月2日 13時19分

溝渕さん

お世話になっております。小林です。
情報ありがとうございます。

> "iio:device0"と"iio:device1"が入れ代わっているようです。
> # IIOデバイス(アドオンモジュール等)を接続しましたか?
確かに、アドオンモジュールDA00を接続しておりました。

このため、iio:device0で認識されていたADコンバータが
iio:device1に割り当てられていたのですね。
 
 
 
> ADコンバーターの IIO デバイス名を確認して、制御対象のIIOデバイスを確認
> すると実現できると思います。

> ADコンバーターの IIO デバイス名は "3-0054"です。
> https://manual.atmark-techno.com/armadillo-iot/armadillo-iotg-std_produ…
マニュアルに記載されていたのですね。
調査が足りませんでした。申し訳ありません。
 
 
iio:device1の内容を読み取るよう対応することで解決できました。ありがとうございます。