引き続き 5.25インチの光ディスクドライブ開発の話

この最初の主担当機種ではもっと苦労したネタがたくさんあったはずだが、思い出せない。なんとなくソレノイドなどのメカコン部品の取り扱いで、スペックの見方がいい加減のまま設計したおかげで、時々メカコンが正しく動かないことがあるなど量産しようと思ったらちゃんと部品スペックの整合を取らなくてはいけない、という経験があったような。お恥ずかしい限りだが。LEDが機体によって暗かったようなこともあったかな...。

当時ドライブのインターフェースはSCSIであった。

イメージ 2
チップはNCRを使っていたが、まだ創世記で練られていなかったんだろう、結構な接続トラブルがあった。一番ひどいのがシステムにドライブをSCSIで多連接続すると、突如としてハングアップするのだ。ハンドシェイクするための信号(確か Req、Ack)に終端反射の影響で歪みが発生し、これをチップが検出して(異常タイミングに見えるらしい)ハングアップするとのことである。
イメージ 5イメージ 1
対策は受け側だけの問題なら、簡単なフィルタで済むがSCSIは双方向であり、受けるときはフィルタを通し、出力するときはダイレクトに出さなくてはいけない。システム部門とドライブ部門を上げての対策会議が連日のように行われるという大問題になった。

命題としては。
・Device が信号を受けるときは、フィルタを通じて信号を受け取る。
・Device が信号を出力するときは、ダイレクトにバスを駆動する。

ということである。

インターフェースなんか知るかよ、と云いたいところだが、若かったんでしょう、トラブルに口を出さずにいられない性格が災いして、結局「お前が何とかしろ」っと。(もちろん他のエンジニアも頑張っていましたよ)
熟考半日、信号のシーケンスに目をつけてフィルタが働くときと働かない時を制御する方法を考えて提案。しかし詰めが甘くこのままでは動かないことがすぐ分かる。ところがそこは T 社のロジックエンジニア達、そのアイディアをベースにしてそれぞれのシステムに合ったロジックを考え出して、それなりの規模を持った対策案をあっという間に出す。
が、私の方は小さいデバイスなのでそんな回路は入らない。結局人助けにはなったが自分の問題はまだ解決していない。挙げ句の果てに「お前のところはまだか。他は対策が進んでいるぞ」。ムカっ。半ばべそをかきながら、次のアイディアを考えていると後輩達が「とにかくやりましょう。言いつけて下さい。すぐ評価します。」。嬉しい言葉だがよく考えるとアイディアは自分が出さないといけないことには変わりない。第一歩としてEMIフィルタを使ってみた。色々定数を変えながらやってみていけそうだ、と思った瞬間にハングアップの繰り返し。だんだん焦燥感が高まる。やけくそになって、ダイオードと抵抗を並列につないだものをフィルタの代わりに入れてみたら???お、動く!!!(図)

イメージ 3

原理は簡単で、ゼロ出力時はダイオードがONになるのでSCSIがゼロに駆動され(SCSIは基本的にオープンドレイン出力です)、信号を受けるときはダイオードがOFFなので、抵抗を通して供給され端子容量の影響でフィルタが掛かるという仕組みである。ただし、ゼロに駆動するときはダイオードの順方向降下電圧分電位が浮くので好ましくない。そこでさらなる工夫が必要になった。そこで考え出したのが図。

イメージ 4
ダイオードの代わりにトランジスタを使って、駆動するときの電圧降下をほぼゼロにした。部品点数も少なくドライブに搭載可能。後は実装のための小基板などを準備するまでに進んだ。
結構このアイディア表彰もんだと思うんですけど...。対策がビリだったからなのか...。
その後しばらくしてNCRが修正したという情報が入った。誰が使ってやるものか。

まあ、それやこれやでまだ光ディスクドライブ用 LSI など無い時代に、オペアンプ、トランジスタ、ダイオードなどを使って色んな回路を組んだものだ。
こういうのって結構面白かったんですが、今の技術者は出来ている LSI に色々プログラムを組み込んで別の形で楽しんでいるんでしょうか。