前回、Galileo用のシリアルポート用ケーブルを作ったけど特殊なのでもっと汎用性のあるものを、と考えArduinoの通信などに使うUSBシリアル変換アダプタをRS232Cのレベルに変換する工作をした。使い勝手を考えてFRISKケースに入れた。

 USBシリアル変換アダプタはこういうものです→FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)
 レベル変換に使ったのは手持ちのADM3202。こちらのセットは必要なコンデンサやICソケットも一緒になっている→RS232CインターフェースIC(DIP)ADM3202AN(2個入)

 Galileoのシリアルポートは3.5mmのピンジャックで、先端がRxD、真ん中がTxD、根元がGND。なのでアダプタ側は先端がTxD、真ん中がRxD、根元がGNDになるようにしなければならない。

2014GalileoSerialschm

Intel Galileo回路図(PDF)

 こんな感じで作った。
GalileoSerial_2014-02-07 11_28_38
 ピンジャックには3.5mmステレオミニジャックDIP化キットを使っているがFRISKケースにぎりぎり収まらないのでハンダ付けした足をカットする必要がある。というか基板にハンダ付けするんじゃなかった。ユニバーサル基板は適当にカット。基板裏にハンダを盛るとやはりケースに収まらなくなるので、ICは浮かせてハンダ付けしてある。C5は電解コンデンサを使ってるが実際は0.1μFでもよい。
 RTSはオープン。CTSは一応GNDに落としている。

 USBシリアル変換アダプタは3.3Vでも5Vでも動作する。

 これでGalileoのブートメッセージを採取した。https://gist.github.com/houmei/8856634


 さてここからは失敗談。簡単な回路だと思いデータシートを見ながら適当に工作して接続したら、受信はできるが送信はできないという状態になった。Windows/TeraTerm接続とMacOSX/SerialTools接続で送信文字が見えたり化けたりする。エコーバックはおかしいがブートメッセージの表示はできるので送信のレベル変換がおかしいのでは?とおもいV+とV-を観測したらVccと同じレベルだった。見なおしてみるとチャージポンプ用のコンデンサ付けるのを忘れてた。ということで簡単な回路でもちゃんと自分で回路図描きましょう。