ユーザ用ツール

サイト用ツール


mae3xx_ope:ai_with_iio_subsystem:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
mae3xx_ope:ai_with_iio_subsystem:start [2014/09/18 18:01]
admin
mae3xx_ope:ai_with_iio_subsystem:start [2019/09/18 09:14] (現在)
admin [使用方法 (ソフトウェア)]
ライン 1: ライン 1:
 +====== AI(Analog IN) を利用する (IIO subsystem) ======
 +
 +A/D Converter を搭載した下記機種では、AI(Analog IN) 4チャネルを利用できます。
 +
 +  * [[https://​www.centurysys.co.jp/​products/​linuxserver/​mae350klad.html|MA-E350/​KLAD]]
 +  * [[https://​www.centurysys.co.jp/​products/​linuxserver/​mae350nad.html|MA-E350/​NAD]]
 +  * [[https://​www.centurysys.co.jp/​products/​linuxserver/​mae350nlad.html|MA-E350/​NLAD]]
 +
 +{{:​mae3xx_ope:​ai_with_iio_subsystem:​ai_connector_sw.jpg?​600|AIN コネクタと AIN MODE スイッチ}}
 +
 +\\
 +
 +===== ハードウェア仕様 =====
 +
 +==== 電気的仕様 ====
 +
 +^  項目 ​ ^  内容 ​ |
 +|A/D Converter IC 型式|[[http://​www.linear-tech.co.jp/​product/​LTC1859|LTC1859 (Linear Technology)]]|
 +|変換方式|[[http://​en.wikipedia.org/​wiki/​Successive_approximation_ADC|マルチプレクサ式逐次変換型(SAR)]]|
 +|ポート数|差動入力 4CH|
 +|絶対最大入力|DC ±25V|
 +|入力レンジ (電圧モード)|DC 0V 〜 +5V|
 +|:::|DC 0V 〜 +10V|
 +|:::|DC -5V 〜 +5V|
 +|:::|DC -10V 〜 +10V|
 +|入力レンジ (電流モード,​ スイッチ切替)|DC 0mA 〜 20mA|
 +|許容コモンモード電圧|DC 0V 〜 +5V (DC 0V 〜 +5V レンジ)|
 +|:::|DC 0V 〜 +1V (DC 0V 〜 +10V レンジ)|
 +|:::|DC -5V 〜 +5V (DC -5V 〜 +5V レンジ)|
 +|:::|DC -1V 〜 +1V (DC -10V 〜 +10V レンジ)|
 +|入力インピーダンス|電圧入力モード 2MΩ 以上|
 +|:::​|電流入力モード 250Ω ± 0.1%|
 +|分解能|16bit|
 +|変換精度|±0.1% (-20℃ 〜 +60℃, フルスケール)|
 +|絶縁方式|ディジタルアイソレータ絶縁|
 +|絶縁耐圧|DC500V 1分間, 外部端子〜内部回路間|
 +|コネクタ|ハーフピッチ 20 ピンコネクタ [[http://​www.mmm.co.jp/​electrical/​connector/​square_connector/​|3M 社製 MDR タイプ: 10220-52A2PL]],​ [[http://​www.mmm.co.jp/​electrical/​connector/​square_connector/​pdf/​g45.pdf|Datasheet]] (PDF)|
 +
 +{{:​mae3xx_ope:​ai_with_iio_subsystem:​ai_cable_mdr.jpg|MDR コネクタ}}
 +
 +\\
 +
 +==== ピンアサイン ====
 +
 +{{:​mae3xx_ope:​ai_with_iio_subsystem:​manual_ma-e300_ain_connector_pinnumber.jpg|}}
 +
 +|< 64em 6em 6em 14em 0.2em 4em 10em 10em >|
 +^  PIN No.  ^  名称 ​ ^  機能 ​ ^ ^  PIN No.  ^  名称 ​ ^  機能 ​ |
 +|  1|  AIN COM  |  アナログコモン ​ | |  11|  NC  |  未使用 ​ |
 +|  2|  AIN0 (+)  |  アナログ差動入力 CH0  | |  12|  NC  |  未使用 ​ |
 +|  3|  AIN0 (-)  |:::| |  13|  NC  |  未使用 ​ |
 +|  4|  AIN1 (+)  |  アナログ差動入力 CH1  | |  14|  NC  |  未使用 ​ |
 +|  5|  AIN1 (-)  |:::| |  15|  NC  |  未使用 ​ |
 +|  6|  AIN2 (+)  |  アナログ差動入力 CH2  | |  16|  NC  |  未使用 ​ |
 +|  7|  AIN2 (-)  |:::| |  17|  NC  |  未使用 ​ |
 +|  8|  AIN3 (+)  |  アナログ差動入力 CH3  | |  18|  NC  |  未使用 ​ |
 +|  9|  AIN3 (-)  |:::| |  19|  NC  |  未使用 ​ |
 +|  10|  NC  |  未使用 ​ | |  20|  NC  |  未使用 ​ |
 +
 +\\
 +
 +==== AIN MODE スイッチ設定 ====
 +
 +アナログ差動入力の電圧/​電流モードの切り替えを行うためのスイッチです。\\
 +アナログ入力を電流モード([[http://​www.cqpub.co.jp/​term/​420macurrentloop.htm|4~20mAカレント・ループ(4-20mA current loop)]]) で使用する場合、
 +AIN MODE スイッチを **"​CURRENT"​** に切り替えて使用します。\\
 +電流モードに切り替えると、AINx(+) 〜 AINx(-) 間に 250Ω の抵抗が接続されます。\\
 +電流モードを使用する場合は、分解能を最大にするため入力レンジを 0V 〜 +5V に設定して使用してください。
 +
 +|< 40em 4em 6em 6em 6em >|
 +^  SW NO.  ^  AIN Channel ​ ^  Switch Position ​ ^^
 +^:::​^:::​^ ​ VOLTAGE ​ ^  CURRENT ​ ^
 +|  0  |  CH0  |  電圧モード ​ |  電流モード ​ |
 +|  1  |  CH1  |:::|:::|
 +|  2  |  CH2  |:::|:::|
 +|  3  |  CH3  |:::|:::|
 +
 +
 +\\
 +
 +==== 等価回路 ====
 +
 +{{:​mae3xx_ope:​ai_with_iio_subsystem:​ai_等価回路.png?​800|AI 等価回路}}
 +
 +\\
 +
 +==== 便利なツール ====
 +
 +{{:​mae3xx_ope:​ai_with_iio_subsystem:​p1000613.jpg?​400|端子台変換器 PCV5-1H202(東洋技研製)}}
 +
 +{{:​mae3xx_ope:​ai_with_iio_subsystem:​pcv5-1h202_pinassign.png?​800|端子台変換器 PCV5-1H202(東洋技研製)}}
 +
 +端子台変換器 [[http://​www.togi.co.jp/​products/​details.php?​main=interface&​c=73|PCV5-1H202(東洋技研製)]] を接続することにより、DIO 及び AIN ポートをスプリング圧結線方式の端子へ\\
 +変換することができます。端子台変換器はオプションの DIO ケーブル、もしくは AI ケーブルにより一括接続が可能です。
 +
 +購入先: [[http://​jp.misumi-ec.com/​vona2/​detail/​110500006010/​|ミスミ]],​ [[http://​www.amazon.co.jp/​%E6%9D%B1%E6%B4%8B%E6%8A%80%E7%A0%94-TOGI-PCV5-1H202-%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AD%E3%83%83%E3%82%AF%E5%BC%8F%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB-HIF3BA-20PA-2-54DSA%E7%94%A8/​dp/​B00P60F89W|Amazon.co.jp]]
 +
 +\\
 +==== 接続例 ====
 +
 +=== 電流モード使用 4-20mA ​ ===
 +
 +{{:​mae3xx_ope:​ai_with_iio_subsystem:​plum_ain.png?​800|}}
 +
 +※ マイナス(-)側を COM(GND) に接続するのを忘れると、入力値が不安定になり計測できません。
 +
 +\\
 +
 +==== よくある質問 ====
 +
 +  * Q. 入力が差動入力となってるが、シングルエンドの電圧が出力されるセンサを接続したい
 +  * A. AIN(-) とアナログコモンを接続し、センサ側共通 GND と接続する
 +
 +\\
 +
 +===== 使用方法 (ソフトウェア) =====
 +
 +IIO subsystem 上に実装しています。\\
 +
 +参考:
 +  * [[https://​archive.fosdem.org/​2012/​schedule/​event/​693/​127_iio-a-new-subsystem.pdf|IIO,​ a new kernel subsystem]] (PDF)
 +  * [[http://​wiki.analog.com/​software/​linux/​docs/​iio/​iio|LINUX INDUSTRIAL I/O SUBSYSTEM - Analog Devices Wiki]]
 +
 +sysfs の、/​sys/​bus/​iio/​devices/​iio:​deviceN ディレクトリ経由でアクセスします。
 +
 +<​code>​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ ls -l
 +total 0
 +drwxr-xr-x 2 root root    0 Sep  8 12:01 buffer
 +-r--r--r-- 1 root root 4096 Sep  8 12:01 dev
 +-rw-r--r-- 1 root root 4096 Sep  8 12:02 in_voltage0_range
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage0_raw
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage0_scale
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage1_range
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage1_raw
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage1_scale
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage2_range
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage2_raw
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage2_scale
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage3_range
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage3_raw
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 in_voltage3_scale
 +-r--r--r-- 1 root root 4096 Sep  8 12:01 in_voltage_ranges_available
 +-r--r--r-- 1 root root 4096 Sep  8 12:01 name
 +drwxr-xr-x 2 root root    0 Sep  8 12:01 power
 +drwxr-xr-x 2 root root    0 Sep  8 12:01 scan_elements
 +lrwxrwxrwx 1 root root    0 Sep  8 12:01 subsystem -> ../​../​../​../​../​../​../​bus/​iio
 +drwxr-xr-x 2 root root    0 Sep  8 12:01 trigger
 +-rw-r--r-- 1 root root 4096 Sep  8 12:01 uevent
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​
 +</​code>​
 +
 +<note important>​
 +Kernel のメジャーバージョン((IIO module の初期化順が異なります))により、ディレクトリが異なります。\\
 +/​sys/​bus/​iio/​devices/​iio:​deviceN/​name の内容で確認可能です。
 +</​note>​
 +
 +<​code>​
 +root@plum:​~#​ uname -a
 +Linux plum 4.19.73+ #137 PREEMPT Wed Sep 18 08:55:58 JST 2019 armv7l armv7l armv7l GNU/Linux
 +
 +root@plum:​~#​ for dev in /​sys/​bus/​iio/​devices/​iio*;​ do echo $dev; cat $dev/name; done
 +/​sys/​bus/​iio/​devices/​iio:​device0
 +ltc185x <---- AI channel: 0〜3
 +/​sys/​bus/​iio/​devices/​iio:​device1
 +ltc185x <---- AI channel: 4〜7 (AI 8chのボードのみ使用可能、4chのボードでアクセスした場合値は無効)
 +/​sys/​bus/​iio/​devices/​iio:​device2
 +TI-am335x-adc.0.auto
 +</​code>​
 +
 +\\
 +
 +==== 基本的な使用方法 ====
 +
 +各 AIN のチャネル (0 〜 3) に対して、下記のノードがあります。
 +
 +^  名称 ​ ^  内容 ​ ^  例  ^  備考 ​ |
 +|in_voltagex_range|現在の入力レンジ設定| ​ -10Vto+10V ​ |初期設定は "​0Vto5V"​ (DC 0V 〜 +5V)|
 +|in_voltagex_scale|スケール(1bit あたりの電圧)| ​ 0.000305175 ​ |入力レンジ "​-10Vto+10V"​ 時|
 +|in_voltagex_raw|AD 変換値| ​ 13607  |13607 x 0.000305175 ≒ 4.152 [V]|
 +
 +\\
 +
 +各チャネルで共通なものは下記となります。
 +
 +^  名称 ​ ^  内容 ​ ^  例  ^  備考 ​ |
 +|in_voltage_ranges_available|入力レンジとして設定可能な値一覧|-5Vto+5V -10Vto+10V 0Vto+5V 0Vto+10V| |
 +
 +\\
 +
 +入力レンジの切り替えには、"​in_voltage_ranges_available"​ で表示されるテキストから選択し、"​in_voltagex_range"​ へ書き込むことで行います。
 +
 +\\
 +
 +=== 入力レンジ一覧表示 ===
 +
 +<​code>​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ cat in_voltage_ranges_available ​
 +-5Vto+5V -10Vto+10V 0Vto+5V 0Vto+10V
 +</​code>​
 +
 +\\
 +
 +=== 入力レンジ切り替え (DC 0V 〜 +5V) ===
 +
 +<​code>​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ echo 0Vto+5V > in_voltage0_range ​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ cat in_voltage0_range ​
 +0Vto+5V
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​
 +</​code>​
 +
 +\\
 +
 +=== スケール 読み出し ===
 +
 +<​code>​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ cat in_voltage0_scale ​
 +0.000076293
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1# ​
 +</​code>​
 +
 +\\
 +
 +=== AD 変換値 読み出し ===
 +
 +== 入力値が 正の値 の場合 ==
 +
 +<​code>​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ cat in_voltage0_raw ​
 +54392
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​
 +</​code>​
 +
 +この例では、スケールとして読み出した値 x AD 変換値 が、AIN に印加されている電圧値となります。
 +
 +0.000076293 x 54392 = 4.1497 [V]
 +
 +\\
 +
 +== 入力値が 負の値 の場合 ==
 +
 +AINx(+) よりも AINx(-) のほうが電圧が高い場合、プラス電圧のみ対応の入力レンジのままですと 0V にクリップしてしまいます。\\
 +0V を中心として正負に電圧が振れる入力の場合、もしくは入力の極性を間違えているケースです。
 +
 +<​code>​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ cat in_voltage0_range
 +0Vto5V
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ cat in_voltage0_raw ​
 +0
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1# ​
 +</​code>​
 +
 +\\
 +
 +その場合、- から + まで対応のレンジに切り替えを行う必要があります。
 +
 +<​code>​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ echo -10Vto+10V > in_voltage0_range ​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ cat in_voltage0_raw
 +-13597
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​
 +</​code>​
 +
 +スケールは in_voltage0_scale から読み出します。
 +
 +<​code>​
 +root@plum:/​sys/​bus/​iio/​devices/​iio:​device1#​ cat in_voltage0_scale ​
 +0.000305175
 +</​code>​
 +
 +この例では、スケールとして読み出した値 x AD 変換値 の下記の値が AIN に印加されている電圧値となります。
 +
 +0.000305175 x (-13597) = - 4.1495 [V]
 +
 +\\
  
mae3xx_ope/ai_with_iio_subsystem/start.1411030877.txt.bz2 · 最終更新: 2014/09/18 18:01 by admin