si5351aを使用した50MHz用VFOの製作
8ピンのAVRの買い置きがたくさんあるのでなんか作ります。ATTiny85はフラッシュメモリが8KByteもあるので複雑な処理もプログラミングできます。とりあえずsi5351aを使用して50MHzのAMトランシーバーでも作るかとVFOを製作しました。50MHzAM用としましたが、si5351aならどのバンドのVFOでも対応可能です。モードもSSBやCWでも対応可能です。出力周波数やステップをソフトウェアで変更するだけです。
回路図です。si5351aとLCDをI2Cで制御します。あとはロータリエンコーダーとスイッチですべてのピンを使っています。1ピンのRESETが未使用ですが、これをIOポートにすると普通のAVRライターで書き込めなくなります。最終的にはIOポートでも良いのですが、とりあえず書き換えする可能性があるので未使用とします。
中間周波数やフィルターの周波数に合わせて好きな周波数を設定できるのがメリットですが、実はそんなに単純ではありません。手持ちの14MHz台や10MHz台の水晶発振子に合わせてsi5351aの出力周波数をセットすると、やや大きなスプリアスがあります。このスプリアスは周波数により移動するのですが、基本波から-50dB程度とレベルが大きいのでやっかいです。(スペアナがなくても受信機でモニターするとよくわかります。)
周波数を変えながら近接スプリアスが少ないところを探します。12.288MHzの水晶発振子に対応させた38MHz台でクリアな出力が得られました。
部品数も少なく、AVRも8ピンとコンパクトなので、5cm角の基板にLPFも含めて実装しました。
APB-3で10kHzスパンと100kHzスパンで近接スプリアスを確認しましたがなにもありません。受信機でモニターしてもクリアに聞こえてその前後にはスプリアスと思われる信号は聞こえません。
高調波もLPFできっちりと落ちています。
AVRのプログラムソースです。スイッチでステップ切替としていますが、AMなら基本1kHzステップでスイッチ入力でRIT-ONとして100Hzステップとしてもよさそうです。スイッチを長押しするとIFの設定モードとなります。IFの周波数に合わせて1Hz単位で変更が可能です。設定値はEEPROMに記録されます。また、長押し時の周波数がデフォルト周波数として記録されるので、次に電源を入れるとその周波数で立ち上がります。ソースで周波数範囲を変更すれば144MHzまでのバンドに対応可能です(ただし、近接スプリアスに注意が必要)。I2Cのライブラリは、Tiny用ならどれでもOKです。今回は、ばんと(bant)さんがGithubで公開されているTinyI2CMasterを使用させていただきました。