MA-E350/LAD-20 は、DI/DO/RELAY OUT の端子台は MA-E350/GLAD と同じですが、
DI 8channel の前半 4channel 部分(DI0..DI3) に 8bit ハードウェアカウンタ1)が実装されています。
ハードウェアによる実装なので、本体が Standby による待機中でもパルスをカウントすることができます。
sysfs のノードは下記のようになっています。
root@plum:/sys/class/gpio/DI_03# ls -l total 0 -rw-r--r-- 1 root root 4096 Dec 24 09:14 active_low -rw-r--r-- 1 root root 4096 Dec 24 09:14 counter -rw-r--r-- 1 root root 4096 Dec 24 09:14 debounce lrwxrwxrwx 1 root root 0 Dec 24 09:14 device -> ../../../gpiochip13 -rw-r--r-- 1 root root 4096 Dec 24 09:14 edge -rw-r--r-- 1 root root 4096 Dec 24 09:14 hwcounter -rw-r--r-- 1 root root 4096 Dec 24 09:14 hwcounter_enable drwxr-xr-x 2 root root 0 Dec 24 09:14 power lrwxrwxrwx 1 root root 0 Dec 23 20:39 subsystem -> ../../../../../../../../class/gpio -rw-r--r-- 1 root root 4096 Dec 23 20:39 uevent -rw-r--r-- 1 root root 4096 Dec 24 09:14 value -rw-r--r-- 1 root root 4096 Dec 24 09:14 wakeup_enable
他の機種と比べると、下記が追加になっています。
No. | Name | Info |
---|---|---|
1 | hwcounter | カウント値 R/W |
2 | hwcounter_enable | ハードウェアカウンタ enable/disable |
3 | wakeup_enable | 割込 enable/disable |
カウンタ値の読み出しおよび設定を行います。 8bit で 255 までしか記録できないため、
などの処理をする必要があります。
root@plum:/sys/class/gpio/DI_03# cat hwcounter 0 root@plum:/sys/class/gpio/DI_03# echo 10 > hwcounter root@plum:/sys/class/gpio/DI_03# cat hwcounter 10 root@plum:/sys/class/gpio/DI_03#
ハードウェアカウンタの有効化/無効化を設定します。“1” を書くと有効化、“0” を書くと無効化2)します。
root@plum:/sys/class/gpio/DI_03# cat hwcounter_enable 0 root@plum:/sys/class/gpio/DI_03# echo 1 > hwcounter_enable root@plum:/sys/class/gpio/DI_03# cat hwcounter_enable 1
割込信号を CPU 側に入れるかどうかを設定します。初期状態は『無効』(0) になっています。 ※ Standby による低消費電力待機中に、DI の割込により Wakeup しないため。
そのため、これを有効にしない場合、割込により実装されているソフトウェアカウンタ3)が動作しませんので注意が必要です。
root@plum:/sys/class/gpio/DI_03# cat wakeup_enable 0 root@plum:/sys/class/gpio/DI_03# echo 1 > wakeup_enable root@plum:/sys/class/gpio/DI_03# cat wakeup_enable 1 root@plum:/sys/class/gpio/DI_03# echo 0 > wakeup_enable root@plum:/sys/class/gpio/DI_03# cat wakeup_enable 0