Developping History
左のフォトが試作第二版のフォトインターラプターを使用した非接触型フットスイッチです。基盤はサンハヤト製のSMD-IC変換用の汎用品を利用しています。裏面にはセンサ受け用のコンパレータMAX965、オルタネイト動作を行う74HC74、信号切り替え用のアナログスイッチMAX4541が実装されています。フォトインターラプターはAgilent(旧HP)のHBCS-1100を使用します。このセンサーは本来はバーコードリーダーのために開発された製品で、8p のメタルキャンパッケージにLEDと受光部が封入されています。スイッチオンの距離は約5mmほどなので、フットスイッチとして使いやすそうな仕様です。また、このセンサーは本来単価が3000円を超える高価なモノなのですが、たまたま見つけたショップではHPの新古品として1000円で購入することが出来ました。Agilentから取り寄せると、一個9000円します。海外の安い通販でもだいたい3000円前後の値段なので、運が良かったと思います。

では、回路の説明をしましょう。センサー用LEDには600ohm程の抵抗で電流を供給します。この際、絶対最大定格を必ず確かめましょう。受光部の出力インピーダンスはかなり高いので、コンパレーターの入力インピーダンス設定に注意します。接続は反転入力に直結する方法と、非反転入力に入力する2つの方法がありますが、今回は非反転入力にLEDの出力を接続します。非反転入力は8Mohm程の高抵抗でグランドに接地します。コンパレーターの基準電圧は2V程とし、ヒステリシス設定は100mVにプログラムしました。出力はオープンコレクターとなっているのでここに680ohmの抵抗を介してV+を接続します。コンパレーター出力は、アナログスイッチとD-FFに接続されます。D-FFではトグル動作を行うように配線しておきます。この分周された出力をアナログスイッチのもう一方の入力に接続します。アナログスイッチを切り替えることで、モーメンタリーとオルタネイトの動作を切り替えることが出来ます。他のスイッチと連動させるためには、D-FFのリセット端子を使います。H8が実装されているマザーボードとの接続は電源供給と信号線の合計5pinのコネクターで行います。インディケーターには青色ダイオードを使用しています。

問題はセンサーの配線強度が低いことです。センサーの固定には基盤上に盛ったハンダを使用しているので、実装後に荷重を与えると断線することがありました。またメインテナンス時の扱いもかなりデリケートになります。
ほぼディスクリートで構成したスイッチシステムですが、細かい変更やメインテナンスを行っていると、ディスクリート故の問題が色々と生じてきます。本来、開発と改良を前提とした構造のために、実際にロードに使用すると機器の強度が問題になってきます。ある程度のリサーチが完了した時点で、機器の再構成を行う事が必要になって来ました。

システムを新しく設計し直す前に、現在の問題点を整理します。まず、物理的な強度をアップしなければなりません。このため、センサとマザーボードの両方をプリント基板で製作し直します。基盤設計にはEagleというプリント基板用CADが使いやすいようです。今まで色々な基板用CADを試用してみても、安定度が悪かったり直感的に操作できなかったりどれも今ひとつだったのですが、Eagleは相性が良かったのでしょう。殆ど抵抗無く使うことが出来ました。左はEagleで設計したH8搭載のマザーボードです。

また、Eagle専用の.brdファイルを格安で受け付けてくれるブルガリアのOlimexという会社も便利です。通常PCBを製作すると、小さな試作品でも一枚2万円は取られるのですが、Olimexでは100X160mmの両面基盤の注文を50ドル程で受け付けてくれます。注文にはFaxが必要になります。この手の企業としてはセキュリティーにうるさく、一寸手間がかかりますが日本では信じられないレベルの安さです。納期は1週間位です。

基盤の製作の目処が付いたところで、ロジック系の再設計を行います。旧システムの問題はコントロールチェンジとプログラムチェンジを切り替えたときの表示系の動作パターンの違いをきっちりとコントロール出来ていなかったことにあります。まずは、スイッチ回路を1ch単位で設計し直したところ、構造がとても複雑になってしまうことが発覚。これを16ch並列で製作するわけですから、回路規模がかなり大きくなってしまい、実装が難しくなります。悩んでいたところ、たまたま新聞の記事にCPLDとVHDLのことが載っていて、試しに色々調べたところ結構面白そうです。

その後、偶々ですが本屋さんで良いあんちょこを見つけました。←

初歩的なことから、VHDLのに関する事を丁寧に書いてある教科書で僕のような初心者でも、ある程度「何とか出来そうかもしれない」と、自信がつきました。フリップ・フロップに関するトピックが解りやすく、僕の目的には絶好の参考書です。

一方、ハード面ではXILINXのデバイスが記事に紹介されていたのですが、このメーカーのサイト上でフリーのツールを発見しました。試しにインストールしてみたところ使いやすかったので、このプラットフォームで開発を行うことにしました。まずはノートに手書きの回路図を書いて単体のフリップフロップシステムを構築し、それをVHDLに書き換えた後、動作をシミュレーターに掛けて確認する作業を繰り返します。ノートパソコンで寝ながらのんびりとシミュレーションを繰り返して一月あまりで全システムが完成しました。僕のような初心者が片手間でやってこれですから、かなり強力なツールといえます。
左:Zilinx社製のCPLD群。通常はPLCCソケットを使用するが規模の大きなデバイスはSMDパッケージとなる。今回は95144を使用したが、専用のPGAソケットをピン配置変換用に使用する必要があった。

右:パラレルポート拡張用PCカードSPP-100とJTAG書き込み用デバイス。s30等の特殊なノートPCで使用する場合は互換性に注意
センサーはこんな感じに仕上がりました。回路を思いっきり間違えて補正しているところが情けないですが、値段の割に綺麗です。センサーの取り付け強度は飛躍的に強化されたので、多少のことでは大丈夫です。CPLDを導入した結果、回路はシンプルになり、センサー部に実装するのは、コンパレーターだけになりました。コンパレーターは品不足のため型番をMAX981に変更しています。問題は圧着端子のカシメ方で、接触不良が多発してしまいました。こういうショーもない所で、スキル不足がバレてしまいます。その後の使用では他にも色々と不具合が出てきましたが、最初に設定したコンパレーターのヒステリシス値がいい加減だったことがようやく発覚。値を1/10に変更して解決しました。
心なしか、精悍なイメージに変わったスイッチですが、この後もAD周りの不具合やら、色々と悩まされることになります。低速度のデータを扱う用途とはいえ、アナログとデジタルの混在したシステムを設計することの難しさを思い知らされる1年でした。ちなみに、制作費は筐体を除いてトータルで50万円ほどかかっているようです。丸ごと作っては潰しですから、効率が悪いのは当たり前ですが、市販品に存在しないモノをちゃんと作ろうとすると、結構な出費になってしまうということですね。(苦笑)