電子工作では、回路が正しく動くか試すために、決まったリズムの電気信号を送り込みたい場面がよくある。この信号を作り出す道具が信号発生器だ。ただ、必要な速さ(周波数)は用途ごとに違うため、愛好家は複数の発振器を引き出しにため込みがちになる。David Johnson-Davies氏は、その役目を1台でこなす信号発生器を自作し、回路と作り方を自身のWebサイトで公開した。
この「Digital Signal Generator」は、1秒間に2回というゆっくりした信号から、約3350万回という速い信号まで、幅広い範囲を1台でカバーする。しかも、2回きざみという細かさで、目的の速さにぴったり合わせられる。作りたい周波数は、電卓のようなキーで打ち込むか、つまみを回して調整でき、今の値は小さな画面に表示される。
心臓部には、Microchipのマイコン「AVR16EB28」を使う。このマイコンには、周波数を細かく刻んで作るのが得意な回路が備わっている。多くのマイコンは、速い基準信号を割り算して目的の周波数を作るが、この方法だと、きりのいい値にならず、飛び飛びになりやすい。一方このマイコンは、目的に合わせて少しずつ数を積み上げていく方式で信号を作る。おかげで、範囲全体にわたって、均等で細かい刻みが得られる。
正確さのための工夫もある。マイコンにもとから入っている時計は、少しずつずれることがある。そこでJohnson-Davies氏は、より狂いの少ない水晶を、時計代わりの基準に選んだ。腕時計にも使われる、周波数の安定した部品だ。その信号をマイコンの中で16倍に引き上げてから使うことで、細かくて正確な刻みを両立させた。
回路は、部品を挿すだけで組めるブレッドボード1枚に収まる。この方式には、速さによって信号がわずかに揺れる弱点もあるが、平均すれば正確で、速くなるほど揺れの影響は小さくなるという。回路図もプログラムもすべて公開されている。手元にいろいろな周波数を用意しておきたい人には、参考になる作りだろう。