マルツTOP > APPLICATION LAB TOPページ > おすすめ技術記事アーカイブス > マイクロコントローラPWM出力の同期によって負荷をより効率的に駆動する方法
マイクロコントローラPWM出力の同期によって負荷をより効率的に駆動する方法
著者 Bill Giovino 氏
Digi-Keyの北米担当編集者 提供
2020-01-08
マルツ掲載日:2020-04-06
大半のマイクロコントローラには、少なくとも1つのパルス幅変調(PWM)ペリフェラルがあり、複数の波形を方形波として生成します。このPWM出力を使用して、機械システムのステッピングモータやパワーコンバータのパワーMOSFETなどの同期式負荷を駆動できます。このような負荷では、PWM波形を正確に同期して、ターゲットの負荷を適切に動作させることが重要です。
PWMペリフェラルを慎重にプログラムしないと、場合によっては波形間で位相遅延が発生する原因になり、波形のエッジが正しく整列しないときに同期が失われる可能性があります。このような位相遅延により、負荷の駆動が非効率的になり、無駄な電力が生じ、過剰な熱が発生する原因にもなります。
一般的なPWMペリフェラルでは、1つのPWMをイネーブルやディスエーブルにできる一方で、他のPWM出力で位相遅延が生じる場合があります。これは、16や32出力の単一PWMペリフェラルにより複数の外部負荷が制御される、小型の電池駆動式IoTアプリケーションでは特に問題になります。
このようなIoTアプリケーションの場合、位相遅延はバッテリ電力を無駄にする原因になります。さらに、位相遅延は検出されないので、IoTエンドポイントのネットワーク診断で見落とされるかもしれません。
この記事では、マイクロコントローラPWMペリフェラルのいくつかの用途について説明し、それらの用途で同期されたままのPWM波形が重要なのはどのような場合かを解説します。さらに、Maxim Integratedのマイクロコントローラを取り上げます。この製品は、特にこれらの用途で波形同期がなくなるのを防ぐために設計されたパルス列ペリフェラルを備えています。また、ターゲット負荷を効率的に駆動させるこのペリフェラルの構成方法についても説明します。
マイクロコントローラPWMペリフェラルとそのターゲット負荷
大半の汎用マイクロコントローラにはPWMペリフェラルが少なくとも1つあり、一定の方形波を繰り返し生成するために使用されます。PWM駆動の恩恵を受ける負荷には、単純な負荷からより複雑な機械的駆動システムまで多くの種類があります。
発光ダイオード(LED)は単純な負荷の例です。LEDはPWM信号によって非常に効率的に駆動でき、特に色付きLEDの調光が必要な用途にPWMが活かされます。順DC電流を変化させてLEDを調光するのに比べて、PWM調光では大きな色の変化なしに照明の質をより高精度に維持できます。
PWMペリフェラルは、1つ以上のLEDを簡単に駆動できます。LEDがオペレータの視覚的インジケータとして使用される場合、2つ以上のLED間の位相差は目立ちません。一方、複数のLEDがより複雑な用途(多数のLEDが光変調としてデータを光受容体に伝えるなど)で使用される場合は、LEDの同期は設計上、重要な考慮事項になります。
マイクロコントローラPWMのもう1つの単純な負荷は、モータドライバICにより駆動されるDCモータです。DCモータの速度はモータの2つの端子間で電圧を変化させれば簡単に変えられますが、PWM制御ではモータの回転をさらに精密に制御できます。
閉ループ制御システムに速度センサを使用すると、モータの速度をより高精度に維持できます。複数のDCモータを使用して同時に動作させる必要がある場合、モータ間で正確な速度制御を維持するために、PWM波形を同期させる必要があることも考えられます。
バイポーラステッピングモータの駆動
バイポーラステッピングモータを駆動する場合、設計がより複雑になります。バイポーラステッピングモータは、2つのリバーシブル電流巻線によって駆動されます(図1)。巻線ごとに2つのPWMが必要なので、4つのPWMが必要になります。


図1:バイポーラステッピングモータは、各方向に電流を流す2つの電流巻線(赤と緑のコイルで表示)により回転します。巻線中の電流フローの位相と持続時間の制御により、モータの速度と位置を簡単に制御できます。(画像提供:Digi-Key)
図1のように、赤と緑のコイルで表される2つの電流巻線は、モータが動作するように適切な順序で駆動する必要があります。図2に示すシーケンスにより、波形が変化するごとにバイポーラステッピングモータが全1ステップ駆動します。


図2:バイポーラステッピングモータでは、2つの各コイルが上図に従って駆動することで、モータが波形の変化ごとに全1ステップ移動します。各コイルの電流は最初に一方向に駆動され、次にコイルがアイドル状態になり、その後電流が反対方向に駆動されます。(画像提供:Digi-Key)
モータの各ステップは、波形の変遷ごとに始まります。巻線間の電圧極性、そして各巻線の電流フローは、ステップごとに変化します(図2)。どのPWM信号の位相遅延もモータの不規則な動きの原因になり、特に低速でのトルク低下につながります。
出力を4つのみ使用するPWMペリフェラルを持つマイクロコントローラでは、同期の維持に注意するだけで、ステッピングモータを容易に制御できます。しかし、同じPWMペリフェラルを使用して複数の負荷を制御している場合は、状況がより複雑になります。
たとえば16出力のPWMには、ステッピングモータに割り当てられた4つのPWM出力とともに、DCモータやLEDなど他の負荷に割り当てられた他のPWM出力をともなう場合があります。適切なレジスタを使用して周波数とデューティサイクルに対してPWM出力を設定した後に、各PWMのイネーブル/ディスエーブルレジスタにビットを設定します。
Armのマイクロコントローラでは、ファームウェアがビットバンドを使用して適切なビットを設定できます。ただし、ビットバンドは、読み取り/変更/書き込み(RMW)をターゲットレジスタで実行します。他のPWM出力がRMW動作中に開始または終了するようにプログラムされている場合、結果は予測不能になり、状況によってはファームウェアの制御に反してPWMをイネーブルやディスエーブルにするかもしれません。
Maxim Integratedは、MAX32650 Arm Cortex-M4Fマイクロコントローラ(120MHzで動作)でこの問題を解決しました。このマイクロコントローラは、標準SPIインターフェース3つ、クワッドSPIを1つ、UARTを3つ、I2Cポート2つ、物理層(PHY)をともなうUSB 2.0 Hi-Speedインターフェース1つ、32ビットタイマ6つ、AES-256暗号化ユニット1つなど、幅広いペリフェラルを備えています(図3)。


図3:Arm Cortex-M4F(120MHz動作)をベースにするMaxim IntegratedのMAX32650は、高性能IoTエッジコンピューティングアプリケーション向けにフルレンジのペリフェラルとメモリのオプションを備えています。(画像提供:Maxim Integrated)
3MBのフラッシュと1MBのSRAMを備えるMAX32650は、エッジコンピューティングを必要とする高機能IoTエンドポイントを対象にしています。MAX32650には16出力のパルス列ペリフェラルもあり、高度なPWM信号を生成できます。
このマイクロコントローラは、構成可能な周波数と50%のデューティサイクルで方形波を生成し、また最大長さ32ビットのプログラム可能なビットパターンに基づくパルス列も生成できます。
位相遅延の防止
パルス列発生器は、32ビットPTG_ENABLEレジスタを使用して、16のPWM出力のいずれも個別にイネーブルやディスエーブルにできます。任意のビット位置に1を書き込むと、そのパルス列を有効にして設定どおりに実行できます。0を書き込むと、パルス列のクロックとロジックが停止し、その時点のロジック状態で出力が停止します。このレジスタには、大半のマイクロコントローラにあるイネーブル/ディスエーブルレジスタと同じRMW制限があるので、ビットバンドは推奨されません。
波形間の位相同期を維持するために、MAX32650のパルス列ペリフェラルは、32ビットレジスタPTG_SAFE_ENを使用するセーフイネーブル、および32ビットレジスタPTG_SAFE_DISを使用するセーフディスエーブルと呼ばれるユニークな機能をサポートしています。これら各レジスタの上位16ビットは未使用で、未使用の位置には常にゼロを書き込むことが推奨されます。
どの出力も安全にイネーブルにするために、ファームウェアはPTG_SAFE_ENの対応するビット位置に1を書き込みます。これによりPTG_ENABLEの出力のビット位置が即座に設定され、PWM出力が開始されます。PTG_SAFE_ENのいずれかのビット位置に0を書き込んでも、パルス列出力に何の効力もありません。
出力を安全にディスエーブルにするために、ファームウェアはPTG_SAFE_DISの対応するビット位置に1を書き込みます。これによりPTG_ENABLEの出力のビット位置が即座にクリアされ、PWM出力が停止します。PTG_SAFE_DISのいずれかのビット位置に0を書き込んでも、パルス列出力に何の効力もありません。
これらのレジスタに書き込みを行っても、RMWは実行されません。セーフイネーブル/ディスエーブル機能を使用することで、1つ以上のパルス列を即座に開始または停止できます。同時に他のパルス列が影響を受けないことも保証されます。PTG_SAFE_ENレジスタおよびPTG_SAFE_DISレジスタでは、ビットバンドはサポートされていません。
バイポーラステッピングモータに戻って見ると(図1)、パルス列出力0と1は緑色の電流巻線のAとBに使用でき、パルス列出力2と3は赤の電流巻線のCとDに使用できます。図2の波形にはデッドスポットがあるので、パルス列機能を使用してファームウェアの介入なしに何度でも繰り返すように設定できるパターンをプログラムするのが適切です。
一度設定すれば、PTG_SAFE_ENに0000000Fhを書き込むことでモータを起動できます。これにより、パルス列出力0~3が同時に開始され、実行中の他のパルス列出力に影響せずにモータが起動します。PTG_SAFE_DISに0000000Fhを書き込むと、モータを停止できます。これらの操作は両方とも、他の実行中のパルス列には影響しません。
他の12のパルス列出力のいずれかをイネーブルやディスエーブルにする必要がある場合、これら2つのレジスタを使用して安全に制御できます。これらのレジスタの下位4ビット位置に1を書き込まない限り、ステッピングモータの動作は影響を受けません。これはRMWで標準的なイネーブルレジスタを使用するのと対照的です。
RMWの場合、出力が不規則になり、トルクに悪影響をもたらす位相シフトの原因になります。セーフイネーブル/ディスエーブルの機能はアトミック操作に類似するので、ステッピングモータが効率的に動作し、電力を無駄にせず常に最大トルクを維持できます。
マイクロコントローラの出力ピンには、ステッピングモータを駆動するのに十分な能力がなく、モータドライバまたはHブリッジが必要になります。Allegro MicroSystemsのA3909GLYTR-TはデュアルHブリッジドライバで、4~18Vと電流巻線ごとに最大1Aが必要なモータを動作させることができます(図4)。


図4:Allegro MicroSystemsのA3909は、ステッピングモータコイルで最大1AをソースやシンクができるデュアルHブリッジドライバです。(画像提供:Allegro MicroSystems)
A3909は、サーマルシャットダウン保護、過電流保護、短絡保護を備えています。各入力(INx)は、対応する出力(OUTx)を駆動します。MAX32650 PWMは、パルス列出力0/1を入力IN1/IN2(緑)に接続しOUT1/OUT2を介して緑のコイルを駆動し、パルス列出力2/3をIN3/IN4(赤)に接続しOUT3/OUT4を介して赤いコイルを駆動できます。これにより、A3909はステッピングモータを直接駆動できます。
A3909は、便利な高インピーダンス機能もサポートします。Hブリッジの両方の入力が1ms以上にわたり論理0の場合、両方の出力は高インピーダンス状態になります。これは、モータを惰行走行させる場合や、出力を高インピーダンスにする必要があるステッピングモータのステップに有用です。
図2に戻ると、アイドル状態の波形のどの部分も、高インピーダンス状態にすることに利点があります。これにより、モータが他方の電流コイルでステップスルーされるとき、もう一方の電流コイルがモータ動作を妨げないようにすることで効率を改善できます。
4つすべての入力(両方のペア)が1msより長くLowに保持されると、上記のように両方の出力ペアが明らかに高インピーダンスになります。また、いくつかの内部回路がパワーダウンするので、データシートではスリープモードとも呼ばれます。
結論
一般的なマイクロコントローラペリフェラルには、多くの場合、モータやパワーMOSFETなどの外部負荷の駆動に使用するPWM機能が含まれています。PWMイネーブルレジスタでビット操作を実行すると不測の事態が生じる原因になるので、マイクロコントローラのサプライヤは新しいPWMペリフェラルでこれに対処しています。
それらのPWMペリフェラルは、他のPWM出力に干渉せず個々のPWM出力を安全にイネーブル/ディスエーブルする機能を備えており、位相遅延や同期喪失を防ぎます。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、Digi-Key Electronicsの意見、信念および視点またはDigi-Key Electronicsの公式な方針を必ずしも反映するものではありません。
このページのコンテンツはDigi-Key社より提供されています。
英文でのオリジナルのコンテンツはDigi-Keyサイトでご確認いただけます。
Digi-Key社の全製品は 1個からマルツオンラインで購入できます

ODM、OEM、EMSで定期購入や量産をご検討のお客様へ【価格交渉OK】
毎月一定額をご購入予定のお客様や量産部品としてご検討されているお客様には、マルツ特別価格にてDigi-Key社製品を供給いたします。
条件に応じて、マルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。
是非一度、マルツエレックにお見積もりをご用命ください。





