2018年6月28日木曜日

【回路】Sine wave oscillator : Part 2

【回路:正弦波発振器の研究・その2】
 【低ひずみ・正弦波発振回路
 いつも忘れたころ登場する低ひずみな正弦波発振器の話しです。今回も発振周波数は1000Hzです。

 少し前のことになりますが、トラ技読者のお方から質問をいただきました。 「私の部品箱」というコラム記事に掲載された回路図についてでした。 その号のテーマはCdSとLEDを組み合わせた「リニア・フォトカプラ」でした。 その活用例として低ひずみな正弦波発振器を紹介しておいたのです。質問はその発振器についてでした。 簡単に言うと作ってみたいがもう少し詳しい情報が欲しいと言うものです。 回路図だけでほかに写真も何もなかったので情報不足だったのでしょう。 その時は手元の資料をいくつかお送りして対応しておきました。

 わずか1ページのコラム記事ですが意外にご興味を持ってお読みいただいているようです。 しかし更に詳しい話は新たな記事のご依頼でもあれば別ですが、いちどコラム記事として登場すればそれで終わりになることが殆どです。要するに使い捨て感覚なのでしょう。 記事にしていただくのは有り難いのですが、いくら頑張っても1ページの紙面では無理があります。 視点を変えた上でBlogでフォローしておくことにしました。

                   ☆

 写真はトランジスタ技術誌:2017年10月号の「私の部品箱」(P206)に登場した正弦波発振器の試作の様子です。 記事ではCdSとLEDを組み合わせたフォト・カプラ(オプト・アイソレータ)がテーマでしたがこのBlogでは発振回路そのものの方にスポットライトを当てたいと思います。 内容は全く独立していますから雑誌記事を参照する必要はありません。

 このBlogの趣旨に沿った内容で解説を試みましょう。 こうした発振器のHAMの用途はSSBジェネレータやSSB送信機のテストに使うための2トーン・ジェネレータでしょう。 近頃は高級測定器をお持ちの自作HAMも多いため2トーン・ジェネレータの高性能化が必要になってきました。従来型の性能では2トーンジェネレータ自体の高調波が観測の邪魔になるのです。 昔のようにオシロスコープでの波形観測なら少々のひずみはわかりませんでした。しかし高分解能、広ダイナミックレンジのスペアナだと2トーン・ジェネレータ自体の高調波が見えてしまうのです。 このため高調波ひずみの非常に少ない2トーン・ジェネレータが必要になっているのでしょう。 こうした超低ひずみ発振器はオーディオ・アンプのひずみ率測定に使う信号源がおもな用途だと思っていましたが、近頃は高度なHAMのニーズも生まれているのです。

 以下、製作のポイントや測定結果など交えて詳しく紹介しておきます。 この種のオシレータの自作に興味があればお付き合い下さい。 高性能オーディオや高度な無線機の自作に関心はないのでしたら退屈なだけかも知れません。

 【低ひずみ発振器の回路図
 低ひずみ発振器の回路図です。 超低ひずみと言えますが回路は意外に簡単です。使っている部品もごく一般的なものです。

 発振回路は低ひずみ発振器の定番のようになっている「状態変数型」です。この回路は積分型のLPFを重ねた形式なので高調波が減衰するため有利なのです。発振周波数は図中の計算式で求められます。 ここでは約1,000Hzになるよう設計しています。ただし部品誤差があるのでちょうど1,000Hzに合わせるには調整が必要です。R2およびR3を微調整する方法が良いです。

  肝心のひずみ率ですが、0.001%以下の性能が得られます。ひずみ率計の数字は単独の高調波だけで決まるわけではありませんが、ここでは話を単純化すると0.001%と言うのは基本波に対して-100dBになります。一般的なスペアナなら高調波が観測の支障になることはないでしょう。 発振振幅は約7V(rms)得られます。

 2トーン・ジェネレータにするならもう1回路製作します。そちらの発振周波数は1575Hzに設計します。回路図中の計算式から抵抗器:Rの値を求めます。例えば C=0.047μFならR=2150Ωになります。Cの方を変えても良いです。

 低ひずみな発振器では振幅制御がたいへん重要です。 電圧可変抵抗素子を使ってアンプが飽和しないよう増幅度(ゲイン・利得)を自動調整します。 電圧可変抵抗素子としてはFET(電界効果トランジスタ)がよく使われます。これは過去のBlogでも実験してます。(リンク:その1その2

 もちろん同じ方法で作っても良いのですが、ここではフォト・カプラ(オプト・アイソレータ)を使いました。 発光側がLEDで受光側がCdS(硫化カドミウムセル)のフォト・カプラです。 LED(発光側)の電流を変えると受光素子のCdSは大幅に抵抗値が変化します。 その特性を使って利得の(=発振振幅の)自動制御を行ないます。 フォト・カプラはFETと違って制御側(LED)と被制御側(CdS)が電気的に切り離されているため使いやすいのです。ただしFETよりも超低ひずみでは不利ではないかと言われることもあります。

 CdS-LEDのフォト・カプラを使った状態変数型発振器もときたま見かけます。 それらの殆どはフォトカプラのCdS素子を回路図のR4の位置に入れます。 入力側と出力側が電気的に絶縁しているためGNDから浮いた位置に挿入できるからです。 ここではR4の位置ではなく、R8と並列にGND側にCdSが来るようにしてみました。 このようにした方が低ひずみに有利ではないかと考えました。このあたりが私が工夫した部分です。
 この位置の方がCdSの両端に加わる電圧が低いのです。 CdSは抵抗値の電圧依存性が少ないのが特徴です。(電圧依存性:両端に印加された電圧により抵抗値が変化する現象。それが大きいとひずみの原因になる) 従ってR4の位置に入れてもかなり低ひずみです。 しかしR8の位置、GNDとの間に入れる方が端子間に加わる電圧はずっと低いためそれだけ有利なはずです。

 その代わり発振振幅を制御する方向は逆になります。 電源投入後の発振起動時には必ず低抵抗の状態にならなくてはいけません。 真っ先にフォトカプラのLEDを明るく点灯させねばならない訳です。 まず、整流回路とLEDの極性を逆にします。 さらに発振起動時を考えてCdSが必ず低抵抗の側からスタートするよう、LEDのカソードはGNDではなくマイナス電源に接続します。これで電源投入で確実に発振が起動でき振幅制御が働きます。

#状態変数型発振回路の動作原理は参考書がたくさんあるので文末をご覧ください。

 【発振波形
 ひずみ率が0.001%の正弦波などオシロで見ても面白くないと思います。 特にここで使ったようなデジタル・オシロは垂直軸の分解能は8bit程度のものです。 最近の高性能デジタル・オシロでも12bitですから波形を見てひずみを云々することは不可能でしょう。

 オシロスコープでは波形の観測ではなく、電源投入時の起動特性などを確認しておきます。 発振が始まり振幅が安定するまでの状態を確認します。 また、発振振幅とひずみ率には関連があります。ひずみが増加しない範囲においてなるべく大きな振幅で発振させた方が有利です。これはOP-Ampの残留ノイズによりひずみ率が悪く見えてしまうことへの対策です。 ここでは画面を見ながら約20Vppの発振振幅に調整しておきました。

 【発振周波数と発振レベル
 オーディオ・アナライザを使って発振周波数と振幅を測定しています。 発振振幅は実効値(rms)で表示され、20Vppはおおよそ7. 07V(rms)です。 

 20Vppはオシロスコープの画面で見て合わせたので、多少小さめだったのでしょう。 この状態で再調整し7.07V(rms)になるようにしても良いと思います。

 発振周波数は計算では1,000Hzのはずですが少し高くなりました。 抵抗器は誤差1%のものを使っています。周波数のずれはおもにコンデンサの容量誤差によるものでしょう。 回路図のR2およびR3を少し加減すれば1,000Hzに合わせられます。 周波数カウンタがあれば簡単です。 少々の周波数調整ならR2またはR3のいずれか一方の加減でも大丈夫です。 しかしR2とR3はなるべく同じ抵抗値にすべきです。 大幅な周波数調整が必要ならR2とR3の両方を同じずつ調整するようにします。

 【肝心のひずみ率は
 ひずみ率は0.001%前後になりました。 これはこのオーディオ・アナライザ:hp 8903Aの測定限界に近い数字です。

 次の項目で高調波スペクトラムの様子をみると、実際はもう少し低ひずみなのではないでしょうか。 基本波が幾分大きめに漏れ残っているようです。 従って、実際にはもう少し良いひずみ率なのでしょう。 半ば想像ではありますが、大まかに0.0005%くらいのように思います。 もちろん0.001%であってもHAM用の2トーン・ジェネレータには十分すぎるくらいなのですが。

  ひずみ率の調整は基本的に必要ありません。 怪しげなジャンク部品はいけませんが、普通の部品を使って作れば発振振幅を調整するだけでこの程度のひずみ率になります。 振幅の自動調整に使ったフォト・カプラ:LCR-0203の影響を調べるために何個か交換してみました。 ばらつきのため交換しただけでは発振振幅に多少の違いが見られますが、調整して同じ発振振幅になるように合わせればひずみ率は同じになります。 LCR-0203のばらつきはひずみ率に影響しません。

 あえてひずみの調整を行なうなら、OP-Amp. U2bの7pin(R11との接続点)をオシロスコープで観測しながらR12(1MΩ)を加減します。 オシロスコープはAC結合にして感度を上げ、小さなリプル波形が良く見える状態にしておきます。 そのリプル波形が最も小さくなるようにR12を調整します。ただし完全に無くすることはできません。 もしひずみ率計が使えるなら、ひずみ率が最小になるように調整しても結構です。ただしオシロスコープを使う方法との差はないはずです。 この回路を使う限りここまでの調整を行なえばほぼ完璧です。これで0.001%以下のひずみ率まで持って行けます。
 
 【ひずみの周波数成分分析
 オーディオ・アナライザのモニタ出力(背面)をスペアナで観測するとひずみ成分の分析が可能です。 オーディオ・アナライザのモニタ出力であって、なまの信号を見ているのではないため、この画面から直接ひずみ率を求めることはできません。 しかし、ひずみの成分が分析できます。

 この観測によれば、ひずみの原因は第2高調波にあることがわかります。 それ以外の高調波はノイズフロアよりずっと下にあります。 従って、この第2高調波を低減する対策を行なえば一段と低ひずみな発振器になるでしょう。(一般的にいえば、偶数次のひずみは増幅器の非直線性によるもの、奇数次は飽和によるものがまずはじめに考えられます)

 実は第2高調波の発生原因はかなりはっきりしています。  発振振幅の自動制御回路に原因があります。 発振により生じた1,000Hzの信号をダイオードによって整流して振幅の制御に使っています。 整流したあと積分器で平滑して直流電圧にしていますが、どうしても微細なリプル電圧が残ります。そのリプルを含む電流がフォト・カプラのLEDに流れ、微細な光量変化となりCdSを介して回路に再注入されるのです。

 積分回路の時定数を長くすると効果がありますが少々では効きません。 あまり長くするとこんどは発振の起動特性が劣化します。積分コンデンサのESR(等価直列抵抗)も影響します。 ダイオードによる整流回路を持った振幅安定化回路の限界なのです。  これは振幅の制御にフォト・カプラを使おうがFETを使おうが同じことです。 参考書によれば乗算器を使ったリップルレスな整流回路を使うと良いようです。 しかし現状でも十分な低ひずみですし、なるべく手に入りやすい部品だけで製作できる範囲が好ましいと思っています。乗算器が手に入ったなら比較の意味で試す価値はありそうですけれど・・・。(笑)

 【OP-Amp.とコンデンサ
 使用する部品の話しです。 発振回路に使うOP-Amp.は十分に吟味しています。ここではNE5532(TI製)を使いました。単価100円くらいですから高価なものではありませんが、この用途に向いています。

 間違いないのはNE5532やLM4562NAのようなAudioに向いたOP-Amp.です。  NJM4580も有力候補でしたが高い周波数の微小発振を伴うようでした。 回路形式による原因のほかに部品レイアウトに何か問題があるのかもしれません。残念ながら諦めした。 いずれにしてもローノイズ、低ひずみなOP-Amp.を選びます。必ずしも高価なものが良いわけではありません。 ごく一般的な4558系であってもかなり良い性能が得られるものです。

 抵抗器は金属皮膜抵抗器を使います。誤差は1%のものが売られています。カーボン抵抗はノイズの点で感心しません。ベストは金属箔抵抗器ですが高価すぎます。 バイパスコンデンサを除きすべてフィルム・コンデンサを使いました。 容量が大きめなので振幅制御回路の積分コンデンサ:1μF(C3)はタンタル・コンデンサでも良いです。ただしその場合は極性に注意します。 発振周波数を決めるコンデンサ(C1とC2)は周波数安定度の点ではスチロール・コンデンサが最適です。 いくらか温度安定度は劣りますが写真のように安価なマイラーコンデンサでも良いです。マイラでも0.001%のひずみが得られますので心配ありません。銘柄モノのコンデンサに拘るのも結構ですが差額だけの効果がなくては面白くないでしょう。 もちろん、良質なコンデンサを使うに越したことはありませんが。

#重要部品である振幅安定回路のオプト・アイソレータは次項で説明します。

CdS-LEDオプト・アイソレータ
 振幅安定回路には発光側がLEDで受光側がCdSになっているフォト・カプラ(オプト・アイソレータ)を使います。

 写真のものは秋月電子通商で売られているLCR-0203という型番の製品です。中国製で単価120円でした。 共立エレショップでも扱っています。

 この形式のフォト・カプラとしてはモリリカ社のMCD-521がかつての定番部品でした。 しかし既に生産されていません。たとえ売っていたとしてもプレミアム付きで価格高騰しているでしょう。 今でも探している人があるのはアナログ・ミュージック・シンセサイザなど電子楽器の用途があるからです。(そちらもLCR-0203で代替できるはずなのですが・・・)
 ばらつきが大きいなど、いくらか性能は劣るようですが発振回路の振幅制限には安価なLCR-0203で十分です。 比較のためMCD-521と交換してみましたが、所定の発振振幅に調整してしまうと違いは感じられませんでした。

 なお、単体のCdS素子と発光ダイオードの手持ちがあればこの目的に使えるフォト・カプラを手作りできます。 CdSの波長に対する受光感度特性から緑色の発光ダイオードが適当です。ただし赤色の領域にも感度があるので赤色も十分使えます。LCR-0203も赤色LEDを使っているようです。 CdSの受光面とLEDの光軸を突き合わせにし2つの素子の周囲を完全に遮光して完成です。 絶縁フィルムを巻いたのち、アルミフォイルで覆うと見掛けはともかく遮光は良好です。 自作のフォト・カプラも十分使えますが光学的なノイズを拾わぬように良く遮光しておきます。蛍光灯やLED照明器具は強烈な光学的ノイズ源になります。CdSは高感度なので思わぬところから(光の)ノイズを拾います。

                   ☆

 HAM用の2トーン・ジェネレータの場合、1,000Hzと1,575Hzの2波が標準的です。 CRの定数を少し変えるだけで周波数の変更ができます。2つの周波数は近いためほぼ同じような性能が得られます。
 オーディオ用の信号源には100Hz、1,000Hz、10kHzの3波を作ります。それぞれ発振起動特性を見ながら振幅制御回路の積分時定数を最適化する必要があります。1,000Hzと10kHzは同じでも大丈夫ですが100Hzでは時定数を長くしなくてはなりません。
 オーディオ・アンプ等の評価ではその3つの周波数で出力対ひずみ率特性を調べることがよく行なわれています。 ひずみ率計がないとお話にはならないのですが、スポット周波数のひずみ率計なら思ったよりもずっと容易に製作できます。連続周波数可変型を試みると大変です。スポット周波数のものを作ると高性能が得られやすいです。(経験済み・笑)
 まずは1,000Hzで作ってみましょう。100Hzと10kHzは少し難しいので1,000Hzが旨く行ってからが良いでしょう。 高感度な電子電圧計が必須ですから事前に手に入れておきます。電子電圧計の感度によって測定可能な最低ひずみ率が決まります。 かつて垂涎のマトだった超高性能ひずみ率計(国産機)も例のコンデンサ劣化問題で出回っている中古品は殆どが故障品なのだそうです。入手するなら十分気をつけてください。状態いかんですが修理はかなり困難なようです。 ひずみ率計の稼働率は低いので自作で済ませるのが良いでしょう。 それにしても自作オーディオマニアでしたら低ひずみ発振器とひずみ率計のセットは既にマストアイテムでしょう。 さらにオーディオ測定マニアでしたらFFTアナライザもそろそろ必携でしょうか。パソコン・アプリもありますけど道具にハマると趣味もキリがありませんね。(笑)

                 ☆ ☆ ☆

 目標としていた低ひずみ率の発振器が確実に作れるようになりました。 難しいことなしに、安価で入手容易な部品を使い、ごく簡単な調整だけで満足できる性能が得られます。 製作に必要な情報はBlogにすべて公開してあります。あとはあなたの製作意欲しだいと言ったところでしょうか・・・。 従って、このテーマはこれで一旦おしまいにしたいと思っています。 他にも違った形式の低ひずみ発振器があって回路的な興味は尽きないのですがそれはまた気が向いたらにしましょう。 現状で十分な性能だと思います。 なお今回は単独の発振器を扱いました。いずれ機会があれば2トーン・ジェネレータにまとめるところまでやりたいと思っています。 ではまた。 de JA9TTT/1

参考・1:関連のBlog内記事へリンク(低周波の低ひずみ率発振器関連)
(1)RC Phase Shift Oscillator
(2)FLT-U2 Sine Wave Oscillator
(3)Sine wave oscillator : Part 1
(4)Wien Bridge oscilltor

参考・2:実験や研究の参考になる書籍・資料(2018年6月28日現在)
(1)はじめてのトランジスタ回路設計、1999年5月1日初版、黒田徹、CQ出版社、ISBN4-7898-3280-5、¥2,500−、絶版だがCD-ROM版あり(¥1,903-)
(2)OPアンプ活用100の実践ノウハウ、1999年8月1日第2版、松井邦彦、CQ出版社、ISBN4-7898-3281-3、¥2,100-:絶版だがオンデマンド版あり。¥2,916-
(3)OPアンプによる実用回路設計、2007年2月1日第4版、馬場清太郎、CQ出版社、ISBN978-4-7898-3748-4、(¥2,800-):新版として現在も販売中。¥3,024-
(4)発振回路の完全マスター、昭和63年9月20日第1版、稲葉 保、日本放送出版協会、ISBN4-14-072035-2、¥1,900-:絶版(古書も入手困難)
(5)定本・発振回路の設計と応用;1993年12月25日初版、稲葉 保、CQ出版社、ISBNN-7898-3046-2、¥2,718円:絶版だがオンデマンド版あり。(¥3,672-)
*筆者の稲葉 保さんは知人でした。残念ながら2018年2月4日にご逝去されました。謹んでご冥福をお祈り致します。

 絶版がほとんどなので、図書館の利用がお薦めです。 古書が出ることもありますが書籍によってはプレミアムが付いています。 書籍は先人の知恵や経験が凝縮されたものです。持っていて損はありませんが無理をする必要はありません。図書館で借りて必要な部分を参照すれば事足りると思います。節約した分で部品でも買っておおいに実験しましょう。

(おわり)fm

2018年6月14日木曜日

【回路】Frequency Counter Design, Plus One

【回路設計:周波数カウンタの設計・プラスワン】
ラジオ・カウンタ用LSI:M54821P
 カウンタ用LSIにはM54821Pと言う「ラジオ・カウンタ」に特化したチップがあったことを忘れるわけには行きません。

 前回(←リンク)までのカウンタ設計で扱ったLSIはどれも汎用性があって必ずしも周波数カウンタの専用というわけではありませんでした。 単純な個数計とか、計数が必要な用途に様々使えるように考えられていました。 それに対して三菱電機のM54821PはラジオやAM/FMチューナなどの受信周波数をデジタル表示するために考えられた専用のLSIです。 いくつかの専用周辺用ICと組み合わせることでたいへん簡単に「ラジオ・カウンタ」が作れるようになっています。1980年前後に中高生の間で一大ブームになったBCLラジオにも使われていました。

 その代わりごく普通の周波数カウンタを作ると制約があり、他のカウンタ用LSIのような設計の自由度はありません。 具体的には分解能が1kHzもしくは100kHzの周波数カウンタになります。 ごく普通に売られている周波数カウンタのようにHz単位まで読むと言った高分解能な測定器は作れないのです。 AM/SWラジオやFMチューナの受信周波数の表示にはとても便利ですが「周波数カウンタ」の機能はおまけ程度と言ったところでしょうか。

 M54821PはIIL(Integrated injection logic←リンク)という今では珍しい形式の集積回路で作られています。IILはバイポーラ型の集積回路でアナログ回路と共存でき、しかも低消費電力で高集積度が実現できるとして1970年代半ばから1980年代初めころに掛けて使われたLSIの製造技術です。民生品ではカメラやVTR用のLSIなどに使われていましたが、いまではまったく廃れています。現在ならC-MOSのデジアナ混在ICで置き換えるでしょう。(I2L、I2Lとも書かれます。アイスクエアエルと読む)

                   ☆

 M54821Pは専用のLSIだけに設計の自由度がないため他のカウンタ用LSIと一緒に扱うのは不適当でした。 忘れていたわけではないのですが別編で改めて扱いました。 このM54821Pも既に過去のものになっています。 当然ながら生産はされておらず、運が良ければ流通在庫品(お店の在庫品)が手に入るくらいのものです。
  メーカ推奨回路にある周辺用ICの入手が難しいため使うのはちょっと面倒臭いと思っていました。 考えてみたところ、そうした専用ICを使わずに回路が構成できそうなのです。 Blog全体ではM54821Pがなければ意味のないストーリなのですが、水晶発振と分周機能を持ったIC:NJU6311の活用は目新しいかも知れません。 良かったらご覧ください。

 【M54821Pの内部は
 M54821Pの内部は図のようになっています。 5桁の周波数カウンタがこれ一つで作れるようになっています。

 あらかじめカウンタの制御回路は内蔵されており、ゲートの開閉、ラッチ、リセットの各パルスは内部ですべて作られています。 外部から基準となる1.25MHzを与えてやれば済むようにできており、制御回路のことを考える必要はありません。その代わり何の自由度もない訳ですが。

 またM54821Pにはスーパ・ヘテロダイン形式のラジオの局部発振器(局発:ローカル・オシレータ)の周波数をカウントして、そこから実際の受信周波数に変換する機能が内蔵されています。 ごく普通のAMラジオでは局発は受信周波数より455kHz高い周波数を発振しています。 普通の周波数カウンタで局発の周波数を読むと実際の受信周波数よりも455kHz高い周波数を示します。 これでは受信周波数の直読にはなりません。

 M54821Pではその455kHz分を差し引いて表示するためのオフセット機能が内蔵されています。 従って特別なことを考えることなくラジオの受信周波数が直読できる周波数カウンタが作れるのです。 なお、オフセット量はいくつか選べるようになっており、オフセット=ゼロにすることもできます。 ゼロに設定すればごく普通の周波数カウンタと同じになります。

 このように専用LSIだけあってたいへん便利にできていますが融通は利きません。 周波数カウンタとして使う場合も分解能は1kHzのままです。 さらに FMラジオ用のモードでは100kHzの分解能になります。 BCLラジオのようにAM波のラジオ放送が受信対象なら1kHzの分解能でも十分でしょう。 しかしSSBやCWも受信対象とする「通信型受信機」(例えば9R59Dなど)ならもう一桁下の100Hzまで読みたいものです。 残念ながらM54821Pではそれができできません。 そもそもの目的と用途から考えてやむを得ないでしょう。マイコン式の周波数表示アダプタのようなフレキシビリティはないのです。

 【メーカ推奨回路
 左図はメーカ推奨の回路構成です。 M54821Pは単独では1.6MHzくらいまでしかカウントできません。 ECLやTTL構造でできた周辺回路用のICでカウント可能な上限周波数を拡大しています。 例えばAM受信モードでは入力信号を1/32に分周してからM54821Pに加えます。 これで32倍の周波数までカウントできることになり、カウント可能な上限周波数は約50MHzになります。

 水晶発振器(基準発振器)は内蔵していません。外部から周波数基準を与える必要があります。基準の周波数範囲は1.0〜1.5MHzと決められていて、それを大きく外れると動作しません。 基準信号は1.25MHzが推奨値(標準値)ですが1MHzを使うこともできます。周波数精度が悪いとカウント誤差を生じます。これは他の周波数カウンタと同じです。 1.25MHzは10MHzを1/8に分周すれば良く、汎用のICを使って簡単に作れます。

 入力信号の方もHC-MOSやLS-TTLで1/32分周回路を構成すれば良いでしょう。 推奨回路にあるような専用のICがなくてもM54821Pを使うことはできます。

 なお、FMモードの場合はVHF帯と周波数も高くなるためECLプリスケーラを使います。 測定対象の信号を1/80に分周してからM54821Pに加えます。 一例として1/10分周のM54459を使い、さらにHC-MOSなどで1/8すれば良いでしょう。 FMモードの場合は分解能が100kHzになってしまうため、あまり使い道がありません。ここでは扱いませんが使ってみたいならメールでも下さい。資料を送ります。 

 【M54821Pを使ってみる
 さっそく使ってみました。 写真は上限周波数の近くでカウントしている様子です。 IF周波数のオフセットはゼロに設定しています。 測定した周波数をそのまま表示するだけの普通の周波数カウンタの状態です。

 ブレッドボードでの製作のためか50MHzには届きませんでしたが、きちんとした基板で製作すればもう少し上限周波数が伸びるかも知れません。あるいは後ほど説明のあるNJU6311の限界かも知れません。 しかし45MHzなら問題なく安定にカウントできました。 分解能(最小桁)は1kHzです。

 写真の範囲でカウンタ回路全部が含まれています。 このようにわずかなICだけで周波数カウンタ(ラジオ・カウンタ)が製作できました。  メーカー推奨の専用ICは入手の見込みがあまりないため使いません。 現時点で普通に手に入るICや汎用のトランジスタを使って構成しています。 次項で回路図を示しますが特殊な部品はM54821Pだけですから、それさえあれば容易に再現可能ではないでしょうか。
 
 【M54821Pを使ったカウンタ回路
 上記写真のカウンタ回路です。 メインのカウンタ用LSIはM54821Pでこれは言うまでもないでしょう。

 基準発振器には新日本無線:New-JRCの水晶発振用IC:NJU6311を使いました。(回路図右下の部分) このチップは高速C-MOS構造で水晶発振回路と分周比が切り替えできる分周器を内蔵しています。 分周数は1、2、4、8、16、32が選択できます。

 ここでは10.000MHzの水晶発振子を使い1/8分周して1.25MHzを得ています。 発振回路に必要なコンデンサは内蔵されています。水晶発振子を2番と3番ピンの間に接続するだけで簡単に発振してくれました。 ただし数kHzくらい高い周波数で発振しました。 メーカのデータシートに周波数の調整方法は書かれていませんでしたが、いくつか試したところ図のようにすればOKでした。 水晶発振子と並列に最大容量が20〜30pF程度のトリマ・コンデンサを入れます。これで旨く調整できました。 もし発振周波数が低いときは、水晶発振子と直列にトリマ・コンデンサを入れます。 周波数安定度は水晶発振子しだいのようですが数ppm/℃くらいの安定性は十分あるでしょう。

 M54821Pの説明のところで書きましたが、周波数測定対象の入力信号はあらかじめ1/32に分周してから与える必要があります。 そのために使うメーカの推奨チップはM54408Pなのですが入手は難しそうです。(売っているところは見つけたのですが・笑) そこでここでも上記で説明したJRCのNJU6311を使って工夫してみることにしました。 手持ちを活用するという意味でもあります。

 NJU6311は水晶発振と分周が目的のチップなのですが、それを応用する訳です。詳しくは後ほど説明があります。 なお、汎用の周波数カウンタにするにはNJU6311に内蔵のアンプだけではゲインが足りないようです。 そこで前回のBlogで好成績だった広帯域増幅のICを付けました。FETのソース・フォロワも前置して入力インピーダンスを高くしておきました。 今回はNE592の方を使いましたがμA733も同じように使えます。(詳細は前回のBlog参照)

  7セグメントのLED表示器はカソード・コモン型を使います。 ダイナミック・ドライブですからなるべく高輝度の表示器が向いています。 M54821Pの桁ドライブ信号はNPNトランジスタを直接ドライブするようにできています。 μPA81Cのようなドライバ・アレーではなく、ごく単純なNPNトランジスタを使う必要がありました。 ドライバ・アレーを使ってみたら輝度が上がらずICが壊れたかと・・・。 ここはシンプルに単なるNPNトランジスタを使うに限ります。(笑)

参考:カウント上限周波数は1/10になってしまいますが、100Hz分解能にすることもできます。 まず、水晶発振子を8MHzに交換します。 これでM54821Pに与えるクロックは1MHzになります。 次にプリスケーラとして使っているU3:NJU6311の分周数を現状の1/32から1/4に変更します。変更方法はNJU6311の内部回路の説明の項にある分周比の設定表を参照してください。 このようにすればカウント上限周波数は6MHzくらいになりますが、最小桁は100Hzにできます。 必要に応じて試してください。 なお、こうした方法は単なる周波数カウンタには有効ですが、ラジオカウンタの機能は正常に動作しませんので注意してください。 例えばマイナス45.5kHzのオフセット値になってしまうので正しい受信周波数表示ができません。 工夫してもせいぜいここまでです。

 【基準発振器:NJU6311
 NJU6311は10ピンのICです。 MSOP型でピンピッチは0.5mmなので多少ハンダ付けは難しいです。 しかし10ピンと少ないですからそれほど困難ではありませんでした。

 写真は秋月電子通商で購入したMSOP-10ピン用の変換基板に載せたところです。 最初はハンダブリッジしても良いので確実にハンダが回るようにします。 フラックスを塗布してから良質のハンダを流しました。 あとでハンダ吸い取りリボンを使って余分なハンダを除去して完成です。 ルーペなど拡大鏡で十分な目視確認を行なっておきます。

 高周波回路なので、電源:Vdd(Pin10)とGND Vss(Pin5)の間に最短距離でバイパスコンデンサをハンダ付けします。 変換基板を使うと不安定になり易いものですが、電源端子の直近にバイパス・コンデンサを付けておけば安定して動作します。

 水晶発振子:10.000MHzと並列に入ったトリマ・コンデンサ(緑色)で周波数調整します。 発振子の端子部分で測定すると周波数がずれてしまいます。 NJU6311の出力端子:Pin 5に周波数カウンタを接続して合わせ込むのが良いです。 あるいは受信機のアンテナ端子からリード線を発振回路の近くに這わせ、標準電波(10MHzのWWVHやBPMなど)を受信しながらゼロビートになるように周波数を合わせます。

 この回路は10MHzを発振させた状態で3.5mAくらいの消費電流でした。 省エネにできていると思います。

 【NJU6311の内部回路
 NJU6311の内部構造を詳しくみてみましょう。

 もともと発振器として考えられています。 ゲート機能付きのC-MOS NAND回路に抵抗器でバイアスを掛け「アンプ」として動作させています。 この部分に基本波周波数の水晶発振子を接続すれば発振するわけです。コルピッツ型と等価な水晶発振回路です。

 しかし、よく考えてみると発振回路部分は利得を持った「アンプ」そのものです。 しかも50MHzまで発振するそうですから、そのあたりまでゲインはあるはず。 この部分は単なる「アンプ」として使うことも可能なのではないでしょうか。
 またこうした水晶発振回路の出力波形は矩形波ではなく正弦波状なのが普通です。 波形整形も難しく考えなくても良いかも知れません。 さらに1/32に分周してからM54821Pに行くように分周器をセットすれば目的の回路に使えそうです。

 さっそくラフな実験を行なったら上手く行きそうなのでこのアイディアを採用しました。 もともとが発振回路ですから「アンプ」のIn/Outに15pFのコンデンサが入っています。それが周波数特性となって影響しそうですが実際には十分高い周波数まで動作してくれました。   半導体メーカが驚くような使い方ですが「アンプ+プリスケーラ」と等価のICとして旨く使うことができたのです。 なお、もともとが水晶発振回路なのですからNJU6311からPin2とPin3を引き出して工夫すれば水晶発振子のチェッカーにもなりえます。

 あまりポピュラーなICではありませんがNJU6311は現行のICです。 国内通販のmarutsuを経由して国際部品商社のDigi-Keyにて単価103円で手に入ります。(但し最小で5個単位の購入になる。価格は2019年7月現在のもの) 300円前後の送料で個人で少量購入できます。 意外に便利なICなのでパーツボックスに数個入れておくのも良さそうです。 10pinのMSOPパッケージ用変換基板も手に入れておくのをおすすめします。

カウンタ用プリアンプ
 J-FETによるソース・フォロワと広帯域増幅用ICの組み合わせはなかなか良好だったのでこちらでも採用してみました。 NJU6311との結合はC結合にしました。 もともと1kHz分解のですから低周波まで測定できる必要はありません。 C結合でも十分だと思ったわけです。

 なお、本来とは違う使い方をしていますので、NJU6311を壊さぬような配慮から、ダイオードを使ったクランプを入れておきました。 広帯域アンプも電源電圧=5Vで使っていますから、支障はないはずですが取り敢えず入れてあります。 様子を見て外そうと思っています。

 こうした状態で45MHz以上まで動作しましたのでHF帯が対象のラジオ・カウンタとしては十分な性能ではないでしょうか。 9R59Dのような高1中2型受信機に付加すれば全受信周波数で1kHz直読になります。 HAM局には少々不満でも、BCLの愛好家には最適な付加装置になるでしょう。 涼しそうなグリーンやブルーの表示器で作ってみたくなりました。

                   ☆

 周波数カウンタの別編としてラジオカウンタ専用のLSIを扱ってみました。 流石にその目的にできているだけあって少ない部品で十分な機能を持った付加装置が作れます。 類似の機能を持った中華製品も登場しています。 M54821Pを新たに購入する意味はないと思いますが、もし持っているなら活用してみては如何でしょうか。 中華モノを買うよりも愛着が持てるだろうと思います。 1kHz分解能なので通信機用としては用途が限られますが、ディップ・メータの発振周波数表示器のような目的なら十分な分解能でしょう。比較的ラフで良い用途もあると思いますので活用を考えてみたいと思います。

 NJU6311は数年前に面白いチップができたので・・とのことで評価用サンプルを頂いたものです。 残念ながら「水晶発振器+分周器」のチップはあまり使い道がありませんでした。ずっと頂いたままになっていました。 今回、M54821Pの活用にあたり検討してみたところベストマッチだとわかりました。 これも先日行なった部品在庫調査が幸いしています。そうでなければ気付かなかったでしょう。 1.25MHzを作るのに水晶発振に74HCU04、分周器に74HC74を使うと言ったオーソドックスな方法になるところでした。

 また、HF帯の入力信号を1/32に分周する回路もちょっと悩みます。 プリスケーラ用のECL-ICが使えれば簡単です。しかしECLのプリスケーラには下限周波数があってそれ以下では誤動作します。だいたい10MHzくらいが下限でしょうか。1MHzあたりまで何とか使えるプリスケーラもありますがそれ以下はまずだめです。 結局のところ真面目にアンプして波形整形してからHC-MOSの2進カウンタで1/32にすると言った回路構成になります。 手持ちに専用の周辺ICがないのでやむを得ませんが、少ない部品でカウンタが作れるというメリットはだんだん薄れてしまいそうでした。
 実験したら発振回路+分周器のNJU6311がHF帯向きのプリスケーラとして十分機能することがわかり一気に簡潔になりました。 頂いたままパーツボックスの肥やしになっていたチップが発掘でき、しかもFBに活用できて良かったです。

 汎用の周波数カウンタは目的とせず「ラジオ・カウンタ」に徹するなら、2SK192AとNE592のアンプ部分は必要ないでしょう。  NJU6311に直結できますから回路はさらに簡潔になります。 ただし過大な入力で壊さぬよう局発との結合容量(C9:1000pF)は必要最小限の容量値に変更し、ダイオード:D3とD4も入れたままが良いです。

 4回にわたりカウンタ用LSIを試してみました。 一度は使ってみたいと思っていたICもあって、その目的も達成できました。 それぞれのLSIについて実際の使い方が確認できました。 これで心置きなく「さようなら」にしてカウンタ用LSIのことはきれいサッパリ忘れることにしましょう。  ではまた。 de JA9TTT/1

(おわり) nm

2018年5月29日火曜日

【回路】Frequency Counter Design, Part 3

【回路設計:周波数カウンタの設計・Part 3】
 【入力アンプと波形整形
 カウンタ用LSIを使ってみる第3回です。
前回(←リンク)は6種類のカウンタ用LSIを周波数カウンタとして使ってみました。 使い方はわかったのですが、実用の周波数カウンタにするには欠けているものがあります。 Part 3ではそれを補って完結させます。

 カウンタ用LSIはC-MOSのデジタルICです。従って扱える信号の波形は決まっています。 ここでは5V電源で使っていますから、カウンタ用LSIにはLowレベルが0V(=GND)で、Highレベルは約5Vの矩形波(くけいは)で与えます。 しかし、測定対象の信号は振幅はまちまちですし、波形も矩形であることはむしろ稀です。 周波数カウンタの入力アンプ部分は小さすぎる信号を増幅し入力信号の波形を矩形波に整形する役割を持っています。 測定範囲となる周波数帯域で十分なゲインを持ったアンプが必要です。またきちんと矩形波に波形整形できないとミスカウントが起こり測定誤差の原因になります。

 前回のBlog、Part 2(←リンク)で扱ったカウンタ用LSIのカウント上限周波数は高いもの(TC5032P)でも17MHzくらいでした。 多くは5MHzにさえ届きません。これではアマチュア無線局のニーズばかりでなく高周波の実験・研究には不十分です。 上限周波数はプリスケーラの付加で伸ばすこともできます。しかし測定分解能や使い勝手を考えるとカウンタ本体だけでなるべく高い周波数まで測定できるようにしておくべきです。 したがってカウンタ用LSIだけで周波数カウンタを構成したのではだめです。 カウンタ用LSIの前に高い周波数までカウントできる補助のカウンタ回路を設けて目的を達成します。 回路は難しくなく、ここでは1段と2段の例を紹介します。

                   ☆

 単にカウンタ用LSIを使ってみたいという興味からスタートしました。 それは済んだのですが、せっかくなので実用になる周波数カウンタにまとめます。 残念ながら主役のカウンタ用LSIはどれも生産中止(ディスコン)です。 新たに部品を集めて製作するには向きません。しかし手持ちがあれば活かせるでしょう。 またこのPart 3で扱うプリアンプ部分はマイコン式の周波数カウンタでも必要になるものです。 マイコンの採用でカウント部分は作り易くなっても、プリアンプと波形整形部が良くないと使いやすい周波数カウンタにはなりません。ここは今でも研究テーマとして面白いところです。

 以下、この特集の最終回になります。 ここだけを単独でご覧いただいても用をなさないでしょう。 もし初見で興味を覚えたらPart 1(←リンク)に戻ってご覧ください。

 参考として、末尾にPart 1で扱った周波数カウンタ用の制御回路の最新改良版・・・現時点ではこちらを推奨・・・を紹介しています。 それでこのBlogテーマ:「カウンタ用LSIを使ってみる」はオシマイにしたいと思います。(質問・意見などあれば続きを出すかも知れません。→つづきができました)

入力アンプ・波形整形ブロック
 入力アンプと波形整形回路です。 測定対象の周波数範囲で十分なゲイン(増幅度)を持ち、小さな信号でも周波数測定できるようにします。

 しかし、誤動作との兼ね合いからむやみに増幅するわけにも行きません。 ゲインは数10倍〜100倍くらいが適当なようです。 この程度のゲインは1MHz以下の低周波なら簡単です。しかし数10MHzまで平坦に増幅するのはけっこう難しいものです。 はじめはfTの高い個別トランジスタを使った広帯域アンプを作ってみました。 その結果、まずまず使えそうなものができましたが周波数特性がビジュアルにわかる測定器・・・例えばTG付きスペアナやネットアナ・・・がないと調整は難しそうです。 部品のレイアウトや構造も微妙に効いてくるので再現性の点で今ひとつだと感じました。

 そこで広帯域増幅用のICを使ってみました。 回路図のμA733はたいへんポピュラーな広帯域増幅用ICです。 周波数特性はフラットとは言えませんが、ほぼ無調整で周波数カウンタ向きの広帯域アンプが作れます。 特別な測定器ナシでも大丈夫ですからこうしたICを使うのがアマチュア向きです。 それにしてもμA733はあまりにも古めかしいので初めはもっと新しいアンプを試していました。 ところが比較的新しいICの方がむしろ入手難とわかり、古臭いのは承知の上でμA733を使うことにしました。 μA733を+5V電源だけで使うのはメーカーの推奨範囲外(少し低すぎる)ですが周波数カウンタのプリアンプ用には十分使えます。性能は多少悪くなりますが低い分には壊れるようなこともありません。

 μA733は1970年代のデバイスです。アナログICの黎明期の製品です。 セカンドソースもたくさん存在しました。従って古い在庫もたくさん残っているでしょう。 しかも今でも生産しているメーカーがあってDig-Keyのような部品通販で簡単に手に入るのです。単価は200〜300円くらいです。入手困難なレトロなICではありません。

 試してみて採用候補だったMMICよりもμA733の方が入力インピーダンスが高いので使い易いです。フル差動増幅回路なのも良いところです。 調べたらもう少し新しい類似チップにNE592があって、これも733と同じように使えます。(後述)

 低周波帯から増幅できるようアンプ部は途中が直結回路になっています。その関係で波形整形との間にレベルシフトが必要でした。 レベルシフトにはLEDを使っており、ここは順方向電圧:Vfの関係から普通輝度の赤色か緑色のLEDにします。 (青色や白色はVfが大き過ぎてうまくありません)なお、LEDはあまり光りません。

 この回路例はどちらかと言えば高周波に向いています。 低周波の測定では信号レベルによって誤動作することがあります。 低周波〜1MHzが主要な用途ならそれに特化したアンプを作ると安定に測定できます。目的によりアンプ部分を最適化すると良いです。

 波形整形には初めからシュミット・トリガ形式になっているIC、例えば74HC14などを使う方法もあります。 ここではゲート回路に使って余っている74HC00を使って作りました。 回路定数の加減は多少クリチカルでしたが良いところを見つけるとうまく波形整形してくれます。 ノイズで誤動作せず感度も適当な位置にVR101を調整します。 製作時に一度調整すれば十分で頻繁に行なう必要はありません。

アンプ部拡大
 周波数カウンタは高い入力インピーダンスが好まれるようです。 個人的には数kΩでも良いと思うのですが、FETを使ったバッファアンプを前置しておきました。 FETは2SK19(GR)あるいは2SK192A(GR)を使います。Yランクでも良いです。 ソース・フォロワですから2SK241、2SK439、2SK544などの内部カスコード型MOS-FETは向いていません。 ごく一般的な高周波用J-FETが良くて、例えば秋月で安価に(@20円)販売されているBF256Bなども適当です。

 広帯域アンプのμA733は手持ちから14ピンのDIPタイプを使いました。 10ピンのCANタイプでもOKですがピン番号が異なるのでデータシートを参照します。 また8ピンの面実装型もあってこちらもピン接続に注意が必要です。 いずれを使っても十分な性能が得られますが基板化して面実装部品で作るとより高性能化できるでしょう。

  写真では入っていませんが回路図のようにFETのゲート部分にはダイオード(2個)を入れて過大入力から保護します。 それでもパワーが数100mW以上の送信機の出力をいきなり繋げばアンプが焼けてしまいます。 必ず絞ってから測定しましょう。

 さるお方(OMさん?)から周波数カウンタの修理を頼まれたことがあります。 送信機とカウンタを同軸ケーブルで直結して周波数測定したのだそうです。その送信機は100Wだったらしく、みごとにカウンタのアンプ部が燃えてました。これ笑い話ではなくホントにあったことです。 10Wや100Wのパワーともなればダイオードで保護する程度では守りきれません。

 送信周波数を測定したいのでしたら、同軸ケーブルの先に50mm径くらいのワンターン・ループ式ピックアップ・コイルを付けたもの作っておくと便利です。 ピップアップ・コイルを無線機やアンテナの近くに持って行けば安全に周波数測定できます。

広帯域アンプ用IC
 μA733はアナログICの教科書にも載るほどポピュラーな広帯域増幅用ICです。 ただしHAMの自作で使う機会はほとんどありません。 幾つか持ってはいたものの長いことパーツボックスに眠っていました。 年月の経過で足ピンに少々サビが出ていましたが支障なく使えました。(笑)

 このICのオリジナルはフェアチャイルド社のμA733Cです。 良い設計だったのでしょう。セカンドソースがたくさん登場して、例えばナショセミのLM733Cなども同じように使えます。 セカンドソースは各社とも型番の一部が「733」になっています。

 733系の広帯域アンプは現在でも生産されています。さすがに面実装型が主流でしょう。 もちろん写真のような14pin DIPや10pin CANタイプと同様に使えます。 ただしピン配置はパッケージによって違います。 データシートはネットで探せます。

NE592でも
 μA733系よりもう少し新しい広帯域増幅用ICとして旧・シグネティックス社のNE592があります。 シグネティックス社はなくなってしまいましたが、ONセミコンダクター社で継続生産されているようです。 他のメーカーでもセカンドソースを作っていたと思います。 NE592はいまでもMouserのような部品通販で購入できます。

 上記写真のものは面実装型8pinですがデータシートによれば14pin DIP型もあります。  内部等価回路を見るとゲイン設定の部分を除けばμA733とほとんど同じですから互換品と考えて良いでしょう。ゲインは外付け抵抗で変えられるので支障はないのです。

 確か頂き物ですが、SOPパッケージ 8pinのものがあったので変換基板に載せて比較してみました。(左写真) ピンピッチは1.27mmですからハンダ付けは容易でした。  広帯域増幅のICは自己発振しやすいものです。 写真のように変換基板上でVccとVeeピンの間にバイパス・コンデンサを付けておきます。これで安定に増幅してくれるようになります。
  8pinのものはゲイン調整端子のG2AとBが引き出されていませんが、G1AとBを使えば同じようにできます。 その違いでゲイン調整抵抗:R103=47Ωはいくらか加減した方が良いかもしれません。47Ωではゲイン過剰気味なので100Ωくらいが適当でしょう。 比較して見ると調整の感触もμA733と違わず同じように扱えました。 周波数特性も同じようでした。

 733型よりも新しいチップなのですが秋葉原では入手しにくいかもしれません。 頂いたものがあるのでお裾分けします。ご希望があればご連絡でもどうぞ。

                  ☆   ☆

高速カウンタブロック
 カウント可能な上限周波数をアップするには、カウンタ用LSIの前に高速なカウンタICを追加します。 ゲートを通った後に追加すれば、測定分解能を犠牲にすることなく上限周波数をアップできます。

 回路図のFig.1は1段追加するものです。 上限周波数が高いTC5032PやμPD851Cに良いでしょう。 上手に作れば50MHzあたりまで楽々測定できるようになります。 この部分には10進カウンタの74HC390もしくは74AC390を使います。 74AC390の方が上限周波数を伸ばせるのですが、低い周波数で誤動作の可能性もあるので74HC390の方が扱い易いようでした。

 TC5001Pほか、上限周波数が低いカウンタ用LSIにはFig.2のような2段構成のカウンタを追加すると効果的です。 これでTC5032Pをしのぐカウント上限周波数が得られます。 同時に、表示桁数も2桁増えるので便利になります。

 74HC390や74AC390はまだ普通に手に入ります。 ほかにLS-TTLの74LS390も使えます。 ただし出力信号の論理レベルが不足するためプルアップ抵抗を付加する必要があります。 具体的には1段のものではピン7番とVdd=+5Vの間に4.7kΩを、2段のものでは9番ピンとVdd=+5Vの間に4.7kΩを入れます。 このようにすればLS-TTLとC-MOSが混在できます。(LS390を使うのならデコーダ・ドライバの4511Bとの間でもプルアップ抵抗が有ったほうが良く、様子を見て追加します)

 デコードと表示器ドライバには4511Bを使います。 4511Bは表示器ドライバの機能だけでなく、ラッチも内蔵しているので便利です。 昔のカウンタ回路では1桁あたり、SN7490→SN7475→SN7447と言う3つのICが必要でした。 4511Bは7475+7447と同等の機能を内蔵するため一つ少なく済みます。 4511BとLED表示器の間の抵抗器は必ず調整が必要です。 これはダイナミックドライブで点灯する上位の桁とでは輝度に差が出るからです。 使用するLEDの種類や色によっても最適な抵抗値は異なるため実際に輝度を見て合わせます。 少し面倒ですが集合抵抗器を使いソケットに載せて交換できるようにしておくと良いです。220Ω〜1kΩの範囲で数種類あればちょうど良いところが見つかります。 なお、LED表示器は一桁分が独立したカソード・コモン型を使います。

 補助カウンタはメインカウンタの回路図にあるAーA'の部分を切り離して間に入るように追加します。 この部分は表示全体の最下位の桁、もしくは下2桁になります。 カウンタ用LSIで表示する方が上位の桁です。 間違えないようにLED表示器を並べてください。

 言うまでもないと思いますが、こうしたカウンタ回路を必要な段数だけ重ねれば、カウンタ用LSIがなくても周波数カウンタが作れます。部品数は増えますが専用のICは要りません。

高速カウンタの一例
 74HC390は手持ちが切れていたので写真に撮れませんでした。 写真下の74AC390の方が高い周波数まで動作します。最高カウント周波数を伸ばすには最適です。

 ただし加える波形が綺麗な矩形波でないと誤動作します。 74HC390の方が使い易いのでお勧めです。  そのほか、中央の74LS390も同じように使えますが、C-MOSに信号を渡すには既に書いたようにプルアップ抵抗が必要です。 それさえ注意すれば同じように使えるのでLS-TTLも十分に活用できます。 HC390やAC390が入手しにくいなら74LS390が代替候補になります。

 最上段はLED表示器用のデコーダ・ドライバ:4511Bです。 なお、前回のBlogで簡単に紹介したTC5022PあるいはTC5002Pにはラッチの機能がないのでご注意を。 代用できません。 74HC390との間に74HC75などを使ったラッチ回路を挟む必要があります。 従ってあまりお勧めしません。

                 ☆  ☆  ☆

最新改良版・カウンタ制御回路
 制御回路を小改良したので紹介しておきます。 カウンタ用LSIのテストでは、周波数カウンタの機能を司る「制御回路」としてBlogのPart 1(←リンク)で製作したものを使いました。 機能だけでなく、性能的にも支障はないのですが、1秒ゲートを作る部分が少し気になっていたのです。

 実験していて74HC161でプログラマブル・カウンタを試したことを思い出しました。 完全同期式で追加するゲートICも少なかったことを思い出したのです。  そこで、実験ノートを参照したところ任意の進数のカウンタが簡単に作れることがわかりました。もちろん11進や101進も作れます。 さっそく101進で試したところたいへん旨く動作しました。 しかもクロックパルス(10mS)に同期して動作しますから、Part 1の回路のように74HC161のリセット・パルスがゲートタイムに食い込むこともありません。

 Part 1で紹介の回路でも実用上の支障はありませんが、原理的にこちらの方がいくらか高性能です。これから作るならこちらをお勧めしたいと思います。 追加の部品は74HC161とデジタル・トランジスタ:DTC114Eが各一つです。74HC10は不要になりました。

完全同期型101進カウンタ部
 同期型の101進カウンタです。 10mSのパルスを101カウントします。 そのうち100カウント分を1秒ゲートに割り当てます。 残った1の分、10mSをラッチとリセットに割り当てることになります。

 Part 1(←リンク)の回路では1秒ゲートのサンプリング周期は1.1秒でしたがこの回路では1.01秒に短縮されました。 まあ、0.09秒の短縮ではほとんど感じませんが・・・。

 簡単な説明です。 74HC161は同期式のプリセット付き16進カウンタで、2段カスケードにすると256進カウンタになります。 カウントが255を超えるとオーバーフロしてキャリーが発生します。 そのキャリーが発生したタイミングで256-101=155をプリセット・・・これはクロックに同期してロードされる・・・してやります。プリセット値はもちろん純2進で与えます。(155=&B1001 1011)
 カウントは155から始まり、パルスが100個入るとキャリーが発生し、101個目でプリセット値がロードされます。この動作を繰り返して101進カウンタとして動作します。 そのキャリーの発生からロードまでのパルス幅はちょうど1クロック分の10mSです。それを反転したものが1秒ゲートになります。
   プリセット値さえ変えてやれば何進にもできます。 余談ではありますがマイコンで欲しい数の差数を計算し出力ポート経由でプリセットすればプログラマブル・カウンタとして使うことができます。しばらく前にそのような検討をしたことがあったのでした。

 原理的には74HC161をもう一つ足して、1001進カウント式にすることもできます。ただし伴ってラッチやリセットのパルスも狭くする必要があります。 そうなると回路変更が大幅になるうえ実用上のメリットは希薄ですから101進でやめておきました。(笑)

 この写真では右に74HC04が写っています。 実験途中のものです。 インバータひとつ追加のためにICを一個足すのも勿体無いので上記回路図のようにやりくりして済ませました。 ゲート開閉モニタのLEDは必ずしも必要としません。デジタル・トランジスタ:Q1 (=DTC114E)でLEDを点灯している部分はお好みで付けて下さい。

 74HC161のリセット動作がどうなっているのか、高速オシロでパルス幅を見るまでもなく、こちらの回路の方が確実です。 精神衛生(?)の上からもお勧めできると思います。もう「リセットパルスの幅が20nSで・・」と深夜にうなされる心配はありません。(爆)

10MHzで検証
 実際のゲート開閉時間を見るのが一番なのですが、ちょっと面倒なのでカウンタ動作の比較で検証しておきました。

 カウンタ回路の表示が10.000000MHzになるときの入力周波数を読んでいます。 4.4Hzほど高く必要でした。 これは、時間基準にしているSPG8651Bの周波数誤差がそのままそっくり現れています。 Part 1の11進式だったものと比較して、10MHzでは1〜2Hzの違いが現れる可能性があります。 SPG8661Bの周波数変動もあるので厳密な比較は難しいのですが、改造直前は10.0000062あたりだったので10.0000044なら概ね計算の範囲でしょう。もともと実用上支障のない精度と言えますが気持ち程度に改善されています。これ以上を求めるなら基準周波数の発生にTCXOやOCXOを採用すべきでしょうね。基準周波数の精度を上げただけ測定精度が向上します。

 この周波数カウンタ用の「制御回路」はカウンタ用LSI専用という訳ではありません。 LS-TTLやHC-MOSを並べて構成したような周波数カウンタにも使えるのはもちろんです。

                   ☆

 きちんとした測定器にまとめるには電源部を製作する必要があります。 すべての回路が+5Vだけで動作します。 電流容量は300mAもあれば十分すぎるくらいです。 AC電源を内蔵するなら電源部は8V0.5A程度の電源トランスと+5Vの3端子レギュレータで簡単に作れます。 ACアダプタを利用する方法もあります。出力電圧が9VくらいのACアダプタを使い+5Vのレギュレータ部分以降を作ります。 周波数カウンタの自作で一番の難関は収納ケースの板金加工かもしれませんね。

 カウンタ用LSIを試用すると言う目的から周波数カウンタの設計に深く踏み込んでしまいました。 過去に何台か作っていますので目新しくもないのですが、制御回路や入力プリアンプの部分は面白かったです。 各種カウンタ用LSIもこの機会に使い方をまとめておくことができました。 単独の測定器として「周波数カウンタ」を作る機会はもうないと思いますが、何かの発振器とか周波数表示を伴う機器の一部として製作する可能性が無いとも言えません。 そんな時にまとめた結果が役立ってくれるでしょう。

 何でも安価な既製品が溢れている昨今です。 買ってしまえばお手軽かもしれませんが、原理もわからず使うのも何となく癪です。 手間も費用もかかりますが自作が可能なものなら作ってみるのも悪くないと思っています。 「作る」ことから新たな発見もあるでしょう。 実際、何か作ることで得られるものは多いものです。 これはお金では買えません。 ではまた。 de JA9TTT/1

このBlogのPart 1はこちら(←リンク)
さらに、Part 2はこちら(←リンク) 
そして続きのPlus Oneはこちら(←リンク) ラジオカウンタ用LSIを扱っています。

(おわり)fm

2018年5月15日火曜日

【回路】Frequency Counter Design, Part 2

回路設計:周波数カウンタの設計・Part 2
カウンタ用LSIのテスト
 カウンタ用のLSIを使ってみる第2回です。
前回(←リンク)は周波数カウンタの心臓部とも言える制御回路の設計と試作を行ないました。 周波数カウンタ用の標準的な制御回路として考えておいたのでどのカウンタ用LSIでもうまく動作するはずです。 もし何らかの問題が見つかればその都度対策しましょう。

 では、さっそく本命の「カウンタ用LSI」を実際に動作させてみたいと思います。

☆以下のような順で全部で6種類についてテストしました。

(1)TC5032P(東芝)・・・これで6桁の周波数カウンタが作れるので便利です。
(2)TC5001P(東芝)・・・東芝の5000シリーズで最初に登場した4桁のカウンタ。
(3)MSM5502(沖)・・・16ピンの小型パッケージで4桁のカウンタを実現。
(4)TC5037P(東芝)・・・MSM5502と類似ですがオーバーフローがないのが欠点。
(5)LC7961(三洋)・・・デコーダとLEDドライバを内蔵している4桁のカウンタ。
(6)μPD851C(日電)・・・4・1/2桁の多目的指向のカウンタIC。

・・・・以上、前回のBlog冒頭に登場したカウンタ用LSIです。それぞれ具体的な回路として製作し、使用する上での注意や使ってみた感想など交えてまとめました。

                   ☆

 すでに専用ICが周波数カウンタの製作にもてはやされる時代は終わっています。 ですから今さらの感もあるのですが、手持ちのICを試してみたいという興味から始めました。 ただし本格的に製作する意図はないのですべてブレッドボードで作ります。 制御回路やLED表示回路の部分は共通して使います。従って6種類とは言っても手早く試すことができるでしょう。

 こうしたICの時代も過ぎ去ったからでしょうか? ネットで検索しても設計に使える情報が見つけられないICもありました。 いずれICチップは持っていても情報がないので使えなくなる時がやって来るかも知れません。 手持ちの資料と合わせて新たに得た情報を繋ぎ合わせることで何とか実用回路にまとめることができました。この機会に全てのLSIについて具体的な回路を示して使い方を紹介しておくことにしました。大げさかも知れませんがある種の「技術遺産」になるかも知れません。ここに公開しておけばいずれarchive.org(リンク)が拾いにくるでしょう。

重要各カウンタ用LSIの評価はすべて同じ条件で行ないました。 制御回路は前回のBlogで紹介の回路を共通して使います。 また、電源電圧はすべて:Vdd=5.0Vとしています。 電源電圧アップでカウント上限周波数の多少のアップも見込めますが行ないませんでした。 現在ではより高い周波数まで確実に動作する高速C-MOS ICが容易に入手できます。  電源電圧アップを試すよりも、もともと上限周波数の高い高速カウンタを付加する方法が良いでしょう。(高速カウンタ:74HC390や74AC390など多数あり)

以下、かなり長いので適当に「つまみ食い」されてください。


その1:TC5032Pを使う
 TC5032P(東芝製)は28ピンの大きめのICです。 このICで6桁の周波数カウンタが作れます。 写真は同じ東芝のデコーダ・ドライバ用IC:TC5022BPを使ってLEDを点灯させている様子です。 TC5022BPは6と7と9の字体が写真のようになっています。それがわかるような周波数を与えて表示させています。(679.000kHzという訳です)

 後ほどTC5022BPではなく、より一般的な(入手し易い)デコーダ・ドライバである4511Bを使った例を示します。 比較して見るとこうした字体の方が日本人には馴染むように感じます。 もしTC5022BPの手持ちがあれば使ってみたら良いでしょう。 ただし、後ほど書いてあるようにリーディング・ゼロサプレス機能(不要な上位のゼロを表示しない機能。以下ゼロサプレスと略)が必要ならデコーダ・ドライバは4511Bに限ります。 TC5022BPではゼロサプレスがうまく機能しないのです。(TC5022Pと4511Bは同じピン数ですが差し替え可能な訳ではありません。配線の変更を要します)

TC5032Pを使ったカウンタ回路
 TC5032Pをメインにして、デコーダ・ドライバのICとしてTC4511Bを使った周波数カウンタの回路例です。 TC5032Pの桁ドライブ信号は負論理で出ています。どちらかと言えばアノード・コモンのLED表示器向きにできています。 しかし、ここではカソード・コモンのLED表示器をすべてのカウンタ用LSIで共通に使います。 従ってそれに合わせて桁ドライブ信号を反転する必要があります。信号の反転に4049Bを使っています。

 ダイナミック・ドライブ方式で数字表示器を駆動している関係で「小数点」の点灯は意外に厄介です。 表示器の小数点の引き出しピンを単純にVccなどへ接続してしまうと全部の小数点が点灯してしまいます。 正しくは図のようにします。 まず、点灯させたい小数点がある桁の桁ドライブ信号でトランジスタ:Q1をドライブします。 そのトランジスタで小数点のLEDを点灯すれば旨く行きます。ダイナミック・ドライブの配線になっていても大丈夫です。 小数点の輝度は直列抵抗:R1で加減できます。この例では他のセグメントに比べて暗かったのでR1=47Ωにして電流を増やしました。
 以下参考ですが、アノード・コモンの表示器を使う設計も可能です。その時はデコーダ・ドライバにLS-TTL ICのSN74LS47を使います。 さらに桁ドライバもμPA81Cではなくて、PNPトランジスタをハイサイド側(Vcc +5V側)に入れる形式にします。 なお、74LS47を使った場合もゼロサプレスは旨く動作しないのでご注意を。←訂正:ゼロサプレスできます。
TC5032Pはフル6桁表示です。 またカウント上限周波数も実測で17MHz以上と高いため、他のカウンタ用LSIよりもだいぶ高性能です。 したがって高速C-MOSで構成した前置のカウンタを1段設ければ上限周波数が100MHzを超えるような周波数カウンタも作れます。 実際に7桁の周波数カウンタとして自作したことがあり、これは十分実用になっています。  上限周波数を伸ばすために「プリスケーラ」を使うことも可能なのですが信号を分周した分だけ測定分解能も悪くなります。

端子接続について:
 各接続端子の番号は前回のBlog(←リンク)で製作した「制御回路」と合わせてあります。 回路のJ1とJ6は電源端子です。J1に+5V、J6はGND側(電源のマイナス側)です。 P2、P3、P4、P7、P9は制御回路のJ2、J3、J4、J7、J9へ同じ番号どうしを接続します。 J8とJ10はプリアンプ回路と波形整形回路・・・次回のBlogで予定・・・のP8とP10へ接続します。 ゲート回路部分にあるA-A'という部分は、補助の高速カウンタを追加するための箇所です。補助の高速カウンタについても次回のBlogで予定します。

部品について:
U1:メインになるカウンタ用LSIです。TC5032Pは言うまでもないので説明は省きます。
U2:μPA81CはNPNのダーリントン・トランジスタが7回路分入ったようなICです。  NPN型のデジタル・トランジスタ(一例←リンク)を必要な数(この回路では6個)使って代替できます。入手できないときは代替すればOKです。
U3:TC4511B(東芝)は4500シリーズの標準C-MOS ICです。オリジナルはモトローラのMC14511Bで、他社のセカンドソースでも同じように使えます。ほかに74HC4511も使えます。
U4:4049Bは6回路入りのインバータです。4000シリーズC-MOS ICの標準的なものです。 4069Bも同じように使えますがピン接続が違うので注意します。
U5:74HC00はHC-MOSのNANDゲートICです。各社から販売されています。ここは高速信号を扱うので4000シリーズのNANDゲート:4011Bは不適当です。必ず高速C-MOSの74HC00を使います。回路図には余ったゲートの処理が書かれていませんが、使用していない入力ピンはGNDするなりVddにつなぐなり適切な処理を行なっておきます。
DS1〜DS6:LED表示器は7セグメントでカソード・コモン型を使います。ここでは赤の表示器(参考←リンク)を使いました。 点灯方式はダイナミックドライブ式なので、できるだけ高輝度のものを選びます。R9〜R15(100Ω)を変えることで明るさを加減できますが100Ω以下にするのはあまりお薦めしません。緑色や青色のLED表示器も使えます。

デコーダは4511Bで
 上に書いたように、ゼロサプレス機能を活かすためには、デコーダ・ドライバのICに4511Bを使う必要があります。

 4511Bを使うと、6と7と9の字体は写真のようになります。 慣れの問題なので使っているうちに違和感もなくなりますがこのような字体です。

  7セグメント表示の字体について気になったので身の回りのデジタル表示の機器を観察したところ、7はこの写真のような文字が大半のようです。6と9はTC5022Pの字体が一般的になっているようでした。

 ところで、なぜTC5022BPではうまくゼロサプレスができないかというと、TC5032Pのゼロサプレス機能は 4511Bの機能を利用しているからです。 4511BへBCD入力として、9以上の値を加えると表示はすべて消灯になります。 しかしTC5022BPはBCD入力が10のとき0、11のとき1・・・15の時には5の文字を表示するのです。9以上の値を加えてもLEDは消灯しません。
 調べたところTC5032Pは不要なゼロの桁には「15」(16進で言えば "F")を出力しているようです。 したがってTC5022BPを使うとゼロサプレスではなく不要なゼロの代わりとして「5」が表示されてしまうのです。知らなかったのでこれにはビックリしました! TC5022BPの姉妹品にTC5002BPというデコーダ・ドライバがあります。こちらは4511Bと同じ字体で表示しますが表示機能はTC5022BPと同じなのでゼロサプレスは正常に働きません。 知らずに使うと悩むことになります。 TC5032PとおなじTC5000シリーズのICなので良さそうだと思ったのですが・・・。

ゼロサプレス
 ゼロサプレス機能はTC5032Pの22番ピン(BC端子)をどのように接続するかによって変化します。 単純にLow(=GND)に接続すると全ての桁がゼロサプレスされますから、無入力でカウント値がゼロだと全桁が消灯してしまいます。

 写真では 22番ピン(BC端子)を桁ドライブ端子の/T6(6番ピン)に接続しています。 このようにすると最下位桁はゼロサプレスされずにゼロの数字が残ります。 完全に消灯してしまうと故障と間違えるので、このようにするのが良いでしょう。 なお、22番ピン(BC端子)を/T5(5番ピン)に接続するとこんどは下2桁のゼロがサプレスされなくなります。 また、ゼロサプレスが不要な時は 22番ピン(BC端子)をHigh(=Vdd)に接続します。

 ゼロサプレス機能は必須ではありませんが、表示が減る分だけ消費電流も減るので電池動作の場合には効果的です。 好みの問題かも知れませんが、周波数カウンタの用途ではゼロサプレスはナシでも良いと思っています。



その2:TC5001Pを使う
 TC5001はカウンタ用のLSIとして古くからありました。初期のころは金メッキの足で白いセラミック・パッケージに入っていたと思います。かなり高価だった記憶があります。 24ピンの大きめのパッケージです。 古くからあっただけに応用例もよく見かけます。 私も過去に使ったことがあります。

 4桁のカウンタが作れます。 桁ドライブ信号はHighアクティブです。したがってTC5032Pのように信号を反転する必要はありません。具体的には4049Bの部分は不要になります。 そのほかの機能はTC5032Pとよく似ていますが、ゼロサプレスの動作は異なるようです。 単にゼロサプレスするか、しないかだけの選択しかできないようでした。

 ここでもデコーダ・ドライバは4511Bを使っています。

TC5001Pを使ったカウンタ回路
 TC5001Pを使った周波数カウンタの回路です。 表示は4桁です。

 ゲートタイムが1秒のときは9.999kHzを超えるとオーバーフローします。 ゲートタイムが1mSのときは表示的には9.999MHzまで可能なのですが、実際にカウント可能な上限周波数は約4.2MHzです。 これではHAM用には上限周波数が低すぎます。 TC5001Pの前に高速カウンタを1〜2段付加する必要があるでしょう。 1段で30MHz程度、2段付ければで上限周波数が100MHzを超えるような周波数カウンタも作れます。 さらにプリスケーラも併用すればGHz帯まで幾らでもお好みで。(笑)

回路図の各端子の接続、および使用部品に関してはTC5032Pの項と同じです。 そちらを参照してください。

最高カウント周波数は?
 写真はカウント上限周波数の信号を加えている状態です。 上限付近はやや不安定なので実用上はこれよりもやや低い・・・10%くらい低い周波数までと考えた方が良さそうでした。これは他のLSIでも同様です。

 電源電圧を高くするとカウント上限周波数をアップすることができますが、どの程度までアップできるかは個体差があるようです。 なお、TC5001Pの電源電圧だけをアップしてもだめで、リセットやラッチ回路も合わせて電圧アップする必要があります。 仮にTC5001Pだけ電圧アップさせて試すことも可能と思われますが、リセット信号などの振幅が足りないので正しい使い方ではありません。

 TC5001Pは高性能とは言えませんが、機能がすっきりしていて使いやすいカウンタ用LSIだと思います。 いくつかICを補ってカウント上限周波数をアップすれば実用的な周波数カウンタが作れそうです。 過去にこのICをメインに使った周波数カウンタの製作記事をよく見かけたものです。 それだけに持っているお方も多いのでは?

#思い出したのですが、TC5001Pで貨車の通過両数を数えるカウンタを作ったことがあります。 操車場で使う機器の一部だったようでした。 アルバイトで請け負ったもので最終的に国鉄(JR)に納品されたようでした。



その3:MSM5502を使う
 MSM5502は沖電気のカウンタ用C-MOS LSIです。写真のように16ピンパッケージに入っており、デコーダ・ドライバの4511Bと同じサイズです。 コンパクトさにどれほどの意味があるのかはわかりませんが、ピン数が少ないので配線が簡単と言うメリットはあるでしょう。

 MSM5502で4桁の周波数カウンタが作れます。 桁ドライブ信号はHIghアクティブです。したがってインバータICで反転することなく桁ドライブ用のIC:μPA81Cを駆動できます。これはTC5001Pと同じです。

 沖電気の500シリーズC-MOS ICの一つです。 このICは自作品での使用例がほとんどなくてネット上でも情報の収集は困難でした。 沖の500シリーズC-MOSが盛んに使われた時期もあったのですが、RCAの4000シリーズと完全互換とは言えないため廃れたのでしょう。沖電気自身も完全なセカンドソース路線の方が得策と見てか一般的な4000シリーズのC-MOSへシフトしたようでした。 そうした関係で資料もあまり残らなかったのかもしれません。手元に古いデータブックがあったと思うので探したのですが発見できませんでした。もう使うこともないと思って廃棄してしまったのかもしれません。 やむなくわずかな使用回路例などから推測し、とりあえずの使い方はわかりましたが未だに正規のデータシートは手に入っていません。 (使い方はわかったのでもう必要はないのですが・笑)

MSM5502を使ったカウンタ回路
 MSM5502を使った周波数カウンタの回路です。 表示は4桁です。 内蔵のダイナミックドライブ用のスキャンオシレータはCRの外付けが不要なので非常にすっきりしています。

 4桁の表示なのでゲートタイムが1秒のときは9.999kHzを超えるとオーバーフローします。 オーバーフローは発生しますがもちろんカウント上限周波数までカウント動作します。オーバーフローで溢れた桁が表示されないだけです。溢れた分はゲートタイムを1mSに切り替えれば読めます。 ゲートタイムが1mSのときは表示的には9.999MHzまで可能なのですが、実際にカウント可能な上限周波数は約2.0MHzでした。 従ってHAM用にはカウント可能な上限周波数が低すぎます。(次項参照) 実用にするならMSM5502の前に高速なカウンタを1〜2段付加する必要があるでしょう。 1段で20MHz程度、2段付ければで上限周波数が100MHzを超えるような周波数カウンタも作れます。 このあたりは上限カウント周波数が低い他のカウンタ用LSIと同じです。

 このLSI単独でゼロサプレスの機能はありません。MSM561という同じ500シリーズのICと数個のゲートを補うと実現可能なようです。ただしMSM561(デコーダ・ドライバ用のIC)は入手難で詳細な資料も見つけられないため代替方法の検討はできませんでした。

 回路図の各端子の接続、および使用部品に関してはTC5032Pの項と同じです。 そちらを参照してください。

最高カウント周波数は?
 カウント可能な最高周波数は約2MHzでした。 今回試したカウンタ用LSIでは最も低い値です。

 おそらく、製造プロセスが古いC-MOSなのでしょう。 初段のカウンタ部分に特別な配慮も行なっていない設計だったのでしょう。 そのため上限周波数が低めなのはやむを得ないと言えそうです。 ただ、当時の技術ではかなり頑張ってもせいぜい5MHzくらいが上限だったはずです。

 当時のC-MOSロジックは「低速ではあるが非常に低消費電力である」というのが最大の売りでした。 早い必要がある部分はTTLやECLに任せれば良いという考えだったと思います。 従ってMSM5502のようなIC単独で周波数カウンタを構成することは現実的ではなく、高速部分には他のロジックファミリを補えば良いと割り切っていたはずです。 既にTTLやECLも廃れているので実用的な周波数カウンタにするのでしたらHC-MOSなどを補うのが現実的でしょう。

 コンパクトかつシンプルで使いやすいため悪くないICなのですが、おそらく入手困難になっているでしょう。あえて探すようなものではなく、手持ちにあるなら活用する程度になっていると思います。



その4:TC5037Pを使う
 TC5037PはMSM5502とよく似た感じの4桁カウンタです。 ただし欠点があるのでいま一つ人気はありません。

 パッケージは16ピンですからデコーダ・ドライバの4511Bと同じサイズです。 MSM5502はスキャンオシレータを完全に内蔵したため外付けのCRは不要でした。 しかしTC5037Pは外付けCRが必要なのでこれだけで足ピン3本を消費します。 そのためでしょうか? カウンタのオーバーフローを知らせるピンが削られてしまったようです。 困ったことに周波数カウンタに使うとカウントがオーバーフローしているのがわからないといった致命的な欠点があるのです。 これがHAMの自作でもまったくと言えるほど使われない理由だと思います。

 写真はカウント上限周波数です。 約3.7MHzまでカウントできました。 TC5001Pと同じくらいまで使えますので、これでオーバーフローさえあれば・・・と言った感じでしょうか。
 
TC5037Pを使ったカウンタ回路
 オーバーフロー(オーバレンジ)しているのがわからないのでは実用上たいへん不便なので使われないのもわかる気がします。ここでは試用にあたりその対策を考えてみました。

 結果から言ってしまうと、要するにオーバーフロー検知のために補助のカウンタを外付けするのです。 もっと知的な方法も考えられるかも知れません。 例えばマルチプレックスされて出力されるデータをデコードしてオーバーフローしそうになる条件を見つけて状態の遷移を監視する・・・というロジックも考えられなくはないでしょう。 しかしそうそう単純ではないうえ、少々の外付けのICを補う程度では完全なオーバーフローの検知は難しそうです。 それをするくらいなら「インチキ」な手だと誹りをうけるかも知れませんが補助のカウンタを補う方がずっとスッキリします。

 4桁のカウンタに4桁分+αのカウンタを足すのですから屋上屋を重ねるようなものです。しかしTC5037Pの機能が無駄になったわけではありません。内蔵の表示器ドライブ機能は完全に活用していますからあんがい悪くない手だと思うのです。 安価なC-MOS ICを3つ足すだけでイマイチ人気のないTC5037Pの欠陥が解消できるのですから・・・。

 その他の回路はMSM5502などと同じです。 また、回路図の各端子の接続、および使用部品に関してはTC5032Pの項に準じます。 そちらを参照してください。

オーバーフロー対策
 たかがオーバーフロー検知のためだけにカウンタを足すのは馬鹿げたことかもしれません。 しかしこれが最も簡単な手段と思いました。 C-MOSの4518Bを2つ補います。4518Bは高価なものではなく、一つ数十円で手に入ります。

 写真には74HC73が写っていませんが途中段階で撮影したためです。 確実なオーバーフロー検知という意味では上記回路図通りに74HC73の追加が必要でした。 外付けで付け加えたカウンタICもリセットする必要があるのでそのような配線になっています。 また74HC73はリセットの論理が逆なので逆方向のリセットパルス(制御回路のJ5の方)を使ってリセットします。

 10進カウンタが2つ入っている4518Bはこれまで何気なく使ってきましたが、カスケードに接続する時は注意が必要でした。 入力パルスの前縁でカウントされるのか、後縁でカウントされるのかという違いがあります。その使い分けに注意が必要でした。 一般的に後縁(ネガティブエッジ)でカウントするカウンタICが多くて、TC5037Pもそのようになっています。 従って4518Bも同じように動くよう配線する必要があります。 外付けのカウンタに4518Bではなく74HC390を使えば余計なことを考えずに済むのでベターかもしれません。(足ピンの接続は異なります)

 TC5037Pですが、オーバーフローの問題から使い道のないチップだと思ってきました。 その状況は今でも変わりないのかもしれませんが、工夫(?)することで前途がいくらか開けたように思います。 これでTC5001Pと同じように使えますから。



その5:LC7961を使う
 あらかじめお断りしておきますが、LC7961は入手の可能性はほとんどゼロでしょう。 ずいぶん前にS社の友人にもらったものです。 ポピュラーではなかったですし活用例もまったく見たことがありません。当然ディスコンでしょう。 秋葉原では見かけませんけれど三洋電機系の半導体商社のどこかに眠っている可能性もないとは言えません。しかし望み薄でしょうね。

 LC7961を使うのは初めてでした。 あまり特徴のないLSIだと思ったのですが、デコーダ・ドライバまで内蔵しているため非常にスッキリしたカウンタ回路が実現できました。 デコーダ・ドライバまで内蔵ですから数字の字体が気になります。 実際には6、7、9の数字は写真のようになりました。

 他のLSIも同じですが、表示はダイナミック・ドライブ形式です。 そのためデータシートには「表示が暗いので・・・云々」と書いてあります。 1980年代のチップでしょう。その当時のLED表示器はダイナミック・ドライブで使うとかなり暗かった印象があります。そのため注意書きが添えられていたものと思います。

 現在ではLEDの高輝度化、超高輝度化が進んでいるので表示が暗いという不満はあまり感じないのではないでしょうか。 ここで使用している中華LED表示器もまずまずの輝度でした。3桁のダイナミック・ドライブ用で、PARA LIGHT社のC-533SR(←リンク)を使っています。秋月電子通商にて単価200円で購入しました。

 これから新規に購入されるのでしたら4桁の超高輝度タイプがお薦めです。必ずカソードコモン型を買ってください。 購入する際は同じシリーズの単体の(1桁の)表示器も数個買っておくと後々活用できます。

LC7961を使ったカウンタ回路
 LC7961は20ピンのやや大きめの4桁カウンタ用のLSIです。 特徴はデコーダ・ドライバを内蔵していることでしょう。他のLSIのように4511Bを必要としません。

 回路図のように他に必要なのは桁ドライブのICだけなので非常にスッキリしています。 桁ドライブの方も4桁分しか使っていないので、μPA81Cではなくデジタル・トランジスタ(一例←リンク)を四つ使えばICはLC7961一つだけになります。 その方が部品の入手性も良くなります。

 ゼロサプレス機能があって、ONするとカウンタの内容がゼロの時には最小桁のゼロだけが表示されます。 このLSIは複数個重ねて使うことも考慮されていて上位桁のチップは全桁ゼロサプレスすることもできるようになっています。 ここでは単独で使用する想定の配線になっています。

  制御回路との接続は他のカウンタ用LSIと同じです。 TC5032Pの項に準じますのでそちらを参照してください。 オーバーフローがギリギリ発生する状態を検出するためには74HC73を追加すると効果的でした。部品は増えますが最初からそのように設計しておく方が良いかも知れません。(74HC73の追加に関してはTC5037Pの項を参照)

最高カウント周波数は?
 カウント上限周波数は約3.6MHzでした。 データシートによればVdd=5Vで使うと500kHzまでとなっています。 あまり期待していなかったのですが意外に伸びてくれました。

 もちろん、HAM用の周波数カウンタには低すぎますので補助のカウンタを補うべきでしょう。 LC7961は外付け部品が少なくて回路が簡単なのでそれを活かすべきです。 1桁分の補助カウンタを追加する程度で済ませるのも良いかもしれません。 カウント上限周波数は30MHzくらいになると思いますがそれでほとんどの用途で不自由しないはずです。

 回路が「簡単」という意味では一番なカウンタ用LSIです。 手に入れば注目しても良いLSIかも知れません。 ちょっと残念ですが手に入らないのは仕方ありませんね。



その6:μPD851Cを使う
μPD851Cはデジタル・ボルトメータやデジタル・パネルメータを目的に作られたICではないでしょうか。 2重積分型のA/Dコンバータを作るのに適しているようです。 だからと言って周波数カウンタが作れない訳ではありません。 ほかにセラミック・パッケージのμPD851Dというのもありました。基本的なスペックは同じです。

 最大19999表示・・・すなわち4・1/2桁のカウンタ回路が作れます。 28ピンのパッケージに入っています。 計数途中の状態を出力する端子が複数あるほか、それぞれの出力端子がどのような条件で出力されるのかをコントロールできるようになっています。 ただし、それらの機能は周波数カウンタとして使う際にはほとんど必要としません。 それにマイコンではありませんからあまり自由度はありません。

 桁ドライブはTC5032Pと同じくLowアクティブなのでインバータICで反転してやる必要があります。 また、4・1/2桁というのはいかにも中途半端なので最上桁の表示は使わないで4桁表示だと思う方が使い易いようでした。 オーバーフローの出力は、9999を超えると出力されるものと、19999を超えると出力されるものの2種類があります。 9999で使うか、19999で使うのかで選択します。(回路図のP9-1またはP9-2で選択)

μPD851Cを使ったカウンタ回路
 μPD851Cを使った4・1/2桁の周波数カウンタ回路です。 最上位の桁は0と1の表示しかされません。 19999を超えると20000にはならず、再び00000から始まります。 もちろんこの時にはオーバフローが出力されます。

 しかしわかりにくいので9999までのフル4桁のカウンタだと思って使う方が使い易いと思います。 その場合は/T5(ピン17)への配線を省略します。当然ですがLED表示器DS1も不要です。 最初から4桁表示用のLEDを使えば良いと思います。 なお、μPD851CのリセットはLowアクティブです。ほかのLSIとは逆なので制御回路のJ5端子に接続します。

  その他の制御回路との接続は他のカウンタ用LSIと同じです。 TC5032Pの項に準じますのでそちらを参照してください。 使用部品の説明も同じです。

最高カウント周波数は?
 データシートによれば10MHzまで動作しそうですが9MHzあたりがカウント上限周波数でした。 データシートの回路例では、電源ピン:Vdd(14番ピン)のバイパスに特別な配慮が必要そうに見えます。

 もちろん、最短距離でバイパス・コンデンサを入れる必要があるのは他のカウンタ用LSIでも同じです。 しかしμPD851Cも同様であって他のLSIよりも特別にクリチカルという訳ではないようでした。 電源のバイパスを強化してもカウント上限周波数が改善すると言った効果はありませんでした。 10MHzというのは保証値ではないようですからこんなものでしょう。

 カウント上限周波数はTC5032Pに次いで高いのですが、HAMの用途にはやはり不満でしょう。 前置のカウンタを1〜2段付加する必要があります。

 ブランキング・インプット(BI)端子:ピン13を制御するとゼロサプレスが可能です。 セロサプレスするかしないかだけの選択のようなのであまり使いやすくない感じでした。

 μPD851Cも既に入手性は悪いようです。あえて探して使うほどのチップとも思えませんので、手持ちがあれば使うと言ったところではないでしょうか。



タイムベースの精度は?
 周波数カウンタの測定精度は基準となるタイムベースの周波数精度に依存します。 ここで使った制御回路では周波数の基準にプログラマブル・水晶発振器:SPG8651Bを使っており、その1kHz出力を基準にしています。 SBP8651Bは100kHzの水晶発振子を内蔵しそれを分周して1kHzを得ています。

 写真はこの1kHzをpHz(ピコヘルツ)のオーダーまで読んでみたものです。 実測によれば約0.58ppmほど高いことがわかりました。 SPG8651Bのスペックは±5ppmとなっていますが実際はそれよりもかなり良い精度でした。 もちろんこれは常温付近での測定ですから仕様書の温度範囲全体ではもっと誤差は大きくなるでしょう。 しかしなかなか優秀だということがわかりました。しばらく観測していましたが状態はずっと安定していました。

 SPG8651Bは表面の銘板(ふた)を剥がすとトリマコンデンサが見えるそうです。その調整で周波数を合わせられるようです。精度の良い測定手段をお持ちならやってみるのも面白そうです。 TCXOではありませんから限度はあると思いますが精度の向上が期待できるでしょう。

 タイムベースの周波数誤差がプラス方向だと周波数カウンタとしては同じだけマイナスの測定誤差が現れることになります。 実際にもTC5032Pのカウンタ回路に正確な10MHzを加えて測定したところ6Hz前後低く表示されました。  まったくの無調整で10MHzにて-6Hzの誤差ならたいへん良い精度と言えます。 基準発振器にSPG8651Bを使った周波数カウンタも悪くないと思いました。 タイムベースとカウンタの制御回路についての詳細は前回のBlog(←前回のBlogへリンク)を参照してください。

                   ☆

 以上6種類のカウンタ用LSIについて、実際に回路を組んで試してみました。 周波数カウンタは単純な測定回路ですからどのLSIでもたいした違いはありません。 しかし使う上では多少の注意は必要そうでした。 それぞれ幾らか個性もあるのですべてを回路図に纏めておくことにしました。 ご覧になってご質問や気づいた点などあればお知らせください。更新に反映したいと思います。

                  ☆ ☆

 あまり使うアテのないLSIを試すなんて意味はないなんて言われそうです。 それは否定しませんが、いつか使おうと思いつつパーツボックスに眠ってきた部品でたっぷり楽しむことができました。 同時に現時点で得られた情報を整理することにも繋がりました。

 古くから自作を楽しんで居られるのでしたらカウンタ用LSIを一つや二つくらいお持ちではありませんか? もしお気に入りの周波数カウンタをお持ちでなければこの機会に製作されてはいかがでしょう。 無線機の自作にもたいへん役立つ基本測定器が自ら手作りできます。 一連の情報でカウンタ用LSIが部品箱から救われ自作の役に立ってくれたら嬉しいです。

 それでお薦めのカウンタ用LSIはどれかと問われれば、TC5032Pの一択になってしまうのですが他のチップでも大差はありません。 いずれにしても補助のカウンタを前置する必要があって、結局どれでも同じになってしまうのです。 手持ちがあるならソレを存分に活用するのがベストですね。 あえて手に入れるならもっとも安価なもので十分でしょう。

 最後になりますが、前回のBlog(←リンク)で製作した周波数カウンタ用の「制御回路」はいずれのカウンタ用LSIでも支障なく使えました。 共通して使用できることを確認していますのでお奨めできると思います。 使用感もなかなか良好でした。

 次回のPart 3(←リンク)では入力アンプと波形整形回路を扱います。カウント上限周波数を伸ばすために付加する補助カウンタも実例があります。 これらは実用的な周波数カウンタに纏めるために必要な部分です。 周波数カウンタの回路研究や製作に興味がわいたようでしたら続けてご覧ください。 入力アンプと波形整形回路はマイコン式の周波数カウンタの製作でも活用できるでしょう。 ではまた。 de JA9TTT/1

つづく)←リンクnm

2018年4月30日月曜日

【回路】Frequency Counter Design, Part 1

回路設計:周波数カウンタの設計・Part 1
 【カウンタ用LSI
 持っている部品のリストアップをしています。 以前ならどこに幾つくらいの手持ちがあるかなんて結構しっかり覚えてました。 しかしもういけません。 覚えるよりも忘れる方が早い年齢になると手持ちがどこにどれだけあるなんて忘れる一方です。(悲)

 結局のところまだ使え(使い)そうな在庫部品はリストアップして所在をメモしておく必要に迫られるようになりました。 そうしないと見つけられなくてあちこち探しまわるとか重複した購入などが頻繁に発生するようになります。 そんなニーズから始めたごく単純なデータベース(DB)ですが思った以上に便利です。 忘れっぽくなる前から作っておけば良かったと反省しているくらいです。 Excelの表を使っていますが簡単な機能説明と数量のほかに保管場所が書いてあります。 製作に先立って部品を集める時にはもちろんですが、こうしておくと手持ち部品を使って回路を考えるのにも重宝します。(DB化するまでは厄介ですけれど) それと同時にお宝になりそうなパーツは持ってないことも良くわかりました。(残念)w

                   ☆

 DB化は部品整理も兼ねるので分散して保管してあったようなパーツをジャンルごとに寄せ集める効果もあります。 そのような過程でカウンタ用のLSI(写真)が何種類か出てきました。 以前は周波数カウンタといえばこうしたLSIを使うのが一般的だったものです。 いずれでも4桁〜6桁のカウンタが比較的少ない部品で作れます。

  今から周波数カウンタを作るならマイコン式が一番だと思います。PICなりAVRなり、もちろん他のチップでもマイコンを使ってFBなものが作れます。特別な専用ICの必要がないため部品集めは簡単です。さらに汎用の文字表示ユニットを使うと少ない配線で済むため製作も容易です。(ただし、プログラムミングのことを忘れてはいけませんが) ですからこうしたLSIで本格的に周波数カウンタを作りたいなどとは少しも思いません。

 ところが整理しているうちになんとなく動作させてみたくなってきたのです。この中で使用経験があるのは2つくらいでしょうか。 それであまり深入りしない程度に周波数カウンタ(のようなもの?)を作って遊んでみることにしました。 意図した動きをしたらそれでオシマイでもいいんです。カウンタはすでに間に合ってますから。 しかし予定とは違ってだんだん深みにハマりつつあります。(笑)

                  ☆ ☆

 写真のカウンタ用のLSIですが、いずれもディスコン(生産終了)になっています。しかし未だにニーズがあるらしくお店の在庫も枯渇してきたようです。 手持ちでもあるなら別ですが、本来の価値以上に価格高騰していると感じるので新たな入手はお奨めしません。 もちろんこうしたLSIは無くても74HCXXといったスタンダード・ロジックのICを並べて作ることもできます。 必要なICの数はだいぶ増えますけれど。
 しかしフレキシビリティの点でもハードウエアだけで実現する周波数カウンタはイマイチですから、遊んでみる程度に留めるのが吉ではないでしょうか? もしもそうした遊びに興味がありましたら暇つぶしがてらにお付き合いください。

 【カウンタ制御回路
 周波数カウンタのキモになる部分といえば制御回路でしょう。 要するに、(1)決められた時間だけゲートを開きます。ただちにカウントが始まります。 (2)入力パルスの計数が終わったら一時記憶にデータを移します。同時に表示が更新されます。 そして、(3)カウント値をリセットして次の計数に備えます。 ・・・といった一連の制御シーケンスを作るわけです。

 もちろんこの部分には測定の基準となる「基準発振器」も含まれます。 一言で言えば、周波数カウンタとは一定の時間のあいだに入ってきた波の数(=パルス数)をかぞえて表示する測定器です。 例えば1,000Hzと言うのは「一秒間」に1,000個の波が入ってきたわけです。 したがってこの1秒間と言った「一定の時間」をつくる「基準」が大切なことは言うまでもありません。この時間が狂ったら正確な測定にはなりませんから。

 写真はカウンタの制御回路を試作している様子です。 簡易に遊ぶのが目的ですからOCXOなりTCXOのような本格的な高精度基準発振器は使いません。 もしも本気が出てきたらグレードアップすれば良いだけですので・・・。 まずは基本的な動作を追ってみれば十分なはずです。

 こうした制御回路の設計が周波数カウンタでは一番面白い部分かもしれません。 パルス数をカウントする部分には専用LSIを使うので工夫の余地もないため面白いとは言いかねます。数字表示器の部分も配線が面倒臭いだけです。 ほかに周波数カウンタの回路で面白いとすれば、入力のアンプと波形整形回路くらいのものでしょうか? このあたりは後でやってみたいと思います。 まずは制御回路の設計と実験からスタートしました。

周波数カウンタ制御回路の設計
 シンプルな実現手段としてはCRとゲートIC等を使った半分アナログっぽい制御回路だろうと思います。 タイムベース用の分周器を除けば数個のゲートICで作ることもできます。

 まあ、それでも良かったのですが違う方向で行くことにしました。 探したら以前考えてあったアイディアの手書きメモが出てきたのです。さっそく実際に回路を組んでみました。 参照したメモは机上のものだったので、そのままの回路ではいろいろ旨くないところがあって意図したように動いてくれません。 左図は幾つか問題を解消して取りあえずまともそうに動いている回路です。 このあとPart 2へ続く予定ですが、カウンタLSIと組み合わせた際に何らかの不都合が見つかれば変更する可能性もあります。一通りの検討はしてあるのでまず問題はないとは思うのですが・・・。

 簡単な説明です。 ゲートタイムは1mSと1Secが選択できます。 従って表示の最下位桁は1kHzまたは1Hzとなる訳です。 測定レンジとしてはMHz単位とkHz単位の2レンジ切替え式です。なお、下から3桁目と4桁目の間の小数点を点灯させ、小数点以下3桁の表示となります。
 単純な回路でやると1Hzまで読むのに2秒のサンプリングタイムを要することになります。表示の更新がのろくて使いにくい周波数カウンタになります。 ここでは11進カウンタを使って1.1秒のサンプリングで済むようにしてみました。倍近く早いので発振器の周波数をHz単位まで合わせ込むと言った用途にはずいぶん使いやすくなります。
 ラッチとリセットパルスは言わば常套手段のようになっているのですが、CRによるエッジ微分で取り出す形式はやめておきました。 動作が確実なシフト・レジスタを使った同期微分形式としています。従ってCRの時定数を加減すると言った「調整」の必要はありません。 シフトクロックは1mSですのでラッチ、リセットのいずれも1mS幅のパルスとなります。 すべてクロックに同期して順序よく動きますからタイミングが逆転するといったおかしなことは原理的に起こらないでしょう。

参考・1:デジタル回路の配線図ではICの電源ピンやGNDピンへの配線記載を省くことが良く行なわれます。これはなかば常識でしょうか。 上記の配線図でも74HC02と74HC10などのVdd/電源(ピン14番)とVss/GNDピン(ピン7番)への配線は書かれていません。
 もちろん配線図に記載はなくても必ず配線してやります。74HC74、74HC175や74HC161も同様です。 各ICのピン接続を良く確認のうえ電源やGNDへの配線を行ないます。(回路図には注釈として電源とGNDピンの番号を記入してあります)
 すべてC-MOS ICを使っていますから余っているゲートなどは空きピン処理が必須です。入力になるピンは遊ばせたままにしないで必ずHigh(=+5V Vdd)もしくはLow(=GND)に固定してやります。言うまでもないでしょうが出力となるピンは開放(オープン)状態にしてどこにも接続せずにしておきます。
 また、少なくとも3個のICに一つくらいの割合で電源ピンとGND間にバイパスコンデンサ(= 0.1μF程度のセラコン)を入れておくと動作が安定します。 電源供給端子のあたりにバイパス用の数10μF程度の電解コンデンサもお忘れなく。

参考・2: この回路の改良版がPart 3(←リンク)にあります。以下の説明を一通り読み終えたらリンク先に飛んで参照して下さい。もしこれから新たに製作するならそちらの方が良いかも知れませんが、実用上の性能はほとんど違いません。(2018.05.29追記)

基準水晶発振はSPG8651B
 ゲートタイムの精度が周波数カウンタの測定精度を決めます。 ここでは100kHzの水晶発振器を内蔵したプログラマブル・オシレータ:SPG8651B(セイコーエプソン製)を基準の発生に使いました。

 SPG8651Bの初期精度は±5ppm以内です。既成の水晶発振器としては高精度な方でしょう。また、簡単に様々な周期のパルスが得られるので便利です。 以前使ってみた感触ではSpec値よりもう少し周波数精度は良かったと思います。周波数の安定度もかなり優秀でした。 下手に作った自作水晶発振器なんかよりもずっと安定していました。  データシートを見る範囲では電源電圧を±0.5Vくらい振ってやると発振周波数の微調整もできそうなのですが・・・。それをするくらいなら周波数調整機能付きのTCXOを使うなどの方法がベターでしょう。

  SPG8651Bからは1mS周期のパルス・・・周波数でいえば1kHzを取り出しています。この1mSが制御回路の基本になっています。 もしSPG8651Bが入手できなくても代替手段として他の水晶発振器を使って1mSを作ってやれば良いわけです。 その作った1mS周期のパルスを回路図:TP5の位置に5V C-MOSのレベルで与えてやります。
 この1mSパルスは後に説明するシフト・レジスタのシフトパルスになります。 また、1mSをさらに10進カウンタが二つ入った:TC4518B(写真左)を使って1/100に分周します。 これで100mS周期(=10Hz)のパルスが得られます。100mSはさらに11進カウンタへ供給します。

1秒ゲートの作り方
 100mSパルスを11進カウンタで分周します。100mSを元にゲートを開く「1秒間」を作ります。 10mSを101分周とかでも良いのですが、複雑になるので11進でやってみました。 1秒ゲートを開いたら残りの100mSでラッチとリセットの動作を行ないます。

 はじめに11進カウンタを74HC74を使った4段のリプルカウンタで作ってみたのですが、各段の出力に遅延があって思ったように動作しません。 少々姑息な手を使えば動きそうですが、どうやらリプルカウンタでは無理がありそうです。 そこで同期式のバイナリ・カウンタ:74HC161を使うことにしました。これなら各段のタイミングがきれいにそろいます。 ただし11進カウンタにするためのデコードとそれに続くリセットは非同期ですから完全なクロック同期動作ではありません。

 完全な同期式も可能なのですがますますICが増える懸念があり遊びの域を超えますからやめておきました。実用上支障がないというのも理由です。 まあこうした回路はFPGAでも使って完全同期式の設計・・・それが常識ですが・・・で作るのが良いのでしょう。それ以前にマイコン式の方がプログラムによる自由度がありますから方向違いですネ。

参考:74HC10/U4cの8番ピンに74HC161をリセットするパルスが出ているのですがとても幅の狭いパルスです。 このパルスはゲートタイムの誤差の一因になるので狭い方が良いはずです。 狭いパルスのうえ繰り返し周期は1.1秒ですからアナログオシロでの観測はたいへん困難です。500MHz帯域のデジタルオシロを使いました。 観測によればリセット動作に約20nSほど要するようです。 従ってゲートタイム =1秒に対する誤差は2×10E-8程度考えられるでしょう。これは6桁程度の周波数カウンタではまったく表面化しません。 むしろほかの誤差要因の方がずっと大きいはずです。  プリスケーラを付けて測定範囲を拡大したとしてもその分だけ分解能も悪くなるので影響しません。 念のため検証しておきました。

ラッチ、リセットパルスを作る
 ラッチとリセットのパルスは、ゲート開閉パルスの後縁の部分を同期微分して得ています。 ラッチとリセットの間には1シフトクロック分の遅延を入れてあるので、タイミング的にクリチカルではありません。

  ちなみに、シフトクロックは上記にも書いたように1mSです。 各パルスは動作が遅いスタンダードC-MOS のカウンタLSIでも十分応答するだけの幅があります。 この部分は汎用のシフトレジスタでも構成できますが、ピンの引き出しの点などからQuad D-Flip-Flop:74HC175をシフトレジスタになるよう配線して使います。 段数が足りないので74HC74を一つ補いました。

 途中でNORゲートの74HC02で負論理のNANDをとって1mS幅のパルスを得ています。 これを使って1mSのゲートタイムを作るほか、それを遅延させてラッチやリセットパルスも作るわけです。 この1mS幅のゲート開閉パルスは100mS周期で発生しますから、10回/秒のサンプリングになります。 従って1mSゲートに切り替えても表示がやたらにチラつくようなことはありません。 ほかのアイディアとして、1〜2個のICと数個のCRを足すと可変サンプリング式にすることもできますが必要性が低いので省きました。

 この部分にはカウンタ部のレンジオーバーを表示するための回路を設けています。カウンタ部で表示オーバーフローが発生したときLEDが点灯します。(74HC02の2/4を使用)

 CRとインバータやゲートのICを使ったタイミング回路でも周波数カウンタごときものなら十分なのかもしれません。多少カットアンドトライを行なえばうまく行くでしょう。 シフト・レジスタを使った回路はクロックに基づいて動的に考えるのが面白いのでやってみたまでです。 オシロスコープで動きを確認しながら「デジタル回路」のハードな部分をたっぷり楽しむことができました。

参考:ゲート信号、ラッチパルス、リセットパルスのいずれも正論理で設計しました。High-Activeなわけです。 調べてみたら最初の写真にあるカウンタ用のLSIのうち、μPD851CのみリセットパルスがLow-Activeなので信号の反転が必要です。具体的にはμPD851Cに限ってリセットに端子:J5の方を使います。 そのほかのLSIはいずれもHigh-Activeなのでリセット信号は上記の回路図の端子:J4の方です。 このあと本命(?)のカウンタ用LSIを使って遊びますが、これでどのICにも使うことができる制御回路になっていると思います。

                ☆ ☆ ☆

今さらカウンタ用のLSIで周波数カウンタを作るなんて流行りませんよね。チープなチャイナ・カウンタ基板も売られているくらいですので。(笑) そんな意味からも遊びの実験とお断りしているようなわけです。作ってみること自体を「遊ぶ」わけです。 遊びとは言っても十分実用になる周波数カウンタが作れそうですから部品の手持ちがあるなら本格的に製作して役立てるのも悪くないと思います。意外に気の利いた周波数カウンタになるはずです。

 電子部品は使ってこそ価値が生まれますので死蔵されるよりも何がしかの用途に使われた方が幸せでしょう。  これは何もカウンタ用LSIに限りません。たとえ実験的であっても使って遊んでみたら興味深いのではないでしょうか。

 さて、制御回路はできましたから次回はカウンタ用LSIを使った計数部と表示器ドライバをやってみたいと思います。 少々フライングですがこの写真はそんな実験のひとコマです。 ではまた。 de JA9TTT/1

つづく)←リンク fm