シリアルレベルコンバータ

2003. 10. 7

カメラ付き携帯電話入手

事の始まりは、Jフォンの携帯電話「J-SH09」を手に入れたことでした。この携帯電話、31万画素CCDカメラがついておりまして、その性能たるや、 MI-E25DCよりもいいんじゃないの?と思うほど。いや実際、ストロボがついてたり、ポケットにすんなり収まってくれたりするという点から、個人的に は優れてると思ったり。どんなに控えめに見ても、CE-AG06よりはいい。
ですが、このJ-SH09からVGAサイズの写真を吸い出すには、Windows PCを使って、シャープ謹製のグラフィックマネージャを使わないといけないという悲しさ。(実は、ケータイリンクVでも可。)
でもね、iBookに移行した身としては、できれば、Windowsを使いたくないんですよ。わかってくださいよ。

そんなこんなで、iBook用にコマンドラインで画像を吸い出すソフトを作ってみました。動くようになりました。めでたしめでたし。
…で、普通なら終わるのですが、どうせなら、ザウルスで吸い出せたらいいじゃん、MI-TR1のVGA液晶で表示できたらかっこいいジャン!と思ったので す。(その後しばらくしてMI-TR1は売却されたが。)

ザウルスのシリアルは特殊

シリアル変換ケーブル」というものをずいぶん前に作りましたが、これと携帯電話メモリ編集ケーブ ルをつないで、iBook用に作ったソフトを移植したらいいかな〜、と思いました。SLシリーズ向けだったら、クロスコンパイルするだけだったし。

そんなことを思っていたら、ちょうど、ソフマップでメビウス用cdmaOne接続ケーブル「CE-PT04」がジャンク扱いになっていたので、買ってきま して、前述のシリアル変換ケーブルを新しく作り直しまし た。前作とちがって、あらかじめケーブルが配線されているので、5本しか配線されていない、という手抜きをせずにすみました。
Serial Cable Ver.2
写真1:シリアル変換ケーブル Ver.2とSL-5500

まずは、パソコン用のシリアルタイプのケーブルがあったので、SL-5500 + 変換ケーブル + メモリ編集ケーブル + 携帯電話、という感じでつないでみました。ですが、うまく通信ができません。
それもそのはず。ザウルスのシリアルポートから出ている信号はちょっと変わっていて、一般的なものとは信号のアップとダウンが逆になっているんだそうで す。簡単に 言えば、普通は電圧が高くなったときにONになるのが、ザウルスはOFFになる、というような。だから、「通信を始めるよ!」という合図が「通信を終わる よ!」という信号になるようなもの。
うーん、だったら、なんでGPSからデータを読みとれたのかな〜。

ともあれ、これを一般的な仕様にするには、ロジックコンバータというのを使ってやる必要があるのだそうです。
有名どころだと74HC04というICがあって、汎用的に使われているようです。

しかし、なんでこんな特殊な仕様になっているんでしょうね?PIザウルス時代(当時はオプションポート15)にあったハードウェアバグをそのまま引きずっ ている、とかいうオチなのかな?

電圧注意!過電圧でザウルスが吹っ飛ぶ?!

ただ、筆者は電子回路は苦手なのでございまして。電子工作は小学4年生ぐらいからやってるくせに、回路設計なんてやったことないから、てんでわかんない。
そこで、お友達のバトルプログラマー(謎)に助言をいただきました。まずは、反転回路を入れたケーブルの案を見せると、

「これじゃザウルスが壊れるよ」

もう、ひどく、あっさりと答えていただきました(涙)。

「RS-232Cって12Vが前提だからね。5Vが主流になったのは結構、最近だよ。」

この方の時間感覚で言う最近というのが、5年やぐらいの一般的な最近かどうかは別として、現実的に12Vのデバイスも考えておかなくちゃだめだよ、 ということですね。
さて、オプションポート16の仕様書をみると、MIシリーズでは最大絶対定格が入力は5.3Vです。
一方、SL-5500は最大絶対定格が3.6Vです。
12V前提のデバイスをつないでやったら、あっさりと壊されそうな予感です。
5V前提のデバイスでも、SL-5500を破壊する可能性 が…ああ、マイナス5Vの側にも振れるので、MIザウルスでも危ないですね。
一応、保護回路なのか、入力電圧をプルダウンしてはいるみたいなんですが、過大な信用は禁物。
これまで、GPSをつないだり、クロスケーブルでPCにつないでも問題がなかったのは、「運良 く壊れずに済んでいた」といったところですか。やばかった〜。

レベルコンバータで解決

さて、ここで登場するのが、レベルコンバータICです。
このICは、組み込み機器で多く使われる、TTL/CMOSレベルのシリアル信号(〜5Vなど)と、RS-232Cの信号レベル(±12V)を変換してく れるという便利なものです。
今回は、MAX3232というICを使いました。
このICは、駆動電圧が3Vでも5VでもOKなので、MIザウルスでもSLザウルスでも動かすことができます。

これの回路図を入手して、実験的に作ったのが、「シリアル変換ケーブルVer.3 - シリアルレベルコンバータ」です。

Serial Cable Ver.3
写真2:シリアル変換ケーブル Ver.3とSL-5500

74HC04、MAX3232、セラミックコンデンサ6つを配線したプロトタイプです。
基板むき出しですから、かっこわるいですね。2本のケーブルの太さも違うし。
今回は、ICのパッケージは作るのが簡単なように、DIPパッケージ(いわゆる、ゲジゲジ)を使いましたが、面実装タイプのパッケージもあるので、そちら を使えば、コネクタケースの中に納めることも可能かも。

このケーブルを使って、携帯電話メモリ編集ケーブルをつなぎ、SL-5500用にコンパイルした"celrw"というUNIX用の携帯電話メモリ編集ソフ トで動作を確認しました。

さて、プロトタイプはできたんですが、ケースにも入っていなくて格好が悪いので、作り直すことにしました。
その結果が、下記のVer.4です。

Serial Cable Ver.4
写真3:シリアル変換ケーブル Ver.4とSL-5500

ケーブルが1本になって、シンプルにはなったのですが、ケースが大きく、実装面積もVer.3より大きいんです。ちょっと持ち運びには不便かな。

次の目標:携帯電話メモリ編集ケーブル for Zaurus

実は携帯電話のメモリ編集ケーブルの中には、RS-232C <=> CMOSのコンバータが入ってるんですよね。
結局、「(ザウルス)CMOS <=> RS-232C <=> CMOS(携帯電話)」ということになっているので、MAX3232を省けそうなんだけど…
ところが、携帯電話は5Vを前提に作られていて、3.3V前提のSLザウルスでは、やっぱり、レベルコンバータが必要なんですけどね。
それでも、2段にするのは無駄なので、3.3V <=> 5Vの変換が駆動電圧3.3VでできるICを探そうと思います。

それより、J-SH53を買って、SDカードでデータをやりとりした方がいいんじゃないか、という話が…(苦笑)

参考資料

SL-C700 I/Oポート仕様書 SLザウルス向け
オプション ポート16の端子配列、電気的仕様に関する情報 MIザウルス向け
UNIX で携帯のメモリを読み書きしよう 実験用に使わせていただきました。


ザウルス工作室
Copyright (c) 2002-2003 Oze. All Rights Reserved.