VR-500用RS-232Cインターフェース回路
- バーテックス・スタンダード(旧八重洲無線)のハンディ・レシーバーVR-500用のRS-232Cインターフェース回路(リンク・ケーブル)です.
- パソコンと接続して、パソコン上でメモリ・チャンネル等のデータ編集をおこなうのに用います.
- データ転送・編集用ソフトには下記のようなものがあります.
- (たぶん)同様の双方向インターフェースを用いている他機種(VR-120, VR-150, IC-R2, IC-R5 等)にも使えると思います. ただし機種によってコネクタ接続は異なります.
- RS-232Cインターフェースの動作マージンとロジックLSI(74HC00)内部の保護回路をあてにした「テキトー」な回路です. 残念ながら動作保証は出来ません.
- VR-500との接続には両端にステレオ・ミニプラグがついたケーブルを使います.
- RS-232Cの信号線(DTR, Data Terminal Ready)からの電流を電源に流用しています.
- 使用する半導体は74HC00とツェナー・ダイオードだけです.
- 74LV00や74VHC00, 74AC00等は使わないでください. この種の簡易インターフェース回路に高速のロジックLSIを使うと、スイッチング・ノイズの悪影響が出る場合があります.
- ツェナー・ダイオードZD1はツェナー電圧4.8V〜5.5V程度のものを用いてください.
- R1(1kΩ)はもう少し小さめ(470Ω〜750Ω程度?)の方が良いかもしれません.
- R2は74HC00(U1B)内部の入力保護ダイオードに流れる電流を制限します. 電源電圧を超える高電圧と、負電圧が入力に加わるので、R2が無いと74HC00が壊れる可能性があります.(R2がある限り保護ダイオードで過電圧から保護されます)
- R3は74HC00(U1B)の出力とVR-500側の出力が衝突したときに流れる短絡電流を制限します. R3が無いと、最悪の場合VR-500が壊れる可能性があります.
- R3(4.7kΩ)をシリコン・ダイオードに変更した、もう一つの回路図を以下に示します. 上記の回路図ではうまく動作しなかったときに試してみてください.
- この回路では74HC00(U1B)の出力がLowレベルになったときに、原理的にはVR-500から大きな出力電流が流れる可能性があります. VR-500の出力側はワイヤードORの形になっていて簡単に壊れるようなことは無いはずですが、100%の安全保証は出来ませんので使用は自己責任でお願いします.
- VR-500と同じバーテックス・スタンダード製でデータ入出力機能(クローン機能)を有するアマチュア無線用ハンディ・トランシーバVX1の回路図をたまたま入手しました. VX1のデータ入出力回路は下記のようになっていました. さすがは一流メーカー製で、ちゃんとD1,
D2, R1からなる保護回路がついています.(74HC00内部の保護回路と同様です)
- 静電破壊(ESD)の問題もあるので、保護回路の無いメーカー製品は考えられません. もちろんCPU内部にも入力保護ダイオードはついていますがCPUの端子を直接外に引き出す場合には、さらに保護回路を外付けします.
- VR-500も下図と同等の回路になっているものと推測されますが、これなら最初の回路図のRS-232Cインターフェース回路を接続して、電源電圧(3V)を越える信号(5V)が入力されても壊れる心配はありません.
- ただし、この保護回路が有効に働くのは、接続した外部回路の電流供給能力が小さいとき(内部抵抗が大きいとき)だけです. 安定化電源を直結して高電圧や負電圧を加えたりすると壊れてしまいます.
VR-500と同じメーカーのハンディ・トランシーバVX-1のデータ入出力回路
CPUの信号ピンを製品外部に引き出すことになるので、ちゃんとD1, D2, R1からなる保護回路がついている
- 写真は表面実装用の小型パッケージの74HC00を用いて、D-sub 9pinコネクタのシェル(カバー)に回路を納めた製作例です. 空中配線をして、最終的にはシリコンゴム系の接着剤で固めてしまいました. 部品点数が少ないので、小さなケースにも余裕で収まります.
- 金色に光って見えるのは74HC00に貼り付けた銅箔テープで、グランドパターンとして用いています.
- 回路図はステレオ・ミニジャックを用いるように描いていますが、写真の製作例ではケーブルの先に直接ステレオ・ミニプラグを取り付けています.
- 一番右の写真のVR-500についているアンテナはマグネチック・ループアンテナ、インターフェース・アダプタの先につながっているのは秋月電子通商のRS-232C/USB変換ケーブルです.
- Robert Parnass氏がGPL(GNU General Public License)で公開されているVR-500用のデータ転送・データ編集ソフトtk500を用いて、プログラムを立ち上げたまま何度もデータ転送を繰り返すとデータ化けや転送エラーが生じることがあります. この問題はtk500に下記のようなごく簡単な修正を加えるだけで回避出来ます.(Parnass氏のソフトウェアにバグがあるのではありません)
- 修正するファイルはtk500に含まれているtclのソース api500.tcl です. テキストファイルですから、普通のエディターで編集可能です. この中のパソコン側からVR-500にデータ転送をしている部分
SendCmd $Sid $xxxx
の前に一行付け加えて
waiter 10
SendCmd $Sid $xxxx
のように修正します. 修正対象箇所は4ヶ所ありますが全部修正してください. これで送受信切り替え時の待ち時間が追加され、データ転送が非常に安定します.(待ち時間無しだとスイッチング・ノイズの影響が顕著にあらわれます)
- Robert Parnass氏が公開されている他機種用のソフトも同様の修正を加えれば、簡易型のインターフェース回路を用いた場合の動作の安定性が向上するはずです.
- (組込開発以外の分野の)ソフト屋さんの中にはハードウェアを100%信頼しきっている方がいらっしゃるようですが、場合によってはハードウェアに起因するトラブルをこのようにソフト側の工夫でカバーすることが出来ます.
- ご紹介したインターフェース回路は実に単純なものですが、オシロスコープを使ってノイズ波形を観測しながらハードウェア側でノイズ対策を〜とはそう簡単にいきません. オシロのプローブの容量の影響があるため、正確な波形観測をするのは結構大変です. ノイズ波形観測にはそれなりの性能(帯域幅)のオシロスコープと低入力容量のアクティブ・プローブ(FETプローブ)が必要ですので、趣味の電子工作のレベルではソフト側の工夫で対処してしまうのが無難です.
- このような送受信の信号線を共用した簡易な1ワイヤ・インターフェースでは送受切り替え時のノイズ、タイミングの問題が出るのは仕方がないことです. なお、LSI間の通信等に用いられている規格化された1ワイヤ・インターフェースでは安定したデータ転送が出来るようにタイミング等も含めて厳密に仕様が定められています.
- 非同期シリアル通信では、昔よりもプロセッサの処理性能が向上して送受のウェイトタイムが短くなったために動作が不安定になり、後からソフト的な時間待ちルーチン追加で対処することがしばしばあります.