LSIメモリのテストでは、決められたパターンを書き込んだ後、読み出して値が変わっていないかをチェックする手法が多く採用されている。決められたパターンには、オール1、オール0、チェッカー、アンチェッカー、ダイアゴナル、マーチング、ウォーキング、ギャロッピングなどさまざまなものがある。ただし、マイコンに搭載されているメモリをテストする際は、複雑なパターンを行うと出荷時のテスト時間が長くなり、コストに影響を及ぼすため、これらすべてを行うわけではない。
表1に、マイコンに搭載されているメモリをテストする代表的なパターンを挙げる。
パターン名 | 内容 |
---|---|
オール0 | 全アドレスの全ビットに“0”を書き込み、それを読み出して“0”になっていることを確認 |
オール1 | 全アドレスの全ビットに“1”を書き込み、それを読み出して“1”になっていることを確認 |
チェッカー | “1”と“0”を縦横に互い違いに書き込み、それらを読み出す 読み書きだけでも隣接しているメモリセル間のショートを確認できるが、併せて電源電流をチェックすると、ショートによって電流値が増加するため、故障検出の精度が上がる |
アンチェッカー | チェッカーの“1”と“0”を反転させたパターン |
ダイアゴナル | メモリの対角線上にパターンを書き込み、それらを読み出す アドレスデコーダー、ワード線、ビット線の確認ができる |
マーチング | オール0を書いて、先頭アドレスから順に0を読んで1に変えていく オール1になったら、同じように1を読んで0を書いていき、再びオール0にする 続けて最終アドレスから同様のテストを行い、最後にオール0になっているかチェックする。書き込まれている部分と書き込まれていない部分の相互干渉などを確認する |
これらのパターンで、個別セルの縮退故障チェック(オール0、オール1)、隣接しているメモリセル間チェック(チェッカー、アンチェッカー)、離れているセル間の相互干渉チェック(マーチング)、アドレスデコーダとワード線とビット線のチェック(ダイアゴナル)ができるため、ウォーキングやギャロッピングが行われることが少ない。
実際のテストでは、これらのパターンを書き込む手順が各マイコンで決められていて、その手順に従ってテストされる。
例えば、最初はフラッシュメモリに電荷がないため、そこにチェッカーパターンを書き込んでチェックすると隣接するメモリセル間の干渉が判別できる。次にアンチェッカーパターンを書き込むと、フラッシュメモリの全セルが書き込まれた状態になる。この状態でベーク(高温放置)を行い、再度チェックすると、高温状態の電荷抜けをチェックできる。
このような手順は、マイコンメーカーやマイコン製品で異なるが、設計部外秘なので公開されることはない。
図13にSTM8AF6246のA-Dコンバーターの特性を示す。
A-DコンバーターやD-Aコンバーターのテストもファンクションテストと同じ方法で行う。
LSIテスターは、高精度の一定電圧をマイコンの端子に印加することができる。A-Dコンバーターの入力端子に決められた電圧を印加し、その電圧を測定するテストパターンを実行し、印可した電圧に相当する期待値と比較すればA-Dコンバーターのテストができる。
D-Aコンバーターの場合は、逆にD-Aコンバーターで変換した電圧を端子に出力するテストパターンを実行し、その端子の電圧を測定し、期待値と比較する。
STM8AF6246のA-Dコンバーターは10ビット分解能なので、電圧範囲を210の1024ポイントでサンプリングするのが理想である。しかし、全ポイントをテストすると、テスト時間が長くなりマイコンのコストに影響するため、開発段階で行う特性評価の結果で分かっているワーストポイントの数点でテストされる場合が多い。
ここまで代表的な出荷テストの項目を解説してきたが、この他にもマイコンの仕様によってさまざまなテストが行われる。
例えば、水晶振動子やセラミック振動子をつなぐことができる場合は、振動子とマイコンの発振回路のマッチングを簡易的にテストすることもできる。
電源関連だと電源余裕度をテストするために、ファンクションテストをいくつかの電源電圧で実施する。
特殊機能の例を挙げると、いろいろな周波数の波形を出力する機能(例:電話のDTMF[Dual-Tone Multi-Frequency])などでは、周波数のテストや波形の歪みテストを行う。
Copyright © ITmedia, Inc. All Rights Reserved.