Analog 入力がついた MA-X3xx/LAD では、8ch の AI(A/D 変換) を利用可能です。
(For MA-X3xx/LAD with analog input, 8ch AI (A/D conversion) is available.)
※ 16ピン着脱式スクリューレス端子台が同梱されています。(Phoenix contact製 DMC 0,5/8-G1-2,54 P20 THR R72 接続ケーブルAWG26~AWG20対応)
コネクタピン配置は下記のとおりです。 (The connector pin assignments are as follows)
No. | Name | Function | No. | Name | Function |
---|---|---|---|---|---|
1 | AIN0 | AI_00 | 9 | AIN_COM | AIコモン(全チャネル共通) |
2 | AIN1 | AI_01 | 10 | AIN_COM | |
3 | AIN2 | AI_02 | 11 | AIN_COM | |
4 | AIN3 | AI_03 | 12 | AIN_COM | |
5 | AIN4 | AI_04 | 13 | AIN_COM | |
6 | AIN5 | AI_05 | 14 | AIN_COM | |
7 | AIN6 | AI_06 | 15 | AIN_COM | |
8 | AIN7 | AI_07 | 16 | AIN_COM |
使用しない場合の消費電力を抑えるため、電源はデフォルトでオフになっています。
使用前に、まず AD Converter の電源をオンにします。
root@metis:~# cd /sys/class/leds/ADC_Power root@metis:/sys/class/leds/ADC_Power# cat brightness 0 root@metis:/sys/class/leds/ADC_Power# echo 1 > brightness root@metis:/sys/class/leds/ADC_Power# cat brightness 1 root@metis:/sys/class/leds/ADC_Power#
sysfs IIO 経由でアクセスします。
root@metis:/sys/bus/iio/devices/iio:device0# ls -l total 0 drwxr-xr-x 2 root root 0 Apr 28 11:26 buffer drwxr-xr-x 2 root root 0 Apr 28 11:26 buffer0 -r--r--r-- 1 root root 4096 Apr 28 11:26 dev -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage0_offset -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage0_raw -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage0_scale -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage1_offset -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage1_raw -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage1_scale -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage2_offset -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage2_raw -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage2_scale -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage3_offset -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage3_raw -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage3_scale -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage4_offset -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage4_raw -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage4_scale -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage5_offset -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage5_raw -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage5_scale -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage6_offset -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage6_raw -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage6_scale -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage7_offset -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage7_raw -rw-r--r-- 1 root root 4096 Apr 28 11:26 in_voltage7_scale -r--r--r-- 1 root root 4096 Apr 28 11:26 in_voltage_offset_available -r--r--r-- 1 root root 4096 Apr 28 11:26 in_voltage_scale_available -r--r--r-- 1 root root 4096 Apr 28 11:26 name lrwxrwxrwx 1 root root 0 Apr 28 11:26 of_node -> ../../../../../../../../firmware/devicetree/base/bus@f4000/spi@20100000/ads8688@0 drwxr-xr-x 2 root root 0 Apr 28 11:26 power drwxr-xr-x 2 root root 0 Apr 28 11:26 scan_elements lrwxrwxrwx 1 root root 0 Apr 28 11:26 subsystem -> ../../../../../../../../bus/iio drwxr-xr-x 2 root root 0 Apr 28 11:26 trigger -rw-r--r-- 1 root root 4096 Apr 28 09:56 uevent -r--r--r-- 1 root root 4096 Apr 28 11:26 waiting_for_supplier root@metis:/sys/bus/iio/devices/iio:device0#
in_voltage_offset_available から読み出せる値から選択し、それぞれのチャネルの in_voltageN_offset に書き込むことで入力信号の極性を選択することができます。
root@metis:/sys/bus/iio/devices/iio:device0# cat in_voltage_offset_available -32768 0
Offset Value | 極性 |
---|---|
-32768 | バイポーラ (-XX [V] 〜 +XX [V]) |
0 | ユニポーラ (0 [V] 〜 +XX [V]) |
in_voltage_scale_available から読み出せる値から選択し、それぞれのチャネルの in_voltageN_scale に書き込むことで電圧レンジを選択することができます。
root@metis:/sys/bus/iio/devices/iio:device0# cat in_voltage_scale_available 0.312500 0.156250 0.078125
Offset Value | Scale Value | 電圧レンジ |
---|---|---|
-32768 | 0.312500 | -10.24〜10.24 [V] |
0.156250 | -5.12〜5.12 [V] | |
0 | 0.156250 | 0〜10.24 [V] |
0.078125 | 0〜5.12 [V] |
レンジと極性を選択し、in_voltageN_raw を読み出した後で下記演算をすることで電圧値を求めることができます。
$$ (in\_volatageN\_raw + in\_voltageN\_offset) \times in\_voltageN\_scale $$
root@metis:/sys/bus/iio/devices/iio:device0# cat in_voltage7_offset -32768 root@metis:/sys/bus/iio/devices/iio:device0# cat in_voltage7_scale 0.156250 root@metis:/sys/bus/iio/devices/iio:device0# cat in_voltage7_raw 40918 root@metis:/sys/bus/iio/devices/iio:device0# echo "(40918-32768)*0.156250" | busybox bc 1273.437500 <---- 1273.4375 [mV]