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

1.0版

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

1

概要
ETR

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

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

トリガ
出力

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

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

入力

CH1

CH1
CH2

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

CH2

CH3

CH3

CH4

CH4

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

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

2

主な機能

3

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

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

3

ブロック図（TIM9）

4

クロックと同期
ユニット

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

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

出力ステージ

このスライドは、一般的なTIM9タイマのブロック図です。
タイマカーネルは、カウント周期をプログラムするための自動リ
ロードレジスタと対になった16ビット・アップカウンタから構成されています。2つのタイマチャネルは、2つのキャプチャ-比較レジス
タによって制御されます。
このカウンタは、タイマチェーンを担当するクロック＆トリガコント
ローラによって供給されます。
左側は入力ステージと入力調整回路、右側は出力ステージです。
入力と出力の両方の機能を持っていることを示すため、TIMxCH1とTIMxCH2が両側に示されていることに注意してください。

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

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

このスライドでは、タイマカウント周期の調整方法を説明します。
各タイマには、リニアクロックプリスケーラが組み込まれていて、1から65536までのあらゆる整数でクロックを分周できます。これにより、カウント
ペースを正確に調整可能となります。たとえば、APBクロックが80MHzの場
合に80で割ると、正確に1MHzのカウントレートが得られます。
自動リロードレジスタがカウント周期を定めます。ダウンカウントモードでは、カウンタがアンダーフローすると、自動的に周期値がリロードされます。
アップカウントモードでは、カウンタが自動リロード値を超えると、ロールオーバーしてリセットされます。
カウンタがアンダーフローまたはオーバーフローして、新しい周期が開始されたときに、更新イベントが送信されます。それによって、タイマのパラメー
タをその周期と同期して調整するために用いられる割込みまたはDMAのリクエストがトリガされ、これはリアルタイム制御に役立ちます。この更新イ
ベントによって、複数のパラメータと、特に、クロックプリスケーラ、自動リ
ロード値、比較レジスタおよびPWMモードに対して、リロードレジスタからア
クティブレジスタへの転送がトリガされます。
8ビットのプログラム可能繰り返しカウンタによって、割込み発行レートをカウント周期から切り離して、たとえば、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本の出力により、タイマは、ひとつひとつのアクティブエッジからクロックを抽出し、2つの受信信号の間の相対的位相シフトに基づいてカウント方向を調整します。タイ
マカウンタは、このようにモータまたは電位差計の角度位置を直接保持します。
7

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

8

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

クロック

16ビットプリスケーラ
自動リロード16ビットカウンタ

タイマの最も簡単なユースケースは、内部タイムベースの提供です。
これは、周期的割込みの提供かシングルショットタイムアウト保護のために、ソフトウェアルーチンによって使用されるのが一般的です。タイマは、A/Dコンバータ、D/Aコンバータ、別のタイマなど、他のオンチップペリフェラルに周期的トリガを与えることもできます。
タイマからの（通常はカウンタオーバーフローによる）更新イベン
トは、ソフトウェアタイムベース割込みの発生か、周期的イベントのトリガを行うための通常の手段です。基本タイマTIM6とTIM7は、入出力チャネルを持たない最も単純なタイマであるため、このよ
うな作業に最も適しています。
他のいずれかのタイマを用いても、比較イベントを用いても、他のいずれかのタイマのトリガ出力を用いても、内部タイミングを生成できます。複数の比較チャネルを用いて、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生成のための重要な機能です。たとえば、
10kHzPWMによって、聴こえない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

柔軟性を高めるために複数のタイマを組合せ可能
マスタ
タイマ2

• タイマの同時開始

スレーブ1

クロック

• サイクル精度同期

トリガコン
トローラ

プリスケーラ

カウンタ

TRGO

ITR1

ITR x

プリスケーラカウンタ

更新• カスケード48ビット･カウンタ

スレーブ2

マスタ

タイマ4
ITR 3

タイマ 3
クロック

ITR x

トリガコントローラ

プレスケーラカウンタ

タイマ3

プリスケーラ

カウンタ

TRG 1

スレーブ/マスタ

更新

スレーブ3

タイマ2
ITR 1

TRG 2

ITR3

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

ITR x

スレーブ

ITR x
カウンタ

UpdateITR0

タイマ9
プリスケーラカウンタ

タイマ9
プリスケーラ

カウンタ

ITR x

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

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個含まれています。デッドタイム時間は8ビット値でプログラムされます。この重要な値が実行時に破壊されることを防止するため、ユーザはこの値をロック可能です。次の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、8• 2ブレークチャネル• デュアルレベル保護スキームが可能• 全出力オフ、または一部の出力強制オフかつ一部がオフ• デッドタイム挿入によりシュートスルーのリスクがないことを保証

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

22

ブレーク機能2/2

23

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

このスライドには、ブレーク機能ソースの管理方法が説明されています。
ブレークイベントのトリガのために、複数のブレークソースを組み合わせることができます。システムレベルソースとして、外部クロック障害を示すクロックセキュリティシステム（CSS）を選択可能です。
ブレーク入力は、MCUピンアウト上の代替機能コントローラを用いて選択することもできます。
外部ソースは、ブレーク検出ユニットに入力される前にコンディ
ショニング可能です。これによって、適切な極性の選択と、デジタ
ルフィルタを用いたスプリアスグリッチの破棄が可能となります。

23

A/Dコンバータ･トリガ

24

A/Dコンバータ･トリガのための複数のオプション• A/Dコンバータ･トリガ生成の管理に使用：• 比較イベント• TRGO出力• タイマ1と8にはA/Dコンバータ専用の追加のTRGO2出力も準備• 16種類のトリガ･ソース• PWM周期ごとに2回の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種類の比較イベントと、比較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と8のみ

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

STOP

停止
ペリフェラル･レジスタの内容は保持

SHUTDOWN

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

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

28

デバッグ

29

電力変換アプリケーションの安全なデバッグが可能• タイマごとに、DBGMCUモジュールのDBG_TIMx_STOP設定ビットによって、
マイクロコントローラがデバッグモードに移行（Cortex®-M7コアが停止）したときのタイマの動作方法の設定を行うことができる• DBG_TIMx_STOP=0• TIMxカウンタの動作は維持• DBG_TIMx_STOP=1• コアが停止すると、カウンタのクロックは停止• 相補出力を持つタイマでは、出力は無効

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

29

役立つ式1/2

30• PWM周波数セットアップ• 自動リロード（TIMx_ARRのARR）およびクロックプリスケーラ（TIMx_PSCのPSC）を用いて定義
𝑓𝑓=(𝐴𝑅𝑅 + 1) × (𝑃𝑆𝐶 + 1)
• 実際には、PSC=0（プリスケーラなし）で始める必要がある
𝑓
𝑓
𝐴𝑅𝑅 =
− 1 → 𝐴𝑅𝑅 =𝑓× (𝑃𝑆𝐶 + 1)
𝑓−1

• 16ビット（または32ビット）レンジを超える値が得られる場合には、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レンジ（選択したタイマ次第で16ビット
または32ビット）を超える値の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は16ビット最大値を超えている•

TIM1_CH1

プリスケーラを4にセットする必要がある• 𝐴𝑅𝑅 =⁄

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

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

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

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

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

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

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

33

関連ペリフェラル

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

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

34

STM32H7インスタンス機能
カウンタ
分解能

カウンタ
タイプ

PWM
モード

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

高機能制御
TIM1、TIM8

16ビット

アップ／
ダウン

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

可能

可能

汎用
TIM2、TIM5

32ビット

アップ／
ダウン

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

汎用
TIM3、TIM4

16ビット

アップ／
ダウン

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

汎用
TIM9、TIM12

16ビット

アップ

汎用
TIM10、TIM11
TIM13、TIM14

16ビット

基本
TIM6、TIM7

16ビット

キャプチャ比較
チャネル

35

同期
マスタ

スレーブ

6

可能

可能

可能

4

可能

可能

不可

可能

4

可能

可能

標準 +
組み合わせ

可能

不可

2

可能

可能

アップ

標準

可能

不可

1

可能

不可

アップ

標準

不可

可能

0

不可

不可

このスライドには、STM32H7マイクロコントローラに存在するタイ
マインスタンスがリストアップされています。
タイマ1と8は、モータ制御が可能なフル機能タイマです。同時に三相PWM信号を生成可能であるためにすべてのPWMオプションと6つの比較チャネルを含んでおり、2つの独立したA/Dコンバー
タトリガを備えています。
タイマ2、3、4、5は汎用タイマであり、すべてのPWMモード、アップ／ダウンカウント機能、4チャネルを含んでいます。さらに、タイマ
2と5は32ビットのカウントレンジに対応しています。
タイマ9、10、11、12、13、14は汎用タイマで、標準的なPWMのみ、
1または2チャンネル、アップカウントモードのみをサポートしています。独立したタイムベースの追加が必要な場合、他のタイマを補完します。また、デッドタイムの挿入とブレーク入力を備えており、1つのPWMペアのみでシンプルな電源システムを駆動することができます。
最後に、タイマ6と7は出力を持たない純粋なタイムベースで、主にDACコンバータのトリガやソフトウェアのタイムベースとして使用されます。

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には、同期している16ビットタイマ2個から作られる32ビッ
トタイマの実際的実装方法が記載されており、タイマ同期メカニズム全体を十分に理解するのに役立ちます。ソフトウェアの例が記載されています。
AN4013には、すべてのタイマ機能の詳細な全体像と、利用可能
なソフトウェア例が記載されています。
AN4507には、ディザリング技法によるPWM分解能の向上の実装
方法が示されています。ソフトウェアの例が記載されています。
AN4776は、タイマの動作原理に関する注意点から始まり、標準的なタイマユースケース例を集めたものが含まれています。ソフ
トウェアの例が記載されています。

36