トリガカウンタ作成(疑似周波数カウンタ)

2024/02/17

YAMAHA QY20 チェックツール 電子回路

 動かないQY20の調査をするときに、パルスがでているのか、知りたい時が時々あります。そういう場合は安物ロジアナを使いますが、準備と操作が面倒でした。昔買った安物テスターに周波数カウンタがあり、それを使うほうが便利なのですが、精度がかなり悪いです。

ということで、疑似的な周波数カウンタを作ることにしました。疑似的というのは、パルス長やduty比などを測ることはできず、単に一定間隔でのパルス数を出すだけです。

以前作成した、汎用のセンサー表示回路を流用します。センサー入力部分を信号入力に変更し、立ち上がりを割り込み検知、カウントします。回路作成、プログラム変更含め、2時間位でできました。

CPUは、PICで32MHz(PICは4サイクル処理なので、実質8MHz)のため、割込み処理に40ステップかかるとしても、200kHzまでしか測れません。そのため、パルスを分周するカウンタ回路(2,16,32,64,128,256,512,1024,2048,4096分周)を、信号入力の前段に接続するようにしました。

2バイト(0xFFFF)までカウント、ボタンで表示桁切替、HEX表示、1/10単位のカウントとしています。実際には表示処理含め、12kHz程度が限界のようです。

分周する前段回路で、4096倍までカウントできるので、50MHz程度まではカウントできそうですが、分周に使ってるカウンタ回路の限界が、66MHz前後なので、そのあたりが限界ですね。

QY20のLCD表示用の制御信号を計測してみました。(1/10s計測なので、10倍した値)

  • FLM信号(約70Hz):0x07~0x08(70Hz~80Hz)
  • CP1信号(約4484Hz):0x01F2~0x01F3(4980Hz~4990Hz)
  • CP2信号(変則で約2.4MHz):0x2EA4~0x2EA9(約1.9MHz)分周は2^4

CP2信号が、かなりズレています。カウントと表示を並行しているため、カウントクリアのタイミングがバグってると思われます。要修正ですが、QY20での断線チェックには使えそうです。


<追記>

プログラム修正しても、CP2は、0x2EC9程度で、誤差は0x20カウント程度でした。よくよく考えると、分周しているため、カウントの切り捨てが発生しています。なので1.9MHzから3.8MHzの間ということになります。4分周、8分周できれば、精度が上がったと思います。

QooQ