1.はじめに

シグナルジェネレータは、歪の少ないサイン波を出力します。これに対してクロックジェネレータは、0Vと5Vの矩形波を出力します。用途が違いますので、別に作っておくと便利です。例えばCPUのソフト開発などをしていると、クロックを任意に変えてみたい事があります。オシレータを交換するなどして、ある程度は対応できるのですが、細かい変化に対する違いは全く解りません。また、周波数カウンタを試す時には、直接ICに入力できる信号源となります。つまりプリアンプを作る前に、IC単体での動作確認ができます。

可変クロックジェネレータは、このような実験や開発に使う事ができます。今回もNo.100と同じ中国製DDSを使い、写真1のように作ってみました。

photo

写真1 このようにアルミ板上に組み立てたクロックジェネレータです。

2.回路

AD9850のデータシートには、このクロックジェネレータの回路が載っています。中国製DDSも、ほぼ準じた回路となっています。今まで何回も使っている格安の中国製DDSですが、不覚にもこの機能があった事に気が付きませんでした。信号を取り出すピンは7と8となります。8は反転端子になりますので、必要な場合は両方使えるようにしておきます。でも何の用途があるのでしょうか?。

図1に回路図を示します。回路的にはほとんどNo.100と同じです。ロータリーエンコーダはメカニカル式だけで十分ですし、電源はニッケル水素を4本使って動かす事としました。CPUにはATmega168Pを使っていますが未使用ピンが多く、もったいない使い方です。これは、私がこのCPUチップを標準として使っているためで、用途に応じてチップを使い分ける事もありますが、同一チップの方がソフト開発は簡単です。

photo

図1 クロックジェネレータの回路図です。 (※クリックすると画像が拡大します。)

後から気が付いたのですが、用途を考えるとそれ程高速にロータリーエンコーダを回す必要はありません。CPUのクロックは20MHzのクリスタル発振器を使って外部から与えていますが、ここは内部の8MHzのCR発振で十分だったと思います。これは何も考えずにNo.100の回路をコピーしたためで、設計思想に欠けていました。バランス的にもったいない感じになってしまいました。もちろん、光学式のロータリーエンコーダを使って、高速で細かく周波数を切り替えたいならば、クロックの周波数を上げて使う意味が出てきます。

3.作成

デジタル回路と割り切る事とし、普通のユニバーサル基板を用いました。写真2はレイアウト決めをしているところです。図2のような実装図を作成し、電源とグランド以外はほとんどジャンパーで飛ばしています。図2はジャンパー線を省略しています。図1と比べてみて下さい。このような作り方で十分でしょう。写真3はジャンパー線をハンダ付けしている途中の様子です。

photo

写真2 基板上のレイアウトをしているところです。

photo

図2 実装図です。ジャンパーは図1の回路図を参照して下さい。 (※クリックすると画像が拡大します。)

photo

写真3 このように、ほぼ基板の裏でジャンパー配線をしました。

基板が完成しチェックを行い問題がなければ、アルミ板に固定して完成とします。電源用の電池ホルダーもアルミ板にネジ止めしています。電源の取り方は、一長一短があると思います。他のユニットにつなぐならジャンパーピンで受け取る方法もありますが、単体で使う事を考えるなら内蔵する方が便利です。しかし、そこらじゅうのユニットでニッケル水素電池を使うのも不便です。

出力には2列のピンソケットを使ってみました。ジャンパーピンでブレッドボードや他のテストボードに接続する事を想定しましたが、オシロなどに接続する時には多少不便です。BNCコネクタかオシロ用の端子があっても良かったかもしれません。

ソフトはメカニカル式のロータリーエンコーダの変化を読み取り、0.1MHz〜40MHzを出力するようにしました。それ程細かく可変する必要ありませんので、100kHzステップとしています。多少回さないと端から端まで行けませんが、それ程の不便はないでしょう。ソフトはNo.100のDDSテストをマイナーチェンジしたものです。

ソフトダウンロード

なお、PCの環境はWINDOWS XPで、BASCOM AVRの製品版 VER.1.11.9.8を使ってコンパイルしています。書き込みはAVR ISPmkII ですが、基板のISP端子との接続には自作の変換ケーブルを使っています。これ以外の環境についての確認はしていません。

4.調整

DDS基板に付いているVRを調整する必要があります。オシロで出力を見ながらこのVRを回すと、出力が出るポイントがあります。最初は適当な周波数で50%になるように調整し、問題ないと思っていました。しかし気がつくと、30MHz以上で出力が出ていません。再度VRを調整すると出力するポイントがありました。50%に調整するよりも、最高周波数で出力する位置が良さそうです。オシロで50%を目視したのでは難しいようです。

このDDSをクロックジェネレータとした場合、VRの位置によっては出力が全く出ませんので注意が必要です。何台か試しましたが、最初から出力の出たものはありませんでした。従って、ずれていると考えておくべきでしょう。また、中央付近にしておけば良いというものではなく、割と狭い範囲でしか出力が出ません。もちろん、このDDSにも様々なバージョンがありますので、全てを試したわけではありません。

5.使用感

これでCPUなどの実験に使うクロックを、自在に作ることができます。写真4は本機を使って周波数カウンタのテストをしているところです。上手く動作の確認ができました。また、ATmega168Pのオーバークロックを試してみたところ、30MHz程度なら十分に動く事が確認できました。規格の20MHzに対して30MHzですので、実際にどこまで使って良いのかは、十分にテストする必要があります。早過ぎるとLCD表示が乱れたりします。

photo

写真4 周波数カウンタの実験をしているところです。

出力をデジタルオシロで見ると、測定結果1〜5のようになりました。周波数が高くなると波形が崩れているように見えます。元々が60MHzまでのオシロですから無理があります。そこで、基準の125MHzを下げてみました。すると、更に低い周波数でも波形が崩れ始めましたのでDDSのスプリアスが原因の一つのようですが、高い周波数では少々問題があるかもしれません。作り方も少々乱暴ですので、影響している可能性があります。

photo

測定結果1 デジタルオシロで写した100kHzの出力です。 (※クリックすると画像が拡大します。)

photo

測定結果2 同様に1MHzの出力です。 (※クリックすると画像が拡大します。)

photo

測定結果3 同様に10MHzの出力です。 (※クリックすると画像が拡大します。)

photo

測定結果4 同様に20MHzの出力です。 (※クリックすると画像が拡大します。)

photo

測定結果5 同様に40MHzの出力です。 (※クリックすると画像が拡大します。)

6.終わりに

簡単に、しかも安上がりに作る事ができました。これでクロックを使う実験で不便は無くなると思ったのですが、周波数カウンタの実験では2台あった方が更に便利と気が付きました。もしかすると、早速2台目に着手するかもしれません。いろいろな事に使用できそうです。