2023-09-12 23:44 — asano
カテゴリー:
前回周波数カウンタ機能が動き始めたので今回はいよいよVCOのF-V特性の自動測定です。
D/A値を0~4095まで5刻みで増加させながら以下を実行していきます。
- D/A値をセット
- 1秒待つ
- D/A値と周波数をシリアルに出力
ターミナルソフトでこれを記録しておきグラフなどの処理を行ないます。
2.で待つのは2つの理由があります。
一つはVCOの応答を待つため、とは言ってもループフィルタなどは通っていないので遅延は大きくないはずです。
もう一つは...... こちらの方が重要です。前回書いたようにゲート時間は256msあり、しかもタイマ割り込みで非同期に動いています。仮にゲート時間が始まった直後にD/Aを変更したとするとその結果が出るのは256ms後になります。しかもゲート時間が始まってからVCOの周波数が変わるまでは不正な値をカウントしてしまいます。本来ゲートの切り替わりを2回待つべきですが、0.5秒以上待つことで済ませてしまいました。
TC74HC14APの1段リングオシレータで試してみました。
画像は全部で約800行ほどあるうちの末尾部分です。ターミナルのログ機能を使ってファイルに記録しておきます。
これをGNUPLOTでグラフにしてみました。
下の方が乱れているのは電圧が低すぎる(TC74HC14APの動作電圧範囲を逸脱しています)ためのようです。オシロスコープで見るとL→H, H→Lの遷移時に振動しているのでこれをカウントしてしまっているのでしょう。
そういえばPLLとして動かしていた時、周波数の低いところで不安定になる現象がありました。一度周波数を上げてから少しずつ下げていったり、回路に触れたりすると同じ周波数でも安定することもあって不思議に思っていたのですが、もしかするとこの領域に入ってしまっていたのかもしれません。
制御電圧が下がりすぎないようリミッタを付けることを考えてみます。
コメントを追加