SMTタコメータの作製

はじめに

PIC16F18424のSMT(Signal Measurement Timer)モジュールを使ったタコメータです。SMTは24ビットカウンター/タイマーなので、広レンジの計測が可能です。

概要

フォトリフレクタで検出した回転体のインデックス信号から、SMTのWindowed Measurementモードで周期を計測し、回転数に換算します。また、フォトリフレクタの検出信号をシュミットトリガインバータ(コラム参照)でパルス成形することで、確実な計測ができます。

内容

下は、Windowed Measurement(Single)モードのタイミング・ダイアグラムです。
SMTxWINは、フォトリフレクタで検出した回転インデックス信号です。SMTxGOビットがHiの間、SMTxWINの立上りから次の立上りまでのSMTxTMRカウント値がSMTxCPRにキャプチャされます。

下は、SMTモジュールのMCC設定内容です。
システムクロック(FOSC)はPIC内蔵OSC_4MHz、SMTクロックはFOSC/4=1MHz です。このクロックでの回転数計測範囲は 4 rpm ~ 6 x 107 rpmと広レンジです。(107 rpmなどあり得ない回転数ですが)

下は、ソースコードのメインループ部です。MCC自動生成関数を使用しています。
SMTxCPRレジスタにキャプチャされたカウント数を回転数に変換するだけです。

結果

ブレッドボードに下の回路を組んで実験しました。使用したフォトリフレクタは RPR-220(ローム社) です。他社品でも構いません。

下は実験の様子です。フォトリフレクタで回転板の反射マークからの反射を検出し、回転インデックスとしています。上の波形観察は、反射信号とそのシュミットトリガインバータ出力信号です。フォトリフレクタのスロープな信号波形が、シュミットトリガインバータによってパルス成形され、反転していることが分かります。

まとめ

SMTのWindowed MeasurementモードをMCCで設定すれば、簡単なコードで入力信号の周期を計測できます。また、SMTxClockに水晶発振子を使えば、高精度/広レンジの周波数カウンタになります。24ビットカウンター/タイマーの性能を活かすことで活用の幅が広がります。

– 以上 –

コラム

インバータ(NOTゲート)は、入力信号を論理反転した信号を出力します。即ち、入力がLなら出力はH、入力がHなら出力はLになります。汎用ロジックICでは、インバータの74HC04と、シュミットトリガインバータの74HC14があります。ピンアサインと機能は74HC04/14とも同じですが、74HC14は約25% VCCのヒステリシス(後述)を持ってます。
下は、インバータとシュミットトリガインバータを比較したものです。
いずれも入力を反転する閾値を持ち、入力はパルス信号に成形/出力されます。違いは、インバータの閾値はTTHの1水準、シュミットトリガインバータはTHHとTHLの2水準です。THHは入力立上りの閾値、THLは入力立下りの閾値で、THHとTHLの差をヒステリシスといいます。
インバータの場合、入力電圧がノイズ等で変動すると、閾値付近では出力電圧がL/Hを繰り返すチャタリングが発生します。一方、シュミットトリガインバータは、入力電圧の変動幅がヒステリシスより小さければ、出力電圧に影響しません。この特性を活かして、スイッチやリレーのチャタリング除去に使われます。