マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初心者の方からよく質問される「SPI通信などのノイズ対処法」についてです。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、初心者から多く寄せられる質問です。
SPI(Serial Peripheral Interface)通信や同期式シリアル通信(USART)で、クロックにノイズが乗って誤動作する時があります。ノイズの対策と、誤動作への対処法を教えてください。
マイコンの試作ボードや評価用ボードで、SPIなどのクロック同期式通信がノイズによって誤動作する場合は少なくありません。その時は、通信線をできるだけ短くしてより線にしたり、シールド線などを用いたり、チョークコイルを挿入したりして、ノイズの影響を抑えます。実際の製品の場合は、プリント基板(PCB)上で短い配線パターンにしたり、ノイズ対策を施した配線パターン(シールド)を使ったり、チョークコイルを挿入したりします。具体的な対策は「ハイレベルマイコン講座【EMS対策】(1) どのノイズ対策が最も効果的か? よくあるEMS対策を比較する【準備編】」を参照してください。
それでもノイズの影響を受けて、通信データが変化してしまったと疑われる場合は、パリティチェックやCRC*1)を使って、受信データが正常かどうかをチェックします。異常であれば再送信してもらいます。図1は、ノイズの影響で1発多くクロックが入ったようになり、D4を2回受信してしまう例です。このような場合、オーバーランエラー検出*2)やパリティチェック、CRCで検出できます。
ノイズの影響がより大きな場合は、通信機能の設定値が変わってしまい、通信仕様が送信側と受信側で合致しなくなり、フリーズ状態になります。この場合は、通信機能を初期化して再設定します。
(*1)Q&Aで学ぶマイコン講座(83) CRC(Cyclic Redundancy Check:巡回冗長検査)って何?
(*2)Q&Aで学ぶマイコン講座(16) オーバーランエラーの原因
Copyright © ITmedia, Inc. All Rights Reserved.