事の発端は、mixi の P6 コミュニティで、contiki というマルチタスク OS を P6 に移植している方がいらっしゃるのを知った事でした。彼は RS-232C カードを探してらっしゃって、某 N さんの「どなたか RS-232C ボード製作するつわものはいらっしゃいませんか?」という発言が、僕の背中を押したのでした。もちろんつわものでは無いですが、某 M さんが、P6 側のかなり詳しいハード情報を投稿下さったので、もう引くに引けず(笑)、とにかくやってみることにしました。しかしその後、contiki の作者さんはオリジナルの RS-232C ボードを手に入れる事になり、制作した RS-232C カードは現在、私の手元にあります。。。
名古屋での部品調達は、比較的容易でした。25 ピンの D サブの基板直付け用コネクタが激安(100円)で買えましたし、P6 と繋ぐコネクタも、少しタイプが違いますが何とか使える物が手に入りました。8251 は630 円と高価でしたが数個の在庫がありました。MAX232 の代わりに、ADM3202 という石が安く買えました。ADM3202 は、秋葉原の秋月電子商会が売っている物で、通販でも買えます。
西田ラヂオでの経験のおかげで、プリント基板の製作は短時間で終わりました。ところが、私の知識不足で、後でかなり修正を入れる事になったのですが。。。
以下に回路を示します。入手した 8251 (TMP82C51AP-2) は 5 MHz まで使えるとのことなので、CLK には 3.9936 MHz をそのまま入力、RxC, TxC には、7.9872 MHz をまず13分周して、さらに2分周〜16分周しました(4800 BPS - 600BPS)。13 分周がポイントで、値が 1100 になったら、カウンタをクリアするようにしています。そのため、CLEAR 信号が同期入力である 74LS163 を使っています。2〜16 分周は、CLEAR 信号が非同期入力である 74LS161 を使っています。300 BPS が出来ない以外はオリジナルと同じつもりです。
一番苦労したのは、8251 の RxRDY が割り込み信号ですが、極性を反転して P6 に入力しなければならなかったことです。割り込みが入りっぱなしになるので、そういうもんかと思ってたら、RxRDY 信号を H にすると割り込みが止まる事がわかりました。反転しなければならなかったのです。
検証は、とりあえず2台の P6 を繋いで、ROM 内ルーチンを使ってデータを転送出来るかやってみました。問題なく動作させる事ができました。
回路には間違いがあるかもしれませんので、各自の責任においてご使用願います。
このような機会を与えて下さった皆さんに感謝致します。とても楽しむ事ができました。欲しいけどハード工作が苦手で、という方は、西田ラヂオさんに相談してみましょう(笑)。
それでは皆さん、ごきげんよう。