USB-シリアル変換器
\CAPTION\
\CAPTION\
\CAPTION\ \CAPTION\
本ページでは開発した、USB-シリアル変換器を紹介します。

開発といっても、ほぼICのデータシート通りの回路です。

ここでは2種類を紹介します。
一つはいわば、フルクラッチで、基板を起こし、チップ部品を半田付けしてつくった変換器で、2チャンネルのシリアル回線が得られます。
もう一つは秋月電子で売られているものだけで作ったUSB-RS422変換回路です。 前者が一般向けでないのは明らかなので、SICK LMS200を「一般向け」で接続できるように作りました。

FTDI社製変換チップFT2232Cを用いて開発した変換器を紹介します。

本変換器の仕様は、同一の基板で部品の実装によって以下の3種類のいずれかになります。

  • 2ch * RS232(max 460kbps、Rx,Txのみ)
  • 2ch * RS232(max 460kbps、Rx,Tx,RTS,CTS)
  • 1ch * RS232(max 460kbps、Rx,Tx,RTS,CTS)
    +1ch * RS422(max 3Mbps、R+/R-,T+/T-)
具体的には、使用するチップであるFT2232が2チャンネルのシリアルポートを持ち、そのあとにRS232/422のドライバICをつなぎ替える点が異なります。


基本的に、FT2232周りはFT2232Cのデータシート通りにした回路です。
以下、細かいところをノートしておきます。

  • LED以外は全部フラットパッケージ、R,Cは1608型チップ部品です。
  • 発振子 XC1は、パターン共通で、3端子のセラロック(6MHz)と2端子の水晶振動子(HC-49/S 6MHz)を実装できます。セラロックの場合は1MHzの抵抗R6を並列に、水晶の場合はコンデンサC12,13を並列に取り付けます(値は目安)。
    なお、安物セラロックの場合、通信先から信号に大きなスイッチングノイズなどが乗ると、FT2232がハングすることがありました。水晶のほうがちょっと高いものの安定性は高そうです。
  • RS232ドライバ(MAX232A/SO, 互換:ADM3202ARN@秋月I-1279)のうち、U2は共通で実装。U4はオプションです。
  • U2のみ実装+セレクタジャンパS1,S2をともに1-2ショート→(Rx,Tx)*2型、入出力端子はJ4。
  • U2, U4を実装+セレクタジャンパS1,S2を2-3ショート→(Rx,Tx,RTS,CTS)*2型、入出力端子はCh1がJ4、Ch2がJ5(J5は専用シルク無し)
  • U2,U3(RS422ドライバ)を実装、S1,S2を解放(or 2-3ショート)→RS232+RS422。RS232はJ4、RS422はJ5。
  • なお、USBのBコネクタは用意していないので、USBケーブルを切って、J1に半田付けすることになります。
  • J2,J3は送受信インジケータのLEDをつけます。抵抗は目安です。
  • 基板パターンは部品番号のスペースが無かったので、回路図と見比べて半田付けの必要があります。
  • 基板外周の四角枠は、上辺が右からJ4,J5、下辺が右からJ2,J1,J3です。
  • 基板データはOLIMEX対応で設計してあります。
予め、FTDI社WEBサイトから、Drivers→VCPドライバをダウンロードしてインストールしておきます。あとは、普通につなぐと認識されれます(回路が悪いと、不明なデバイスとか、認識失敗とかエラーがでる)。

その後、ドライバの設定を行います。 今時のLinux2.6ではカーネルソースにドライバが含まれていて、何もせず、USBコネクタに接続するだけで、おしまいです。 しかも、特殊なことせずに、3Mbpsまで設定できます。詳細はLMS200接続のページにて。

当研究室では、秋月電子 AKI H8/3052マイコン基板用の書込制御通信に、お手軽ツール、通称「カチカチ君」をつかっています。H8/3052のもつ2系統のシリアル通信の接続に加え、マイコンのリセット、書き込みモードの切り替えが手元まで延長できます。

USB-シリアル変換回路を作る前から、これは存在していて、もとは、右図上に示すように、PCからのケーブル、または市販のUSB-シリアル変換ケーブルを接続するためのコネクタの付いたAパーツ(左)と、マイコンにつなぐBパーツからなります。
これらは、CAT5等のイーサネットケーブルを流用して接続します。

マイコン側Bパーツは中にリレーが入っています。

CAT5のケーブルが8芯なのに対して、機能に必要な線が9本あるため、Bパーツ内部のリレーで書込のための切り替えそのものを行い、リレーのオンオフのみをAパーツまで延長しています。

Aパーツ側は、

  • シリアル線をクロス接続する。
  • Dsub 9PコネクタでRTS,CTSはショートしておく。
  • Bからくる電源(5V)とGNDで、電源確認LED(赤)を適当に光らせる。
  • Bからくるリセット(RES)をプッシュスイッチでGNDに落とす。
  • Bからくるリレー(RYSW)をトグルスイッチでGNDに落とす。
という配線になっています。

ケースは最初からRJ45がついた、モジュラ配線ケースが近くの部品屋さんにあったので、削ったりして使っています。
※このモジュラー8芯用接続ボックスが通販できるようになりました。


もともと、USBシリアル変換回路はこのカチカチ君を簡略化するために開発しました。
最近はPCにシリアルポートがないことも多く、市販の変換ケーブル2本つなぐくらいなら直結がいいと考えたのが、もとです。
ので、基板はこの箱に収まるように設計してあります。
従来のカチカチ君AパーツからDsubを省いて、変換回路を内蔵しただけです(写真中、愛称 ZZ(ダブルゼータ))。
基板は、LEDのケースへの圧入のみで固定しています。


さらに、RS422対応のために Dsubコネクタを取り付けたものが、写真下の回路です。 SICK LMS200の通信コネクタと1対1対応のストレートケーブルでつなぐよう、Dsubコネクタを配線しています。
秋月電子社製の USBシリアル変換モジュール(K-1077, AE-UM232R, 950円)と、同じく秋月社で販売されている、 RS485/422トランシーバ LTC1485(I-1869, 300円)2個といくつかの汎用部品で作った変換器を紹介します。

仕様は先の2チャンネル変換器の1チャンネルのみ版であって、

  • 1ch * RS422(max 3Mbps、R+/R-,T+/T-)
です。もちろん、RS232にすることもできるはずですが、目的が422なので、確認はしていません。
回路図はまだ書き起こしていません。とりあえず、実体配線写真。

  • 各データ、LMS200のマニュアルをもとに結線。
  • LTC1485がRS485型の送受一体端子なので、2個使用して、一方は送信をdisableして、受信専用(6-7ピン間に抵抗=100Ωがみられるほう)にして、もう一方は受信をdisableして送信専用に。
  • モジュールのジャンパを切り替えて、VCCIOを5Vにして、LTC1485と整合をとる。
  • 変換モジュールのLED端子に抵抗(1k)経由でモニタLEDを接続。
  • Dsubの7-8pin間のジャンパは重要。(これでLMS200がRS422モードに切り替わる)
基本的に、FT2232のサブセットなので、ドライバ、使用法ともに共通です。

WindowsではFTDIのドライバを入れておけば自動認識しますし、Linuxでも、カーネルが対応していれば、そのまま"/dev/ttyUSB?"に認識されます。