STM32MP1 - GPTIM
高機能制御タイマ、汎用タイマ、基本タイマ

1.0 版

STM32 マイクロコントローラに組み込まれている高機能制御
タイマ、汎用タイマ、基本タイマのプレゼンテーションにようこそ。
ここでは、タイミング関連のイベントの処理、波形の生成、入力信号のタイミング特性の測定に役立つ主な機能について説明
します。

1

概要
ETR

クロック
ITR 1
ITR 2
ITR 3
ITR 4

トリガ／クロック
コントローラ2• タイミングリソースを供給する複数のタイ
マユニット

トリガ
出力

• 内部（トリガおよびタイムベース）• 外部（出力用または入力用）
16bit プリスケーラ• 波形生成用（PWM）• 信号の監視や測定用（周波数やタイミング）

自動リロード+/- 16/32bit カウンタ
出力

入力

CH1
CH2

キャプチャ比較
キャプチャ比較
キャプチャ比較
キャプチャ比較

CH1

アプリケーション側の利点

CH2• CPU の負荷を軽減してインタフェース接続する回路の必要性を最小限に抑える多目的な動作モード

CH3

CH3

CH4

CH4

• 拡張性と使いやすさを兼ね備えてすべてのタイマインスタン
スに対応した 1 つのアーキテクチャ• モータ制御とデジタル電力変換アプリケーションにも完全機
能対応

STM32 には、ソフトウェアタスクやハードウェアタスクのタイミ
ングリソースを供給する複数のタイマが組み込まれています。
ソフトウェアタスクは、主にタイムベースの供給、タイムアウトイ
ベントの生成、タイムトリガで構成されます。ハードウェアタスク
は、I/O に関連しています。タイマによって、出力時の波形を生成し、入力信号パラメータを測定し、入力時の外部イベントに反応できます。
STM32 のタイマは非常に多目的で、インタフェース接続する回路の必要性を最小限に抑えつつ、繰り返しタスクや時間が重要になるタスクから CPU の負荷を軽減する複数の動作モードを備えています。すべての STM32 タイマ（低電力タイマ
だけを除く）が、同じ拡張性のあるアーキテクチャに基づいています。タイマの動作原理がわかれば、あらゆるタイマに活用できます。このアーキテクチャには相互接続機能があり、複数のタイマを組み合わせて、より大きな設定が可能です。最後に、一部のタイマには、照明やデジタルスイッチモードの電源など
電気モータ制御やデジタル電力変換に対応した個別の機能が
あります。
2

主な機能

3

• すべてのタイマは、次の点で拡張性のある同じアーキテクチャに基づいています。
• 入出力の数（1～9 個）• 分解能（16bit または 32bit）• 機能（PWM モード、DMA、同期、アップダウンカウント）• 複数のタイマをリンクさせて同期できます。
• 各タイマチャネルは入力または出力として個別に設定可能です。
• 監視やトリガの目的でその他のペリフェラルと複数の相互接続が可能です。

これは、STM32 の主な機能です。すべてのタイマは同じアー
キテクチャに基づいており、このプレゼンテーションで後ほど列挙する数多くの派生型に使用できます。これらのタイマは入出力の数に違いがあり、I/O を持たない純粋なタイムベースから、
9 個の I/O を持つ高機能制御バージョンまで揃っています。ほとんどのタイマは 16bit カウンタですが、一部 32bit カウンタのものもあります。一部の機能が最小のタイマの派生型にない場合があります（DMA、同期、アップダウンカウントモードなど）。
ほとんどのタイマはリンクして同期させることで、同期する波形の数を増やし、複雑なタイミングや波形の処理が可能な大きい
タイムベースタイマを構築できます。
タイマ内で、各チャネルを入力（通常はキャプチャ用）や出力（通常は PWM 用）として個別に設定できます。
相互接続マトリックスによって、タイマは A/D コンバータ変換の開始や内部クロックの監視などその他のペリフェラルのトリガとして機能します。

3

ブロック図（STM32F42xxx および TIM12）

4

クロックおよび同期ユニットタイマカーネル：カウンタおよびキャプチャ／比較ユニット

入力ステージおよび信号調節

出力ステージ

このスライドには、中規模機能対応 TIM12 タイマのブロック図が示されています。
タイマカーネルは、16bit のアップカウンタに加え、カウント周期をプログラムする自動リロードレジスタで構成されています。2個のタイマチャネルは、2 個のキャプチャ比較レジスタで制御されます。
カウンタはクロックおよびトリガコントローラによって供給され、タイマ連結も処理します。
左側には入力ステージと入力調整回路を示しており、右側には出力ステージを示しています。
TIMxCH1 および TIMxCH2 は、入出力両方で使用できることを示すために両側に表示されていることに注意してください。

4タイマクロック供給スキーム

5

複数の内部または外部クロック供給オプション• APB ドメインから生成されるデフォルトのクロック

TIMxCLK• タイマは、低電力の最適化のために APB1 ドメインとAPB2 ドメインに分けられます。

• 外部クロック供給可能なもの：• その他のオンチップタイマ（ITRx 入力）• 入力ピン 1 および 2（TI1、TI2）• デジタルフィルタおよびプログラム可能なエッジ検出を搭載

ETR

エッジ／レベル感度
フィルタとプリスケーラ

ITR1
ITR2
ITR3
ITR4

クロック
およびトリガ TRGO
コントローラTI1F_EDTI1FP1TI2FP2• 多目的な外部トリガ入力（ETR）• デジタルフィルタ、プログラム可能なエッジ検出、
基本プリスケーラ（/2、/4、/8）

メインクロック• エンコーダからの直交信号

タイマには複数のクロック供給オプションがあります。
タイマ連結も処理するクロックおよびトリガコントローラは、カウンタのクロックを処理します。
デフォルトのクロックは、APB クロックドメインのいずれかにリンクされたリセットおよびクロックコントローラから供給されます。さまざまなタイマが、低電力スキームを実装するために 2 個の APB ドメインで共有されます（通常は、タイマを含むペリフェラルによる給電を制限するためにハイスピード APB 1 個とロースピード APB 1 個）。
外部タイマのクロック供給によって、外部イベントのカウントが可能になったり、カウント周期を外部で調整したりできます。クロックソー
スは、4 個の内部トリガ入力（ITR1～ITR4）のいずれかを使用して、その他のオンチップタイマで供給できます。入力ピン 1 および 2 は、誤ったイベントを排除する組込みデジタルフィルタのオプション付きで外部クロックとしても機能します。外部トリガ入力（ETR）は、必要に応じて入力信号の頻度を削減するデジタルフィルタ、プログラム
可能なエッジ検出、最初の基本プリスケーラステージ付きで外部クロックとして設定できます。
最後に、エンコーダからの直交信号はこのプレゼンテーションで後ほど説明するように、クロックやカウント方向を供給するように処理
できます。

5

カウント周期管理

6

細かく正確な周期設定• 各タイマには、16bit のリニアプリスケーラ（1、2、3～65536）が組み込まれています。
• 自動リロードレジスタはカウント周期を定義します。
• 更新イベント（割込みまたは DMA）はオーバーフロー／アンダーフロー時に生成されます。
• プリロードからアクティブへのレジスタ内容の転送をトリガします（プリスケーラ、周期、比較）。
• 正確な周期変更（プリスケーラがオーバーフロー時のみ更新されます）•

 比較レジスタが更新された場合のグリッチのない動作• 更新割込み生成レートは、繰り返しカウンタで調整されます。

このスライドでは、タイマカウント周期の調整方法について説明しています。
各タイマには、クロックを 1～65536 の整数で分周できるリニアクロック
プリスケーラが組み込まれています。これにより、カウントペースを正確に調整できます。たとえば、80 分周にすると、APB クロックが 80MHzのときに正確な 1MHz のカウントレートとなります。
自動リロードレジスタはカウント周期を定義します。ダウンカウントモード
では、カウンタがアンダーフローすると自動的に周期の値でリロードされます。アップカウントモードでは、カウンタが自動リロード値を超えると、ロールオーバーしてリセットされます。
カウンタがアンダーフローまたはオーバーフローして、新しい周期が開始されると、更新イベントが生成されます。これによって、タイマパラメー
タを周期と同期させる調整に使用される割込みや DMA リクエストがトリガされ、リアルタイム制御に役立ちます。この更新イベントは、プリロード
からアクティブなレジスタへの複数のパラメータの転送をトリガし、特にクロックプリスケーラ、自動リロード値、比較レジスタ、PWM モードに使用されます。
8bit のプログラム可能な繰り返しカウンタを使用すれば、割込み生成
レートをカウント周期から切り離すことができます。たとえば割込みを 1回、2 回、3 回、最大で 256 回の PWM 周期に 1 回に設定できます。これは、特に高い PWM 頻度で処理する場合に役立ちます。
6カウントモード

7

インクリメンタル／直交エンコーダおよびモータ駆動アプリケーションのサポート• アップおよびダウンカウントモードのサポート• TIM1/8 および TIM2/3/4/5

センターアラインモード
タイマクロック
自動リロード更新イベント比較• センターアライン PWM の生成• オーバーフローおよびアンダーフロー時の方向変更• 電気モータの音響ノイズの軽減

OCx• 直交エンコーダの組込みサポート• ロータリーエンコーダ／デジタルポテンショメータ• 位置センサ• タイマでの直接の角度読取り可能

一部の STM32 タイマは、高機能制御タイマ 1 および 8、汎用
タイマ 2、3、4、5 でのアップダウンカウントモードを備えています。
カウント方向はソフトウェアでプログラムされるか、センターアラ
イン PWM モードではタイマによって自動で管理できます。このモードでは、カウント方向がカウンタのオーバーフローおよびアンダーフロー時に自動で変化します。一定の PWM スイッ
チング周波数では、このモードが有効な電流リップル周波数を倍にすることで音響ノイズを軽減し、パワーステージのスイッチ
ング損失とノイズの最適なトレードオフを実現できます。
カウント方向は、タイマがエンコーダモードである場合も自動で処理できます。通常、直交エンコーダは電気モータの高精度なロータ位置の検出やデジタルポテンショメータに使用されます。
タイマは、直交エンコーダセンサ（別名インクリメンタルエンコー
ダ）の 2 個の出力から、各アクティブエッジでクロックを抽出し、2 個の入力信号間の関連する位相シフトに応じてカウント方向を調整します。このように、タイマカウンタはモータやポテンショ
メータの角度位置を直接保持します。
7

内部タイミングリソースとしてのタイマ

8

ソフトウェアおよびハードウェアのタイムベース用• タイマはシンプルなタイムベースとして使用できます。
• ソフトウェア管理用• 他のペリフェラルに周期的トリガを供給• A/D コンバータ、D/A コンバータ、他のタイマ• 更新イベント（カウンタオーバーフロー時）は割込みのトリガに使用できます。
• TIM6 および TIM7 の基本タイマを使用した最もシンプルなオプション（出力なし）• 汎用タイマを使用する場合は他の方法があります。
• 比較イベントの使用• 周期ごとに複数のイベントを設定できます。

• タイマのトリガ出力の使用

TIM6 / TIM7
クロック

16bit プリスケーラ
自動リロード16bit カウンタ

タイマの最もシンプルな使用例は、内部タイムベースの供給です。
これは、ソフトウェアルーチンでよく使用され、周期的割込みやシングルショットタイムアウト保護が可能です。また、タイマはA/D コンバータ、D/A コンバータ、その他のタイマなど他のオン
チップペリフェラルに周期的トリガを供給できます。
タイマからの更新イベント（通常はカウンタオーバーフロー時）
が、ソフトウェアのタイムベース割込みを生成したり、周期的イベントをトリガしたりする通常の方法となります。基本タイマ
TIM6 および TIM7 は、入出力チャネルを持たない最もシンプ
ルなタイマの派生型であるため、このようなタスクに最適です。
また、その他のタイマ、比較イベント、他のタイマのトリガ出力のいずれかを使用して、内部タイミングを生成できます。複数の比較チャネルを使用する単一タイマで、複数のタイミングイ
ベントを生成できます。

8

入力キャプチャ

9

CPU の負荷を軽減する信号の事前調節を搭載• 各チャネルは、次の機能を持つ入力キャプチャとして個別に設定できます。
• 入力の再配置（1 個の入力に 2 個のキャプチャチャネルを配置可能）• プログラム可能なエッジ検出（立ち上がり／立ち下がり／両方）• イベントプリスケーラ（1/2/4/8 個のイベントおきに 1 回のキャプチャ）• デジタルフィルタ（デバウンスおよびノイズ除去用）• キャプチャイベントでカウンタ値をキャプチャレジスタに転送して、割込みやDMA リクエストをトリガできます。
• キャプチャレジスタが読み出されることなく上書きされた場合に、オーバーキャプチャフラグがセットされます。

このスライドでは、入力キャプチャ機能について説明しています。
各チャネルは、数多くの信号調節オプションを持つ入力キャプチャとして個別に設定できます。入力は 2 個のキャプチャチャネルに配置できます（通常は、立ち上がりエッジと立ち下がりエッジのキャプチャを区別する目的）。エッジ検出はプログラム可能で、立ち上がりエッジ、立ち下がりエッ
ジ、両方のエッジに設定できます。イベントプリスケーラでは、2 個、4 個、8 個のイベントおきに 1 個のイベントをキャプチャできます。これにより、
高周波数信号を処理する場合に CPU の負荷が軽減され、複数の入力
信号周期にわたって実行されるため、より正確に測定できます。
ノイズやバウンスによる誤った遷移イベントは、プログラム可能なデジタルフィルタで除去できます。この図では、フィルタ許可を 4 にセットした場合にどのように信号がフィルタされるかを示しています。上段のケースでは、
内部カウンタ値を見つつ、立ち上がりエッジの 4 サンプリング周期後にきれいな立ち上がりエッジキャプチャがトリガされています。下段のケースでは、グリッチによってフィルタカウンタがリセットされ、ハイレベルのサンプ
ル 4 連続の後に発生するキャプチャがカウントされています。
キャプチャトリガが生成されると、タイマのカウンタはキャプチャレジスタに転送され、割込みや DMA リクエストを生成できます。前のキャプチャが読み出される前に新しいキャプチャが発生した場合、キャプチャレジスタ
は上書きされ、必要に応じてソフトウェアでこの条件を管理するためにオーバーキャプチャフラグがセットされます。

9

高度なキャプチャオプション

10

ソフトウェア負荷のない直接測定• キャプチャ時クリアモード• このモードでは、キャプチャがトリガされた直後にカウン
タをリセットできます。

タイマクロック

PWM

カウンタ• PWM 入力モード• タイマが 2 個のキャプチャレジスタで信号の周期とパルス幅を直接キャプチャします。

IC1 - デューティサイクル
IC2 - 周期

X

6

10

10

• XOR 機能付きのキャプチャ時クリアモード• 最大 3 個の入力エッジ間の間隔をキャプチャできます。
 通常は、電気モータのホールセンサに使用されます。

このスライドには、さらに高度なキャプチャ関連機能がいくつか示されています。
キャプチャ時クリアモードでは、キャプチャがトリガされた直後にカウン
タリセットが発生します。これにより、周期を直接測定できますが、従来のフリーランニングカウンタではトリガ後の周期を取得する追加の計算が必要になります。
PWM 入力モードでは、タイマが入力 PWM 信号の周期とデューティ
サイクルの両方をキャプチャできます。入力信号は、内部的に 2 個のキャプチャチャネルにルーティングされます。信号の立ち上がりエッジ
は入力キャプチャ 2 でキャプチャされ、キャプチャ時クリアモードで周期値を供給します。立ち下がりエッジはキャプチャ 1 チャネルでキャプチャされ、パルス長の継続時間を供給します。そして、デューティサ
イクルは入力キャプチャ 1 と入力キャプチャ 2 の比率に対応します。
最後に、タイマには XOR 機能が搭載されており、3 個の入力チャネ
ルを XOR ロジックで組み合わせます。通常、これは電気モータのホールセンサから生成される 3 つの 120°位相シフトされた信号の処理に使用されます。これにより、3 つの信号の各エッジでキャプチャ
時クリアを発生させ、速度調整に直接使用できるキャプチャ値を取得
できます。
10

出力比較

11

シンプルな出力波形や周期が経過したことを示す目的• カウンタが比較レジスタの値と一致する場合：

タイマクロック• 対応する出力ピンは次のようにプログラムできます。
• セット• リセット• トグル• 変更なし

割込み

割込み

OC1
新しい CCR1

CCR1• 割込みステータスレジスタのフラグをセットします。
• 対応するイネーブルビットがセットされている場合、最終的に割込みや DMA リクエストを生成します。

• 比較レジスタは、プリロードレジスタの有無にかかわらずプログラムできます。

• プログラムされる出力モードもプリロード可能• 別のモードにグリッチなしで遷移できます（通常は PWM から連続したオンまたはオフ状態）。

このスライドには、出力比較機能が示されています。
比較イベントは、カウンタが比較レジスタの値と一致した場合に生成されます。このイベントによって、割込みや DMA リクエ
ストをトリガでき、出力セット、出力リセット、出力トグルによって対応する出力ピンに反映できます。
比較レジスタはプリロードすることができます。複数の比較値をカウント周期中に書き込む必要がある場合は、プリロードを無効にする必要があります。対照的に、リアルタイム制約があるアプリケーションでは、プリロードモードの使用が推奨されます。これは、ソフトウェアに対して次の値で比較レジスタを更新するためにより高度な時間的余裕を与えるためです。カウンタのオーバーフローまたはアンダーフロー時、プリロードからアクティブな値への転送が更新イベントによってトリガされます。
出力比較モードも、たとえば PWM モードから強制的なオンまたはオフ状態にグリッチなしで遷移するためにプリロードできます。

11ワンパルスモード

12

外部で同期する波形生成用• トリガに応じてカウンタを開始してパルスを生成可能• プログラム可能な長さ• プログラム可能な遅延後• ソフトウェアプログラム可能な 2 つの波形
• シングルパルス• 繰り返しパルス

入力

出力

TIM_ARR

TIM_CCR1

tDelaytPulset• 再トリガ可能オプション• 新しいトリガの場合にパルス幅拡張

ワンパルスモードは、外部イベントに応じてプログラム可能な長さのパルスを生成するために使用されます。パルスは、入力
トリガが到達するかプログラム可能な遅延の後に開始できます。
比較 1 レジスタ（CCR1）の値はパルスの開始時間を定義し、自動リロードレジスタ（ARR）の値はパルスの終了を定義します。有効なパルス幅は、ARR と CCR1 のレジスタ値の差として定義されます。
波形は、トリガによって生成されるシングルパルスや、シングルトリガによって開始される連続パルス列を生成するためにプ
ログラムできます。
ワンパルスモードには、再トリガ可能オプションもあります。この場合、パルスの終了前に到達する新しいトリガによって、カウンタがリセットされ、それに従ってパルス幅が拡張されます。

12

いくつかの PWM モード

13

複数のアプリケーションに対応するさまざまな PWM モード• 基本 PWM（エッジアラインやセンターアライン）• 非対称センターアライン PWM

このスライドには、PWM モードがいくつか示されています。
標準的なエッジアライン PWM モードは、周期を定義する自動リロードレジスタと、デューティサイクルを定義する比較レジスタでプログラムされ、カウンタはアップ
のみまたはダウンのみのカウントモードになります。1 つのタイマで、個別のデューティサイクルと同一周波数の最大 4 つの PWM 信号を生成できます。複数の PWM 波形が同じタイマによって生成される場合、すべての立ち下がりエッジが同時に発生するため、エッジアラインと呼ばれます。対照的に、センターアラ
イン PWM の立ち上がりエッジと立ち下がりエッジはカウンタのロールオーバーと同期していないため、切り替え時間はデューティサイクルの値で異なります。これは、アップダウンモードでカウンタをプログラムすれば実現できます。このモードは、複数の PWM が同じタイマで生成される場合にスイッチングノイズが広がる興味深いモードです。これは、一定のスイッチング周波数での電流リップルの周波数を倍にできるため、電気モータ駆動での 3 相 PWM 生成の主な機能となります。たとえば、10kHz PWM では 不可聴の 20kHz の電流リップルが生成されます。これにより、PWM 周波数によるスイッチング損失を最小限に抑えつつ、静かな PWM 動作を保証します。
センターアラインモードの変種は非対称 PWM モードで、2 個の比較レジスタがPWM 信号のオンおよびオフを定義します。これによって、オンとオフの時間が個別に定義されるため、パルス幅設定の分解能が上がります。また、フルブリッ
ジ位相シフトトポロジに基づいて DC-DC コンバータを駆動するために必要な位相シフト PWM 信号も生成できます。この場合、タイマは同一の周波数、50% のデューティサイクル、0～180°の位相シフトで 2 つの PWM 信号を供給します。
13

さらにいくつかの PWM モード

14

PWM 機能を拡張して外部のグルーロジックを回避• 組み合わせ PWM モード• さらに複雑な波形に対応するために OR や AND 機能で 2 つのチャネルを組み合わせます。

• 組み合わせ 3 相 モード• ゼロベクトル挿入のために通常の 3 相 PWM に 4 つ目の PWM を組み合わせることができます。

このスライドには、組み合わせ PWM モードが示されています。
このモードでは、2 つの PWM 信号を論理的に組み合わせて、隣接するチャネルで生成できます（出力比較 1 と 2、または出力比較 3 と 4）。PWM の論理和または論理積をとって複雑な波形を作成できます。通常、これによって 2 つの周期的パルスをあらゆるパルス幅や位相関係の値で生成できます。
組み合わせ 3 相モードは、特別に 3 相モータ制御アプリケー
ションを対象としています。この場合、タイマのチャネル 5 を任意の 3 チャネル（1、2、3）と組み合わせて、センターパターン
PWM 信号の中にロー状態を挿入できます。このモードでは、
ゼロベクトル挿入と呼ばれる技法を使用して、3 相モータ制御
向けの低コストの電流検出技法が大幅に実装しやすくなって
います。

14

高度な PWM モード

15

外部制御を必要とする PWM 信号用• 可変周波数 PWM• 外部信号によって駆動します。

• サイクルごとに制御されるデューティサイクル
• 電流ループでは、コンパレータや外部ピンによって駆動します。

このスライドでは、周波数またはデューティサイクルを外部信号で駆動できる場合の固有の PWM モードをさらにいくつか示しています。
タイマは、ETR またはチャネル 1 や 2 の入力に接続された外部リセット
信号を使用して、可変周波数信号を供給できます。このモードの目的は、オンとオフの時間を固定してハードウェアで継続的に調整される周波数を制御しながら信号を供給することです。タイマは、比較レジスタを使用
してオン（またはオフ）の時間を制御できます。自動リロードレジスタによって、外部リセットがない場合でも PWM は停止せず、境界条件で安全に制御できることが保証されています。この技法は、商用電源アプリ
ケーションや電流制御型デジタル LED 照明の遷移モード PFC（力率コントローラ）など幅広い目的に使用されます。
タイマのもう 1 つのモードは、オンチップコンパレータかオフチップ信号を使用してハードウェアでデューティサイクルを制御します。PWM は固定周波数で動作し、最大デューティサイクルは比較レジスタでセットされ、実際の値がサイクルごとに制御されます。これは、電流制御 PWM が必要なアプリケーション、通常は DC モータやソレノイドを駆動させるために使用されます。この場合、コンパレータが負荷のピーク電流値を監視します。電流がプログラムされた閾値を超えると、すぐにコンパレータ
が PWM 出力をリセットして、次の PWM 周期で自動的に再開し、ピー
ク電流値を制御します。
15

タイマのカスケード 1/2

16

さらなる柔軟性を求めた拡張性のある設計• トリガコントローラによって、マスタ／スレーブ設定で複数のタイマをカスケード
できます。
TIMxCLK• スレーブ：トリガコントローラが TRGI に入力を集めます。
• 外部トリガピン（ETR）から• ITRx のその他のオンチップリソースから• 通常は他のタイマからの TRGO 出力です。

• マスタ：内部タイマ信号が TRGO に送られます。

ETR
ITR1
ITR2
ITR3
ITR4

エッジ／レベル感度
フィルタとプリスケーラ

クロックおよびトリガコントローラTRGO

TI1F_EDTI1FP1TI2FP2

メインクロック• 特定のタイマは、カスケード設定でスレーブモードとマスタモードで同時に動作できます。

このスライドには、タイマの同期機能が示されています。
トリガコントローラによって、マスタ／スレーブ設定で複数のタイマをカスケードできます。1 つのタイマがマスタタイマとして 1
つ以上のタイマを制御したり、他のタイマによってスレーブとして制御されます。クロックおよびトリガコントローラは、タイマ間のリンクとして機能します。マスタモードでは、タイマからオン
チップ TRGO トリガ出力に複数の内部制御信号をリダイレクトできます。スレーブモードでは、他の TRGO 出力に接続されている外部トリガピン（ETR）や 4 個の内部トリガ入力 ITR1～
ITR4 のいずれかから TRGI（主なトリガ入力）に複数の入力を集めます。さらに、入力キャプチャ 1 と 2 のピンも内部トリガ（通常はカウンタのリセットが目的）として使用できます。
スレーブモードおよびマスタモードは個別にプログラムできます。特定のタイマは、カスケード設定でスレーブモードとマスタ
モードで同時に動作でき、入力トリガを受け入れつつ出力トリガを供給できます。

16

タイマのカスケード 2/2

17

複数の信号をタイマ間で共有可能• マスタモード：タイマは TRGO 出力で内部信号を伝播します。
• カウンタリセット、カウンタイネーブル、更新イベント、OC1 比較一致
• OC1～OC4 で生成されたあらゆる波形• スレーブモード：タイマが TRGI 入力で制御されます。
• トリガモード：カウンタ開始が制御されます。
• リセットモード：TRGI の立ち上がりエッジでカウンタが再初期化されます。
• リセットモードとトリガモードの組み合わせ（再トリガ可能なワンパルスモード用）• ゲートモード： カウンタの開始と停止の両方が制御されます。
• クロックに関連するその他のモード：• 3 つのエンコーダモード• 外部クロッククロック
新しい CCR1

CCR1
マスタ CNT
マスタ CC1

スレーブ CNT

ゲートモードこのスライドでは、さまざまな動作モードとタイマ間で交換される信号を列挙しています。
マスタモードでは、TRGO 出力で送信されるトリガを選択するための 8個のオプションがあります。出力は、カウンタリセット、カウンタ開始に対応するカウンタイネーブル、更新イベント、比較 1 一致イベントで発行されるシングル同期パルスのいずれかになります。また、TRGO 出力は
PWM 信号を含む生成された 4 つの波形のいずれかを他のタイマモ
ジュールに対して送信できます。
スレーブモードでは、タイマの動作モードが TRGI 入力で制御されます。
トリガモードでは、カウンタ開始が外部で制御されます。このモードは複数のタイマを同時に開始するために使用します。リセットモードでは、通常は可変周波数 PWM 動作のために、カウンタが TRGI 入力の立ち上がりエッジでリセットされます。リセットとトリガを組み合わせたモードは、再トリガ可能なワンパルスモードの生成に使用できます。図に示されたゲートモードでは、カウンタは入力信号のレベルがハイになっている間だけアクティブになります。波形生成モードでは、この信号は入力または別のタイマから供給されます。この場合、リセット、イネーブル、更新、
比較一致で生成される同期パルスは使用できません。最後に、スレー
ブモードの選択肢には、このプレゼンテーションで前述した直交エンコー
ダのデコードや外部クロック供給モードなどクロックに関連するモードが含まれます。
17

同期動作の例

18

複数のタイマの組み合わせて柔軟性を高めることが可能• タイマの同時開始

マスタ
タイマ 2

• サイクルが正確な同期

スレーブ 1

クロック
カウンタ
更新
カウンタ

トリガ
コントローラ

TRGO

ITR1

ITR x

• カスケード 48bit カウンタ

プリスケーラ

カウンタ

スレーブ 2

マスタ

タイマ 4
ITR 3

タイマ 3
クロック

ITR x

トリガ
コントローラプリスケーラ

カウンタ

タイマ 3

プリスケーラ

カウンタ

TRG 1

スレーブ／マスタ

更新

スレーブ 3

タイマ 2
ITR 1

TRG 2

プリスケーラトリガ
コントローラ

カウンタ

更新

ITR3

ITR x

スレーブ

ITR x
ITR0

TIM9
プリスケーラカウンタ

タイマ 9
プリスケーラ

カウンタ

ITR x

このスライドでは、同期動作の 2 つの例を示しています。
1 つ目の例では、4 個のタイマがどのようにして同時に開始できるかについて示しています。このメカニズムによって、マスタ／スレーブのリンク遅延を補い、すべてのタイマを正確なサイクルで同期させるために、マスタタイマはわずかに遅れて開始できるようになります。示されているタイマ 2、3、4、9 のチャネルを組み合わせることで、最大 14 個の同期 PWM チャネルを設けることができます。
2 つ目の例では、3 個のタイマをカスケードして 48bit タイマを作成する方法について示しています。ここでは、カウンタのロールオーバー時に生成される更新イベントが、次のスレーブ
タイマの入力クロックとして使用されるため、タイマ 3 のカウン
タが最下位 16bit を保持し、タイマ 2 のカウンタが中間ビット（ビット 16～31）を保持し、タイマ 9 のカウンタがビット 32～47の上位ビットを保持しています。

18

モータ制御機能19

STM32 タイマがモータ駆動のあらゆる側面をカバー• PWM の生成
• センターアラインおよび組み合わせ 3 相モード
• デッドタイム挿入• 6ステップモード• 保護（デュアルブレーク緊急停止メカニズム）• 速度および位置の検出• エンコーダ、ホールセンサ、タコメータジェネレータの専用モード• A/D コンバータトリガ

このスライドでは、タイマの 4 つの主な電気モータ制御機能についてまとめています。
タイマには、パワースイッチを制御する固有の PWM モードが含まれています。タイマには、前述のセンターアラインおよび組み合わ
せ 3 相 PWM に加えて、相補 PWM 生成のためのデッドタイム挿入と、ブラシレス DC モータ駆動のための 6 ステップモードが備
わっています。
これには、障害時にハードウェアで PWM 出力を無効にするデュア
ルレベル緊急停止メカニズム付きのパワーステージ保護回路が搭載されています。
モータ制御システムに見られる最も一般的なセンサを処理できます。直交エンコーダおよびホールセンサは、精細な位置フィード
バックと粗い位置フィードバックに使用され、タコメータジェネレータ
はコスト効率のよい速度フィードバックに使用され、キャプチャ時クリアモードが必須となります。
最後に、タイマには、電圧および電流の検出を適切に管理して、パワーステージでのスイッチングノイズによる取得問題を回避するために必要な同期 A/D コンバータトリガオプションがあります。
19

デッドタイム挿入20

タイマあたり最大 3 個のハーフブリッジコンバータの直接駆動• ハードウェアデッドタイムユニットは、重複のない相補 PWM 信号を生成します。
• 機能的安全性を保つデッドタイムレジスタ（読出し専用）のロック機能• ハーフブリッジコンバータとフルブリッジコンバータでのクロスコンダクションを防ぎます。
• DC-DC コンバータ、DC モータ、3 相ブラシレスモータ

フルブリッジ DC モータ駆動

このスライドには、デッドタイム挿入機能が示されています。
ハードウェアデッドタイムジェネレータは、リファレンス PWM 信
号からの重複のない相補 PWM を 2 つ提供します。STM32
タイマには、OC1、OC2、OC3 のチャネルの最大 3 つのデッド
タイムジェネレータが組み込まれています。デッドタイム期間は8bit の値でプログラムされます。この値は、ランタイム時に破損しないようにユーザによってロック可能です。これを行うには、次の MCU リセットまでデッドタイムレジスタを読出し専用に切り替える 1 回のみ書込みロックビットをセットします。
デッドタイム挿入は、1 対のトランジスタを 2 個の電源レール
間に連続で接続して、ハーフブリッジを駆動する場合に必要です。この場合、物理的なスイッチング特性を考慮して、一方でスイッチオンしてもう一方をスイッチオフする前に一定時間挿入する必要があります。ハーフブリッジは、ここに示したフルブ
リッジトポロジーを使用する DC やステッピング・モータの駆動用の DC-DC コンバータや、3 組の PWM を持つ 3 相イン
バータでよく見られます。
20

6ステップ／ブロック転流

21

BLDC モータ駆動の CPU の負荷軽減• 1 つのタイマで、ホールセンサフィードバックを処理して、同期 PWM 生成の高度なタイマをトリガできます。
ホール

マスタ
XOR

ITR 0

タイマ 2
プリスケーラ

スレーブ

TRG0
トリガ
コントローラ

タイマ 1
ITR 0

ITR x

カウンタ

更新

転流イベント生成

プリスケーラ
ITR x

カウンタ

CH1
CH1N

6ステップ
信号

CH2
CH2N
CH3
CH3N

プログラム可能な転流遅延

同期 PWM 生成

位相電流

このスライドには、STM32 タイマでの 6ステップ駆動（別名ブロック転流）の管理方法を示しています。
これは、2 つのタイマが連結されており、1 つは 3 つのホールセンサ信号を処理しており、もう 1 つは 6 つの連続したステップを生成するロータ角度位置で同期される PWM 生成を管理しています。
1 つ目のタイマは、3 つの入力でトリガされるキャプチャ時クリアモード
で動作します。比較レジスタ（ここでは比較 2）は、元の角度位置と転流時間のプログラム可能な遅延を追加します。キャプチャレジスタ 1 は連続するホールセンサのエッジ間のタイミング間隔を保持し、速度調整
ループに必要になります。
比較 2 一致イベントは、TRGO 出力を通じてスレーブタイマに伝播されます。これらのイベントは転流イベントとして機能し、PWM 生成の変化
をトリガします。シーケンスの 6ステップそれぞれに対して、6 個の出力の状態が強制アクティブやインアクティブ、または PWM 信号の生成に定義されます。ステップの遷移は、転流割込みルーチンでソフトウェアによってプリロードされ、自動的にハードウェアによって転送されて、次の転流が到達したときに出力動作モードを再プログラムします。
図の右側には、2 つの連続した 6ステップシーケンスの 6 個の PWM
信号が、モータ位相のひとつでの電流とともに示されています。

21

ブレーク機能 1/2

22

最高クラスの保護スキーム• ブレークイベントは PWM 出力を無効にします。
• ハードウェア（最小遅延）• 非同期（クロックなし動作、クロックに関連する遅延なし）• プログラム可能な安全状態（ハイ／ローまたはハイインピーダンス）• 相補出力を持つタイマで使用可能です。
• タイマ 1 および 8• 2 個のブレークチャネルがあります。
• デュアルレベルの保護スキームが可能です。
• 全出力オフまたは一部の出力強制オンかつ一部オフ• デッドタイム挿入でシュートスルーのリスクなしを保証

このスライドには、ブレーク機能が示されています。
ブレークイベントは、PWM 出力を自動的に無効にするハードウェア保
護メカニズムをトリガし、強制的にユーザ設定可能な状態（ハイレベルまたはローレベルでのローインピーダンス、ハイインピーダンス）にします。
ロジック回路はクロックなしで非同期で動作します。これにより、システ
ムクロックの障害が発生した場合でも機能を保証し、保護の遅延が発生しがちなクロック関連の伝播時間を回避します。
この機能は、電力変換タスクを実行できる相補 PWM 出力を持つすべてのタイマで使用できます（タイマ 1 および 8）。
タイマ 1 および 8 には 2 個のブレークチャネルがあります。これによって、たとえばすべてのスイッチをオフにした低優先度保護を、ローサイド
スイッチがアクティブになるより高い優先度保護で上書きできるデュアルレベルの保護スキームが可能です。さらに、パワーステージを安全に無効にするためにフォールトモードに移行する直前に、デッドタイム遅延を挿入できます。この操作で潜在的なシュートスルー条件を防げます。では、たとえばハイサイド PWM がオンになっており、安全状態をハイサイ
ドスイッチをオフ、ローサイドスイッチをオンにプログラムしている状態で障害が発生したとします。障害が発生した時点で、まずシステムはハイサイド PWM を無効にし、ローサイドをオンに切り替える前にデッドタイ
ムを挿入します。
22

ブレーク機能 2/2

23

いくつかの緊急停止入力ソース• CSS（クロックセキュリティシステム）
および PVD（プログラム可能な電圧検出）からのシステムブレークソース
あり• グリッチ除去用のデジタルフィルタ• プログラム可能な極性

このスライドには、ブレーク機能のソースの管理方法が示されています。
ブレークイベントのトリガに、複数のブレークソースを組み合わせることができます。2 つのシステムレベルソースを選択できます。クロックセキュリティシステム（CSS）は外部クロックの障害を示し、プログラム可能な電圧検出器（PVD）は、Vdd 電源
や PVD_IN 入力での損失を示します。
ブレーク入力も、オルタネート機能コントローラ、製品のピン配
置、または DFSDM デルタシグマディモジュレータ出力から選択できます。
外部ソースは、ブレーク検出ユニットに移行する前に調整できます。これによって、適切に極性を選択して、デジタルフィルタ
で誤ったグリッチを破棄できます。

23

A/D コンバータトリガ

24

A/D コンバータトリガの複数のオプション• A/D コンバータトリガ生成は次を利用して管理できます。
• 比較イベント• TRGO 出力• タイマ 1 および 8 には、A/D コンバータ専用の追加の TRGO2 出力もあります。
• 16 個のトリガソースが使用可能です。
• PWM 周期ごとにデュアル A/D コンバータトリガが可能です。
• TRGO は同期目的で使用できます。

OC6
OC4

カウンタ

OC4REF
OC6REF
TRGO2

このスライドには、タイマに関連する A/D コンバータトリガオプションが示されています。
A/D コンバータは、ほとんどの STM32 タイマで 3 つのオプション
でトリガできます。
この処理は比較イベントを使用して行います。特定の比較一致時に A/D コンバータ変換が開始します。サポートされる比較イベントの一覧は、表にある通りタイマごとに異なります。
TRGO イベントは特定のタイマでも使用できます。TRGO はレジス
タ更新、カウンタリセット、トリガ入力などあらゆる比較イベントやタイマの内部制御信号にも設定できるため、さらに柔軟性が増します。
その一方で、この処理によって、TRGO を同期目的で使用できなくなります。
このため、タイマ 1 および 8 には、A/D コンバータトリガ専用の追加の TRGO2 出力もあります。
TRGO2 では、6 個の比較イベントを含む 16 個のトリガソースが使用でき、比較 4 イベントと 6 イベントを組み合わせることで
PWM 周期ごとにデュアル A/D コンバータトリガが可能になります。
これは、複数のタイマの同期スキーム用に TRGO を使用できる状
態にしておくことにもなります。
24

A/D コンバータ同期の例

25

A/D コンバータ読出し中の PWM 関連ノイズを回避• 3 相モータ制御のアプリケーションでは、カウンタオーバーフロー時の A/D コ
ンバータトリガで平均電流値を取得でき、ノイズを含んだ A/D コンバータ変換を回避できます。
Vdd
CH1

CH2

CH3

CH1N

CH2N

CH3N

カウンタ
比較 2
比較 3

3相
モータ
M

ローサイド CH2N
ローサイド CH3N

位相電流

位相電流
平均電流

シャント電圧0V
A/D コンバータ A/D コンバータ A/D コンバータ

A/D コンバータ
入力（シャント電圧）カウンタのロールオー
バーによってトリガされた A/D コン
バータサンプリング

このスライドには、PWM 同期 A/D コンバータトリガの例が示されています。
3 相モータ制御では、パワーステージ制御のために生成される PWM とA/D コンバータ読出しを同期させる必要があります。これにより、電流波
形リップルから平均値を抽出して、パワースイッチによる音から適切な距離で A/D コンバータ読出しが実行されたことを確認できます。
ここで左側に示しているものは、3 相モータインバータです。6 個のス
イッチは、デッドタイム挿入ありで 3 組の相補 PWM ペアによって制御され、モータ巻線の電流は 3 つのハーフブリッジの下側に配置されたシャント抵抗を使用して測定します。右側には、タイマのカウンタ、比較
1、比較 2 の値、CH1N と CH2N によって制御されるローサイドスイッ
チに対応する PWM 出力が示されています。下の 2 つの波形は、モータ位相の電流と、シャント抵抗で取得される電流のイメージを表しています。この低コストなトポロジで、ローサイドスイッチがオンになっているときのみ電圧を測定でき、A/D コンバータ入力で取得された角張った波形の信号で表されています。この場合、A/D コンバータトリガはカウンタのロールオーバー時に生成されます。これによって、周期の中で正確に読出しが実行でき、大きなリップルを持つ信号の平均値を取得できます。
さらに、PWM 同期 A/D コンバータトリガを使用すれば、シャント電圧に存在する音ノイズを除外して A/D コンバータ変換を実行できます。
25

割込みおよび DMA
イベント

割込み

DMA

26

説明

更新

可能

可能

カウンタのオーバーフローやアンダーフローが発生した場
合や強制的なソフトウェア更新リクエストがあった場合に生成されます。

キャプチャ／比較 1
キャプチャ／比較 2
キャプチャ／比較 3
キャプチャ／比較 4

可能

可能

比較一致時やキャプチャがトリガされた場合に生成されます。各キャプチャ／比較チャネルには、独自の割込みおよび DMA イネーブルビットとフラグがあります。

トリガ

可能

可能

トリガイベント時に生成されます（内部トリガ入力 ITRx、
TI1 エッジ検出回路、フィルタ付き TI1/TI2、外部トリガ入
力ピンから）。

転流

可能

可能

ブレーク

可能

不可

タイマ 1 および 8 でのみ生成されます。

このスライドには、割込みおよび DMA リクエストのソースが列挙
されています。
ほとんどのイベントは割込みまたは DMA リクエスト、両方同時にでも生成できます。更新は、カウンタのオーバーフローやアン
ダーフローが発生した場合に生成されます。これは、主に PWM
周期の開始時にタイマのランタイム設定を更新して、次のレジス
タ更新までの間隔を最大にするために使用されます。繰り返しカ
ウンタで、一部の PWM 周期をスキップして、高い PWM 周波数での割込みや DMA リクエストの数を減らすことができます。
4 つのキャプチャ／比較イベントにはそれぞれ独自の割込みおよ
び DMA があります。TRGI 入力時のトリガイベント（トリガソースは無関係）でも、割込みや DMA リクエストをトリガできます。
最後に、割込みや DMA リクエストの追加ソースは、タイマ 1、8、
15、16、17 のみでの転流イベントとブレークイベントです。ブレー
クイベントは DMA リクエストを生成しないことに注意してください。

26

DMA バーストモード

27

動作中のタイマ再設定が可能• 1 つの DMA イベントで複数のレジスタを更新できます。
• DMA の効率的な使用（1 つのストリームが必要）

PWM 周期 1

RAM

レジスタ

OC1t0

OC1

OC2t0

OC2

OC3t0

OC3

OC1t1
PWM 周期 2

OC2t1
OC3t1

仮想
レジスタ

OC1t2
OC2t2
OC3t2
...

タイマには、1 つの DMA ストリームで複数のレジスタを再プログラムする DMA バーストモードが搭載されています。この機能によって、複数のランタイムパラメータ（デューティサイクルや複数のチャネルの周波数など）を同時に変更したり、設定レジスタを書き込むことでタイマの設定を動的に変更したりできます。
例では、新しい PWM 周期開始時に 1 つの DMA ストリームで3 つの比較値を含むテーブルを比較レジスタに転送できる方法を示しています。
DMA タイマの一意な位置（仮想レジスタ TIMx_DMAR）に指定
して、メモリからペリフェラルモードでプログラムする必要があります。更新イベントが発生すると、タイマはプログラムされたバースト長に応じて数多くの DMA リクエストを送信します。その後、それぞれの値が、仮想レジスタから対象となるアクティブなレジ
スタに自動的にリダイレクトされます。
次の更新イベントでは、3 つの新しい比較値が再度転送されます。 この例では、このメカニズムによって、このような更新ス
キームに通常必要な 2 つの DMA ストリームを保存しています。
27

低電力モード
モード

28

説明

RUN

アクティブです。

SLEEP

アクティブです。ペリフェラル割込みによって、デバイスは SLEEP モードを終了します。

STOP

停止。ペリフェラルレジスタの内容は保たれます。

LP-STOP モード停止。ペリフェラルレジスタの内容は保たれます。

LPLV-STOP モード停止。ペリフェラルレジスタの内容は保たれます。

STANDBY

パワーダウン状態です。ペリフェラルは、STANDBY モード終了後に再初期化する必要があります。

タイマは RUN モードと SLEEP モードでアクティブですが、
STOP モード、LP-STOP モード、LPLV-STOP モードでは停止します。タイマの状態とレジスタの内容は保たれ、MCU がウェ
イクアップすると直接動作を再開します。
STANDBY モードでは、タイマはパワーダウン状態となり、このモード終了時に完全に再初期化する必要があります。

28

デバッグ

29

• 電力変換アプリケーションの安全なデバッグが可能• 各タイマに対して、1 個のコアがデバッグモードに移行した際にタイマがどのように動作するかを設定するために、DBGMCU モジュールの 2 個の設定ビットが使用されます。
• DBGMCU_APB1FZ1 の TIMx bit 1 個（Cortex®-A7 コア停止）• DBGMCU_APB1FZ2 の TIMx bit 1 個（Cortex-M4 コア停止）• TIMx = 0• TIMx カウンタ動作は維持されます。

• TIMx = 1• 選択したコアが停止している場合、カウンタのクロックが停止します。
• 相補出力のあるタイマの場合、出力が無効になります。

デバッグモードのタイマの状態は、タイマにつき 2 個の設定ビットで設定でき、1 個は Cortex-A7 用、もう 1 個は CortexM4 用です。
デバッグビットがリセットされている場合、タイマクロックがブ
レークポイント中は維持されます。
デバッグビットがセットされている場合、コアが停止するとすぐにタイマのカウンタが停止します。さらに、相補出力のあるタイ
マの出力は無効になり、強制的にインアクティブ状態になります。この機能は、タイマがパワースイッチや電気モータを制御しているアプリケーションで非常に役立ちます。これによって、パワーステージが過度な電流で損傷したり、モータがブレークポイントになったときに非制御状態のままになったりしないようにできます。

29

いくつかの役立つ公式 1/230• PWM 周波数セットアップ• 自動リロード（TIMx_ARR の ARR）およびクロックプリスケーラ（TIMx_PSC の PSC）で定義さ
れます。
𝑓
𝑓
=
(𝐴𝑅𝑅 + 1) × (𝑃𝑆𝐶 + 1)
• 実際、PSC = 0（プリスケーラなし）から開始する必要があります。
𝑓
𝑓
𝐴𝑅𝑅 =
− 1 → 𝐴𝑅𝑅 =−1𝑓× (𝑃𝑆𝐶 + 1)𝑓
• 16bit（または 32bit）の範囲を超える値である場合、ARR が収まるまで PSC を増加させる必要があります。
𝑓 ⁄2
𝑓 ⁄3
𝑓 ⁄4
𝐴𝑅𝑅 =
− 1 → 𝐴𝑅𝑅 =− 1 → 𝐴𝑅𝑅 =−1 → …
𝑓𝑓𝑓

このスライドでは、タイマの PWM 周波数の設定方法について説明しています。
このパラメータは、TIMx_ARR レジスタでプログラムされた自動リロード値（ARR）と、TIMx_PSC レジスタでプログラムされたクロックプリスケー
ラを使用して定義されます。
PWM 周波数は、タイマ動作周波数（fTIM）を、ARR +1×クロックプリス
ケーラ +1 で割ることで求められます。
実際、両方のレジスタ値の検索は反復処理となり、クロック分周なしの
PSC = 0 から開始する必要があります。これにより、PWM の分解能が実現可能な最高値となります。
この場合、ARR 値は単純にタイマクロック周波数と PWM 周波数の比率から 1 を引いたものになります。
この等式でタイマの ARR 範囲（選択したタイマに応じて 16bit または
32bit の値）を超える ARR 値である場合、次のシーケンスでより高いプ
リスケーラ値で再計算する必要があります。
ARR 値 = 2 で割ったタイマクロック周波数を PWM 周波数で割って 1を引いたもの、次は ARR 値 = 3 で割ったタイマクロック周波数を PWM
周波数で割って 1 を引いたものとなり、ここから ARR 値がプログラム可能な範囲内に収まるまで続きます。

30

いくつかの役立つ公式 2/2

31• デューティサイクルセットアップ• 自動リロード（TIMx_ARR の ARR）および比較値（TIMx_CCRx の PSC）で定義されます。
𝐶𝐶𝑅𝑥 + 1
𝐷𝑢𝑡𝑦 𝐶𝑦𝑐𝑙𝑒 =→ 𝐶𝐶𝑅𝑥 = 𝐷𝑢𝑡𝑦 𝐶𝑦𝑐𝑙𝑒 × 𝐴𝑅𝑅 + 1 − 1
𝐴𝑅𝑅 + 1

• PWM 分解能
• 分解能によって可能なデューティサイクル値の数が求められ、PWM 信号の制御がどのくらい精細なものになるかを示せます。

𝑅𝑒𝑠(

) =

𝑓
𝑓

• D/A コンバータの出力分解能に関して、ビット単位の別の式になります。

𝑅𝑒𝑠() = 𝑙𝑜𝑔 (𝑓𝑓)

このスライドでは、指定の PWM 周波数のデューティサイクル
のプログラム方法について説明しています。
このパラメータは、TIMx_ARR レジスタでプログラムされた自動リロード値（ARR）と、TIMx_CCRx レジスタでプログラムされた比較値を使用して定義されます。
デューティサイクルは、PWM 周波数に依存せず、比較値 +1
を、自動リロード値 +1 で割って求められます。
もう 1 つの役立つ指標は PWM 分解能です。
これによって可能なデューティサイクル値の数が求められ、PWM 信号の制御がどのくらい精細なものになるかを示せます。デューティサイクルステップの数で表される分解能は、単純にタイマクロック周波数と PWM 周波数の比率から 1 を引いたものになります。
D/A コンバータの出力分解能に関して、ビット単位の別の式になります。この場合、分解能はタイマクロック周波数と PWM
周波数の比率の底 2 の対数から 1 を引いたものになります。
31

アプリケーション例：LED の調光

32• この処理は、電流が定格出力電流を超えていない限り、PWM 出力で直接実行できます。
• PWM 周波数：1kHz• 周波数：𝐴𝑅𝑅 =−1=− 1 = 199999• ARR が最大 16bit 値を超えます。
•  プリスケーラを 4 にセットする必要があります。
• 𝐴𝑅𝑅 =⁄

− 1 → 𝐴𝑅𝑅 =⁄− 1 = 39999

TIM1_CH1
STM32• 開始時のデューティサイクル = 20%• 𝐷𝑢𝑡𝑦 𝐶𝑦𝑐𝑙𝑒 =→ 𝐶𝐶𝑅𝑥 =𝐴𝑅𝑅 + 1 × 𝐷𝑢𝑡𝑦 𝐶𝑦𝑐𝑙𝑒 − 1 =40000 × 0.2 − 1 ≅ 𝟕𝟗𝟗𝟗

• 調光分解能• 40000 ステップまたは log2(40000) = 15.3bit

このスライドでは、低電力 LED の調光に関するシンプルで実践的な
PWM の使用例を示しています。
この処理は、電流が定格出力電流を超えていない限り、PWM 出力で直接実行できます。
1 つ目のステップは周波数をプログラムして 1kHz にセットすることです。
プリスケーラなしかつ 200MHz のタイマ動作周波数で ARR 値の計算を実行する場合、結果は 199999 となり、タイマ 1 で使用できる 16bitの範囲を超えています。
タイマを 40MHz で動作させるにはタイマプリスケーラを 4 にセットする必要があります。この結果は ARR レジスタにとって有効な値の 39999となります。
2 つ目のステップには、デューティサイクルが 20% の比較レジスタ値の計算が含まれています。これによって、7999 の値が導き出されます。
最後に、これまでのスライドに示された公式から調光分解能を計算できます。40MHz で動作するタイマでは、1kHz の PWM で 40000 調光ス
テップとなり、15.3bit 相当の分解能に対応します。

32

アプリケーションのヒントとコツ

33• タイマ全体を設定して、カウンタを開始して、PWM モードを有効にして、さらに対応する出力もありますが、まだピンに動作がありません…。
 MOE ビットと CCxE ビットのセットについて検討しましたか?
• デッドタイムジェネレータを備えたタイマ（タイマ 1 と 8）の場合、TIMx_BDTR レジス
タのメイン出力イネーブル（MOE）ビットがすべての出力が制御し、ブレーク入力で障害が検出された場合に回路遮断器として機能します（すべての PWM 出力の全体無効化）。
 MOE ビットは、出力を有効化（設定）するためにセットする必要があります。
 これは、タイマがデッドタイム挿入なしで使用されている場合でも有効です。

このスライドでは、タイマ全体を設定して、カウンタを開始して、PWM モードを有効にして、さらに対応する出力もありますが、まだピンに動作がない場合の一般的なサポートケースについて説明しています。
たいてい、これは、MOE ビットや CCxE ビットがセットされていないためです。
TIMxCCER レジスタの CCxE ビットは、CCx チャネルの設定を入力または出力として定義します。CC1E ビットは、CH1 チャネルで
PWM 信号を取得するためにセットする必要があります。
デッドタイムジェネレータを備えたタイマ（タイマ 1、8、15、16、17）の場合、TIMx_BDTR レジスタのメイン出力イネーブル（MOE）ビッ
トがすべての出力が制御し、ブレーク入力で障害が検出された場
合に回路遮断器として機能します（すべての PWM 出力の全体無効化）。
MOE ビットは、出力を有効化（設定）するためにセットする必要があります。
これは、タイマがデッドタイム挿入なしで使用されている場合でも有効で、タイマが汎用アプリケーションに使用されます。
33

関連ペリフェラル

34• タイマにリンクされた次のペリフェラルについては、トレーニング資料を参照
してください。
• A/D コンバータ• タイマがインジェクト変換とレギュラ変換をトリガしています。
• PWM はアナログウォッチドッグで停止できます。

• D/A コンバータ• タイマは変換をトリガしています。

タイマは複数のオンチップペリフェラルとリンクされています。
A/D コンバータおよび D/A コンバータのトリガソースとして機
能します。

34

STM32MP1 インスタンス機能
高機能制御

TIM1 および TIM8
汎用タイマ

TIM2 および TIM5
汎用タイマ

TIM3 および TIM4
汎用

TIM12
汎用

TIM13, TIM14
汎用

TIM15
汎用

TIM16, TIM17
基本

TIM6 および TIM7

カウンタ
分解能

カウンタ
タイプ

PWM
モード

デッドタイムおよびブレーク
入力

DMA

16bit

アップ／
ダウン

標準 + 組み合
わせ + 非対称

可能

可能

32bit

アップ／
ダウン

標準 + 組み合
わせ + 非対称

不可

16bit

アップ／
ダウン

標準 + 組み合
わせ + 非対称

16bit

アップ

16bit

キャプチャ比較
チャネル

35

同期
マスタ

スレーブ

6

可能

可能

可能

4

可能

可能

不可

可能

4

可能

可能

標準 + 組み合
わせ

不可

不可

2

可能

可能

アップ

標準

不可

不可

1

可能

不可

16bit

アップ

標準 + 組み合
わせ

可能

不可

2

可能

可能

16bit

アップ

標準

可能

不可

1

可能

不可

16bit

アップ

標準

不可

可能

0

不可

不可

このスライドでは、STM32MP1 マイクロコントローラに存在するタイマイ
ンスタンスを列挙しています。
タイマ 1 および 8 はフル装備のタイマで、モータ制御に対応しており、すべての PWM オプションと、3 相 PWM 信号を同時に生成して 2 つの独立した A/D コンバータトリガを生成するための 6 個の比較チャネルを搭載しています。
タイマ 2、3、4、5 は汎用タイマで、すべての PWM モード、アップダウン
カウント機能、4 個のチャネルを搭載しています。タイマ 2 および 5 は、
32bit カウント範囲に対応しています。
タイマ 12、13、14 はライトタイマで、標準 PWM のみ、1 個または 2 個のチャネル、アップカウントモードのみをサポートしています。これらは、追加の独立したタイムベースが必要な場合に他のタイマを補完します。
タイマ 15、16、17 もライトタイマで、標準 PWM のみ、1 個または 2 個のチャネル、アップカウントモードのみをサポートしています。これらは、追加の独立したタイムベースが必要な場合に他のタイマを補完します。
また、1 組の PWM ペアのみでシンプルな電力システムを駆動するデッドタイム挿入とブレーク入力の機能もあります。
最後に、タイマ 6 および 7 は出力を持たない純粋なタイムベースで、原則として D/A コンバータのトリガやソフトウェアタイムベースの供給に使用されます。
35

参照

36• 詳細については、次のソースを参照してください。
• AN2592• How to achieve 32-bit timer resolution using the link system in STM32F10x and STM32L15x
microcontrollers (includes software: ：STSW-STM32009）• AN4013• STM32 cross-series timer overview• AN4507• PWM resolution enhancement through dithering technique for STM32 advanced-configuration,
general-purpose and lite timers (includes software: ：STSW-STM32151）• AN4776• General-purpose timer cookbook

4つのアプリケーションノートがリファレンスマニュアルのタイマセクションを補足します。
AN2592 では、2 個の同期 16bit タイマで構成される 32bit タイマの実践的な実装方法が記載されており、タイマの同期メカ
ニズム全体の理解を深めるのに役立ちます。ソフトウェア例も付属しています。
AN4013 では、すべてのタイマ機能と使用可能なファームウェ
ア例のさらに詳細な概要が記載されています。
AN4507 では、ディザリング技法での PWM 分解能向上の実装方法について説明されています。ソフトウェア例も付属しています。
AN4776 は、タイマの動作原理に関するおさらいから始まり、
標準タイマの使用例に関する例をまとめています。ソフトウェア
例も付属しています。

36