このブログを始める時点でもう所有していた、いわば創業メンバーのHD68P05V07。いままで話題にしなかった第1の理由はプログラミングモデルがシンプルすぎてまともな仕事をやらせる自信がなかったから。実質2本の8ビットレジスタだけで動かさなければならない上にPUSH/POP命令がなくて使い回しが難しい。あかん、と思っていたらcafe2.54さんがブログに<HD68P05V07で工作>を投稿してくれたんで、じゃあボクもやってみる。

いままで手を付けなかった第2の理由は、やろうと思えばいつでもできそうだったから。ピギーバックって電源だけつなげばすぐ動くイメージだよね。実際はクロックジェネレータの外付け部品とかリセット回路とかが必要だし、電源まわりに電源スイッチとパイロットランプを付けようとすればなおのこと面倒になる。ざっと揃えてみた部品が下のとおり。あらら、抵抗2本とICソケットとピンソケットとユニバーサル基板を忘れてる。

実体配線図と回路図を下に示す。実体配線図は秋月電子通商の片面ガラスCタイプのユニバーサル基板に組み立てる想定で描いてあり、配線しやすいよう底面図とした。部品の定数は回路図に書き込んである。抵抗R2は欠番。リセットスイッチと直列に入れてあったのだが大した働きをしていないから省略した。その点と一部の抵抗の定数はこのあと示す製作例の写真と一致していない。雑な設計で作り始めてからいろいろ見直す性分。

別窓でPDFの回路図を開く
別窓でPDFのHD68P05V07日本語データシートを開く
HD68P05V07の両側には必要に応じて回路を追加できるようにピンソケットを立てておいた。このピンソケットは普通に取り付けたらHD68P05V07が押し広げる格好になってしまったので、これから作る人はユニバーサル基板の穴の径が許す限り広げて取り付けるほうがいい。そのほかDCジャックやタクトスイッチの脚がユニバーサル基板にはまらないなどいろいろな問題に直面するだろうが、そこは各自の工夫でうまいこと解決してほしい。

これで何をやるか、作ったあとで考えるのが趣味の電子工作。追加の製作なしにいける面白そうなことといったらHELLO, WOLDかな。ハードウェアはUSB-シリアル変換ケーブルを下のとおりつないでおしまい。あとはソフトウェアシリアルでやる。目標は、1文字出力を作って文字列を出力、ついでに1文字入力も作ってエコーバックを成功させる。製作の担当者としてはそこまでが業務範囲であとは知らんというのがこのブログの方針。

ソフトウェアシリアルは過去に何回か成功させていて複数の作り方を承知している。タイマ割り込みを使う方法が見た目かっこいいが速度が出ない。愚直に命令を並べ、実行クロック数を数えてタイミングをとることにした。この方法は、普通の人には簡単だが、そそっかしいやつはよく足し算を間違える。UV-EPROMを消しては書いているうちにEEPROMが使えるんじゃないかと思って試したらなんとW27C512まで大丈夫なことがわかった。

かくしてHD68P05V07のソフトウェアシリアルが完成、通信速度9600bps、通信形式8N1でHELLO, WORLDとエコーバックテストに成功。アセンブリ言語のソースHELLO05.asmをGistにあげておく。入出力に使うポートはどこにでも設定可能。これがソフトウェアシリアルの利点だよね。ただひとつ残念ながら文字列出力をサブルーチンの形にまとめられなかった。そこはプログラミングモデルがシンプルすぎるHD68P05V07の限界。

面白そうだから作ってみよう、なんていう人はいないと思うが、レポートの様式としていちおう再現性を担保しておく。HD68P05V07は若松通商に在庫がある。ROMは本来2732を使うのだが前述のとおりW27C512が使えて、そのほうが安いし便利。後半の$F000以降が有効で、それより前は無効。W27C512はオレンジピコショップで販売している。あとは現役の平凡な部品。秋月電子通商と千石電商の2件だけで間に合うはず。

このブログでは動作確認に成功したあと次のふたつをやることが恒例になっている。ひとつはプリント基板を頒布すること、なんだけど今回は手配線しても大した手間ではないからやめておく。もうひとつは得意満面で自慢すること。どや!!