ユーザ用ツール

サイト用ツール


mae3xx_ope:di_hardware_counter:start

差分

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

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

次のリビジョン
前のリビジョン
mae3xx_ope:di_hardware_counter:start [2020/12/23 19:23]
admin 作成
mae3xx_ope:di_hardware_counter:start [2020/12/24 11:07] (現在)
admin
ライン 1: ライン 1:
 ====== DI(ハードウェアカウンタ機能付き)を利用する ====== ====== DI(ハードウェアカウンタ機能付き)を利用する ======
 +
 +[[https://​www.centurysys.co.jp/​products/​linuxserver/​mae350lad.html|MA-E350/​LAD-20]] は、DI/​DO/​RELAY OUT の端子台は MA-E350/​GLAD と同じですが、\\
 +DI 8channel の前半 4channel 部分(DI0..DI3) に 8bit ハードウェアカウンタ((255までカウント可能))が実装されています。
 +
 +ハードウェアによる実装なので、本体が Standby による待機中でもパルスをカウントすることができます。
 +
 +\\
 +
 +===== ソフトウェア =====
 +
 +sysfs のノードは下記のようになっています。
 +
 +<​code>​
 +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
 +</​code>​
 +
 +\\
 +
 +他の機種と比べると、下記が追加になっています。
 +
 +|<35em 4em 12em 20em>|
 +^  No.  ^  Name  ^  Info  |
 +|  1|hwcounter|カウント値 R/W|
 +|  2|hwcounter_enable|ハードウェアカウンタ enable/​disable|
 +|  3|wakeup_enable|割込 enable/​disable|
 +
 +\\
 +
 +==== hwcounter ====
 +
 +カウンタ値の読み出しおよび設定を行います。
 +8bit で 255 までしか記録できないため、
 +
 +  * 定期的に 0 クリアする
 +  * ラップアラウンドをソフトウェアで検知し、上位の桁を補う
 +
 +などの処理をする必要があります。
 +
 +<​code>​
 +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# ​
 +</​code>​
 +
 +\\
 +
 +==== hwcounter_enable ====
 +
 +ハードウェアカウンタの有効化/​無効化を設定します。"​1"​ を書くと有効化、"​0"​ を書くと無効化((v4.4.3まではバグにより無効化ができません、v4.4.4 で修正してあります))します。
 +
 +<​code>​
 +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
 +</​code>​
 +
 +\\
 +
 +==== wakeup_enable ====
 +
 +割込信号を CPU 側に入れるかどうかを設定します。初期状態は『無効』(0) になっています。
 +※ Standby による低消費電力待機中に、DI の割込により Wakeup しないため。
 +
 +そのため、これを有効にしない場合、割込により実装されているソフトウェアカウンタ(("​counter"​ というノード))が動作しませんので注意が必要です。
 +
 +<​code>​
 +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
 +</​code>​
 +
 +\\
 +
 +
 +
  
mae3xx_ope/di_hardware_counter/start.1608718982.txt.gz · 最終更新: 2020/12/23 19:23 by admin