MCUに基づいた新しいタイマ/カウンタ機能の設計

タイマーとカウンターは、おそらく MCU 設計で最も一般的なペリフェラルです。 ほとんどすべてのアプリケーションでタイマーまたはカウンターを使用すると、繰り返しまたはループする CPU 操作を単純なタイマーまたはカウンター割り込みに置き換えることによって、パフォーマンスの向上、消費電力の削減、または設計の簡素化を行うことができます。 ただし、新しいタイマー/カウンター ユニットの一部を使用したことがない場合もあり、設計をさらに改善するためにいくつかの高度な機能が利用できるようになりました。 この記事では、自律動作とモーター制御の機能に特に重点を置き、一般的な MCU ファミリの実例を使用して、設計を改善するために使用できる新しいタイマー/カウンター機能のいくつかを簡単にレビューします。

著者: ウォーレン・ミラー

タイマーとカウンターは、おそらく MCU 設計で最も普及している周辺機器です。 ほとんどすべてのアプリケーションでタイマーまたはカウンターを使用すると、繰り返しまたはループする CPU 操作を単純なタイマーまたはカウンター割り込みに置き換えることによって、パフォーマンスの向上、消費電力の削減、または設計の簡素化を行うことができます。 ただし、新しいタイマー/カウンター ユニットの一部を使用したことがない場合もあり、設計をさらに改善するためにいくつかの高度な機能が利用できるようになりました。 この記事では、自律動作とモーター制御の機能に特に重点を置き、一般的な MCU ファミリの実例を使用して、設計を改善するために使用できる新しいタイマー/カウンター機能のいくつかを簡単にレビューします。

タイマーとカウンターのモード: シンプルからアドバンスまで

タイマーとカウンターは、外部イベントのカウント、内部および外部操作の時間測定、および主要な MCU 操作に関するさまざまな統計の収集に使用される一般的なプログラム ループを置き換えるために、いくつかの非常に単純な動作モードから開始します。 の機能 マキシム MAXQ612は、最もよく知られたカウントモードMCUのいくつかを示しており、そのいくつかの例を以下の図1に示します。 図の下部の表は、MAXQ612タイマ/カウンタであるタイマBのXNUMXつの一般的な自律動作モードを示しています。 モジュール: 自動リロード、キャプチャ、pp/カウントダウン。 右上の図は、オートリロード モードのブロック図を示しています。 タイマ B へのクロック入力は、システム クロックを XNUMX つの異なる設定で分周するクロック プリスケーラから、または外部ピンから入力できます。 制御ビット TRB は、タイマ B の動作を有効または無効にします。 タイマ値レジスタ (TVB) は、タイマがタイマ B リロード レジスタ (TBR) に保存されている値に達するとカウントアップし、割り込みを生成して TVB をゼロにリセットします。 これにより、貴重な CPU サイクルを使用してレイテンシを作成することなく、レイテンシを作成する簡単な方法が提供されます。


図1: Maxim MAXQ612 MCUのカウンタ/タイマーモードの例。 (マキシム提供)

図 1 の右上隅のブロック図は、キャプチャ モードの動作を示しています。 このモードでは、クロック プリスケーラおよびイネーブル/ディセーブル機能はオートリロード モードと同じです。 TBV レジスタはカウントアップし、オーバーフローおよびオプションの割り込みが発生するとゼロにリセットされます。 外部ピン TBB の立ち下がりエッジで、TBV レジスタの値がキャプチャ レジスタ TBR にロードされ、割り込み EXFB を生成できます。 このモードを使用して、外部信号の立ち上がりエッジ間のクロック数をカウントし、信号周波数または信号遅延を決定できます。 したがって、タイマーは CPU をサイクル集約的なカウント操作の実行から解放し、実際に実行する必要がある作業をより効率的に実行できるようにします。

MAXQ612は、アップ/ダウン自動リロードやカウンタの方向を制御する外部ピンなど、他のいくつかの一般的なタイマ/カウンタ動作をサポートしています。 このモードは、電気機械センサーで使用される信号など、さまざまなパルス幅変調信号をデコードするのに役立ちます。 クロック出力モードを使用すると、システム クロック、プリスケーラ、およびタイマ B のターミナル カウントを使用して単純な出力クロックを作成できます。 最後に、パルス幅変調 (PWM) 出力モードは、モーター制御で使用されるものなど、一般的な PWM アプリケーション向けにエッジが揃った信号を生成できます。

モーター制御用PWMカウンタ/タイマ機能

一部の最先端のタイマー/カウンター機能は、モーター制御 PWM アプリケーションに使用されます。 これらのカウンタは、専用ハードウェアを使用して可能な限り多くのモータ関連の PWM 機能を実装し、より高いレベルの機能のためにプロセッサを解放します。 モーター制御 PWM カウンタ/タイマーの基本動作は、ほとんどのメーカーの実装に共通であり、NXP LPC 17xx PWM タイマーの良い例が提供されています。 3相 AC および DC モーター 制御アプリケーションが最適化されました。 図 2 に示すように、基本的な PWM タイマー チャネルのコピーが XNUMX つあることに気づくまで、モーター制御 PWM モジュールの機能は非常に複雑に見えるかもしれません。 XNUMX つは左側、XNUMX つは中央、もう XNUMX つは右側です。 XNUMX つのチャネルがあると、単一のタイマー/カウンターを使用して三相モーターを制御できるため、非常に効率的な実装が可能になります。 各チャネルは XNUMX 組の出力を制御し、その結果、モーター内のコイルのセットなど、オフチップのものを制御します。 各チャネルには、プロセッサ クロック (タイマ モード) または入力ピン (カウンタ モード) によってインクリメントされるタイマ/カウンタ (TC) レジスタが含まれています。


図 2: NXP LPC 17xx PWM タイマー/カウンター。 (NXP 提供)

各チャネルには TC 値と比較されるリミット レジスタがあり、一致が発生すると 0 つの方法のいずれかで TC が「リセット」されます。 エッジ整列モードでは、TC は 0 にリセットされますが、センター モードでは、一致により TC がプロセッサ クロックまたは入力ピンの遷移ごとに XNUMX に切り替わるまで減少し、XNUMX に到達すると再びカウントアップが開始されます。

各チャネルには、リミット レジスタよりも小さい値を保持する一致レジスタも含まれています。 エッジ整列モードでは、TC が一致レジスタまたは制限レジスタと一致するたびにチャネルの出力が切り替わりますが、中央整列モードでは、一致レジスタが一致した場合にのみチャンネルの出力が切り替わります。 したがって、リミット レジスタは出力の周期を制御し、一致レジスタは各周期のうち出力が各状態にどれだけ費やすかを制御します。 出力が統合されている場合、 電圧、リミット レジスタの値を小さくすると、リップルが最小限に抑えられ、モータ制御 PWM タイマーが高速デバイスを制御できるようになります。

これらのチャネル ハードウェア要素はすべて一緒に 3 つの出力 A と B を制御します。これらの出力は、XNUMX つの電源レール間の制御ポイントを切り替えるために XNUMX 対のトランジスタを駆動できます。 ほとんどの場合、XNUMX つの出力は反対の極性を持ちますが、デッドタイム機能を (チャネルごとに) 有効にして、XNUMX つの信号がパッシブ状態からアクティブ状態に移行するのを遅らせ、トランジスタがオンになることがないようにすることができます。同時に。 各出力ペアの状態は、ハイ、ロー、フローティング、またはアップ、ダウン、センターオフと考えることができます。 アクティブとパッシブからハイとローへのマッピングはチャネルごとにプログラム可能で、各チャネルはエッジ揃えおよびセンター揃えの PWM を実行できます。 図 XNUMX は、出力構成の XNUMX つの例を示しています。 左側のものは、デッドタイムなしで中央揃えになっています。


図 3: NXP LPC17xx モーター制御 PWM タイマー/カウンターの出力構成例。 (NXP 提供)

モーター制御 PWM タイマーには、より高いレベルのモーター制御機能が必要であることをプロセッサに通知するためのいくつかの割り込みソースも含まれています。 これらの割り込みはチャネルごとに編成され、TC が一致レジスタと一致したとき、TC がリミット レジスタと一致したとき、チャネルが TC の値をキャプチャ レジスタにキャプチャしたとき、またはアボート入力がアクティブになったときを示すことができます。 LPC17xx には、直角位相エンコーダ インターフェイス、追加の PWM モジュール、割り込みタイマー、ウォッチドッグ タイマーなど、高度な制御機能を簡素化するためのサポート ペリフェラルもいくつかあります。 この多種多様な専用タイミング関数は、MCU ベースの設計にとってタイミング関数がいかに重要になっているかを示しています。

その他の特殊な計時機能

多くの最新の MCU では、メーカーが特定のアプリケーション分野をターゲットにしているため、タイミングおよびカウント機能がより専門化しています。 たとえば、MK10DN10ZVLQ512 などの Freescale の KineTIs K10 ファミリには、特殊な機能を備えたさまざまなタイミングおよびカウント ペリフェラルがあります。 これらのペリフェラルには次のものが含まれます。 ADC および DAC の動作を制御するプログラマブル遅延ブロック。プロセッサがこれらの低レベル プロセスの管理から解放されます。 複数のタイミング、カウント、入力キャプチャ、出力比較チャネルを提供し、照明とモーターの電力管理と制御をサポートする柔軟なタイミング ブロック。 ペリフェラル割り込みと DMA 転送を自律的に管理できる定期割り込みタイマー。 MCU が最低電力状態にあるときでも動作する非常に低電力のタイマーで、単純な定期的な「ウェイクアップ」イベントを提供します。 リアルタイム クロックで正確な時間を保ち、MCU の電源が完全にオフになっている場合でもバッテリから電力を供給できるため、システム動作や寿命データに簡単にアクセスできます。

K10 シリーズは、特定のモジュール専用の専用クロックおよびタイミング機能も提供するため、他のタイミング リソースは消費されません。 たとえば、赤外線通信などのさまざまな信号エンコード方式で使用されるプロトコルの作成に使用されるキャリア変調器トランスミッタ モジュールには、パルス幅変調カウンタ、管理キー、および周波数シフト キーと同様に、独自の専用のタイミング機能とカウント機能があります。 コーディング方式に依存するパルス幅の変動。 MCU がよりアプリケーションおよび市場セグメントに特化するにつれて、専用のタイミングおよびカウント機能のこの傾向は続くと予想されます。

開発キットにより市場投入までの時間を短縮します

MCU がよりアプリケーション固有になるにつれて、メーカーはよりアプリケーション指向の開発キットやリファレンス デザインを作成しています。 モーター制御アプリケーションは、おそらく、特定のアプリケーション スイートの最も一般的な例の 62 つです。 一例として、ルネサスは、図 4 に示す完全なモータ制御開発キット YMCRPRX62T を提供しています。これにはサンプル モータも含まれています。 このキットには、複数のモーター制御設計で Renesas RX62T MCU を評価するために必要なすべてのソフトウェアとサンプル デザインが付属しています。 PC でホストされるデモ GUI には、モーターの速度、電圧、電流が表示され、ユーザーはパラメーターとアルゴリズムを調整してさまざまな結果を直接表示し、特定の設計で最良の結果が得られるようにモーターの動作を調整することができます。 Renesas RXXNUMXT と同様の機能を備えたモータ制御評価キットは、他の多くのメーカーからも入手可能です。 ターゲットのアプリケーションと開発環境に最適なキットを見つけて、メーカーが「バンドル」した膨大な量の作業を活用して、次のモーター制御設計を加速します。

タイマーとカウンターは MCU にとって最もよく知られた周辺機器ですが、これらを最大限に活用することで電力を節約し、パフォーマンスを向上させ、設計を簡素化することができます。 この記事では、これらの共通の要素を珍しい方法で活用できるようにするいくつかの新しい高度な機能について説明します。

著者: ウォーレン・ミラー

タイマーとカウンターは、おそらく MCU 設計で最も普及している周辺機器です。 ほとんどすべてのアプリケーションでタイマーまたはカウンターを使用すると、繰り返しまたはループする CPU 操作を単純なタイマーまたはカウンター割り込みに置き換えることによって、パフォーマンスの向上、消費電力の削減、または設計の簡素化を行うことができます。 ただし、新しいタイマー/カウンター ユニットの一部を使用したことがない場合もあり、設計をさらに改善するためにいくつかの高度な機能が利用できるようになりました。 この記事では、自律動作とモーター制御の機能に特に重点を置き、一般的な MCU ファミリの実例を使用して、設計を改善するために使用できる新しいタイマー/カウンター機能のいくつかを簡単にレビューします。

タイマーとカウンターのモード: シンプルからアドバンスまで

タイマーとカウンターは、外部イベントのカウント、内部および外部操作の時間測定、および主要な MCU 操作に関するさまざまな統計の収集に使用される一般的なプログラム ループを置き換えるために、いくつかの非常に単純な動作モードから開始します。 マキシム MAXQ612 の機能は、最もよく知られたカウントモード MCU のいくつかを示しており、以下の図 1 にいくつかの例を示します。 図の下部の表は、MAXQ612タイマ/カウンタモジュールであるタイマBのXNUMXつの一般的な自律動作モード、つまり自動リロード、キャプチャ、およびpp/カウントダウンを示しています。 右上の画像はオートリロードモードのブロック図を示しています。 タイマ B へのクロック入力は、システム クロックを XNUMX つの異なる設定で分周するクロック プリスケーラから、または外部ピンから入力できます。 制御ビット TRB は、タイマ B の動作を有効または無効にします。 タイマ値レジスタ (TVB) は、タイマがタイマ B リロード レジスタ (TBR) に保存されている値に達するとカウントアップし、割り込みを生成して TVB をゼロにリセットします。 これにより、貴重な CPU サイクルを使用してレイテンシを作成することなく、レイテンシを作成する簡単な方法が提供されます。


図1: Maxim MAXQ612 MCUのカウンタ/タイマーモードの例。 (マキシム提供)

図 1 の右上隅のブロック図は、キャプチャ モードの動作を示しています。 このモードでは、クロック プリスケーラおよびイネーブル/ディセーブル機能はオートリロード モードと同じです。 TBV レジスタはカウントアップし、オーバーフローおよびオプションの割り込みが発生するとゼロにリセットされます。 外部ピン TBB の立ち下がりエッジで、TBV レジスタの値がキャプチャ レジスタ TBR にロードされ、割り込み EXFB を生成できます。 このモードを使用して、外部信号の立ち上がりエッジ間のクロック数をカウントし、信号周波数または信号遅延を決定できます。 したがって、タイマーは CPU をサイクル集約的なカウント操作の実行から解放し、実際に実行する必要がある作業をより効率的に実行できるようにします。

MAXQ612は、アップ/ダウン自動リロードやカウンタの方向を制御する外部ピンなど、他のいくつかの一般的なタイマ/カウンタ動作をサポートしています。 このモードは、電気機械センサーで使用される信号など、さまざまなパルス幅変調信号をデコードするのに役立ちます。 クロック出力モードを使用すると、システム クロック、プリスケーラ、およびタイマ B のターミナル カウントを使用して単純な出力クロックを作成できます。 最後に、パルス幅変調 (PWM) 出力モードは、モーター制御で使用されるものなど、一般的な PWM アプリケーション向けにエッジが揃った信号を生成できます。

モーター制御用PWMカウンタ/タイマ機能

一部の最先端のタイマー/カウンター機能は、モーター制御 PWM アプリケーションに使用されます。 これらのカウンタは、専用ハードウェアを使用して可能な限り多くのモータ関連の PWM 機能を実装し、より高いレベルの機能のためにプロセッサを解放します。 モーター制御 PWM カウンタ/タイマーの基本動作は、ほとんどのメーカーの実装に共通であり、三相 AC および DC モーター用の NXP LPC 17xx PWM タイマーによって良い例が提供されています。制御アプリケーションは最適化されています。 図 2 に示すように、基本的な PWM タイマー チャネルのコピーが XNUMX つあることに気づくまで、モーター制御 PWM モジュールの機能は非常に複雑に見えるかもしれません。 XNUMX つは左側、XNUMX つは中央、もう XNUMX つは右側です。 XNUMX つのチャネルがあると、単一のタイマー/カウンターを使用して三相モーターを制御できるため、非常に効率的な実装が可能になります。 各チャネルは XNUMX 組の出力を制御し、その結果、モーター内のコイルのセットなど、オフチップのものを制御します。 各チャネルには、プロセッサ クロック (タイマ モード) または入力ピン (カウンタ モード) によってインクリメントされるタイマ/カウンタ (TC) レジスタが含まれています。


図 2: NXP LPC 17xx PWM タイマー/カウンター。 (NXP 提供)

各チャネルには TC 値と比較されるリミット レジスタがあり、一致が発生すると 0 つの方法のいずれかで TC が「リセット」されます。 エッジ整列モードでは、TC は 0 にリセットされますが、センター モードでは、一致により TC がプロセッサ クロックまたは入力ピンの遷移ごとに XNUMX に切り替わるまで減少し、XNUMX に到達すると再びカウントアップが開始されます。

各チャネルには、リミット レジスタよりも小さい値を保持する一致レジスタも含まれています。 エッジ整列モードでは、TC が一致レジスタまたは制限レジスタと一致するたびにチャネルの出力が切り替わりますが、中央整列モードでは、一致レジスタが一致した場合にのみチャンネルの出力が切り替わります。 したがって、リミット レジスタは出力の周期を制御し、一致レジスタは各周期のうち出力が各状態にどれだけ費やすかを制御します。 出力が電圧に統合されている場合、リミット レジスタの値を小さくするとリップルが最小限に抑えられ、モーター制御 PWM タイマーが高速デバイスを制御できるようになります。

これらのチャネル ハードウェア要素はすべて一緒に 3 つの出力 A と B を制御します。これらの出力は、XNUMX つの電源レール間の制御ポイントを切り替えるために XNUMX 対のトランジスタを駆動できます。 ほとんどの場合、XNUMX つの出力は反対の極性を持ちますが、デッドタイム機能を (チャネルごとに) 有効にして、XNUMX つの信号がパッシブ状態からアクティブ状態に移行するのを遅らせ、トランジスタがオンになることがないようにすることができます。同時に。 各出力ペアの状態は、ハイ、ロー、フローティング、またはアップ、ダウン、センターオフと考えることができます。 アクティブとパッシブからハイとローへのマッピングはチャネルごとにプログラム可能で、各チャネルはエッジ揃えおよびセンター揃えの PWM を実行できます。 図 XNUMX は、出力構成の XNUMX つの例を示しています。 左側のものは、デッドタイムなしで中央揃えになっています。


図 3: NXP LPC17xx モーター制御 PWM タイマー/カウンターの出力構成例。 (NXP 提供)

モーター制御 PWM タイマーには、より高いレベルのモーター制御機能が必要であることをプロセッサに通知するためのいくつかの割り込みソースも含まれています。 これらの割り込みはチャネルごとに編成され、TC が一致レジスタと一致したとき、TC がリミット レジスタと一致したとき、チャネルが TC の値をキャプチャ レジスタにキャプチャしたとき、またはアボート入力がアクティブになったときを示すことができます。 LPC17xx には、直角位相エンコーダ インターフェイス、追加の PWM モジュール、割り込みタイマー、ウォッチドッグ タイマーなど、高度な制御機能を簡素化するためのサポート ペリフェラルもいくつかあります。 この多種多様な専用タイミング関数は、MCU ベースの設計にとってタイミング関数がいかに重要になっているかを示しています。

その他の特殊な計時機能

多くの最新の MCU では、メーカーが特定のアプリケーション分野をターゲットにしているため、タイミングおよびカウント機能がより専門化しています。 たとえば、MK10DN10ZVLQ512 などの Freescale の KineTIs K10 ファミリには、特殊な機能を備えたさまざまなタイミングおよびカウント ペリフェラルがあります。 これらのペリフェラルには次のものが含まれます。 ADC および DAC の動作を制御するプログラマブル遅延ブロック。プロセッサがこれらの低レベル プロセスの管理から解放されます。 複数のタイミング、カウント、入力キャプチャ、出力比較チャネルを提供し、照明とモーターの電力管理と制御をサポートする柔軟なタイミング ブロック。 ペリフェラル割り込みと DMA 転送を自律的に管理できる定期割り込みタイマー。 MCU が最低電力状態にあるときでも動作する非常に低電力のタイマーで、単純な定期的な「ウェイクアップ」イベントを提供します。 リアルタイム クロックで正確な時間を保ち、MCU の電源が完全にオフになっている場合でもバッテリから電力を供給できるため、システム動作や寿命データに簡単にアクセスできます。

K10 シリーズは、特定のモジュール専用の専用クロックおよびタイミング機能も提供するため、他のタイミング リソースは消費されません。 たとえば、赤外線通信などのさまざまな信号エンコード方式で使用されるプロトコルの作成に使用されるキャリア変調器トランスミッタ モジュールには、パルス幅変調カウンタ、管理キー、および周波数シフト キーと同様に、独自の専用のタイミング機能とカウント機能があります。 コーディング方式に依存するパルス幅の変動。 MCU がよりアプリケーションおよび市場セグメントに特化するにつれて、専用のタイミングおよびカウント機能のこの傾向は続くと予想されます。

開発キットにより市場投入までの時間を短縮します

MCU がよりアプリケーション固有になるにつれて、メーカーはよりアプリケーション指向の開発キットやリファレンス デザインを作成しています。 モーター制御アプリケーションは、おそらく、特定のアプリケーション スイートの最も一般的な例の 62 つです。 一例として、ルネサスは、図 4 に示す完全なモータ制御開発キット YMCRPRX62T を提供しています。これにはサンプル モータも含まれています。 このキットには、複数のモーター制御設計で Renesas RX62T MCU を評価するために必要なすべてのソフトウェアとサンプル デザインが付属しています。 PC でホストされるデモ GUI には、モーターの速度、電圧、電流が表示され、ユーザーはパラメーターとアルゴリズムを調整してさまざまな結果を直接表示し、特定の設計で最良の結果が得られるようにモーターの動作を調整することができます。 Renesas RXXNUMXT と同様の機能を備えたモータ制御評価キットは、他の多くのメーカーからも入手可能です。 ターゲットのアプリケーションと開発環境に最適なキットを見つけて、メーカーが「バンドル」した膨大な量の作業を活用して、次のモーター制御設計を加速します。

タイマーとカウンターは MCU にとって最もよく知られた周辺機器ですが、これらを最大限に活用することで電力を節約し、パフォーマンスを向上させ、設計を簡素化することができます。 この記事では、これらの共通の要素を珍しい方法で活用できるようにするいくつかの新しい高度な機能について説明します。

もっと見る : IGBTモジュール | LCDディスプレイ | 電子部品