ひとつ前へ WWWルートへ mad@mail.wind.ne.jp

行き詰まり、トラブル解決の一般規則

数理設計研究所 Hal.T
2002/02/08-2007/05/19

index

ハードウェア・ソフトウェアの障害

問題を明瞭にする:
  • トラブルの発生様態が明確でなければ解決しない
  • ある場合には起き、同じことを別の時期にしても起きないときは時期の差があろうと推定されるが、このようなアヤフヤな推定からは解決しにくい
  • 要因を細分し、唯一のきっかけ、または一連の操作後には確実に現象が発生するようにすべきであり、これが最初に実行されるべき手続=実験である
  • この段階を抜きにしたデバッグや改造はことを複雑にするだけで根本的な問題を隠蔽することが多い

実例:PCボードの動作不安定 1986/9
現象:
  • 試作したボードにOSを載せて動くようになった。半日ほど放置しておくだけで暴走してロックアップする
泥沼化:
  • ストレージオシロでバスタイミング調査、波形がきれいでなかったのでプルアップ抵抗などダンピングしてみたら、幾分安定になったような気がする
  • 8259インタラプトコントローラ周りのタイミングを調査したり、各種割り込みの一連のシーケンスを確認。ひとつの項目に1日づつかけて30日ほどすぎてしまった
明瞭化:
  • ほとんど諦めかけていたとき、キーボードを叩くと暴走しやすい傾向があるとの説
  • ストレージオシロでキーボード割り込みにシンクロさせて一連のバス動きを記録し、4ステートのバス信号を割り込みに入るまで詳細に分析
  • 割り込み時にはバスドライバのデータホルド時間が短いことを付きとめた
解決:
  • 373で構成されていた双方向バスドライバをラッチ型の374に変更して完全解決した
実例:GID-LOGの時計IC動作不良 2000/6
現象:
  • 2000年3月に試作したGID−LOGはすべて安定に動作
  • 2000年6月に試作したものの不良率は90%ぐらい、時計ICが起動しなかったり不定期に停止する
推定:
  • PICコントローラと時計ICインターフェースのバグ
  • 電源にスーパーキャパシタを使用しているので、充電電圧の立ち上がりが非常に遅くうまくリセットしないか、発振に必要とするだろうスパイクが小さすぎる?
  • 発振部の周辺定数(主にC)の検討
  • 組み立て時に静電破壊が起きているのでは?
明瞭化:
  • どうにもこうにも改善しないので時計IC部だけを組み立ててみることにした
  • 1.25mmピッチのICなので私の老眼では不安。センターにある金属顕微鏡で観察することにした
  • 見てびっくり!、ICの足の間に10μていどの微小ハンダボールが大量に散在している
  • 原因は微小ハンダボールとフラックスが足の間200μほどの間に散在し絶縁抵抗を下げているらしい
対策:
  • 組み立て時には半田ごてのケースとPCBを接続してからICを載せる
  • 組み立て中には席を立たない(静電気防止)
  • 超音波槽に水を張り、小さな袋にエチルアルコールとPCBを入れて5分間洗浄。歯ブラシで足の間を掃除して再度洗浄した
  • 発振部は全数の動作試験をする
解決:
  • 以後、1度も動作不良はない

トラブルシューティング手順

書籍よりの引用(ネットワーク関係の書籍、本の名は不明、他の問題にもそのまま使える)

  • 常識(科学や技術一般)
  • 知識(対象について)
  • 手法
    1. 徴候の認識:問題がない通常状態の認識が必須
    2. 徴候の検討:メッセージがあるなら必ず書きとめる
    3. 考えられる障害のリストアップ
    4. 機能の限定:試験装置で障害を突き止めるが、ひとつの結果で特定してはいけない。誤解の可能性があるので必ず複数の要因で特定できるようにする
    5. 問題の絞込み:障害は多重して起こることが多く、根源的な障害まで追求しなければいけない
    6. 失敗の分析:再検査が終わるまでは修復したとは言えない
その他で必須のこと:
  1. 思考、試行、すべてについてリスト、メモを取らなければ足跡が自分でもわからなくなるし、ましてや他人に相談を持ち掛けることもできない
  2. メモ類は未整理の物を含めて全部保存する
  3. メモ類から整理された情報を作っておく

..end