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

1.0 版

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

1

概要
ETR

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

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

トリガ
出力

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

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

入力

CH1

CH1
CH2

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

CH2

CH3

CH3

CH4

CH4

アプリケーション側の利点• 多目的の動作モードにより CPU 負荷が軽減され、インタ
フェース回路の必要性が最小化• すべてのタイマインスタンスに対する単一アーキテクチャにより、スケーラビリティと使いやすさを提供• モータ制御とデジタル電力変換のアプリケーション向けの機能を搭載

STM32 には、ソフトウェアタスクやハードウェアタスク向けのタイミングリソースを提供する複数のタイマが搭載されています。ソフトウェアタスクは、主としてタイムベース、タイムアウト
イベント生成、タイムトリガの提供から構成されます。ハード
ウェアタスクは、I/O に関係するものです。タイマは、その出力に波形を生成し、受信信号のパラメータを測定し、入力への外部イベントに反応することができます。
STM32 タイマは非常に多目的であり、CPU を繰り返しタス
クとタイムクリティカルなタスクから解放した上で、インタ
フェース回路の必要性が最小化される複数の動作モードを備えています。（低電力タイマを唯一の例外として）すべてのSTM32 タイマは、同一のスケーラブルなアーキテクチャに基づいています。タイマの動作原理がひとたびわかってしまえ
ば、どのタイマにも有効となります。このアーキテクチャには相互接続機能が含まれており、複数のタイマをより大きな構成に結合可能です。最後に、一部のタイマには、電気的モータ制御と、照明やデジタルスイッチング電源などのデジタル
電力変換のための専用機能が搭載されています。
2

主な機能

3

• すべてのタイマは、同一アーキテクチャに基づいており、以下の要素に関してス
ケーラブルです。
• 入出力数（1～9）• 分解能（16bit または 32bit）• 機能（PWM モード、DMA、同期、アップダウンカウント）• 複数のタイマのリンクと同期が可能• 各タイマチャネルは入力または出力として独立に設定可能• モニタリングとトリガの目的で、他のペリフェラルとの複数の相互接続が可能

これらは、STM32 タイマ の主な機能です。すべてのタイマは、同一アーキテクチャに基づいていて、このプレゼンテーションの中で後ほど示すいくつかの派生物があります。タイマは、
一切 I/O を持たない純粋なタイムベースから、I/O を 9 本持つ高機能制御バージョンまで、備えている入出力の本数が主な相違点です。大部分のタイマは 16bit カウンタを備えていますが、一部は 32bit カウンタです。一部の機能は、最も小さなタイマ派生物には存在しないことがあります（DMA、同期、
アップダウンカウントモードなど）。
大部分のタイマは、リンクと同期を行って、より大きなタイム
ベースタイマを構築したり、同期波形の個数を増やしたり、複雑なタイミングと波形を処理したりすることができます。
タイマの内部では、どのチャネルもすべて入力（通常はキャ
プチャのため）または出力（通常は PWM のため）として独立に設定可能です。
相互接続マトリックスにより、タイマは、たとえば A/D コン
バータ変換の開始や内部クロックのモニタなど、他のペリフェ
ラルのトリガとしての役目を果たすことができます。
3

ブロック図（STM32F42xxx および TIM16）4

入力クロックタイマカーネル：カウンタユニットとキャプチャ/比較ユニット

出力ステージ
入力ステージおよび信号調節このスライドは、TIM16 タイマ のブロック図です。
タイマカーネルは、カウント周期をプログラムするための自動リロードレジスタと対になった 16bit アップカウンタから構成されています。タイマチャネルは、キャプチャ-比較レジスタによって制御されます。
カウンタには APB バスクロックが供給されます。
左側は入力ステージと入力調整回路、右側は出力ステージです。
入力と出力の両方の機能を持っていることを示すため、TIMxCH1 が両側に示されていることに注意してください。

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

5

複数の内部または外部クロック供給オプション• APB ドメインから提供されるデフォルトクロック• 低電力最適化のため、タイマは APB1 ドメインと APB2
ドメインに分割

TIMxCLK• 外部クロック供給ソース：• 他のオンチップタイマ（ITRx 入力）• 入力ピン 1 および 2（TI1、TI2）• デジタルフィルタとプログラム可能なエッジ感度を含む• 多目的外部トリガ入力（ETR）• デジタルフィルタ、プログラム可能なエッジ感度、基本プリ
スケーラ（/2、/4、/8）を含む• エンコーダからの直交信号

ETR

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

ITR1
ITR2
ITR3
ITR4

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

メインクロック

このタイマには複数のクロック供給スキームがあります。
タイマ連鎖も担当するクロックおよびトリガコントローラが、カウンタ用
クロックを処理します。
デフォルトクロックは、APB クロックドメインの 1 つにリンクされている
リセットおよびクロックコントローラから供給されます。低電力スキームを実装するため、各種のタイマは 2 つの APB ドメインで共有されています（タイマを含むペリフェラルによって消費される電流を制限するため、片方がハイスピード APB、もう片方がロースピード APB であるのが一般的です）。
外部タイマによるクロック供給により、外部イベントのカウントや、カウント周期を外部から調整することが可能となります。クロックソースは、
4 本の内部トリガ入力（ITR1～ITR4）の 1 本を使って、他のオンチッ
プタイマから供給することもできます。入力ピン 1 と 2 は、誤ったイベ
ントを除去するデジタルフィルタを含めるというオプションとともに、外部クロックとしての役目を果たすこともできます。外部トリガ入力（ETR）は、必要に応じて、受信信号の周波数を下げるデジタルフィル
タ、プログラム可能なエッジ感度、第 1 基本プリスケーラステージとともに、外部クロックとして設定可能です。
最後に、このプレゼンテーションの中で後ほど示すように、エンコーダからの直交信号を処理して、クロックとカウント方向を与えることが可能です。
5カウント周期の管理

6

微細で高精度な周期設定• 各タイマには、16bit リニアプリスケーラ（1、2、3…65536）が組み込まれています。
• 自動リロードレジスタがカウント周期を定めます。
• オーバーフロー／アンダーフローで更新イベント（割込みまたは DMA）が発行されます。
• リロードレジスタからアクティブレジスタへの内容の転送がトリガされます（プリスケーラ、周期、比較）。
•→ 高精度な周期変更（プリスケーラはオーバーフローのみで更新）•→ 比較レジスタ更新時のグリッチレス動作• 更新割込み発行レートは、繰り返しカウンタを用いて調整されます。

このスライドでは、タイマカウント周期の調整方法を説明します。
各タイマには、リニアクロックプリスケーラが組み込まれていて、1 から65536 までのあらゆる整数でクロックを分周できます。これにより、カウン
トペースを正確に調整可能となります。たとえば、APB クロックが 64MHzの場合に 64 で割ると、正確に 1MHz のカウントレートが得られます。
自動リロードレジスタがカウント周期を定めます。ダウンカウントモードでは、カウンタがアンダーフローすると、自動的に周期値がリロードされます。
アップカウントモードでは、カウンタが自動リロード値を超えると、ロールオーバーしてリセットされます。
カウンタがアンダーフローまたはオーバーフローして、新しい周期が開始されたときに、更新イベントが送信されます。それによって、タイマのパラメー
タをその周期と同期して調整するために用いられる割込みまたは DMA のリクエストがトリガされ、これはリアルタイム制御に役立ちます。この更新イ
ベントによって、複数のパラメータと、特に、クロックプリスケーラ、自動リ
ロード値、比較レジスタおよび PWM モードに対して、リロードレジスタから
アクティブレジスタへの転送がトリガされます。
8bit のプログラム可能繰り返しカウンタによって、割込み発行レートをカウント周期から切り離して、たとえば、1 回目、2 回目、3 回目、そして最高で256 回目の PWM 周期ごとに 1 回の割込みを得ることができます。これは、高い PWM 周波数を扱う際に特に役立ちます。

6カウントモード

7• インクリメンタル／直交エンコーダとモータ駆動アプリケーションに対応• アップ／ダウンカウントモードに対応• TIM1 および TIM2

• センターアライン PWM の生成• オーバーフローとアンダーフローで方向が変化

センターアラインモード
タイマクロック
自動リロード更新イベント比較

OCx• 電気モータの音響ノイズを低減• 直交エンコーダ対応を内蔵• ロータリーエンコーダ／デジタル電位差計• 位置センサ• タイマの直接角度読取りが可能

STM32 タイマの一部（高機能制御タイマ 1 と汎用タイマ 2）
は、アップ／ダウンカウントモードに対応しています。
カウント方向は、ソフトウェアによってプログラムすることも、
センターアライン PWM モードでタイマによって自動管理することも可能です。このモードでは、カウンタのオーバーフローとアンダーフローでカウント方向が自動的に変化します。ある
特定の PWM スイッチング周波数に対して、このモードを用いると、有効電流リップル周波数を 2 倍にすることで音響ノイズが低減されますので、パワーステージのスイッチング損失とノイズの最適なトレードオフが得られます。
カウント方向は、タイマがエンコーダモードにあるときにも自動的に処理可能です。直交エンコーダは、電気モータ内の高精度なロータ位置センシングや、デジタル電位差計のために用いられるのが一般的です。直交エンコーダセンサ（インクリ
メンタルエンコーダとも呼ばれます）の 2 本の出力により、タイマは、ひとつひとつのアクティブエッジからクロックを抽出し、2 つの受信信号の間の相対的位相シフトに基づいてカウント方向を調整します。タイマカウンタは、こうやってモータまたは
電位差計の角度位置を直接保持します。
7

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

8

ソフトウェアとハードウェアのタイムベース用• タイマは単純なタイムベースとして使用可能• ソフトウェア管理用• 他のペリフェラルに周期的トリガを与えるため• A/D コンバータ、D/A コンバータ、その他のタイマ• （カウンタオーバーフローによる）更新イベントは割込みのトリガに使用可能• 汎用タイマ使用時のその他の手段• 比較イベントを使用• 周期当たり複数イベントが可能• タイマのトリガ出力を使用

タイマの最も簡単なユースケースは、内部タイムベースの提供です。
これは、周期的割込みの提供かシングルショットタイムアウト
保護のために、ソフトウェアルーチンによって使用されるのが一般的です。タイマは、A/D コンバータ、D/A コンバータ、別のタイマなど、他のオンチップペリフェラルに周期的トリガを与えることもできます。
タイマからの（通常はカウンタオーバーフローによる）更新イ
ベントは、ソフトウェアタイムベース割込みの発生か、周期的イベントのトリガを行うための通常の手段です。
他のいずれかのタイマを用いても、比較イベントを用いても、他のいずれかのタイマのトリガ出力を用いても、内部タイミン
グを生成できます。複数の比較チャネルを用いて、1 つだけのタイマで複数のタイミングイベントを生成可能です。

8

入力キャプチャ

9

CPU オーバーヘッド低減のための信号の事前調整を含む• 各チャネルは入力キャプチャとして個別に設定可能であり、次のような機能を備えています。
• 入力の再配置（1 つの入力は 2 つのキャプチャチャネルに配置可能)• プログラム可能なエッジ感度（立ち上がり／立ち下がり／両方）• イベントプリスケーラ（1 / 2 / 4 / 8 ごとに 1キャプチャ）• デジタルフィルタ（デバウンスおよびノイズ除去用）• キャプチャイベントによって、カウンタ値がキャプチャレ
ジスタに転送され、割込みまたは DMA リクエストがトリガされます。
• 読み取られずにキャプチャレジスタが上書きされると、オー
バーキャプチャフラグがセットされます。

このスライドには、入力キャプチャ機能が説明されています。
各チャネルは、いくつかの信号調整オプションを備えている入力キャプチャとして個別に設定可能です。1 つの入力は、（通常は立ち下がりエッジ
キャプチャから立ち上がりエッジキャプチャを区別するために）2 つのキャ
プチャチャネルに配置可能です。エッジ感度はプログラム可能であり、立ち上がりエッジ、立ち下がりエッジ、両エッジのいずれかとなります。イベント
プリスケーラによって、2、4、8イベントごとに 1イベントのキャプチャが可能です。これによって、高い周波数の信号を処理する際の CPU 負荷が低減
され、複数周期の入力信号に対して測定が行われるために、測定精度の向上が可能となります。
ノイズやバウンスによる誤った遷移イベントは、プログラム可能なデジタル
フィルタを用いて除去可能です。この図は、フィルタ許可が 4 に設定された場合の信号のフィルタ方法を示しています。上側のケースでは、内部カウンタ値を見れば分かるように、立ち上がりエッジから 4サンプリング周期
後に、きれいな立ち上がりエッジキャプチャがトリガされています。下側のケースでは、グリッチのためにフィルタカウンタがリセットされ、High の値の 4サンプルが連続でカウントされた後に、キャプチャが発生しています。
ひとたびキャプチャトリガが発行されると、タイマのカウンタがキャプチャレ
ジスタに転送され、割込みまたは DMA リクエストの発行が可能となります。
前回のキャプチャが読み出される前に新しいキャプチャが発生すると、キャプチャレジスタが上書きされ、必要に応じてソフトウェアがこの状態を管理するために、オーバーキャプチャフラグがセットされます。
9

アドバンストキャプチャオプション

10

ソフトウェアオーバーヘッドのない直接測定• クリアオンキャプチャモード• このモードでは、キャプチャがトリガされると直ちにカウン
タがリセットされます。

タイマクロック

PWM

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

• XOR 機能付きクリアオンキャプチャモード

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

X

6

10

10

• 最高 3入力までのいずれかのエッジの間のインターバル
をキャプチャ可能です。
 電気モータのホールセンサに使用されるのが一般的です。

このスライドには、更に高機能なキャプチャ関連機能がいくつか示されています。
クリアオンキャプチャモードでは、キャプチャがトリガされると直ちにカウンタがリセットされます。従来のフリーランカウンタではトリガ後の周期を求めるために追加計算が必要となるのに対して、
このモードでは、周期の直接測定が可能です。
PWM 入力モードでは、タイマは、受信した PWM 信号の周期とデューティサイクルの両方をキャプチャ可能です。入力信号は、内部で 2 つのキャプチャチャネルに送られます。信号の立ち上がりエッジが入力キャプチャ 2 でキャプチャされ、クリアオンキャ
プチャモードの周期値を出力します。立ち下がりエッジはキャプ
チャ 1チャネルでキャプチャされ、パルス長時間を出力します。したがって、デューティサイクルは、入力キャプチャ 1 と入力キャプ
チャ 2 との比に単純に一致します。
最後に、タイマには、3 本の入力チャネルを XOR ロジックで結合する 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 が生成される場合に、スイッチングノイズが拡散されるため有益です。ある特定のスイッチング周波数に対する電流リップルの周波数を 2 倍にできることから、これは、電気モータ駆動のための三相 PWM 生成のための重要な機能です。たとえば、10kHz PWM によって、聴こえない 20kHz の電流リップルが生成されます。これによって、PWM 周波数によるスイッチング損失が最小限に抑えられるのと同時に、静かな PWM 動作が保証されます。
センターアラインモードのバリアントの 1 つが、2 つの比較レジスタによって
PWM 信号のターンオンとターンオフが定義される非対称 PWM モードです。
ターンオン時間とターンオフ時間が個別に定義されることから、パルス幅設定の分解能が向上します。また、フルブリッジ位相シフトトポロジに基づく DC-DC コ
ンバータの駆動に必要となる位相シフト PWM 信号の生成も可能です。この場
合、同一周波数で 50% デューティサイクル、位相シフトが 0～180° の間で変化する 2 つの PWM 信号がタイマから出力されます。

13

それ以外の PWM モード

14

PWM 機能の拡張と外付けグルーロジックの回避• 組み合わせ PWM モード• さらに複雑な波形のために、2 本のチャネルを OR または AND で組み合わせ• 組み合わせ三相モード• ゼロベクタ挿入のため、通常の三相 PWM と 4番目の PWM の組み合わせが可能

このスライドには、組み合わせ PWM モードが示されています。
このモードによって、隣接するチャネル（出力比較 1 と 2、または出力比較 3 と 4）で生成される 2 つの PWM 信号の論
理組み合わせが可能となります。PWM は、論理和や論理積を取って、複雑な波形を生成できます。これによって、あらゆるパルス幅とあらゆる位相関係値で生成される 2 つの周期パルスを得ることができます。
組み合わせ三相モードは、三相モータ制御アプリケーション
を特にターゲットとしています。この場合、センターパターン
PWM 信号の中央にロー状態を挿入するために、タイマのチャネル 5 を 3 つのチャネル（1、2、3）いずれかと組み合わせることができます。このモードによって、ゼロベクタ挿入と呼ばれることの多い技法が用いられた、三相モータ制御の低コ
ストな電流センシング技法の実装が非常に簡単となります。

14

アドバンスト PWM モード

15

外部制御を必要とする PWM 信号用• 可変周波数 PWM• 外部信号により駆動• サイクル-バイ-サイクル制御デューティサイクル
• 電流ループでは、コンパレータまたは外部ピンにより駆動

このスライドには、外部信号による周波数またはデューティサイクルの駆動が可能な、より特定的な PWM モードが説明されています。
タイマは、ETR または チャネル 1 入力もしくはチャネル 2 入力に接続された外部リセット信号を用いて、可変周波数信号を提供することができます。このモードの目的は、オン／オフ時間が固定で、ハードウェア制御される周波数が連続的に調整されている信号を供給することです。タイマは、
比較レジスタを用いてオン時間（あるいはオフ時間）を制御する一方で、外部リセットがなくとも PWM が停止せず、境界条件において安全な制御が提供されることが、自動リロードレジスタによって保証されます。この技法
は、幹線給電アプリケーション用遷移モード PFC（力率制御器）や電流制
御デジタル LED 照明などのさまざまな目的に用いられます。
タイマの別のモードは、オンチップコンパレータかオフチップ信号を用いてハードウェア制御されるデューティサイクルを得ることです。PWM は固定
周波数で動作し、最高デューティサイクルは比較レジスタによってセットされ、実際の値はサイクルごとに制御されます。これは、DC モータやソレノイドの駆動に代表される電流制御 PWM が必要なアプリケーションに用いられます。この場合、コンパレータが負荷へのピーク電流値をモニタします。
電流がプログラムされた閾値を超えると、コンパレータが直ちに PWM 出
力をリセットします。出力は次の PWM 周期で自動的に再開されますので、
ピーク電流値が制御されることになります。

15

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

16

柔軟性を高めるスケーラブル設計• トリガコントローラは、マスタ／スレーブ構成において複数のタイマをカスケード可能• スレーブ：トリガコントローラが TRGI の入力を収集

TIMxCLK• 外部トリガピン（ETR）から• ITR の他のオンチップリソースから• 通常は他のタイマからの TRGO 出力• マスタ：内部タイマ信号を TRGO に送信

ETR

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

ITR1
ITR2
ITR3
ITR4

TI1F_ED

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

TI1FP1TI2FP2• カスケード構成において、任意のタイマは同時に
スレーブモードとマスタモードで動作可能

メインクロック

このスライドには、タイマの同期機能が説明されています。
トリガコントローラは、マスタ／スレーブ構成において複数のタイマをカスケード可能となっています。あるタイマは、マスタ
タイマとして 1 つ以上のタイマを制御することも、スレーブとして別のタイマによる制御を受けることもできます。クロックおよびトリガコントローラが、タイマ間のリンクとしての役割を果たします。マスタモードでは、複数の内部制御信号を、そのタイ
マの外部のオンチップ TRGO トリガ出力に変更できます。ス
レーブモードでは、外部トリガピン（ETR）、または他のTRGO 出力に接続されている 4 本の内部トリガ入力（ITR1～ITR4）のうち 1 本からの TRGI（メイントリガ入力）への複数の入力を収集します。さらに、入力キャプチャ 1 と 2 のピンは、（主としてカウンタをリセットするための）内部トリガとしても使用できます。
スレーブモードとマスタモードは、独立してプログラム可能です。そのため、カスケード構成において、任意のタイマは同時にスレーブモードとマスタモードで動作し、入力トリガを受け付けながら出力トリガを供給することができます。
16

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

17

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

クロック
新 CCR1
CCR1

マスタ CNT
マスタ CC1

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

17同期動作の例

18

柔軟性を高めるために複数のタイマを組み合わせ可能• タイマの同時開始• サイクル精度同期

マスタ
タイマ 1

スレーブ 1

クロック

トリガ
コントローラ

カウンタ
更新

TRGO

タイマ 2

ITR1

プリスケーラ

ITR x

カウンタ

カウンタ

マスタ
タイマ 1
クロック

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

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

カウンタ

TRG 1

スレーブ／マスタ

更新

タイマ 2
ITR 1
プリスケーラTRG 2

トリガ
コントローラ

ITR x
カウンタ

更新

このスライドには、同期動作の例が 2 つ示されています。
最初の例には、4 個のタイマを同時に開始する方法が示されています。あるメカニズムによって、マスタ／スレーブリンクの遅延を補正するために、少し遅れてマスタタイマを開始することができるようになっており、すべてのタイマがサイクル精度で同期されます。図に示すようにタイマ 1 とタイマ 2 のチャネルを組み合わせることにより、最大で 8 本の PWM チャネルを同期可能です。
2 番目の例には、タイマを 3 個カスケードして 48bit タイマを作成する方法が示されています。カウンタロールオーバー時に生成される更新イベントが次のスレーブタイマへの入力クロックとして用いられ、タイマ 1 のカウンタが下位の 16bit を、
タイマ 2 のカウンタが上位ビットの 16～47bit をそれぞれ保
持します。

18

モータ制御機能19

STM32 タイマはモータ駆動全般をカバー• PWM の生成
• センターアラインモードと組み合わせ三相モード• デッドタイム挿入• 6 ステップモード• 保護（デュアルブレーク緊急停止機構）• 速度 & 位置検出
• エンコーダ、ホールセンサ、タコメータジェネレータ専用モード• A/D コンバータトリガ

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

デッドタイム挿入

20

タイマ当たり最大 3 個のハーフブリッジコンバータを直接駆動• ハードウェアデッドタイムユニットによって、オーバーラップのない相補 PWM 信号が生成• 機能安全のためにデッドタイムレジスタをロック（読出し専用）可能• ハーフブリッジコンバータとフルブリッジコンバータにおけるクロスコンダクションを防止• DC-DC コンバータ、DC モータ、三相ブラシレスモータ

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

このスライドには、デッドタイム挿入機能が説明されています。
ハードウェアデッドタイムジェネレータによって、基準 PWM
信号から 2 つのオーバーラップのない相補 PWM が供給されます。STM32 タイマには、OC1、OC2、OC3 のためのデッドタイムジェネレータが 3 個含まれています。デッドタイ
ム時間は 8bit 値でプログラムされます。この重要な値が実行時に破壊されることを防止するため、ユーザはこの値をロック可能です。次の MCU リセットまでデッドタイムレジスタ
を読出し専用モードに切り換えるライトワンスロックビットをセットすることで、この処理は実行されます。
デッドタイム挿入が必要であるのは、2 本の電源レールの間
でトランジスタのペアが直列に接続されるハーフブリッジを駆動する場合です。この場合、物理的なスイッチング特性を考慮して、一方がスイッチオンする前に少しの時間を挿入して、他方がスイッチオフ可能であるようにする必要があります。
ハーフブリッジは、ここに示したフルブリッジトポロジを用いての DC モータまたはステッピング・モータの駆動や、3 つのPWM ペアによる三相インバータの駆動のために、DC-DC
コンバータの中で使われることが一般的です。
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 ステップ駆動（ブロック転流とも呼ばれます）を管理する方法を示します。
これは、1 個はホールセンサ信号の処理、もう 1 個はロータの角度位置を用いて同期される PWM 生成を管理する 2 個のタイマの連鎖から構成されており、6 個の連続するステップを生成します。
最初のタイマは、クリアオンキャプチャモードで動作し、3 本の入力でトリガされます。比較レジスタ（ここでは比較 2）が、生の角度位置と転流時間の間のプログラム可能な遅延の追加を受け持ちます。キャプチャレジスタ 1
は、連続するホールセンサのエッジ間のタイミングインターバルを保持しており、速度調整ループに必要です。
比較 2 一致イベントは、TRGO 出力を通じてスレーブタイマに伝搬します。
これらのイベントは、転流イベントとしての役割を果たし、PWM 生成の変更をトリガします。シーケンスの 6 つのステップそれぞれについて、6 本の出力の状態は、強制アクティブと非アクティブのいずれかか、PWM 信号の生成に定義されます。あるステップから別のステップへの遷移は、転流
割込みルーチンの中でソフトウェアによってリロードされ、次の転流がやってきたときに出力動作モードを再プログラムするため、ハードウェアによって自動的に転送されます。
右図には、2 回の連続する完全な 6ステップシーケンスのための 6 つのPWM 信号が、モータ位相の中の 1 つの電流とともに示されています。

21

ブレーク機能 1/2

22

クラス最高の保護スキーム• ブレークイベントによって PWM 出力が停止• ハードウェアによる（遅延時間最小）• 非同期（クロックなし動作、クロック関連遅延なし）• プログラム可能な安全状態（ハイ／ロー／ハイインピーダンス)• 相補出力をもつタイマで使用可能• タイマ 1、16、17• 2 ブレークチャネル• デュアルレベル保護スキームが可能• 全出力オフ、または一部の出力強制オフかつ一部がオフ• デッドタイム挿入によりシュートスルーのリスクがないことを保証

このスライドには、ブレーク機能が説明されています。
ブレークイベントによって、PWM 出力を自動的に無効にして、強制的にユーザ設定可能な状態（ハイレベルもしくはローレベルのローインピーダ
ンス、またはハイインピーダンス）とするハードウェア保護機構がトリガされます。ロジック回路は、クロックを使用せずに非同期に動作します。これによって、システムクロックが故障した場合であっても機能性が保証され、保護を遅らせる傾向にあるクロック関連伝播時間が回避されます。
この機能は、タイマ 1 と 16 と 17 で使用できます。これらは相補 PWM 出
力を備えており、電力変換タスクを実行できます。
タイマ 1 には独立したブレークチャネルが 2 つあります。これによって、たとえば、すべてのスイッチがオフする優先順位の低い保護は、ローサイド
スイッチがアクティブとなる優先順位の高い保護によって上書きされる、
デュアルレベル保護スキームが提供されます。さらには、パワーステージ
を安全に無効化するための故障モードに移行する前に、デッドタイム遅延
を直ちに挿入可能です。これによって、潜在的なシュートスルー状態が防止されます。たとえば、ハイサイドがスイッチオフされてローサイドがスイッチオンされる安全状態がプログラムされていながら、ハイサイド PWM がオンのときに故障が発生したときのことを考えてみましょう。故障の発生時に、システムはまずハイサイド PWM を無効としてから、ローサイドをス
イッチオンする前にデッドタイムを挿入します。

22

ブレーク機能 2/2

23

複数の緊急停止入力ソース• CSS（クロックセキュリティシステム）
からのシステムブレークソースを含む• グリッチ除去用デジタルフィルタ• プログラム可能な極性• 双方向ブレーク

このスライドには、ブレーク機能ソースの管理方法が説明されています。
ブレークイベントのトリガのために、複数のブレークソースを組み合わせることができます。システムレベルソースとして、
外部クロック障害を示すクロックセキュリティシステム（CSS）
を選択可能です。
ブレーク入力は、MCU ピンアウト上の代替機能コントローラ
を用いて選択することもできます。
外部ソースは、ブレーク検出ユニットに入力される前にコンディショニング可能です。これによって、適切な極性の選択と、デジタルフィルタを用いたスプリアスグリッチの破棄が可能となります。
BKIN ピンと BKIN2 ピンはオープンドレインの双方向 I/O です。これによって、MCU の外に内部ブレークイベントの出力が可能となります。これは、複数のコンポーネントが同じブレークと break2 信号ライン（通常は複数の MOSFET ゲート
ドライバ）に接続されている場合に役立ちます。

23

A/D コンバータトリガ

24

A/D コンバータトリガのための複数のオプション• A/D コンバータトリガ生成の管理に使用：• 比較イベント• TRGO 出力• タイマ 1 には A/D コンバータ専用の追加の TRGO2 出
力も• 16 種類のトリガソース• PWM 周期ごとに 2 回の A/D コンバータトリガが可能
OC6• TRGO は同期目的に使用可能
OC4

カウンタ

OC4REF
OC6REF
TRGO2

このスライドには、タイマに関連した A/D コンバータトリガオプ
ションが説明されています。
A/D コンバータは、ほとんどの STM32 タイマによってトリガ可能であり、3 つのオプションがあります。
これは、比較イベントを用いて実行できます。A/D コンバータ変換は、ある特定の比較一致で開始されます。表に示されているよ
うに、対応している比較イベントのリストはタイマごとに異なります。
TRGO イベントは、特定のタイマでも使用できます。TRGO は比較イベントまたはレジスタ更新、カウンタリセット、トリガ入力などのタイマ内部制御信号のいずれかであることから、これによって柔軟性が拡大します。その反面、これによって TRGO を同期目的に使用することができなくなります。
この理由により、タイマ 1 には A/D コンバータトリガ専用である
追加の TRGO2 出力も備わっています。
TRGO2 は、6 種類の比較イベントと、比較 4 イベントと比較 6
イベントの組み合わせで PWM 周期ごとに 2 回のトリガを得る
可能性を含めて、16 種類の可能性を提供します。これによっても、TRGO が複数タイマ同期スキームに使用可能のままとなります。
24

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

25

A/D コンバータ読出し中の PWM 関連ノイズを回避• 三相モータ制御アプリケーションにおいて、カウンタオーバーフロー時の A/D コン
バータトリガを用いれば、平均電流値を取得してノイズが多い A/D コンバータ変換を回避することができます
Vdd
CH1

CH2

CH3

CH1N

CH2N

CH3N

カウンタ
比較 2
比較 3

三相
モータ
M

ローサイド CH2N
ローサイド CH3N
相電流

相電流
平均電流

シャント電圧

0V
A/D

A/D

A/D

コンバータ

コンバータ

コンバータ

A/D コンバータ入力（シャント電圧）
カウンタロールオー
バーでトリガされる
A/D コンバータサン
プリング

このスライドには、PWM 同期 A/D コンバータトリガの例が説明されています。
三相モータ制御においては、A/D コンバータの読出しをパワーステー
ジの制御のために生成された PWM と同期させることが必須です。これによって、電流波形のリップルから平均値を抽出可能となり、電源スイッチによるリンギングから適切な距離を置いて A/D コンバータ読出しが行われることが保証されます。
左側に示したのは三相モータインバータです。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、外部トリガ入力ピンからの）トリガイベントに
より発行。

Com

可能

可能

ブレーク

可能

不可

タイマ 1 のみ

このスライドには、割込みと DMA のリクエストソースがリストアップされています。
ほとんどのイベントは、割込みリクエストと DMA リクエストのどちらも、しかも 2 つ同時に生成することができます。カウン
タのオーバーフロー時かアンダーフロー時に更新が発行されます。これは、主として、PWM 周期の先頭でタイマのランタ
イム設定をリフレッシュし、次回のレジスタ更新までのインターバルを最大化するために使用されます。繰り返しカウン
タを用いると、PWM 周期をいくつかスキップして、高い PWM
周波数において割込みや DMA リクエストの回数を少なくすることができます。
4 種類のキャプチャ／比較イベントそれぞれは、固有の割込
みと DMA を備えています。（トリガソースにはよらず）TRGI
入力のトリガイベントによって割込みまたは DMA リクエストをトリガすることも可能です。
最後に、割込みと DMA リクエストのその他のソースには、タイマ
1 の転流イベントとブレークイベントがあります。ブレークイベン

トは DMA リクエストを生成しないことに注意してください。
26

DMA バーストモード

27

動作中にタイマを再設定可能• DMA イベント 1 つだけで複数のレジスタを更新可能• DMA の効率的利用（ストリームが 1 本必要）

PWM 周期 1

RAM

レジスタ

OC1t0

OC1

OC2t0

OC2

OC3t0

OC3

OC1t1
PWM 周期 2

OC2t1
OC3t1

仮想
レジスタ

OC1t2
OC2t2
OC3t2
...

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

27

低電力モード
モード

28

説明

RUN

有効。

SLEEP

有効。ペリフェラル割込みによって、デバイスは SLEEP モードを終了します。

低電力 RUN有効。

低電力 SLEEP

有効。ペリフェラル割込みによって、デバイスは低電力 SLEEP モードを終了します。

STOP 0 / STOP 1

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

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

STANDBY

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

SHUTDOWN

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

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

28

デバッグ

29

• 電力変換アプリケーションの安全なデバッグが可能• タイマごとに、DBGMCU モジュールの DBG_TIMx_STOP 設定ビットによって、マイクロコントローラがデバッグモードに移行（Cortex®-M4 コアが停止）したときのタ
イマの動作方法の設定が行えます。
• DBG_TIMx_STOP = 0• TIMx カウンタの動作は維持されます。

• DBG_TIMx_STOP = 1• コアが停止すると、カウンタのクロックは停止します。
• 相補出力を持つタイマでは、出力は無効になります。

デバッグモードにおけるタイマの状態は、タイマごとに 1bit の設定ビットで設定できます。
デバッグビットがリセットされていると、ブレークポイントの間にタイマクロックは維持されます。
デバッグビットがセットされていると、コアが停止すると直ちに
タイマカウンタのビットが停止します。さらに、相補出力を持つ
タイマの出力は無効となり、強制的に非アクティブ状態となります。この機能は、タイマが電源スイッチや電気モータを制御しているアプリケーションで非常に役立ちます。ブレークポイ
ント到達時に、過電流によってパワーステージが破壊されたり、モータが制御されていない状態で放置されたりすることが防止されます。

29

役立つ式 1/2

30

• 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）を、クロックプリスケーラ +1 を
ARR+1 倍したもので割ることで得られます。
実際には、両方のレジスタの値を見つけるのは繰り返し処理となり、PSC= 0（クロック分周なし）で始める必要があります。これにより、PWM が可
能な限り細かい分解能を持つことが保証されます。
この場合、ARR は、単純に、タイマクロック周波数と PWM 周波数の比を取って、全体から 1 を引いた値となります。
この式によって、タイマの ARR レンジ（選択したタイマ次第で 16bitまたは
32bit）を超える値の ARR が得られる場合には、次のシーケンスにより、より大きなプリスケーラ値を用いて計算をやり直す必要があります。
タイマクロック周波数を 2 で割ったものをさらに PWM 周波数で割り、全体から 1 を引いた値に等しい ARR の値、次に、タイマクロック周波数を 3 で割ったものをさらに PWM 周波数で割り、全体から 1 を引いた値に等しい
ARR の値、という順番で、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 周波数の比を取って、全体から 1 を引いた値の 2 を底とする対数となります。

31

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

32• これは、電流が定格出力電流を超過しない限り、PWM 出力を用いて直接行うことができます。
• PWM 周波数：1kHz• 周波数：𝐴𝑅𝑅 =−1=− 1 = 199999• ARR は 16bit 最大値を超えています。
•

TIM1_CH1

 プリスケーラを 4 にセットする必要があります。

• 𝐴𝑅𝑅 =⁄

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

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

• 減光分解能• 40000 ステップあるいは log2(40000) = 15.3bit

このスライドは、PWM の実用例として低電力 LED の減光を示しています。
これは、電流が定格出力電流を超過しない限り、PWM 出力を用いて直接行うことができます。
最初のステップは周波数をプログラムすることであり、この値
は 1kHz とします。プリスケーラを用いずに、タイマ動作周波数を 200MHz として ARR の値の計算を行うと、その結果は199999 となり、タイマ 1 で使用可能である 16bit レンジを超過しています。
タイマプリスケーラを 4 にセットしてタイマを 40MHz で動作させる必要があり、ARR レジスタに有効な値である 39999 が得られます。
2 番目のステップは、デューティサイクルが 20% となるように比較レジスタの値を計算することから成ります。これにより、7999 の値が得られます。
最後に、減光分解能は、前のスライドに示した式から計算できます。40MHz で動作するタイマを用いると、1kHz PWM に
よって 40000 段階の減光ステップが得られ、15.3bit の等価分解能に相当します。
32

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

33• タイマは全部設定した。カウンタが開始された。PWM モードは有効になっている。対応する出力もそうなっている。しかし、依然としてピンが動作しない…
 MOE bitと CCxE bit のセットは考えましたか?
• デッドタイムジェネレータが搭載されているタイマ（タイマ 1、16、17）では、
TIMx_BDTR レジスタのメイン出力イネーブル（MOE）ビットがすべての出力を制御しており、ブレーク入力における障害検出の場合にサーキットブレーカとして作用します（PWM 全出力をグローバルに無効化）。
 MOE bit をセット（設定）して、出力を有効にする必要があります。
 デッドタイム挿入を用いずにタイマが使用されている場合であっても、これは有効です。

このスライドには、「タイマは全部設定した。カウンタが開始された。
PWM モードは有効になっている。対応する出力もそうなっている。
しかし、依然としてピンが動作しない」というよくあるサポート事例が説明されています。
これは、MOE bit または CCxE bit がセットされていないためであるのが一般的です。
TIMxCCER レジスタの CCxE bit によって、入力または出力としての CCx チャネルの設定が定義されます。CH1 チャネルに PWM信号を得るためには、CC1E bit をセットする必要があります。
デッドタイムジェネレータが搭載されているタイマ（タイマ 1、16、17）
では、TIMx_BDTR レジスタのメイン出力イネーブル（MOE）ビット
がすべての出力を制御しており、ブレーク入力における障害検出の場合にサーキットブレーカとして作用します（PWM 全出力をグロー
バルに無効化）。
MOE bit をセット（設定）して、出力を有効にする必要があります。
デッドタイム挿入を用いずにタイマが使用されている場合であっても、これは有効であり、タイマは汎用アプリケーションに用いられます。

33

関連ペリフェラル

34• タイマにリンクされた以下のペリフェラルに関するトレーニング教材を参照してくだ
さい。
• A/D コンバータ• タイマはインジェクト変換と通常の変換をトリガしています。
• PWMは、アナログウォッチドッグによって停止可能です。

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

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

34

STM32WB インスタンス機能

カウンタ
分解能

カウンタ
タイプ

PWM
モード

デッドタイムとブレーク入力

DMA

高機能制御
TIM1

16bit

アップ／
ダウン

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

可能

可能

汎用
TIM2

32bit

アップ／
ダウン

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

汎用
TIM16, TIM17

16bit

アップ

標準

可能

キャプチャ比較
チャネル

35

同期
マスタ

スレーブ

6

可能

可能

可能

4

可能

可能

不可

1

可能

不可

このスライドには、STM32WB マイクロコントローラに存在するタイマインスタンスがリストアップされています。
タイマ 1 は、モータ制御が可能なフル機能タイマです。同時に三相 PWM 信号を生成可能であるためにすべての PWM
オプションと 6 つの比較チャネルを含んでおり、2 つの独立した A/D コンバータトリガを備えています。
タイマ 2 は汎用タイマであり、すべての PWM モード、アップ／ダウンカウント機能、4 チャネルを含んでいます。さらに、32bit のカウントレンジに対応しています。
最後に、タイマ 16 と 17 は簡易型のタイマであり、標準
PWM のみに対応しており、1 チャネルでアップカウントモー
ドのみです。これらは、追加の独立したタイムベースが必要である場合に、他のタイマの補完的役割を果たすものです。
PWM ペアが 1 つだけの単純な電力システムを駆動するのための、デッドタイム挿入とブレーク入力を備えています。

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

以下の 3 冊のアプリケーションノートが、リファレンスマニュア
ルのタイマに関するセクションの補完的役割を果たします。
AN2592 には、同期している 16bit タイマ 2 個から作られる
32bit タイマの実際的実装方法が記載されており、タイマ同期メカニズム全体を十分に理解するのに役立ちます。ソフト
ウェアの例が記載されています。
AN4013 には、すべてのタイマ機能の詳細な全体像と、利用可能なソフトウェア例が記載されています。
AN4507 には、ディザリング技法による PWM 分解能の向上の実装方法が示されています。ソフトウェアの例が記載されています。
AN4776 は、タイマの動作原理に関する注意点から始まり、標準的なタイマユースケース例を集めたものが含まれています。ソフトウェアの例が記載されています。

36