LinkStationを手に入れたらまず、最初にやりたいと思っていたことは、シリアルコンソールラインの引き出しです。LinkStationにtelnetでアクセスするには、通常LinkStationのHDDを別のLinuxマシンに接続して、イーサーネットのtelnetポートを開くという作業が必要というのが一般的なやりかたでしたが、私は絶対マイコンからローカルにでているシリアルラインの1つが、コンソールであると思っていました。 また、私はLinkStationをインターネットサーバーにしたいと考えているのですが、その際、外向きのポートとしてTCPポート23番telnetは絶対開いておきたくないので、そういう意味でもLinkStationにローカルコンソールが無ければ、外向きサーバーとしては失格だと思っていました。ですから、単なる興味本位というよりも、LinkStationにローカルコンソールがあって欲しい、という希望を込めて基板のパターンにオシロを当て始めました。
まず、最初に疑ったのは基板中央部に配置されてる16pinヘッダの空きパターン(CN5)です。マイコンから数本のラインがこの空きパターンに飲み込まれています。ローカルコンソールであれば、起動直後、ブートローダーが起動し始めてすぐに、パラパラとシリアル信号が見て取れるはずですから、そういう観点で16pinをオシロで当たってみましたが、それらしい信号は見つけられませんでした。この16pinヘッダはおそらくマイコン用デバッグポート(JTAGなど、JTAGにしてはピン数が多いですが)なのでしょう。
次に目に付いたのは、マイコンのすぐ横に配置されている4pinヘッダの空きパターン(J1)です。上と同じようにJ1の1番pinにプローブを当て起動直後の信号を観測してみると、でました。でました。いかにもシリアル信号らしい、ジグザグ波形が。この時点でJ1がコンソールポートであることを確信しました。私たちからみてのRXD(マイコンからみたらTXDですね)はわかりましたが、TXDはその横(2番pin)か?しかし、R76にチップ抵抗が実装されていません。パターンを見るとR75はTXD用のプルアップ抵抗であることがわかったので、R76はTXDを有効にする際に0オーム抵抗をつける必要がありそうです。出荷時は私のような解析野郎対策のためにもR76は未実装にしてるんでしょうね。 J1の3番pinは+3.3V、4番pinはGNDなので、外付けのRS-232Cレベル変換ICの電源も同時に供給できそうです。
まず、基板の方からちょこっと手を加えました。J1に4pinのヘッダを取り付け、R76はリード線の切れ端でショートしました。
次にRS-232C変換治具を製作しました。単にMAXIMのMAX232互換ICを使い、RS-232Cのケーブルを直接基板から延ばしました。
拡大写真。特に難しいことはしていません。このICはアキバの秋月電子で確か100円くらいで買ってきた物です。あと2個ぐらい部品箱の中に紛れているはずです。
早速LinkStationの基板に接続して動作確認です。通信速度は57600bpsでした。9600bpsか、19200bpsだと思っていたので、この通信速度を割り出すためにちょっと時間がかかってしまいましたが。。あと、Windows標準のハイパーターミナルだと、受信はOKでも、送信がNGのようです。Teratermを使えば送受信OKでした。で、取れたLogをlog_starting_ls.txtにおいておきます。
コンソール引き出しに成功しましたが、rootにはもともとパスワードが設定されておりログインできず、LinkStationのWeb追加画面で追加したユーザー/パスワードでログインできました。rootを乗っ取るには、一度別のLinuxマシンにLinkStationのHDDをマウントしないとダメです。
ご要望がありましたので、恥ずかしながらコンソールケーブルの手書き回路図をUPします。Circuit_ConsoleCable.pdf(PDFなので、Acrobat Readerが必要です。)回路図というほどのものではなく、どちらかというと配線図ですね。使用デバイスは、Sipex SP3232というMAX3232コンパチ品です。データシートはこちらからダウンロードできます。
普段、はんだごてを握っていない人にとっては、特にLinkStation側の細工は大変かもしれません。 J1端子にpinヘッダなり、ケーブルを直接半田付けする際、J1のスルーホールにすでにハンダが充填?されてしまっているので、これを取り除く際、加熱しすぎによる周辺素子破損や、パターンはがれに注意しないといけません。特に4番pinのGNDは、GNDパターンにより熱が拡散してなかなかハンダが溶けてくれません。私は、ハンダ吸い取り機を当てながら、基板裏面からハンダこてで熱して、一気にスルーホール内のハンダを取り除きました。 R76のショート作業もなれない人にとっては辛いかもしれませんね。チップ部品用のパッドは加熱しすぎるとすぐパターンが剥離してしまいますから、多少汚くても「すばやく」作業する必要があります。
玄箱の基板上に直接RS-232C変換回路を実装(?)しました。0.1uFコンデンサはチップタイプを使ったのでスマートに収まりました。
で、こんな感じでケーブルをはわせて…。
ケースのフロントからシリアルケーブルを出しました。この玄箱はサーバーで常時運用を開始しようと思っています。
LinkStationコンソール引出し