目次

AI(A/D 変換) の利用(Use of AI (A/D conversion)


Analog 入力がついた MA-X3xx/LAD では、8ch の AI(A/D 変換) を利用可能です。
(For MA-X3xx/LAD with analog input, 8ch AI (A/D conversion) is available.)

MA-X3xx/LAD AI コネクタ

※ 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


等価回路

MA-X3xx AI 等価回路


アクセス方法(How to access)

AD Converter 電源制御

使用しない場合の消費電力を抑えるため、電源はデフォルトでオフになっています。
使用前に、まず 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]


電圧/電流 モード切り替え(Voltage/Current Mode Switching)

コネクタ横の DIPSW により、入力毎に 下側(電圧モード) / 上側(電流モード) でモードを切り替えます。
(The mode is switched between lower (voltage mode) and upper (current mode) for each input with the DIPSW next to the connector.)

※ 上記等価回路の AIN MODE スイッチ になります。

電流モード を選択すると 250Ω の抵抗の両端の電圧を計測することになるので、求めた電圧値を 250 で割ることで電流値を求めることができます。

電圧 / 電流モード切り替え DIPSW