おもちゃ、家電、もろもろの修理の足跡と備忘録

色々と忘れるので、趣味のメモ

自作の周波数カウンタ ハードウェア編

2020-07-31 17:27:02 | その他工作
 ハードウェアは、二段重ねにしてあって、上段はLCD、下段はメインのロジックで、PIC16F88をメインに使って、オリジナルは温度補償してあるTCXOでしたが20MHzのXtalでPICを動かしています。あとは大したものはなくて、写真PICの右側は、7805で5Vを作っていますが、今となっては、USBの5Vを使ったほうが持ち運びにも楽なので、外してしまおうかと思っています。
 PICの上部のトランジスタは、2SC1815-GRで、入力部のアンプです。入力抵抗が低いので、そのうちFETを追加して変更しようと思っています。
 左上のコネクタは、PICのPodをつなぐコネクタで、左の14P(のうちの10Pしか使っていないので、接続していません)は、LCD用のコネクタです。LCDは、4bitモードでの接続です。
 PIC左下の赤いLEDは、カウンタのGate表示用(と言ってもソフトでOn/Offしているだけ)ですが、二段重ねにしてしまったので、表からは見えません。最終的にはLCDにGateタイミングを表示するようにしたので無用の長物になっています。

 回路は以下のとおりです。手書きで、かつぐちゃぐちゃコメントやら修正やらが書き込まれていて汚くてすみません。誰かに見せるために作っていないので、清書するつもりもないしこのままのせます。
 真ん中にPIC16F88、右にLCDです。右下にLCDと接続しているコネクタ配置、左下にPICのPodとのコネクタ配置を記載してあります。LCD接続のコネクタのPin配置なのですが、今回使ったものは当初素性がわからなくて、色々と調べました。物によってPin配置が違う、1→14、14→1という二種類があるようです。接続の際は十分注意してください。
 LCDのコントラスト調整用のVRの回路が右端にかいてありますが、私の場合はVssとVo間が0.5V程度で良い感じで動作しましたので、実際には固定値になっています。個体やメーカで異なると思いますので、調整ください。

 中央下が信号入力です。前に書きましたが、そのうちFETを使ったものに置き換えたいと思っています。

 PICの中にはカウンタがいくつかあって、それぞれ特色があります。今回は、稲崎さんの作られた通り、
 ・Timer1@16bitを信号カウンタ
 ・Timer2@8bitをGateTime用の計時カウンタ
として使っています。
 PICのPodを使って、インサーキットDebugができるのですが、PICのPodをつなぐ場所は、PICで決まっています。今回、信号をカウントするために使った16F88の12pinは、Timer1の入力端子で、かつ、PodのPGCという5番端子でぶつかってしまいました。どちらも変更ができない端子です。この影響は、DebugのときにPodを回路につなぎっぱにすると、入力信号を食ってしまってカウントしない、というところに出てしまいました。
 ということで、残念ながら計測するときはPodを外す、プログラムを書き込むときはPodを差し込む、というOperationをせざるを得なくなっています。
どなたか、これをうまく抜ける方法があれば、教えて下さい。
ソフト編に続く。

自作の周波数カウンタ 概要編

2020-07-18 18:05:04 | その他工作
以前、大陸から購入した50MHzの格安周波数カウンタ(387円)のキットを作ったのですが、そういえば以前周波数カウンタを途中まで作ったっけ、と思い出し、引張り出してきました。
2018年頃作っていたものです。
・PIC16F88(古いですね、手元に転がっていたので使いました)
・LCD SC1602(何枚か頂いて来たので、使いました。1602は、16文字x2行のLCDです。ちなみに2002は、20文字x2行の物のようです。)
 一応、1/1で最大50MHzはカウントできるんじゃない?という代物で、当時PICでいろいろなものを作られていた方のものを元に作り直しました。実際には、ソフトの開発環境がすでにない古い環境のものだったので、それをMPLAB-XとXC8に変更して、sourceを書き換えて、なんとか動くところまでは確認しました。
(ちなみに、元ネタは稲崎さんという方のInHisTimeというWEB記事の周波数カウンタV7なのですが、既に無くなってしまっていて元ネタには到達できませんでした。)
 当時発振器がなかったので、どのくらいの精度なのか全くわからない状態で、そのままお蔵入り状態になってしまっていました。
 今回、再度やってみようと思ったのは、先の大陸から購入した周波数カウンタキットは、Xtalの発信周波数を確認できる機能がついていた(というかそれ用、と書いています、回路的にはコルピッツ)のと、加えて持っていなかったXtalをいくつか購入したので、じゃ、それを使って仕上げようかと思い、再度着手しました。
 とりあえず、試行錯誤しながら、この一ヶ月位で空いた時間を見つけながらら、現状40MHzまでの確認ですが、数10PPM位まで絞り込みました(冒頭の写真)。もともと温度補償のないXtalは50PPM程度、と書いてあったので、PICに使っている20MHzのXtalもどのくらいの数値なのかわからないので、なんとも言えませんが、とりあえず、趣味で使うには十分かな、と思います。
 デジタル部分(主にソフトですが)は、上記のような状況で、後は入力のアンプを今後作らないといけません。
 ぼちぼちハード、ソフト、そして入力アンプはこれから作りますが、これらについてだらだらと備忘録としてまとめたいと思います。
次に続く。