CNT-3204MT-LPE

Contec CNT-3204MT-LPE, CNT32-4MT(CB), CNT32-4MT(LPCI) 取扱説明書

  • こんにちは!このドキュメントは、コンテック社の高速アップダウンカウンタボード(CNT-3204MT-LPE、CNT32-4MT(LPCI)、CNT32-4MT(CB))のテクニカルリファレンスです。I/Oポートの設定、カウンタの制御方法、割り込み処理など、詳細な情報が記載されています。このドキュメントの内容を理解しており、デバイスに関するご質問にお答えできますので、お気軽にご質問ください。
  • Vendor IDとDevice IDはどこで確認できますか?
    カウンタの状態を確認するにはどうすればよいですか?
    割り込み要求信号をマスクするにはどうすればよいですか?
    オンボードシステムタイマ機能とは何ですか?
    プリセットデータを設定するにはどうすればよいですか?
テクニカルリファレンス
PCI Express
対応
4ch
高速アップダウンカウンタボード
(TTL
入力
)
Low Profile
サイズ
CNT-3204MT-LPE
Low Profile PCI
対応
4ch 32
ビット高速アップダウンカウンタボード
(TTL
入力
)
CNT32-4MT(LPCI)
CardBus
対応
4ch 32
ビット高速アップダウンカウンタカード
(TTL
入力
)
CNT32-4MT(CB)
目次
1. はじめに.......................................................................................................................2
1.1. 本資料中の語句について ..................................................................................2
2. 製品固有情報...............................................................................................................2
2.1. Vendor IDDevice ID ..........................................................................................2
2.2. リソースの取得方法 ..........................................................................................2
3. I/Oポートのビット割り付.....................................................................................3
3.1. I/Oアドレスマップ一覧 ......................................................................................3
4. 操作手順.......................................................................................................................4
4.1. 出力ポートの説明 ..............................................................................................4
4.2. 入力ポートの説明 ..............................................................................................7
4.3. オペレーションコマンドの説明 ......................................................................9
4.4. コマンドの説明 ..................................................................................................9
5. 制御フロー.................................................................................................................17
6. 補足.............................................................................................................................19
6.1. オンボードシステムタイマ機能 ....................................................................19
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
2/19
2007 5 7
1. はじめに
本資料では、I/O ポートのビット割り付けおよび各ビットの定義についての説明をしています。
当社サポートソフトウェアを使用しない場合や、Windows 環境以外でアプリケーションを作成する場
合に参照してください。
1.1. 本資料中の語句について
以下にご注意ください。
I/O ベースアドレス:
ボードに割り当てられた I/O リソース(I/O の範囲)の最も小さい値で、先頭 I/O アドレスと同じ意味で
す。一般的にボードの I/O アドレスとは、このアドレスを指します。
2. 製品固有情報
2.1. Vendor IDDevice ID
各製品の固有情報は、以下のとおりです。
Vendor ID 1221h
Device ID
Board Name Device ID
CNT-3204MT-LPE 8605h
CNT32-4MT(LPCI) C115h
CNT32-4MT(CB) C505h
Revision ID :ボード ID の設定スイッチ(SW1)の状態。00h - 0Fh の範囲で反映されます。
Revision ID は、ボードのみの設定です。
上記以外は、PCI Express バス仕様<CNT-3204MT-LPE>/PCI ローカルバス仕様<CNT32-4MT(LPCI)>/カー
ドバス仕様<CNT32-4MT(CB)>に準拠します。
2.2. リソースの取得方法
MS-DOS 環境で PCI バス対応ボードのリソース(I/O ベースアドレス、割り込みレベル、メモリベース
アドレス)を取得するためのライブラリを、ホームページ(http://www.contec.co.jp)で提供しています。
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
3/19
2007 5 7
3. I/Oポートのビット割り付け
3.1. I/Oアドレスマップ一覧
連続する 32 ポート分の I/O アドレスを占有します。入出力ポートそれぞれにレジスタを持っており、
このレジスタ群はコマンドで振り分けられています。
各レジスタの設定方法は、まず設定 I/O アドレス+8 ポートに各コマンドを OUT し、該当するレジスタ
を設定可能状態とします。そして、出力なら+C ポート、+E ポートでレジスタにデータを OUT して設
定し、入力なら+C ポート、+E ポートを読み込みます。
各レジスタを設定するときは、同じコマンドであっても、毎回必ず出力ポート+8 にコマンドを出力し
てください。
入力ポート
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+00h
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
Direct
Counter
Data(1)
+02h D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Direct
Counter
Data(2)
+04h - - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
Counter Select
Enable
Status
+06h - - - - - - - - - - - - - - - - Reserved
+08h - - - - - - - - - - - - - - - - Reserved
+0Ah - - - - - - - - - - - - - - - - Reserved
+0Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
Command
Input Data(1)
+0Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Command
Input Data (2)
+10h - - - - - - - - - - - - - - - - Reserved
+12h - - - - - - - - - - - - - - - - Reserved
+14h 0 0 0 0
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
0 0 0 0 0 0 0 0
IRQ Sense
Port(1)
+16h 0 0 0 0 Timer
Carry/
Borrow
AI
Error
Digital
Filter
Error
0 0 0 0
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
IRQ Sense
Port(2)
+18h - - - - - - - - - - - - - - - - Reserved
+1Ah - - - - - - - - - - - - - - - - Reserved
+1Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
GP Timer
Data (1)
+1Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
GP Timer
Data (2)
出力ポート
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+00h - - - - - - - - - - - - - - Sel2 Sel1
Read Channel
Select
+02h - - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
Direct
Counter
Latch
Select
+04h - - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
Counter Select
Enable
+06h - - - - - - - - - - - - - - - - Reserved
+08h - - - - - - - - - D06 D05 D04 D03 D02 D01 D00
Command
Select
+0Ah - - - - - - - - - - - - - - - - Reserved
+0Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
Command
Output
Data(1)
+0Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Command
Output
Data(2)
+10h 1 1 1 1
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
1 1 1 1 1 1 1 1
IRQ Mask
Port(1)
+12h 1 1 1 1 Timer
Carry/
Borrow
AI
Error
Digital
Filter
Error
1 1 1 1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
IRQ Mask
Port(2)
+14h 1 1 1 1
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
1 1 1 1 1 1 1 1
IRQ Reset
Port(1)
+16h 1 1 1 1 Timer
Carry/
Borrow
AI
Error
Digital
Filter
Error
1 1 1 1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
IRQ Reset
Port(2)
+18h - - - - - - - - - - - - - - - - Reserved
+1Ah - - - - - - - - - - - - - - - - Reserved
+1Ch - - - - - - - - - - - - - - - - Reserved
+1Eh - - - - - - - - - - - - - - - - Reserved
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
4/19
2007 5 7
4. 操作手順
製品説明書の「第 4 機能の説明」をあわせて参照してください。
ポートにより Counter 動作中にアクセスできないポートがあります。
Counter 動作中に変更不可のポート: ×Counter
4.1. 出力ポートの説明
Read Channel Select (+00h Write) Word
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+00h - - - - - - - - - - - - - - Sel1 Sel0
読み出しを行うチャネル番号を出力します。その後、
+00h
を読み込むことによってラッチしたカウ
ントデータを読むことができます。
D01 - D00 Read Channel Select
00 Channel 0
01 Channel 1
10 Channel 2
11 Channel 3
Direct Counter Latch Select (+02h Write ) Word
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+02h - - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
対応ビットを
[1]
にするとそのチャネルのカウンタ値がラッチされます。
D3 - D0 Latch Channel Select
<プログラム例>
全チャネルをラッチし、Channel 0 のラッチしたカウントデータを読む場合
outpd Address + 0H, 00FF0000H
Countdata = INPD ( Address + 0H )
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
5/19
2007 5 7
Counter Select Enable (+04h Write) Word
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+04h - - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
カウンタ条件の選択、および各レジスタの設定後、その条件の有効
/
無効を設定します。
(1
:有効、
0
:無効
)
・カウンタ条件がソフトウェアスタートの場合、このビットを
[1]
にするとカウンタがスタートします
それ以外の場合、このビットが
[1]
になった後に成立したスタート条件でカウンタがスタートします。
・カウンタ条件がソフトウェアストップの場合、このビットを
[0]
にするとカウンタがストップします
それ以外の場合、成立したストップ条件でカウンタがストップし、このビットは
[0]
にセットされま
す。
ただし、ソフトウェアストップの優先順位は他の条件より高く、他のストップ条件が設定されてい
てもこのビットを
[0]
にすると強制停止になります。
D3 - D0 Counter Select Enable (Channel 3 - 0)
<プログラム例>
Channel 3 のみカウンタスタートする場合
outpw Address + 4H, 08H
Command Select (+08h Write) Word ×Counter(Command により)
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+08h - - - - - - - - - D06 D05 D04 D03 D02 D01 D00
カウンタ条件
/
比較レジスタ
/
ステータスの設定を行うコマンドの設定ポートです。
Command Output Data (+0Ch Write) DWord ×Counter(Command により)
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+0Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+0Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
+08h
で設定したコマンドに対してデータを出力します。
データの詳細については「
4.4.
コマンドの説明」を参照してください。
<プログラム例>
Channel 0 のプリセットデータに 1000 を設定する場合
outpw Address + 8H, 10H
outpd Address + CH, 000003E8H
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
6/19
2007 5 7
IRQ Mask Port (+10h Write) DWord
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+10h 1 1 1 1
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
1 1 1 1 1 1 1 1
+12h 1 1 1 1 Timer
Carry/B
orrow
AI
Error
Digital
Filter
Error
1 1 1 1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
割り込み要求信号のマスクを設定します。
(1
:割り込み無効、
0
:割り込み有効
)
デフォルトはすべて
1(Mask)
です。
割り込み要求信号の詳細は、入力ポート「
Interrupt Request Sense Port
」を参照してください。
<プログラム例>
全チャネルの Comp0, Comp1 を有効に設定する場合
outpd Address + 10H, FF0000FFH
IRQ Reset Port (+14h Write) DWord
I/Oベース Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+14h 1 1 1 1
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
1 1 1 1 1 1 1 1
+16h 1 1 1 1 Timer
Carry/B
orrow
AI
Error
Digital
Filter
Error
1 1 1 1
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
要求のあった割り込み要求信号に
[1]
を出力することによって
[0]
にリセットします。
割り込み要求信号の詳細は、入力ポート「
Interrupt Request Sense Port
」を参照してください。
<プログラム例>
全チャネルの Comp0, Comp1 をリセットする場合
outpd Address + 10H, 00FFFF00H
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
7/19
2007 5 7
4.2. 入力ポートの説明
Direct Counter Data (+00h Read) DWord
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+00h D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+02h D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
ターゲットとして直接カウンタデータをアクセスする場合に使用します。
FIFO
格納のデータではな
く生データです。
<プログラム例>
全チャネルをラッチし、Channel 0 のラッチしたカウントデータを読む場合
DWord アクセス
outpd Address + 0H, FF0000H
Countdata = inpd ( Address + 0 )
Counter Select Enable Status (+04h Read) Word
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+04h - - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
このポートを読み込むことによってカウンタの状態を確認することができます。カウンタ動作中の
channel
[1]
となります。カウンタ停止中は
[0]
です。
D3 - D0 Counter Select Enable (Channel 3 - 0)
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
8/19
2007 5 7
Command Input Data (+0Ch Read ) DWord
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+0Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+0Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
+08h
で設定したコマンドに対してデータを入力します。
データの詳細については「
4.4.
コマンドの説明」を参照してください。
Interrupt Request Sense Port (+14h Read ) DWord
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+14h 0 0 0 0
Ch3
Comp0
Ch2
Comp0
Ch1
Comp0
Ch0
Comp0
0 0 0 0 0 0 0 0
+16h 0 0 0 0 Timer
Carry/
Borrow
AI
Error
Digital
Filter
Error
0 0 0 0
Ch3
Comp1
Ch2
Comp1
Ch1
Comp1
Ch0
Comp1
割り込み要求信号のステータスポートです。割り込み要求のあった信号が
[1]
になります。
Ch0 - Ch3 Comp0 カウンタ値と比較値 0 が一致したとき[1]になります。
Ch0 - Ch3 Comp1 カウンタ値と比較値 1 が一致したとき[1]になります。
Digital Filter Error デジタルフィルタ設定値より高速なパルスが入力されたとき[1]
なります。
AI Error(異常入力エラー) A/B 相が同時に変化したとき[1]になります。
Carry/Borrow カウンタで Carry/Borrow が発生したとき[1]になります。
Timer タイマ割り込みが発生したとき[1]になります。
GP Timer Data (+1Ch Read ) DWord
I/Oベース In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
アドレス
+1Ch D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
+1Eh D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
GPTimer(
オンボードシステムタイマ
)
の読み出しポートです。
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
9/19
2007 5 7
4.3. オペレーションコマンドの説明
コマンドにより Counter 動作中にアクセスできないものがあります
Counter 動作中に変更不可のコマンド ×Counter
出力コマンド
コマンド
[h]
機能
コマンド
[h]
機能
コマンド
[h]
機能
コマンド
[h]
機能
00 Reserved 10
CH0 プリセットデータ
20
CH0 比較レジスタ 1
30
CH0Z 相入力設定
01 Reserved 11
CH1 プリセットデータ
21
CH1 比較レジスタ 1
31
CH1Z 相入力設定
02 Reserved 12
CH2 プリセットデータ
22
CH2 比較レジスタ 1
32
CH2Z 相入力設定
03 Reserved 13
CH3 プリセットデータ
23
CH3 比較レジスタ 1
33
CH3Z 相入力設定
04 Reserved 14 Reserved 24 Reserved 34 Reserved
05 Reserved 15 Reserved 25 Reserved 35 Reserved
06 Reserved 16 Reserved 26 Reserved 36 Reserved
07
タイマ設定
17 Reserved 27 Reserved 37 Reserved
08
CH0 カウンタモード
18
CH0 比較レジスタ 0
28
CH0 制御出力信号設定
38
カウント一致ステータスクリア
09
CH1 カウンタモード
19
CH1 比較レジスタ 0
29
CH1 制御出力信号設定
39
エラーステータスクリア
0A
CH2 カウンタモード
1A
CH2 比較レジスタ 0
2A
CH2 制御出力信号設定
3A
キャリーボローステータスクリア
0B
CH3 カウンタモード
1B
CH3 比較レジスタ 0
2B
CH3 制御出力信号設定
3B
汎用出力データ設定
0C Reserved 1C Reserved 2C Reserved 3C
ソフトプリロード
0D Reserved 1D Reserved 2D Reserved 3D
ソフトゼロクリア
0E Reserved 1E Reserved 2E Reserved 3E
テストパルス設定
0F Reserved 1F Reserved 2F Reserved 3F Reserved
入力コマンド
コマンド
[h]
機能
38
カウント一致ステータス
39
エラーステータス
3A
キャリーボローステータス
3B
汎用出力データリードバック
3F
カウンタステータス
40
汎用入力データ
4.4. コマンドの説明
タイマ設定 (07h) Dword ×Counter
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
- - - - - - - - - - - - - - - D16
タイマ割り込み用クロックの設定とタイマのスタ-ト
/
ストップを行います。
D16 タイマのスタ-ト/ストップビットです。
1 タイマスタート
0 タイマストップ
D15 - D00 最小単位は、0.1ms 単位で 0.1ms - 6553.5ms まで設定可能です。タイマ精度は 1
目のみ最大+0.1ms-0ms の誤差が生じます。
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
10/19
2007 5 7
カウンタモード (08h - 0Bh) Dword ×Counter
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 0 0 0 D08 0 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 0 0 D23 D22 D21 D20 D19 D18 D17 D16
カウンタスタート
/
ストップ
/
外部入力信号
/
Z相入力論理
/
デジタルフィルタ
/
動作モードなど各条件
の設定を行います。
D31 - D30 カウンタスタート条件を設定します
00 ソフトウェア
01 Reserved
10 外部 TTL レベル入力立ち上がり[外部入力信号で外部カウンタスタート/スト
ップが選択された場合のみ有効です]
11 外部 TTL レベル入力立ち下がり[外部入力信号で外部カウンタスタート/スト
ップが選択された場合のみ有効です]
D29 - D28 カウンタストップ条件を設定します
00 ソフトウェア
01 Reserved
10 外部 TTL レベル入力立ち上がり[外部入力信号で外部カウンタスタート/スト
ップが選択された場合のみ有効です]
11 外部 TTL レベル入力立ち下がり[外部入力信号で外部カウンタスタート/スト
ップが選択された場合のみ有効です]
D27 - D26 外部入力信号の選択を設定します。
00 汎用入力
01 外部カウンタスタート/ストップ
10
プリセットロード
11 カウンタゼロクリア
D25 - D24 0 固定
D23 - D20 プリセットロード条件の選択を設定します。該当ビットに1を設定するとプリセッ
トロード条件となります。ただし、ソフトウェア設定はこの設定条件に関らずプリセ
ットロードが可能です。
D23 外部 TTL レベル入力立ち下がり[外部入力信号でプリセットロードが選択
れた場合のみ有効です。]
D22 外部 TTL レベル入力立ち上がり[外部入力信号でプリセットロードが選択
れた場合のみ有効です。]
D21 カウント一致 1
D20 カウント一致 0
D19 - D16 カウンタゼロクリア条件の選択を設定します。該当ビットに1を設定するとカウン
タゼロクリア条件となります。ただし、ソフトウェア、Z 相入力はこの設定条件に関
らずゼロクリアが可能です。
D19 外部 TTL レベル入力立ち下がり[外部入力信号でカウンタゼロクリアが選
された場合のみ有効です。]
D18 外部 TTL レベル入力立ち上がり[外部入力信号でカウンタゼロクリアが選
された場合のみ有効です。]
D17 カウント一致 1
D16 カウント一致 0
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
11/19
2007 5 7
D15 - D12 デジタルフィルタの選択ポートです
設定データ範囲:0.1μs - 1.628ms または未使用
0000 未使用 1000 12.8μs EX. 0.1μs 設定時
0001 0.1μs 1001 25.6μs 75ns までのパルス幅を持つ信号に対
してフィルタエラーが起ち、カウン
しません。
0010 0.2μs 1010 51.2μs 75ns - 100ns のパルス幅を持つ信号に
対してフィルタエラーが起つことも
り、カウントすることもあります。
0011 0.4μs 1011 102.6μs 100ns 以上のパルス幅を持つ信号に対
してフィルタエラーは起たず、正常
カウントします。
0100 0.8μs 1100 204.8μs
0101 1.6μs 1101 409.6μs
0110 3.2μs 1110 819.2μs
0111 6.4μs 1111 1.6384ms
D11 - D09 0 固定
D08 Z 相入力の論理(/)を設定します
0 正論理(High アクティブ)
1 負論理(Low アクティブ)
D07 0 固定
D06 カウンタへのパルス入力を設定します。
1 TTL レベル入力(固定)
D05 カウント方向の切り替えを設定します。
0 CW 方向 Down/CCW 方向 Up
1 CW 方向 Up/CCW 方向 Down
D04 - D00 カウンタ動作モードの選択ポートです。
00000 2相入力、同期クリア、1 逓倍モード
00001 2相入力、同期クリア、2 逓倍モード
00010 2相入力、同期クリア、4 逓倍モード
00100 2相入力、非同期クリア、1 逓倍モード
00101 2相入力、非同期クリア、2 逓倍モード
00110 2相入力、非同期クリア、4 逓倍モード
01100 単相入力、非同期クリア、1 逓倍モー
01101 単相入力、非同期クリア、2 逓倍モー
10100 ゲートコントロール付き単相入力、非同期クリア、1 逓倍モード
10101 ゲートコントロール付き単相入力、非同期クリア、2 逓倍モード
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
12/19
2007 5 7
プリセットデータ (10h - 13h) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Ch0 - Ch3
のプリセットレジスタにデータを設定します。
本コマンドでデータを設定するとプリセットレジスタデータを書き換えます。
比較レジスタ 0 (18h - 1Bh) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Ch0 - Ch3
の比較レジスタ
0
にデータを設定します。
比較レジスタ 1 (20h - 23h) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
Ch0 - Ch3
の比較レジスタ
1
にデータを設定します。
制御出力信号設定 (28h - 2Bh) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - D08 D07 D06 D05 0 D03 D02 D01 D00
出力信号
/
ワンショットパルス幅の設定を行います。
D08 出力論理を設定します。
0 負論理(Default)
1 正論理
D07 - D05 ワンショットパルス幅を設定します
000 10μs 011 10ms
001 100μs 100 100ms
010 1ms 101 - 111 Reserved
D03 - D00 外部出力信号の選択を設定します。該当ビットに1を設定するとその要因により外
部へワンショットパルスを出力します。すべてのビット0とした場合は汎用出力と
なり、レベル出力となります。
D03 異常入力エラー
D02 デジタルフィルタエラー
D01 カウント一致 1
D00 カウント一致 0
Z 相入力設定 (30h - 33h) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - - - D01 D00
Z
相有効条件の設定を行います。
D01 - D00 Z 相入力の有効/無効を設定します。
00 前回設定有効
01 Z相入力無効 Z相がない場合、この値に設定する
10 次に来る Z 相の入力 1 回だけ有効
11 Z相毎回有効
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
13/19
2007 5 7
カウント一致ステータス (38h) DWord
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 D11 D10 D09 D08 0 0 0 0 D03 D02 D01 D00
0 0 0 0 D27 D26 D25 D24 0 0 0 0 D19 D18 D17 D16
条件が成立したビットが
[1]
になります。
[Read]
D27:カウント一致 1DOWN (Ch 3) D19:カウント一致 0DOWN (Ch 3) D11:カウント一致 1UP (Ch 3) D03:カウント一致 0UP (Ch 3)
D26:カウント一致 1DOWN (Ch 2) D18:カウント一致 0DOWN (Ch 2) D10:カウント一致 1UP (Ch 2) D02:カウント一致 0UP (Ch 2)
D25:カウント一致 1DOWN (Ch 1) D17:カウント一致 0DOWN (Ch 1) D09:カウント一致 1UP (Ch 1) D01:カウント一致 0UP (Ch 1)
D24:カウント一致 1DOWN (Ch 0) D16:カウント一致 0DOWN (Ch 0) D08:カウント一致 1UP (Ch 0) D00:カウント一致 0UP (Ch 0)
カウント一致ステータスクリア (38h) DWord
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 D11 D10 D09 D08 0 0 0 0 D03 D02 D01 D00
0 0 0 0 D27 D26 D25 D24 0 0 0 0 D19 D18 D17 D16
対応ビットに
[1]
を出力することによって
[0]
にリセットします。
[Write]
D27:カウント一致 1DOWN (Ch 3) D19:カウント一致 0DOWN (Ch 3) D11:カウント一致 1UP (Ch 3) D03:カウント一致 0UP (Ch 3)
D26:カウント一致 1DOWN (Ch 2) D18:カウント一致 0DOWN (Ch 2) D10:カウント一致 1UP (Ch 2) D02:カウント一致 0UP (Ch 2)
D25:カウント一致 1DOWN (Ch 1) D17:カウント一致 0DOWN (Ch 1) D09:カウント一致 1UP (Ch 1) D01:カウント一致 0UP (Ch 1)
D24:カウント一致 1DOWN (Ch 0) D16:カウント一致 0DOWN (Ch 0) D08:カウント一致 1UP (Ch 0) D00:カウント一致 0UP (Ch 0)
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
14/19
2007 5 7
エラーステータス (39h) Word
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 D11 D10 D09 D08 0 0 0 0 D03 D02 D01 D00
条件が成立したビットが
[1]
になります。
[Read]
デジタルフィルタエラー、異常入力エラーステータスはエラー状態になったときに“
1
”となりラ
ッチされます。クリアすることにより“
0
”となり、再びエラー状態になると“
1
”となります。
D11:デジタルフィルタエラー (Channel 3) D03:異常入力エラー (Channel 3)
D10:デジタルフィルタエラー (Channel 2) D02:異常入力エラー (Channel 2)
D09:デジタルフィルタエラー (Channel 1) D01:異常入力エラー (Channel 1)
D08:デジタルフィルタエラー (Channel 0) D00:異常入力エラー (Channel 0)
エラーステータスクリア (39h) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 D11 D10 D09 D08 0 0 0 0 D03 D02 D01 D00
対応ビットに
[1]
を出力することによって
[0]
にリセットします。
[Write]
D11:デジタルフィルタエラー (Channel 3) D03:異常入力エラー (Channel 3)
D10:デジタルフィルタエラー (Channel 2) D02:異常入力エラー (Channel 2)
D09:デジタルフィルタエラー (Channel 1) D01:異常入力エラー (Channel 1)
D08:デジタルフィルタエラー (Channel 0) D00:異常入力エラー (Channel 0)
キャリーボローステータス (3Ah) Word
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 D11 D10 D09 D08 0 0 0 0 D03 D02 D01 D00
条件が成立したビットが
[1]
になります。
[Read]
D11Borrow (Channel 3) D03Carry (Channel 3)
D10Borrow (Channel 2) D02Carry (Channel 2)
D09Borrow (Channel 1) D01Carry (Channel 1)
D08Borrow (Channel 0) D00Carry (Channel 0)
キャリーボローステータスクリア (3Ah) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 D11 D10 D09 D08 0 0 0 0 D03 D02 D01 D00
対応ビットに
[1]
を出力することによって
[0]
にリセットします。
[Write]
D11Borrow (Channel 3) D03Carry (Channel 3)
D10Borrow (Channel 2) D02Carry (Channel 2)
D09Borrow (Channel 1) D01Carry (Channel 1)
D08Borrow (Channel 0) D00Carry (Channel 0)
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
15/19
2007 5 7
汎用出力データ設定 (3Bh) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
カウンタ動作モード設定において外部出力信号を汎用出力に選択した場合、このポートは出力デー
タポートになります。
汎用出力データリードバック (3Bh) Word
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
カウンタ動作モード設定において外部出力信号を汎用出力に選択した場合、このポートは出力デー
タ読み出しポートになります。
ソフトプリロード (3Ch) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
Ch0 - Ch7
[1]
を出力すると、プリセットレジスタからカウンタにロードされます。
ソフトゼロクリア (3Dh) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
Ch0 - Ch7
[1]
を出力すると、カウンタ値がゼロクリアされます。
テストパルス出力 (3Eh) Word
Out D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - - - D01 D00
自己診断用パルス出力の設定をします。出力周波数は
100kHz
固定です。
D01 出力パルスの有効/無効の設定をします。
0 テストパルスを出力しない
1 テストパルスを出力する
D00 出力パルス信号の内部/外部の設定をします。
0 テストパルスを外部結線で使用
1 内部で使用(CH0 - CH3 全チャネルに 2 相パルスを出力します。)
テストパルスを内部出力
OUT 先頭アドレス+8, 3Eh
OUT 先頭アドレス+C, 03h
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
16/19
2007 5 7
カウンタステータス (3Fh) DWord
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
D15 D14 D13 D12 D11 D10 D09 D08 D07 D06 D05 D04 D03 D02 D01 D00
カウンタ動作中のステータスポートになります。
Channel 3 Channel 1
D15 Z D07 Z
D14 A D06 A
D13 B D05 B
D12 U/D D04 U/D
Channel 2 Channel 0
D11 Z D03 Z
D10 A D02 A
D09 B D01 B
D08 U/D D00 U/D
汎用入力データ (40h) Word
In D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - - - - - - - Ch3 Ch2 Ch1 Ch0
カウンタ動作モード設定において外部入力信号が汎用入力を選択した場合、このポートは入力デー
タポートになります。(正論理)
外部入力信号を汎用入力以外に設定した場合でもそのときの入力レベルを読めます。入力レベルが
HI レベルのとき 1LO レベルのとき 0 となります。
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
17/19
2007 5 7
5. 制御フロー
基本的な制御フローの一例を示します。
END
Start
カウンタ
開始条件成立?
初期設定
カウンタ
終了条件成立?
Yes
Yes
No
動作モード設定
プリセットレジスタ設定
比較レジスタ0設定
比較レジスタ1設定
制御入出力設定
カウント一致イベント設定
カウンタ開始条件設定
カウンタ終了条件設定
割り込み設定
カウント一致イベントなど
カウンタ値の取り込み
カウント一致/割り込みなどのイベント
発生により外部へアクセス。
カウンタ終了
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
18/19
2007 5 7
【サンプルプログラム例】
/*-----------------------------------------------------------------------------
CNT32-4MT(**) Sample Input Counter 0ch Ver. 1.00
-----------------------------------------------------------------------------*/
/* ----- Initialize -------------------------------------------------------- */
outpw(address+0x08, 0x0008); /*
動作モード設定
*/
outpd(address+0x0c, 0x00000022); /*
差動入力、
CW=UP
2
相入力、同期、
4
逓倍
*/
outpw(address+0x08, 0x0010); /*
プリセットレジスタ設定
*/
outpd(address+0x0c, 0x00000000); /*
データ
"00000000"
設定
*/
// outpw(address+0x08, 0x0018); /*
比較レジスタ
0
設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00001000); /*
データ
"00001000"
設定
*/
// outpw(address+0x08, 0x0020); /*
比較レジスタ1設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00002000); /*
データ
"00002000"
設定
*/
// outpw(address+0x08, 0x0028); /*
制御出力設定
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x00000000); /*
ワンショットパルス
10
μ
s
、汎用出力
*/
outpw(address+0x08, 0x0030); /* Z
相入力設定
*/
outpd(address+0x0c, 0x00000001); /*
無効
*/
outpw(address+0x08, 0x003c); /*
プリセットデータロード
*/
outpd(address+0x0c, 0x0000000f); /*
全チャネルロード
*/
/* ----------- Counter Start ---------------------------------------------- */
outpw(address+0x04, 0x0001); /* Ch0
のみスタート
*/
/* ----------- Test Pulse Output ------------------------------------------ */
// outpw(address+0x08, 0x003e); /*
テストパルス設定コマンド
(
未使用の場合は設定不要
)*/
// outpd(address+0x0c, 0x0003); /*
テストパルスを内部に出力
(
未使用の場合は設定不要
)*/
/* ----- Read Data -------------------------------------------------------- */
while (1) {
outpw(address+0x02, 0x00ff); /*
全チャネルラッチ
*/
outpw(address+0x00, 0x0000); /*
チャネル
0
のカウント値読み出しを指定
*/
cntdata = inpd(address+0x00); /*
カウント値を読み出し
(DWord
アクセス以外不可
)*/
outpw(address+0x08, 0x003f); /*
ステータスリードコマンド指定
*/
stsdata = inpd(address+0x0c); /*
ステータスを読み出し
*/
printf("CountData StatusData"); /*
カウント値、ステータス表示
*/
printf("%08ld %02x ", cntdata, stsdata );
}
テクニカルリファレンス< CNT-3204MT-LPE, CNT32-4MT(LPCI), CNT32-4MT(CB)>
19/19
2007 5 7
6. 補足
ここでは、API-PAC(W32)でサポートしていないボードの機能や、ボードに関連する補足情報を説明し
ています。
6.1. オンボードシステムタイマ機能
ボード上に常時動作するアップカウンタを搭載しており、カウントデータを入力することで、パソコ
(Windows)のシステムタイマよりも短い間隔の時間を監視することができます。
アップカウンタは 4MHz(250nsec ステップ)のクロックで動作する 32 ビットバイナリカウンタで、
00000000h から順次カウントアップしていき、FFFFFFFFh になった後、再び 00000000h になり、この
操作を繰り返します。
アップカウンタは電源投入後から常に動作します。
時間との対応は、カウントデータの 1LSB 250nsec に対応します。最大値 FFFFFFFFh
1,073,741,823,750nsec( 18 )に相当します。
カウントデータはタイマの動作に影響を与えずに入力することができます。
カウントデータの入力ポートの最下位アドレスへの入力命令を実行した時点で、カウントデータのラ
ッチを行い、そのときのデータが入力できます。
カウントデータの入力は、バイトアクセス、ワードアクセス、ダブルワードアクセスでの操作が可能
です。
< オンボードシステムタイマプログラム (ワードアクセス) >
現在のカウントデータを入力します。ただし、ボードの I/O ベースアドレスは、port です。
dwLow = impw ( port + 0x1c); /* 下位カウントデータの入力 */
dwHigh = impw ( port + 0x1e); /* 上位カウントデータの入力 */
dwTim = (dwLow | ((dwHigh << 16) & 0xffff0000));
経過時間の計算方法
任意のタイミングで入力したカウントデータ dwTim1, dwTim2 から経過時間をμsec 単位で計算します
(dwTim1計測開始時のカウントデータ、dwTim2計測停止時のカウントデータ、dwLap経過時間[μ
sec])
if(dwTim2 >= dwTim1){
dwLap = (DWORD)((dwTim2 - dwTim1) >> 2); /* 結果をμsec 単位にする */
]
else{ /* カウントデータが FFFFFFFFh から 00000000h の境界をまたぐ場合 */
dwLap = (DWORD)((0xffffffff - dwTim1 + dwTim2) >> 2);
]
以上
A
-48-078
LYFJ982
/