PIC

18F14K50で、簡易オシロスコープ その2

2011年11月14日

先の記事で、「家庭用のコンセントの周波数60 Hzを読み取ることが出来た」と書いた。PC側の制御プログラムを完成させようと、この結果を解析してみると、少し問題があることがわかってきた。

まず、PICに1秒間、1ミリ秒当たり24回の測定をさせて、1ミリ秒ごとにデーターを送信させてみた。得られた結果を、Excelでグラフにすると、下のようになった。
2011-11-14-oscillo1.png

グラフ中、縦軸はシグナルのmV、横軸はμ秒である。30000μ秒ぐらいまでは、まあまあ、よさそう。変なとげがあるが、この辺は後でチューンナップすれば、きれいになるかもしれない。しかし、40000μ秒くらいから後が、ひどい。どうやら、データーがちゃんと取れていないようである。

A/Dコンバーターからのシグナルがいつ取得されているのかは、PICに内蔵のタイマーで計測してある。それぞれのデーターポイントがいつ計測されていのかをグラフにすると、下のようになった。
2011-11-14-oscillo2.png

グラフ中、横軸は測定回数、縦軸はμ秒である。700回までの測定は予想通りの時間に行われているが、それより後の計測は遅れがあるらしい。

PIC内で、計測に遅れがあるとすると、USB送信に手間取っていることしか理由は考えられない。多分、このあたりが、HIDの限界であると思われる。

それでも、700回まで問題なく測定できているのは朗報で、今の用途(1 kHzぐらいの音源の測定)には十分である。1 kHzの場合、1回の波を24等分して測定し30周分を測れる事になる。

もっとゆっくりした周波数に適応するためには、1 msecに一回測定して24 msecに一回USB送信するやりかたが、プログラミングとしては容易そうである。それを行ったときに、60 Hzの家庭用電源がどのように見えるかを今回得られたデータからシミュレートしたのが、下のグラフ。
2011-11-14-oscillo3.png

うん、きれいに出ているではないか。測定の再には、1 msecに1回のスローモードと、1 msecに24回のファーストモードの2種類を用意しておけばよい。次の週末には、できそうである。

コメント

コメントはありません

コメント送信