最終更新日:2026/04/22


法人向けのETC専用カード


はじめに

BK4802を使った受信機を作りました。
本機はUSBでPCと接続して、PCから周波数などを制御します。

BK4802はおもちゃのトランシーバ用に作られたICのようで、200円台と安価ながら簡単に500MHzくらいまで扱える便利なチップです。

本来はトランシーバ用のICですから、受信だけでなく送信もできます。
しかし今回は送信は一切行わず受信のみで使っています。

データシート上の送受信周波数は下記の範囲です。
 (1) 24MHz〜32MHz
 (2) 35MHz〜57MHz
 (3) 128MHz〜170MHz
 (4) 384MHz〜512MHz

エアバンドの周波数帯も含まれてはいますが、BK4802の復調はFMのみなので、AM変調が多いエアバンドの受信には向かないのが残念です。

[外観] PCから操作するのでシンプルな外観です。

[前面] 音声出力ジャックと、小型スピーカです。

[背面] USB端子とアンテナ入力端子です。

[内部] ケースはタカチさんのSW-95を使用しました。


注意

もし何らかの損害が発生しても当方は一切責任を負いませんので、あくまでも自己責任でお願いします。

本機で使用している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 を使いました。
ケース内が狭いせいか音がこもりがちです。


ファームウェア

PIC16F1454用ソースとHexファイル
bk4802usb_v100.zip 108Kbytes
上記ソースはXC8用で、アーカイブファイル中のcompile.batでコンパイルできます。

PCから受け取ったレジスタデータをBK4802に送信するだけの単純なソースです。


Windows側のアプリケーション

VFOモード

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の入力例です。

まずMHzを 399 と入力します。

次に小数点キー "." を押すと、MHzが確定します。

続いてMHz未満の "8" を入力します。

最後にENTキーを押すと、先ほどの "8" と入力した部分が自動的に左へ寄せられ、周波数が確定します。

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

BSキーは1文字削除、CEキーは入力クリア、CANCELはテンキー入力をキャンセルします。

入力した周波数はTuningStepに影響を受けます。
例えばTuningStepが10kHzのときに 380.2125 と入力すると、周波数の確定結果は 380.210000 になり、ステップ単位未満の2.5kHzは切り捨てられます。

あとはメモリ機能が欲しいところですね・・・

Marine VHF(国際VHF)専用アプリ

Windows 64bit環境用
BK4802MarineVHF_v100.zip 21Kbytes

[メイン画面]

BK4802MarineVHF.exeを起動すると上図の画面が表示されます。

POWERとVolume、そしてSquelchはVFOと同じ機能です。

チャンネル切り替えはそのボタンを押します。

チャンネルによっては、海岸局と船舶局の周波数がそれぞれ別に割り当てられています。
これに該当するチャンネルの場合は Coast/Ship のラジオボタンが有効になり、海岸局と船舶局の周波数を切り替えられます。


参考資料

JK1MLYさんのWebサイトが参考になります。
BK4802は公式の詳しいデータシートが出回っていないので、先人の方々の記事が頼りになります。

当サイト内の検索