
ようやく出来上がった。
CPLD側のデータ出力処理がおかしかったのと、PIC側の入力をIOポートではなくラッチからとっていたり、読み込んだ周波数のLSBとMSBを逆さまに処理していたりと、たくさんのバグを片付けた。

オシロスコープの電圧は、1Ch、2Chが2V/divで、3Chが0.5V/div。3Chは、20dBの自作アッテネーターをつけている。
パルスジェネレーターについては、パルスが逆転しているものの、そのほかは大きな問題はなさそうだ。

まず、外部入力を終端した場合に本来なら0Hzとなるはずなのに、1Hzの表示が出ていること。これは、CPLDのカウンター処理部のタイミングがおかしいようである。
それから、小さなケースに詰め込んだため、LCDケーブルの信号がノイズとなってカウンターに入ってしまっている。これは、カウンターの感度が良いために、微小なノイズも拾っているということだが、カウンター部分をシールドすれば何とかなりそうな気がする。
試しに外部入力にケーブルをつなぐと1Hzに落ち着くので、実際の測定にはあまり影響がないかもしれない。
それから、時々カウンターがビジー中に息をつくように止まることがある。これは、12.8MHzクロックが不安定なのかもしれない。
同様に、プリスケーラ側に切り替えると、外部入力をオープンにした状態で2.5GHzあたりをうろうろしている。これも感度が高いためと思われる。上記と同様に外部入力を終端してみたが0Hzにはならず、GHzあたりの数字をうろうろとしている。つぎに外部入力にケーブルをつなぎ、400MHz前後で発信する被測定物の信号を与えるてみた。(3枚目の写真)
すると、それなりの数字が出ているので、よほど微弱な信号でなければ大きな問題ではないかもしれない。ただ、もう少し詳細なデータが必要だ。
以上のような問題はあるものの、以前作成した周波数カウンターに比べると格段に性能がUPした。このことはMAX2の性能が大きく寄与しているように思う。それから、コンパクトな形にしたので、使い勝手も向上したように思う。そして何よりもパルスジェネレーターが出来たので、MOS-FETの負荷実験などをすることができる。
細かなバグ直しや調整、機能測定は後日にすることとして、いったんこの製作は終了することにする。
PIC24F+RTOSプロジェクトファイル
MAX2_VHDLソース
設計資料と回路図
最後に、あちこちウェブから参考にさせていただいたおかげで出来たような訳で、それもあまりに多いので特別記載しませんが、この場を借りて諸先達たちに感謝申し上げます。