BK4802はおもちゃのトランシーバ用に作られたICのようで、200円台と安価ながら簡単に500MHzくらいまで扱える便利なチップです。
本来はトランシーバ用のICですから、受信だけでなく送信もできます。
しかし今回は送信は一切行わず受信のみで使っています。
データシート上の送受信周波数は下記の範囲です。
(1) 24MHz〜32MHz
(2) 35MHz〜57MHz
(3) 128MHz〜170MHz
(4) 384MHz〜512MHz
エアバンドの周波数帯も含まれてはいますが、BK4802の復調はFMのみなので、AM変調が多いエアバンドの受信には向かないのが残念です。
本機で使用しているUSBのライブラリやUSBのIDについては、マイクロチップ社さんのサンプルで提供されているものを利用しています。よって本機は必ず個人利用の範囲内に留めてください。
こんなものを商品化する方はいないでしょうが、念のため・・・

電源はUSBからの5Vを使います。
マイコンのPIC16F1454はそのまま5Vを与えて、BK4802は3.3Vのレギュレータを介して供給します。
BK4802のクロックは74HCU04の発振回路で作っています。
というのも、発信周波数の調整で周波数カウンタを使いますが、うちはハイインピーダンスのプローブがないので仕方ないのです(汗
ちゃんとした測定器をお持ちの方は、通常通りXIとXOピンへ水晶をつないだほうが簡単です。
電源電圧はマイコンの5Vに対して、BK4802は3.3Vです。
この差を吸収するため、I2Cの通信はMOSFETで双方向のレベルシフタを構成しました。
BK4802の15ピン(SQ)には220kの抵抗をつないでいます。
ネットでの作例では10kがほとんどですが、なぜか私の場合は10kだとスケルチが開きませんでした。そこで、一つだけ220kを使っていた作例があったので、この値にしたところ受信できるようになりました。
本機は受信専用なので、RF入力のローパスフィルタはいらないだろうと省略しています(乱暴)
ただし入力部の保護ダイオードは入れておいたほうがいいと思います。
内蔵スピーカは秋月さんにあった UM1515IA085008 を使いました。
ケース内が狭いせいか音がこもりがちです。
PCから受け取ったレジスタデータをBK4802に送信するだけの単純なソースです。
Windows 64bit環境用
BK4802VFO_v100.zip 23Kbytes
[メイン画面]

BK4802VFO.exeを起動すると上図の画面が表示されます。
POWERチェックボックスはBK4802の電源をON/OFFします。
実際には電源OFFはBK4802をアイドルモードに移行します。
POWERチェックボックスの下は周波数表示です。
周波数の右のUp/Downボタンか、マウスホイールで周波数を変更できます。
DIAL-LOCKは周波数の変更をロックします。
Bandは、受信したい周波数を含む範囲を選択します。
Tuning-Stepは周波数をUp/Downさせるときの増減単位を設定します。
Volumeは音量の調整です。
Squelchはスケルチレベルの設定です。
テンキーから周波数を入力する方法を下記に示します。
399.8MHzの入力例です。
最後にENTキーを押すと、先ほどの "8" と入力した部分が自動的に左へ寄せられ、周波数が確定します。

(補足)MHz未満を "800000" のように全て入力しても構いませんが、面倒なので上の方法で入力したほうがいいですw

BSキーは1文字削除、CEキーは入力クリア、CANCELはテンキー入力をキャンセルします。
入力した周波数はTuningStepに影響を受けます。
例えばTuningStepが10kHzのときに 380.2125 と入力すると、周波数の確定結果は 380.210000 になり、ステップ単位未満の2.5kHzは切り捨てられます。
あとはメモリ機能が欲しいところですね・・・
Windows 64bit環境用
BK4802MarineVHF_v100.zip 21Kbytes
[メイン画面]

BK4802MarineVHF.exeを起動すると上図の画面が表示されます。
POWERとVolume、そしてSquelchはVFOと同じ機能です。
チャンネル切り替えはそのボタンを押します。
チャンネルによっては、海岸局と船舶局の周波数がそれぞれ別に割り当てられています。
これに該当するチャンネルの場合は Coast/Ship のラジオボタンが有効になり、海岸局と船舶局の周波数を切り替えられます。