教育分野
ロジックICで構成した周波数カウンタの製作 【測定原理と仕様検討編】
◎周波数カウンタ
最近は安価なデジタルテスタでも周波数カウンタ機能がある機種があります。
写真1はその製品例で、タイマーIC 555などの発振周波数確認に利用できます。
また、図2は専用の周波数カウンタの製品例です。
555などでの発振周波数確認は写真1のデジタルテスタで十分ですが、さらに周波数精度を求めたい場合は写真2のような周波数カウンタを用います。
表示できる桁数は機種により異なり、桁数が多いほど正確な周波数を知ることができます。
周波数の測定方式は色々あります。
写真の製品でも方式が異なります。
また、マイコンを用いても周波数カウンタ機能は実現できます。
今回は原理を学習する目的で簡単な方式とし、汎用ロジックICのみで構成した周波数カウンタを製作しましたので紹介します。
◎測定原理
★基準時間内でのパルス数をカウントする
この信号の周波数は100Hzですねと普段なにげなく言っていますが、周波数の定義は1秒間における波の繰り返し回数のことです。
家庭用のAC100Vは50Hzまたは60Hzですがこの場合、正弦波の繰り返し回数が50回または60回あるということです。
正弦波でなくても例えば図1のようなデジタル波形でも繰り返し回数になるわけですが、この場合、パルス数を数えることになります。
図1ではパルス数が1秒間に5個ありますから、これは5Hzです。
あるいは、パルス数が12000個あったとすればこれは12000Hz(12KHz)です。
このように繰り返し回数またはパルス数を数えるのが周波数カウンタです。
つまり、基準時間(1秒)内におけるパルス数が周波数です。
★ゲートで信号を取り出す
入力信号(パルス)は図1のように連続しています。
この中から基準時間内だけ信号を取り出す方法として図2のようにゲートを用います。
A入力に信号、B入力に基準信号を加えます。
ANDゲートはA、B入力が両方Hの時、出力YがHになります。
したがって、B入力がLの時、A入力の状態(H/L)によらず出力YはLです。
つまり、B入力がHの期間(区間)ではA入力の信号がそのまま出力Yに現れます。
この例では出力Yにパルスが5個ありますから、5Hzということです。
また、基準時間(ゲート)は1s(秒)以外に1ms、10ms、100msなどでも良く、例えば1msの基準時間内に5個のパルスがあればこの時の周波数は5KHzです。
◎原理ブロック図とタイミング
★ブロック図
図3に原理ブロック図を示します。
ゲートに測定信号と基準信号を加えて基準信号時間内のパルス数をカウントする周波数カウンタをダイレクト・カウンタ(方式)と言います。
信号は正弦波、矩形波、三角波などですが、一旦、アンプを通り、波形整形されます。
周波数カウンタ内部はデジタル回路ですから、正弦波も含めてデジタル信号(パルス波)に変換する役目が波形整形回路です。
基準時間発生回路は必要なゲート時間(1s、100ms、10msなど)を作るための部分で、その周波数精度で周波数カウンタとしての精度が決まります。
カウンタはゲート出力のパル数をカウントし、その値を最終的に表示器(7SEG-LEDなど)に表示します。
制御回路はカウント開始、終了、リセットなどを行います。
★タイミング
図4に原理的なタイミングを示します。
制御信号はリセットとラッチの2つです。
開始はどこから始めても良いのですが、説明上、①の区間を開始とします。
まず、①のリセット信号のHレベルでカウンタをリセットします。
これによってカウンタ出力はすべてゼロとなって、カウント準備します。
②の区間でゲートがL→Hに変化したポイントでゲートが開き、入力信号に応じたものがカウンタに入力されてカウントを開始します。
ゲートが開いている時間は例えば1sなどの基準時間分です。
基準時間が経過するとゲートはH→Lに変化してゲートを閉じてカウントを終了します。
この場合、カウンタへの入力信号はゲートが閉じていますので、カウンタは最後にカウントした数値(データ)のままです。
ここで、ラッチ信号で最後にカウントした数値を保持し、デコーダを経由して表示させます。
②の区間ではカウント値が2385なので、この値が表示されます。
ゲート時間を1sとすれば2385Hzです。
ラッチ後に次のゲートが開いて(Hレベル)新しい入力信号をカウントするためにリセット信号をカウンタに加えてカウント準備します。
④の区間では入力信号の周波数に変化があったので、終了後のカウント値が2400になっています。
したがって、⑤の区間では表示値が更新されて2400になります。
このように、カウンタリセット→カウント開始→カウント終了→ラッチ→カウンタリセット→カウント開始・・・・の繰り返しです。
この場合、表示値の更新周期はラッチ信号間の時間です。
例えばゲート信号をHとLの区間区間を同じ時間例えば1sとすれば、更新周期は2sです。
◎仕様
★桁数と表示
表示器は7SEG-LEDになりますが、桁数を決めます。
桁数が多いほど細かい数値を表現できます。
しかし、桁数が多いほどデバイス(IC)の数が多くなり、製作も大変です。
図5に4桁とした場合のカウンタから7SEG-LEDまでの概略の信号線本数を示します。
これ以外に制御回路からの配線もあるのですが、88本です。
収納ケースはなるべく小さ目とし、コンパクトに仕上げたいので今回はホビー用途の簡易的な4桁表示にすることにしました。
4桁の場合、表現できる数値は0000~9999です。
ゲート時間を1sとすれば、0Hz~9999Hzです。
9999が最大カウントになり、図6に各ゲート時間での周波数表示をまとめてみました。
1sでの単位をKHzとし、最上位桁にデシマルポイント(小数点)を付ければ9.999KHzとなって、分解能0.001KHz(1Hz)です。
100msでは99.99KHz(分解能10Hz)、10msでは999.9KHz(分解能100Hz)、1msでは9999KHz(分解能1KHz)となります。
すべてデシマルポイントの位置が異なります。
また、最上位桁がゼロの場合、例えば100ms時では09.99KHzなどのような表示になります。
これについては個人の好みの問題ですが、私としては不要なゼロを消すゼロブランキング方式にしたいところです。
100msの場合、最上位桁のゼロを検出してそれを元にしてゼロブランキングすることは容易です。
しかし、10ms、1msの場合ではこれの回路規模が大きくなります。
なるべく測定周波数範囲を広くし、ゲート時間切り替え操作なども簡単に行いたいので、結局、1sと1msの2とおりとすれば、1sではKHz、1msではMHzの単位となり、デシマルポイント位置も同じです。
また、ゼロブランキングの必要もありませんので、この2つのゲート時間とします。
これにより周波数範囲は1Hz~9.999MHzです。
★仕様
表1に仕様を示します。
表示は前述のように7SEG-LED 4桁です。
周波数範囲は1sで0.01kHz~9.999kHzです。
4桁なので0.001kHz(1Hz)も表示できるのですが、ホビー用途では数Hzを測定することはほとんどないと思いますので、仕様では最低周波数10Hzとしました。
1msのゲート時間では0.001MHz~9.999MHzの範囲です。
更新周期はゲート時間により異なり、1sでは2s、1msでは約200ms毎に更新されます。
図7に操作部と表示例を示します。
入力のBNCコネクタとゲート時間切り替えスイッチが操作部です。
OVERランプ(LED)は最上位桁の値が8以上で点滅表示します。
4桁表示ですから、最大カウント値は9999です。
つまり、9999を超えると5桁目が無いので本当の周波数なのか分かりません。
具体的に間違った表示例を図8に示します。
例えば1sのゲート時間のポジションで30kHzを入力すると5桁目が無いので0.000kHzと表示されてしまいます。
また、24kHzでは4.000kHzとなってしまいます。
本来であれば9999を超えた場合に行うのですが、簡易的に最上位桁が8以上になったら点滅動作させて注意を促す目的としています。
特に24kHzなどのように4.000kHzと表示されるとカウントオーバーになっていることに気づきにくいものです。
入力インピーダンスについては一般的なアナログ回路、デジタル回路での測定用途を想定し、1MΩとしています。
入力感度については完成後の評価で確認予定です。
表1 仕様
周波数表示 | 7SEG-LED 4桁 | |
周波数測定範囲 | 1s | 0.01kHz~9.999kHz |
1ms | 0.001MHz~9.999MHz | |
表示単位、分解能 | 1s | 0.001KHz(kHz) |
1ms | 0.001MHz(MHz) | |
更新周期 | 1s | 2s |
1ms | 約200ms | |
OVERランプ | 最上位桁8以上で点滅 | |
入力インピーダンス | 1MΩ | |
電源 | 外部DC9V~15V |
ロジックICで構成した周波数カウンタの製作 【設計編 その1】に続きます。
ロジックICで構成した周波数カウンタの製作 【測定原理と仕様検討編】
ロジックICで構成した周波数カウンタの製作 【設計編 その1】はこちら