2相パルス弁別IC開発背景

back home
2000年4月14日

相式ロータリーエンコーダーを使って位置を計測するマイコンシステムを設計する際、次のような簡単な方法ではミスカウントをする場合があります。

簡単な例:A相の立ち上がりでCPUに割り込みをかけ、その時のB相の状態でUP/DOWNを判断する。

問題:エンコーダーが反転するタイミングによって1パルスずれる。また、振動を伴いながら停止した場合、チャタリングの数だけミスカウントする。

策として、CPUの割り込みを各相の立ち上がり、立ち下がり全てにかける。又はカウント専用ICを使う等が考えられます。
CPUの割り込みを増やす時
利点:パルス数が4てい倍されますので分解能が上がります。また、外部に余分なICがいりません。

欠点:割り込み処理が増えますので早いCPUを使うか、遅いパルスレートしか対応出来ません。20Kppsでは12.5μsec間隔で割り込みが発生します。

カウント専用ICを使う時
利点:CPUの負担は減ります。てい倍数等も変更出来る物が多いようです。

欠点:パラレル出力のICがほとんどの為、必然的にコストが上がります。
桁数をオーバーした時の処理も考えなくてはなりません。

前は2相のパルスからDIRとパルス出力に変換してくれる物があったようですが、今はほとんどみかけません。(あったとしても余分な機能がついて高価になっています)
なければ作る他ないわけですが、開発にあたって以下のような環境をターゲットにしました。

1.ロータリーエンコーダーの正逆転または停止時に振動する可能性がある機械。
ただし正確にカウントする必要がある。

2.安価なCPUを使ったシステムの為、高価なカウントICを使えない。
割り込み処理にかけられる時間も50μsec程度まで。

行錯誤の結果、ワンチップCPUのPIC12C508A(8ピンDIP)*1に専用プログラムをのせて25Kppsまで対応出来るパルス弁別専用ICが完成しました。
パルスの正論理/負論理の切替、及びDIR+パルス出力又はUP/DOWNパルスの切替ができます。ベースにしたデバイスが安価な為、システムのコストアップを最小限に防げます。
*1:試作品(サンプル)は12C509Aを使用しました。


BACK