図6に内蔵発振回路のスペックを示す。
内蔵発振回路は抵抗(R)とコンデンサー(C)を組み合わせて発振させるので、抵抗値とコンデンサーの容量が変動すると発振周波数も変動する。そのため、周波数誤差が外部振動子を用いた時に比べて大きいのが欠点だ。特に温度変化による周波数変動が大きい。STM32ファミリの場合は、出荷時に25℃の状態でトリミングして誤差が±1%以内の状態で出荷されるが、実使用中に温度が変化すると周波数も変化する。そのため、ユーザーが周波数をある程度トリミングできる仕掛けが組み込まれている。実使用中に温度変化などで周波数が変動が見込まれる場合は、トリミングのためのソフトウエアを組み込んでおくと便利である。
内蔵発振回路に関する問題事例を紹介しよう。マイコンをプリント基板に実装する際のリフロープロセスでは、高温になるため、マイコンに機械的な応力が発生し、実装後もその応力が残り、内蔵発振回路がその応力の影響を受ける。半導体は機械的応力を受けると、ピエゾ効果(圧電効果)によって抵抗値が変化する。すなわち内蔵発振回路の抵抗値が変わり、発振周波数が変化してしまう。このように半導体が受ける応力の影響は、昔から研究されており、論文(日本機会学会論文集A編55巻516号(1989-8)、論文No.88-1231A「ICプラスチックパッケージ内シリコンチップ残留応力の検討」など)も発表されている。
機械的な応力によって周波数が変わった場合でも、ユーザートリミングの仕組みを入れておけば、周波数誤差の問題は起きず、周波数誤差は常に最小に保つことができる。
図7にPLL(Phase Locked Loop)のスペックを示す。
過去の事例では、入力周波数の最小スペックよりも小さい周波数を入れて誤動作したり、逆に出力周波数を間違えてマイコンの動作周波数を超えて誤動作を起こしたりなどの例がある。単純なミスだが、結構な頻度で発生していて、ユーザーはそのミスに気が付いていない場合が多い。なぜなら、マイコンの動作周波数のスペックは、マージンを持っているので、周波数がスペック外でも常温では問題なく動作してしまうからだ。ただし、高温になった時に誤動作が発生する。Hard Faultが起きて初めてミスに気づくという事例は多い。ジッタを気にするユーザーもいるが、特殊な通信(USBなど)の場合を除くと、PLLのジッタがマイコンの誤動作の原因になった事例は今までには発生してない。
日系半導体メーカーにて、25年以上にわたりマイコンの設計業務に携わる。その後、STマイクロエレクトロニクスに入社し、現在までARM Cortex-Mプロセッサを搭載したSTM32ファミリの技術サポート業務に従事。ARMマイコン以外にも精通しており、一般的な4ビットマイコンから32ビットマイコンまで幅広い知識を有する。業務の傍らマイコンに関する技術論文や記事の執筆を行っており、複雑な技術を誰にでも分かりやすい文章で解説することがモットー。
Copyright © ITmedia, Inc. All Rights Reserved.