15 汎用タイマー(GPTM)
この章は、CH32F2x、CH32V2x、およびCH32V3xファミリ全体に適用されます。
汎用タイマーモジュールには、16ビットタイマー(TIM2、TIM3、TIM4、およびTIM5)が搭載されており、
自動的にリロードすることでパルス幅の測定や特定周波数のパルスおよびPWM波形の生成などに使用できます。
自動制御や電源供給に使用できます。
15.1 主な特徴
汎用タイマー(TIM1/8/9/10)の機能
・16ビット自動リロードカウンタ。アップカウント、ダウンカウント、アップダウンカウントをサポート
・16ビットプリスケーラ。分周比は1~65536の範囲で動的に調整可能
・4つの独立したコンペア/キャプチャ
・各コンペア/キャプチャは、入力キャプチャ、出力比較、PWM生成、シングルパルス出力など、複数の動作モードをサポート
・タイマー制御用の外部信号
・複数モードでのDMA生成
・16ビット自動リロードカウンタ。アップカウント、ダウンカウント、アップダウンカウントをサポート
・16ビットプリスケーラ。分周比は1~65536の範囲で動的に調整可能
・4つの独立したコンペア/キャプチャ
・各コンペア/キャプチャは、入力キャプチャ、出力比較、PWM生成、シングルパルス出力など、複数の動作モードをサポート
・タイマー制御用の外部信号
・複数モードでのDMA生成
15.2 原理と構造
15.2.1 概要
図15-1 汎用タイマの構造ブロック図
図15-1に示すように、汎用タイマーの構造は、大きく分けて入力クロック部、コアカウンタ部、コンペア/キャプチャ部の3つの部分に分けられます。
汎用タイマーのクロックは、AHBバスクロック(CK_INT)、外部クロック入力ピン(TIMx_ETR)、クロック出力機能を持つ他のタイマー(ITRx)、 またはコンペア/キャプチャチャネルの入力端(TIMx_CHx)から供給できます。
これらの入力クロック信号は、設定された各種フィルタリングと分周処理を経てCK_PSCクロックとなり、コアカウンタ部に出力されます。
さらに、これらの複雑なクロックソースは、タイマー、ADC、DACなどの他の周辺機器にTRGOとして出力することもできます。
汎用タイマーのコアは16ビットカウンタ(CNT)です。
CK_PSCはプリスケーラ(PSC)によって分周され、CK_CNTとなり、最終的にCNTに出力されます。
CNTは、アップカウントモード、ダウンカウントモード、アップダウンカウントモードをサポートし、自動リロード値レジスタ(ATRLR)があります。
各カウントサイクルが完了すると、CNTに初期値がリロードされます。
汎用タイマーには4つのコンペア/キャプチャグループがあります。
各コンペア/キャプチャグループでは、専用ピンからパルスを入力したり、ピンに波形を出力したりできます。
つまり、コンペア/キャプチャは入力モードと出力モードをサポートしています。
コンペア/キャプチャレジスタの各チャネルの入力は、フィルタリング、周波数分割、エッジ検出などの操作をサポートし、 チャネル間の相互トリガーをサポートし、コアカウンタCNTにクロックを提供することもできます。
各コンペア/キャプチャには、メインカウンタ(CNT)と比較してパルスを出力するコンペア/キャプチャレジスタ(CHxCVR)のセットがあります。
15.2.2 汎用タイマーとアドバンストコントロールタイマーの違い
アドバンストコントロールタイマーと比較して、汎用タイマーには以下の機能がありません。
1) 汎用タイマーには、コアカウンタのカウント周期をカウントする繰り返しカウントレジスタがありません。
2) 汎用タイマーのコンペア/キャプチャには、デッドゾーン生成機能と相補出力がありません。
3) 汎用タイマーにはブレーク信号機構がありません。
4) 汎用タイマーのデフォルトクロックCK_INTはAPB2から供給されますが、アドバンストコントロールタイマーのCK_INTはAPB1から供給されます。
1) 汎用タイマーには、コアカウンタのカウント周期をカウントする繰り返しカウントレジスタがありません。
2) 汎用タイマーのコンペア/キャプチャには、デッドゾーン生成機能と相補出力がありません。
3) 汎用タイマーにはブレーク信号機構がありません。
4) 汎用タイマーのデフォルトクロックCK_INTはAPB2から供給されますが、アドバンストコントロールタイマーのCK_INTはAPB1から供給されます。
15.2.3 クロック入力
図15-2 汎用タイマソースのブロック図
このセクションでは、CK_PSCのソースについて説明します。ここでは、汎用タイマーの全体構造ブロック図のクロックソース部分を抽象化して示します。
使用可能な入力クロックは、次の4つのカテゴリに分類できます。
1) 外部クロックピン(ETR)入力のルート:ETR→ETRP→ETRF
2) 内部APBクロック入力ルート:CK_INT
3) コンペア/キャプチャピン(TIMx_CHx)からのルート:TIMx_CHx→TIx→TIxFPx(このルートはエンコーダモードでも使用されます)。
4) 他の内部タイマーからの入力:ITRx
実際の動作は、CK_PSCソースからSMSの入力パルス選択を決定することで、次の3つのカテゴリに分類できます。
1) 内部クロックソース(CK_INT)の選択
2) 外部クロックソースモード1
3) 外部クロックソースモード2
4) エンコーダコード
これら 4 つの操作により、上記の 4 つのクロック ソースを選択できます。
15.2.3.1 内部クロックソース (CK_INT)
SMSドメインが000bに保持されている状態で汎用タイマーが起動されると、内部クロックソース(CK_INT)がクロックとして選択されます。
このとき、CK_INTはCK_PSCです。
このとき、CK_INTはCK_PSCです。
15.2.3.2 外部クロックソース モード1
SMSが111bに設定されている場合、外部クロックソース モード1が有効になります。
外部クロックソース モード1が有効になっている場合、CK_PSCのソースとしてTRGIが選択されます。
TRGIのソースを選択するには、ユーザーがTSを設定する必要があることに注意してください。
TSでは、以下のパルスをクロックソースとして使用できます。
1) 内部トリガ (ITRx、xは0、1、2、3)
2) エッジ検出器通過後のコンペア/キャプチャ1の信号 (TI1F_ED)
3) コンペア/キャプチャの信号 TI1FP1およびTI2FP2 4) 外部クロックピンからETRF信号を送信します。
外部クロックソース モード1が有効になっている場合、CK_PSCのソースとしてTRGIが選択されます。
TRGIのソースを選択するには、ユーザーがTSを設定する必要があることに注意してください。
TSでは、以下のパルスをクロックソースとして使用できます。
1) 内部トリガ (ITRx、xは0、1、2、3)
2) エッジ検出器通過後のコンペア/キャプチャ1の信号 (TI1F_ED)
3) コンペア/キャプチャの信号 TI1FP1およびTI2FP2 4) 外部クロックピンからETRF信号を送信します。
15.2.3.3 外部クロックソースモード2
外部トリガモード2を使用して、外部クロックピン入力のすべての立ち上がりエッジまたは立ち下がりエッジをカウントします。
ECEビットがセットされている場合、外部クロックソースモード2が有効になります。
外部クロックソースモード2が有効になっている場合、CK_PSCとしてETRFが選択されます。
ETRピンはオプションのインバータ(ETP)と周波数分周器(ETPS)を通過してETRPになり、さらにフィルタ(ETF)を通過してETRFになります。
ECEビットがセットされ、SMSが111bに設定されている場合、TSは入力としてETRFを選択します。
ECEビットがセットされている場合、外部クロックソースモード2が有効になります。
外部クロックソースモード2が有効になっている場合、CK_PSCとしてETRFが選択されます。
ETRピンはオプションのインバータ(ETP)と周波数分周器(ETPS)を通過してETRPになり、さらにフィルタ(ETF)を通過してETRFになります。
ECEビットがセットされ、SMSが111bに設定されている場合、TSは入力としてETRFを選択します。
15.2.3.4 エンコーダモード
エンコーダモードを有効にするには、SMSを001b、010b、011bに設定します。
エンコーダモードを有効にすると、TI1FP1およびTI2FP2の特定のレベルでの信号出力に、別の遷移エッジを使用するように選択できます。
このモードは外部エンコーダを使用する場合に使用します。
具体的な機能については、セクション15.3.7を参照してください。
エンコーダモードを有効にすると、TI1FP1およびTI2FP2の特定のレベルでの信号出力に、別の遷移エッジを使用するように選択できます。
このモードは外部エンコーダを使用する場合に使用します。
具体的な機能については、セクション15.3.7を参照してください。
15.2.4 カウンタと周辺回路
CK_PSCは分周器(PSC)への周波数分周用入力です。
PSCは16ビットで、実際の分周係数はR16_TIMx_PSC+1の値に相当します。
CK_PSCはPSCを介してCK_INTになります。
R16_TIMx_PSCの値の変更はリアルタイムには反映されませんが、更新イベント後にPSCに反映されます。
更新イベントには、UGビットのクリアとリセットが含まれます。
PSCは16ビットで、実際の分周係数はR16_TIMx_PSC+1の値に相当します。
CK_PSCはPSCを介してCK_INTになります。
R16_TIMx_PSCの値の変更はリアルタイムには反映されませんが、更新イベント後にPSCに反映されます。
更新イベントには、UGビットのクリアとリセットが含まれます。
15.2.5 コンペア/キャプチャチャネル
図15-3 比較/キャプチャチャネルの構造ブロック図
コンペア/キャプチャは、複雑な機能を実現するためのタイマーの中核です。
その中核はコンペア/キャプチャレジスタであり、周辺入力部のデジタルフィルタリング、周波数分割とチャネル多重化、出力部コンパレータ、および出力制御によって補完されます。
コンペア/キャプチャのブロック図は図15-3のとおりです。
チャネルxピンから入力された信号は、TIxとして選択できます(TI1のソースはCH1以外でも構いません。図14-1のタイマーブロック図を参照してください)。
TI1はフィルタ(ICF[3:0])を通過してTI1Fを生成し、エッジ検出器を通過した後、TI1F_RisingとTI1F_Fallingに分割されます。
これらの2つの信号が選択され(CC1P)、TI1FP1が生成されます。
チャネル2のTI1FP1とTI2FP1は一緒にCC1Sに送られ、IC1として選択され、ICPS周波数分割を経て比較/キャプチャレジスタに送られます。
比較/キャプチャレジスタはプリロードレジスタとシャドウレジスタで構成され、読み取りおよび書き込み時にはプリロードレジスタのみが操作されます。
キャプチャモードでは、シャドウレジスタでキャプチャが行われ、その後プリロードレジスタにコピーされます。
比較モードでは、プリロードレジスタの内容がシャドウレジスタにコピーされ、その後シャドウレジスタの内容がコアカウンタ(CNT)と比較されます。
15.3 機能と実装
汎用タイマーの複合機能は、コンペア/キャプチャチャネル、クロック入力回路、カウンタ、およびタイマーの周辺回路の動作によって実現されます。
タイマーのクロック入力は、コンペア/キャプチャレジスタへの入力を含む複数のクロックソースから供給できます。
コンペア/キャプチャレジスタチャネルの動作とクロックソースの選択によって、タイマーの機能が直接決定されます。
コンペア/キャプチャレジスタは双方向で、入力モードと出力モードで動作できます。
遅延とパルス幅はプログラム可能です。
OPMビットを設定すると、次の更新イベントUEVが発生したときにコアカウンタを停止できます(カウンタが0に反転します)。
図15-4に示すように、TI2入力ピンの立ち上がりエッジの開始を検出する必要があります。
Tdelayの遅延後、OC1に長さTpulseの正パルスが生成されます。
1) TI2をトリガとして設定します。CC2Sフィールドを01bに設定し、TI2FP2をTI2にマッピングします。
CC2Pビットを0bに設定し、TI2FP2を立ち上がりエッジ検出に設定します。
TSフィールドを110bに設定し、TI2FP2をトリガソースとして設定します。
SMSフィールドを110bに設定し、TI2FP2を使用してカウンタを起動します。
2) Tdelayは比較/キャプチャレジスタの値によって定義され、Tpulseは自動リロード値レジスタの値と比較/キャプチャレジスタの値によって決まります。
タイマーのクロック入力は、コンペア/キャプチャレジスタへの入力を含む複数のクロックソースから供給できます。
コンペア/キャプチャレジスタチャネルの動作とクロックソースの選択によって、タイマーの機能が直接決定されます。
コンペア/キャプチャレジスタは双方向で、入力モードと出力モードで動作できます。
15.3.1 入力キャプチャモード
入力キャプチャモードは、タイマーの基本機能の1つです。
入力キャプチャモードの原理は、ICxPS信号の特定のエッジが検出されるとキャプチャイベントが発生し、カウンタの現在の値が比較/キャプチャレジスタ(R16_TIMx_CHCTLRx)にラッチされるというものです。
キャプチャイベントが発生すると、R16_TIMx_INTFRのCCxIFビットがセットされます。
割り込みまたはDMAが有効になっている場合は、対応する割り込みまたはDMAが生成されます。
キャプチャイベント発生時にCCxIFがすでにセットされている場合は、CCxOFビットがセットされます。
CCxIFは、ソフトウェアまたは比較/キャプチャレジスタの読み取りによるハードウェアによってクリアできます。
CCxOFはソフトウェアによってクリアされます。
入力キャプチャモードの使用手順を説明するために、チャネル1を例に挙げます。
1) CCxSを設定し、ICx信号のソースを選択します。
例えば、10bに設定され、IC1のソースとしてTI1FP1が選択されている場合、デフォルト設定は使用できません。
CCxSはデフォルトでコンペアキャプチャモジュールを出力チャネルとして使用します。
2) ICxFを設定し、TI信号のデジタルフィルタを設定します。デジタルフィルタは、決定された周波数とサンプリング時間に基づいてジャンプを出力します。
サンプリング周波数と時間はICxFによって決定されます。
3) CCxPビットを設定し、TIxFPxの極性を設定します。
例えば、CC1PビットをLowに維持し、立ち上がりエッジのジャンプを選択します。
4) ICxPSを設定し、ICx信号をICxPS間の分周係数として設定します。
例えば、分周せずにICxPSを00bに維持します。
5) CCxEビットを設定して、コアカウンタ(CNT)値を比較/キャプチャレジスタにキャプチャできるようにします。
CC1Eビットを設定します。
6) 必要に応じてCCxIEビットとCCxDEビットを設定し、割り込みまたはDMAを有効にするかどうかを決定します。
これらの操作により、コンペア/キャプチャチャネルの設定が完了します。
TI1がキャプチャされたパルスを入力すると、コアカウンタ(CNT)の値がコンペア/キャプチャレジスタに記録され、CC1IFがセットされます。
CC1IFが以前にセットされていた場合、CCIOFビットもセットされます。
CC1IEビットがセットされている場合は割り込みが生成され、CC1DEがセットされている場合はDMA要求が生成されます。
入力キャプチャイベントは、イベント生成レジスタ(R16_TIMx_SWEVGR)に書き込むことでソフトウェアで生成できます。
入力キャプチャモードの原理は、ICxPS信号の特定のエッジが検出されるとキャプチャイベントが発生し、カウンタの現在の値が比較/キャプチャレジスタ(R16_TIMx_CHCTLRx)にラッチされるというものです。
キャプチャイベントが発生すると、R16_TIMx_INTFRのCCxIFビットがセットされます。
割り込みまたはDMAが有効になっている場合は、対応する割り込みまたはDMAが生成されます。
キャプチャイベント発生時にCCxIFがすでにセットされている場合は、CCxOFビットがセットされます。
CCxIFは、ソフトウェアまたは比較/キャプチャレジスタの読み取りによるハードウェアによってクリアできます。
CCxOFはソフトウェアによってクリアされます。
入力キャプチャモードの使用手順を説明するために、チャネル1を例に挙げます。
1) CCxSを設定し、ICx信号のソースを選択します。
例えば、10bに設定され、IC1のソースとしてTI1FP1が選択されている場合、デフォルト設定は使用できません。
CCxSはデフォルトでコンペアキャプチャモジュールを出力チャネルとして使用します。
2) ICxFを設定し、TI信号のデジタルフィルタを設定します。デジタルフィルタは、決定された周波数とサンプリング時間に基づいてジャンプを出力します。
サンプリング周波数と時間はICxFによって決定されます。
3) CCxPビットを設定し、TIxFPxの極性を設定します。
例えば、CC1PビットをLowに維持し、立ち上がりエッジのジャンプを選択します。
4) ICxPSを設定し、ICx信号をICxPS間の分周係数として設定します。
例えば、分周せずにICxPSを00bに維持します。
5) CCxEビットを設定して、コアカウンタ(CNT)値を比較/キャプチャレジスタにキャプチャできるようにします。
CC1Eビットを設定します。
6) 必要に応じてCCxIEビットとCCxDEビットを設定し、割り込みまたはDMAを有効にするかどうかを決定します。
これらの操作により、コンペア/キャプチャチャネルの設定が完了します。
TI1がキャプチャされたパルスを入力すると、コアカウンタ(CNT)の値がコンペア/キャプチャレジスタに記録され、CC1IFがセットされます。
CC1IFが以前にセットされていた場合、CCIOFビットもセットされます。
CC1IEビットがセットされている場合は割り込みが生成され、CC1DEがセットされている場合はDMA要求が生成されます。
入力キャプチャイベントは、イベント生成レジスタ(R16_TIMx_SWEVGR)に書き込むことでソフトウェアで生成できます。
15.3.2 比較出力モード
比較出力モードは、タイマーの基本機能の1つです。
比較出力モードの原理は、コアカウンタ(CNT)の値と比較キャプチャレジスタ(R16_TIMx_CHCTLRx)の値とが一致した際に、特定の変化または波形を出力することです。
OCxMビット(R16_TIMx_CHCTLRx)とCCxPビット(R16_TIMx_CCER)は、出力がハイレベル、ローレベル、またはレベル反転のいずれになるかを決定します。
比較一致イベントが発生すると、CCxIFビットもセットされます。
CCxIEビットがセットされている場合は割り込みが生成され、CCxDEビットがセットされている場合はDMA要求が生成されます。
比較出力モードの設定手順は次のとおりです。
1) コアカウンタ(CNT)のクロックソースと自動リロード値を設定します。
2) 比較するカウント値を比較キャプチャレジスタ(R16_TIMx_CHxCVR)に設定します。
3) 割り込みを生成する必要がある場合は、CCxIEビットをセットします。
4) OCxPEを0に保持し、コンペア/キャプチャレジスタのプリロードレジスタを無効にします。
5) 出力モードを設定し、OCxMビットとCCxPビットをセットします。
6) 出力を有効にし、CCxEビットをセットします。
7) CENビットをセットし、タイマーを開始します。
比較出力モードの原理は、コアカウンタ(CNT)の値と比較キャプチャレジスタ(R16_TIMx_CHCTLRx)の値とが一致した際に、特定の変化または波形を出力することです。
OCxMビット(R16_TIMx_CHCTLRx)とCCxPビット(R16_TIMx_CCER)は、出力がハイレベル、ローレベル、またはレベル反転のいずれになるかを決定します。
比較一致イベントが発生すると、CCxIFビットもセットされます。
CCxIEビットがセットされている場合は割り込みが生成され、CCxDEビットがセットされている場合はDMA要求が生成されます。
比較出力モードの設定手順は次のとおりです。
1) コアカウンタ(CNT)のクロックソースと自動リロード値を設定します。
2) 比較するカウント値を比較キャプチャレジスタ(R16_TIMx_CHxCVR)に設定します。
3) 割り込みを生成する必要がある場合は、CCxIEビットをセットします。
4) OCxPEを0に保持し、コンペア/キャプチャレジスタのプリロードレジスタを無効にします。
5) 出力モードを設定し、OCxMビットとCCxPビットをセットします。
6) 出力を有効にし、CCxEビットをセットします。
7) CENビットをセットし、タイマーを開始します。
15.3.3 強制出力モード
タイマーのコンペア/キャプチャ出力モードは、シャドウレジスタやコンペア/キャプチャレジスタのコアカウンタに依存せずに、ソフトウェアによって特定のレベルを強制的に出力することができます。
具体的な方法は、OCxMを100bに設定する(OCxREFを強制的にLowにする)、またはOCxMを101bに設定する(OCxREFを強制的にHighにする)ことです。
OCxMを強制的に100bまたは101bに設定した場合、内部メインカウンタと比較/キャプチャレジスタ間の比較処理は継続され、 対応するフラグビットはセットされたままになり、割り込みとDMA要求も生成されることに注意してください。
具体的な方法は、OCxMを100bに設定する(OCxREFを強制的にLowにする)、またはOCxMを101bに設定する(OCxREFを強制的にHighにする)ことです。
OCxMを強制的に100bまたは101bに設定した場合、内部メインカウンタと比較/キャプチャレジスタ間の比較処理は継続され、 対応するフラグビットはセットされたままになり、割り込みとDMA要求も生成されることに注意してください。
15.3.4 PWM入力モード
PWM入力モードは、PWMのデューティサイクルと周波数を測定するために使用されます。これは、入力キャプチャモードの特殊なケースです。
動作は、以下の違いを除いて入力キャプチャモードと同じです。
PWMは2つのコンペア/キャプチャを占有し、2つのチャネルの入力極性が反対に設定されます。
信号の1つはトリガー入力に設定され、SMSはリセットモードに設定されます。
例えば、TI1から入力されるPWM波形の周期と周波数を測定するには、以下の操作が必要です。
1) TI1 (TI1FP1) をIC1信号の入力に設定します。CC1Sを01bに設定します。
2) TI1FP1を立ち上がりエッジ有効に設定します。CC1Pは0のままにします。
3) TI1 (TI1FP2) をIC2信号の入力に設定します。CC2Sを10bに設定します。
2) TI1FP2を立ち下がりエッジ有効に設定します。 CC2Pを1に設定します。
5) クロックソースはTI1FP1です。TSを101bに設定します。
6) SMSをリセットモード(100b)に設定します。
7) 入力キャプチャを有効にします。CC1EビットとCC2Eビットを設定します。
動作は、以下の違いを除いて入力キャプチャモードと同じです。
PWMは2つのコンペア/キャプチャを占有し、2つのチャネルの入力極性が反対に設定されます。
信号の1つはトリガー入力に設定され、SMSはリセットモードに設定されます。
例えば、TI1から入力されるPWM波形の周期と周波数を測定するには、以下の操作が必要です。
1) TI1 (TI1FP1) をIC1信号の入力に設定します。CC1Sを01bに設定します。
2) TI1FP1を立ち上がりエッジ有効に設定します。CC1Pは0のままにします。
3) TI1 (TI1FP2) をIC2信号の入力に設定します。CC2Sを10bに設定します。
2) TI1FP2を立ち下がりエッジ有効に設定します。 CC2Pを1に設定します。
5) クロックソースはTI1FP1です。TSを101bに設定します。
6) SMSをリセットモード(100b)に設定します。
7) 入力キャプチャを有効にします。CC1EビットとCC2Eビットを設定します。
15.3.5 PWM出力モード
PWM出力モードはタイマーの基本機能の1つです。
PWM出力モードの最も一般的な方法は、リロード値を使用してPWM周波数を決定し、キャプチャ比較レジスタを使用してデューティサイクルを決定することです。
PWMモード1またはモード2を使用するには、OCxMビットに110bまたは111bを設定し、プリロードレジスタを有効にするにはOCxPEビットを設定し、最後にARPEビットを設定します。
更新イベントが発生すると、プリロードレジスタの値がシャドウレジスタに送信される可能性があるため、コアカウンタがカウントを開始する前に、UGビットを設定してすべてのレジスタを初期化する必要があります。
PWMモードでは、コアカウンタと比較/キャプチャレジスタは常に比較されています。
CMSビットに応じて、タイマーはエッジアラインまたはセンターアラインのPWM信号を出力できます。
・エッジアラインメント
エッジアラインメントを使用すると、コアカウンタはカウントアップまたはカウントダウンします。
PWMモード1のシナリオでは、コアカウンタの値がコンペア/キャプチャレジスタの値より大きい場合、OCxREFはHighに立ち上がります。
コアカウンタの値がコンペア/キャプチャレジスタの値より小さい場合(コアカウンタがR16_TIMx_ATRLRの値まで増加し、すべて0に戻る場合など)、OCxREFはLowに低下します。
・ センターアライン
センターアライメントモードを使用すると、コアカウンタはアップカウントとダウンカウントを交互に実行するモードで動作し、 コアカウンタと比較/キャプチャレジスタの値が一致すると、OCxREFは立ち上がりジャンプと立ち下がりジャンプを実行します。
ただし、比較フラグの3種類のセンターアライメントモードでは、ビットセットのタイミングが多少異なります。
センターアライメントモードを使用する場合は、コアカウンタを起動する前にソフトウェアアップデートフラグを生成(UGビットをセット)するのが最適です。
PWM出力モードの最も一般的な方法は、リロード値を使用してPWM周波数を決定し、キャプチャ比較レジスタを使用してデューティサイクルを決定することです。
PWMモード1またはモード2を使用するには、OCxMビットに110bまたは111bを設定し、プリロードレジスタを有効にするにはOCxPEビットを設定し、最後にARPEビットを設定します。
更新イベントが発生すると、プリロードレジスタの値がシャドウレジスタに送信される可能性があるため、コアカウンタがカウントを開始する前に、UGビットを設定してすべてのレジスタを初期化する必要があります。
PWMモードでは、コアカウンタと比較/キャプチャレジスタは常に比較されています。
CMSビットに応じて、タイマーはエッジアラインまたはセンターアラインのPWM信号を出力できます。
・エッジアラインメント
エッジアラインメントを使用すると、コアカウンタはカウントアップまたはカウントダウンします。
PWMモード1のシナリオでは、コアカウンタの値がコンペア/キャプチャレジスタの値より大きい場合、OCxREFはHighに立ち上がります。
コアカウンタの値がコンペア/キャプチャレジスタの値より小さい場合(コアカウンタがR16_TIMx_ATRLRの値まで増加し、すべて0に戻る場合など)、OCxREFはLowに低下します。
・ センターアライン
センターアライメントモードを使用すると、コアカウンタはアップカウントとダウンカウントを交互に実行するモードで動作し、 コアカウンタと比較/キャプチャレジスタの値が一致すると、OCxREFは立ち上がりジャンプと立ち下がりジャンプを実行します。
ただし、比較フラグの3種類のセンターアライメントモードでは、ビットセットのタイミングが多少異なります。
センターアライメントモードを使用する場合は、コアカウンタを起動する前にソフトウェアアップデートフラグを生成(UGビットをセット)するのが最適です。
15.3.6 シングルパルスモード
図15-4 イベント生成とパルス応答
シングルパルスモードは、特定のイベントに応答して遅延後にパルスを生成するために使用できます。
遅延とパルス幅はプログラム可能です。
OPMビットを設定すると、次の更新イベントUEVが発生したときにコアカウンタを停止できます(カウンタが0に反転します)。
図15-4に示すように、TI2入力ピンの立ち上がりエッジの開始を検出する必要があります。
Tdelayの遅延後、OC1に長さTpulseの正パルスが生成されます。
1) TI2をトリガとして設定します。CC2Sフィールドを01bに設定し、TI2FP2をTI2にマッピングします。
CC2Pビットを0bに設定し、TI2FP2を立ち上がりエッジ検出に設定します。
TSフィールドを110bに設定し、TI2FP2をトリガソースとして設定します。
SMSフィールドを110bに設定し、TI2FP2を使用してカウンタを起動します。
2) Tdelayは比較/キャプチャレジスタの値によって定義され、Tpulseは自動リロード値レジスタの値と比較/キャプチャレジスタの値によって決まります。
15.3.7 エンコーダモード
エンコーダモードは、タイマーの典型的なアプリケーションです。
エンコーダの2相出力にアクセスするために使用できます。
コアカウンタのカウント方向は、エンコーダの回転軸と同期しています。
エンコーダから出力される各パルスは、コアカウンタに1を加算または1を減算します。
エンコーダを使用する手順は、SMSフィールドを001b(TI2のエッジでのみカウント)、010b(TI1のエッジでのみカウント)、 または011b(TI1とTI2の両方のエッジでカウント)に設定し、エンコーダを比較/キャプチャ1、2入力に接続し、リロード値レジスタの値を設定します。
この値は、より大きな値に設定できます。
エンコーダモードでは、タイマーの内部比較/キャプチャレジスタ、プリスケーラ、リピートカウントレジスタ、その他のレジスタはすべて正常に動作します。
次の表は、カウント方向とエンコーダ信号の関係を示しています。
表15-1 エンコーダモードにおけるタイマーのカウント方向とエンコーダ信号の関係
エンコーダの2相出力にアクセスするために使用できます。
コアカウンタのカウント方向は、エンコーダの回転軸と同期しています。
エンコーダから出力される各パルスは、コアカウンタに1を加算または1を減算します。
エンコーダを使用する手順は、SMSフィールドを001b(TI2のエッジでのみカウント)、010b(TI1のエッジでのみカウント)、 または011b(TI1とTI2の両方のエッジでカウント)に設定し、エンコーダを比較/キャプチャ1、2入力に接続し、リロード値レジスタの値を設定します。
この値は、より大きな値に設定できます。
エンコーダモードでは、タイマーの内部比較/キャプチャレジスタ、プリスケーラ、リピートカウントレジスタ、その他のレジスタはすべて正常に動作します。
次の表は、カウント方向とエンコーダ信号の関係を示しています。
表15-1 エンコーダモードにおけるタイマーのカウント方向とエンコーダ信号の関係
| Count active edge | Relative signal level | TI1FP1 signal edge | TI2FP2 signal edge | ||
| Rising edge | Falling edge | Rising edge | Falling edge | ||
| Only count at TI1 edge | High | Downcount | Upcount | Not count | |
| Low | Upcount | Downcount | |||
| Only count at TI2 edge | High | Not count | Upcount | Downcount | |
| Low | Downcount | Upcount | |||
| Count on both edges of TI1 and TI2 | High | Downcount | Upcount | Upcount | Downcount |
| Low | Upcount | Downcount | Downcount | Upcount | |
15.3.8 タイマー同期モード
タイマーはクロックパルス(TRGO)を出力するだけでなく、他のタイマーからの入力(ITRx)も受信できます。
各タイマーのITRxのソース(他のタイマーのTRGO)は異なります。表12-2にタイマーの内部トリガ接続を示します。
図15-2 GTPM内部トリガー接続
各タイマーのITRxのソース(他のタイマーのTRGO)は異なります。表12-2にタイマーの内部トリガ接続を示します。
図15-2 GTPM内部トリガー接続
| Slave timer | ITR0(TS=000) | ITR1(TS=001) | ITR2(TS=010) | ITR3(TS=011) |
| TIM2 | TIM1 | TIM8/USB/ETH | TIM3 | TIM4 |
| TIM3 | TIM1 | TIM2 | TIM5 | TIM4 |
| TIM4 | TIM1 | TIM2 | TIM5 | TIM8 |
| TIM5 | TIM2 | TIM3 | TIM4 | TIM8 |
15.3.9 デバッグモード
システムがデバッグモードに入ると、タイマーはDBGモジュールの設定に応じて実行を継続するか停止します。
15.4 レジスタの説明
表15-3 TIM2関連レジスタ
| TIM | TIM2 | TIM3 | TIM4 |
| Offset address | 0x400000 | 0x400004 | 0x400008 |
| Name | Offset address | Description | Reset value |
|---|---|---|---|
| R16_TIMy_CTLR1 | 00 | TIMy control register1 | 0x0000 |
| R16_TIMy_CTLR2 | 04 | TIMy control register2 | 0x0000 |
| R16_TIMy_SMCFGR | 08 | TIMy slave mode control register | 0x0000 |
| R16_TIMy_DMAINTENR | 0C | TIMy DMA/interrupt enable register | 0x0000 |
| R16_TIMy_INTFR | 10 | TIMy interrupt flag register | 0x0000 |
| R16_TIMy_SWEVGR | 14 | TIMy event generation register | 0x0000 |
| R16_TIMy_CHCTLR1 | 18 | TIMy compare/capture control register1 | 0x0000 |
| R16_TIMy_CHCTLR2 | 1C | TIMy compare/capture control register2 | 0x0000 |
| R16_TIMy_CCER | 20 | TIMy compare/capture enable register | 0x0000 |
| R16_TIMy_CNT | 24 | TIMy counter | 0x0000 |
| R16_TIMy_PSC | 28 | TIMy prescaler | 0x0000 |
| R16_TIMy_ATRLR | 2C | TIMy auto reload register | 0x0000 |
| R16_TIMy_CH1CVR | 34 | TIMy compare/capture register1 | 0x0000 |
| R16_TIMy_CH2CVR | 38 | TIMy compare/capture register2 | 0x0000 |
| R16_TIMy_CH3CVR | 3C | TIMy compare/capture register3 | 0x0000 |
| R16_TIMy_CH4CVR | 40 | TIMy compare/capture register4 | 0x0000 |
| R16_TIMy_DMACFGR | 44 | TIMy DMA configuration register | 0x0000 |
| R16_TIMy_DMAADR | 48 | TIMy DMA address register in continuous mode | 0x0000 |
15.4.1 制御レジスタ1 (TIMy_CTLR1) (y=2/3/4)
CTLR1 = ConTroL Register1 | Access base address 0x40000000 Offset address: 0x00
■レジスター内容
注:カウンタが有効(CEN=1)の場合、エッジアライメントモードからセンターアライメントモードに切り替えることはできません。
注:カウンタがセンターアライメントモードまたはエンコーダモードに設定されている場合、このビットは無効になります。
ソフトウェアはこのビットを介してUEVイベントのソースを選択します。
ソフトウェアはこのビットを通してUEVイベントの生成を許可/無効化します。
注:CENビットがソフトウェアでセットされると、外部クロック、ゲーティングモード、エンコーダモードのみが動作します。
トリガーモードでは、CENビットがハードウェアによって自動的にセットされます。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | CKD | ARPE | CMS | DIR | OPM | URS | UDIS | CEN | |||||||
| RO | RW | RW | RW | RW | RW | RW | RW | RW | |||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CKD
これらの2ビットは、デジタルフィルタに使用されるタイマークロック(CK_INT)周波数とサンプリングクロックの分周比を定義します。| 00 | Tdts=Tck_int |
| 01 | Tdts=2xTck_int |
| 10 | Tdts=4xTck_int |
| 11 | 予約済み |
ARPE
自動リロードおよびプリロード有効ビット(Auto reload and preload enable bit)| 1 | 自動リロード値レジスタ(ATRLR)が有効 |
| 0 | 自動リロード値レジスタ(ATRLR)が無効 |
CMS
中央位置合わせモードの選択(Central alignment mode selection)| 00 | エッジ位置合わせモード。 カウンタは方向ビット(DIR)に従ってカウントアップまたはカウントダウンします。 |
| 01 | 中央位置合わせモード1。 カウンタは交互にカウントアップとカウントダウンを行います。 出力として設定されているチャネル(CHCTLRxレジスタのCCxS=00)の出力比較割り込みフラグビットは、カウンタがカウントダウンしているときのみセットされます。 |
| 10 | 中央位置合わせモード2。 カウンタは交互にカウントアップとカウントダウンを行います 出力として設定されているチャネル(CHCTLRxレジスタのCCxS=00)の出力比較割り込みフラグビットは、カウンタがカウントアップしているときのみセットされます。 |
| 11 | 中央位置合わせモード3。 カウンタは交互にカウントアップとカウントダウンを行います。 出力として設定されているチャネル(CHCTLRxレジスタのCCxS=00)の出力比較割り込みフラグビットは、カウンタがカウントアップしているときのみセットされます。 |
DIR
カウンタ方向(Counter direction)| 1 | アップカウント |
| 0 | ダウンカウント |
OPM
シングルパルスモード(Single pulse mode)| 1 | 次の更新イベント(CENビットのクリア)が発生するとカウンタは停止します。 |
| 0 | 次の更新イベントが発生してもカウンタは停止しません。 |
URS
更新要求ソース(Update request source)ソフトウェアはこのビットを介してUEVイベントのソースを選択します。
| 1 | 更新割り込みまたはDMA要求が有効な場合、カウンタのオーバーフロー/アンダーフローのみが更新割り込みまたはDMA要求を生成します。 |
| 0 | 更新割り込みまたはDMA要求が有効な場合、以下のいずれかのイベントが更新割り込みまたはDMA要求を生成します。 -カウンタのオーバーフロー/アンダーフロー -UGビットのセット -スレーブモードコントローラによって生成された更新 |
UDIS
更新無効化(Update disable)ソフトウェアはこのビットを通してUEVイベントの生成を許可/無効化します。
| 1 | UEVを無効化。 更新イベントは生成されず、レジスタ(ATRLR、PSC、CHCTLRx)は値を維持します。UGビットがセットされているか、モードコントローラからハードウェアリセットが発行された場合、カウンタとプリスケーラは再初期化されます。 |
| 0 | UEVを許可。更新(UEV)イベントは、以下のいずれかのイベントによって生成されます。 ・ カウンタのオーバーフロー/アンダーフロー ・ UGビットのセット ・ スレーブモードコントローラによって生成された更新 バッファ付きレジスタには、プリロードされた値がロードされます。 |
CEN
カウンタ有効(Counter enable)| 1 | カウンタ有効 |
| 0 | カウンタ無効 |
トリガーモードでは、CENビットがハードウェアによって自動的にセットされます。
15.4.2 制御レジスタ2 (TIMy_CTLR2) (y=2/3/4)
CTLR2 = ConTroL Register2 | Access base address 0x40000000 Offset address: 0x04
■レジスター内容
これらの3ビットは、マスターモード時にスレーブタイマーに送信される同期情報(TRGO)を選択するために使用されます。可能な組み合わせは次のとおりです。
注: このビットは、コンプリメンタリ出力を持つチャネルでのみ機能します。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | TIIS | MMS | CCDS | CCUS | Reserved | CCPC | |||||||||
| RO | RW | RW | RW | RW | RO | RW | |||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TIIS
TI1の選択(TI1 selection)| 1 | TIMx_CH1、TIMx_CH2、TIMx_CH3ピンはXORを介してTI1入力に接続されます。 |
| 0 | TIMx_CH1ピンはTI1入力に直接接続されます。 |
MMS
マスターモード選択(Master mode selection)これらの3ビットは、マスターモード時にスレーブタイマーに送信される同期情報(TRGO)を選択するために使用されます。可能な組み合わせは次のとおりです。
| 000 | リセット - UGビットはトリガ出力(TRGO)として使用されます。 トリガ入力によって生成されたリセットの場合(スレーブモードコントローラがリセットモードの場合)、TRGOの信号は実際のリセットに対して遅延します。 |
| 001 | イネーブル - カウンタは信号CNT_ENをトリガ出力(TRGO)として使用できるようにします。 場合によっては、複数のタイマーを同時に起動したり、一定時間内にスレーブタイマーをイネーブルするように制御したりする必要があります。 カウンタイネーブル信号は、ゲーティングモードでは、CEN制御ビットとトリガ入力信号の論理和によって生成されます。 カウンタイネーブル信号がトリガ入力によって制御される場合、マスター/スレーブモードが選択されていない限り、TRGOに遅延が発生します(TIMx_SMCFGRレジスタのMSMビットの説明を参照)。 |
| 010 | 更新イベントがトリガ入力として選択されます(TRGO)。 例えば、マスタータイマーのクロックをスレーブタイマーの分周器として使用できます。 |
| 011 | 比較パルス。 キャプチャが発生するか比較が成功し、CC1IFフラグがセットされる(既にハイであっても)場合、トリガ出力は正パルスを送信します(TRGO)。 |
| 100 | OC1REF信号がトリガ出力として使用されます(TRGO)。 |
| 101 | OC2REF信号がトリガ出力として使用されます(TRGO)。 |
| 110 | OC3REF信号がトリガ出力として使用されます(TRGO)。 |
| 111 | OC4REF信号がトリガ出力として使用されます(TRGO)。 |
CCDS
| 1 | 更新イベントが発生すると、CHxCVRのDMA要求を送信します。 |
| 0 | CHxCVRが発生すると、CHxCVRのDMA要求が生成されます。 |
CCUS
コンペア/キャプチャ制御更新選択ビット(Compare/capture control update selection bit)| 1 | CCPC がセットされている場合、COM ビットまたは TRGI の立ち上がりエッジで更新できます。 |
| 0 | CCPC がセットされている場合、COM ビットをセットすることによってのみ更新できます。 注:このビットは、相補出力を持つチャネルでのみ機能します。 |
CCPC
コンペア/キャプチャプリロード制御ビット(Compare/capture preload control bit)| 1 | CCxE、CCxNE、OCxMビットがプリロードされます。 これらのビットが設定された後は、COMビットの設定後にのみ更新されます。 |
| 0 | CCxE、CCxNE、OCxMビットはプリロードされません。 |
15.4.3 スレーブモード制御レジスタ(TIMy_SMCFGR)(y=2/3/4)
SMCFGR = Slave Mode Control Register | Access base address 0x40000000 Offset address: 0x08
■レジスター内容
このビットは、ETRを直接入力するか、反転ETRを入力するかを選択します。
注1:スレーブモードは、外部クロックモード2(リセットモード、ゲーティングモード、トリガーモード)と同時に使用できます。
ただし、TRGIをETRFに接続することはできません(TSビットを111bにすることはできません)。
注2:外部クロックモード1と外部クロックモード2の両方が同時に有効になっている場合、外部クロックの入力はETRFになります。
周波数はTIMxCLK周波数の1/4以下にする必要があり、この領域で周波数を下げることができます。
実際には、デジタルフィルタはイベントカウンタです。
出力の遷移を検証するにはN個のイベントが必要です。
これらの3ビットは、カウンタの同期に使用するトリガ入力ソースを選択します。
SMSが0の場合にのみ値を変更できます。
コアカウンタのクロックとトリガモードを選択します。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ETP | ECE | ETPS | ETF | MSM | TS | Reserved | SMS | ||||||||
| RW | RW | RW | RW | RW | RW | RO | RW | ||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ETP
ETRトリガ極性選択(ETR trigger polarity selection)このビットは、ETRを直接入力するか、反転ETRを入力するかを選択します。
| 1 | ETR反転、ローレベルまたは立ち下がりエッジでアクティブ。 |
| 0 | ETR、ハイレベルまたは立ち上がりエッジでアクティブ。 |
ECE
外部クロックモード2の有効/無効の選択(External clock mode2 enable selection)| 1 | 外部クロックモード2が有効。 |
| 0 | 外部クロックモード2が無効。 |
ただし、TRGIをETRFに接続することはできません(TSビットを111bにすることはできません)。
注2:外部クロックモード1と外部クロックモード2の両方が同時に有効になっている場合、外部クロックの入力はETRFになります。
ETPS
外部トリガ・プリスケーラ(ETRP)(External trigger prescaler)周波数はTIMxCLK周波数の1/4以下にする必要があり、この領域で周波数を下げることができます。
| 00 | プリスケールOFF |
| 01 | ETRP周波数を2分周 |
| 10 | ETRP周波数を4分周 |
| 11 | ETRP周波数を8分周 |
ETF
外部トリガーフィルタ(External trigger filter)実際には、デジタルフィルタはイベントカウンタです。
出力の遷移を検証するにはN個のイベントが必要です。
| 0000 | フィルタなし、サンプリングはFdtsで行われます。 |
| 0001 | Fsampling=Fck_int、N=2 |
| 0010 | Fsampling=Fck_int、N=4 |
| 0011 | Fsampling=Fck_int、N=8 |
| 0100 | Fsampling=Fdts/2、N=6 |
| 0101 | Fsampling=Fdts/2、N=8 |
| 0110 | Fsampling=Fdts/4、N=6 |
| 0111 | Fsampling=Fdts/4、N=8 |
| 1000 | Fsampling=Fdts/8、N=6 |
| 1001 | Fsampling=Fdts/8、N=8 |
| 1010 | Fsampling=Fdts/16, N=5 |
| 1011 | Fsampling=Fdts/16, N=6 |
| 1100 | Fsampling=Fdts/16, N=8 |
| 1101 | Fsampling=Fdts/32, N=5 |
| 1110 | Fsampling=Fdts/32, N=6 |
| 1111 | Fsampling=Fdts/32, N=8 |
MSM
マスター/スレーブモードの選択(Master/Slave mode selection)| 1 | トリガー入力(TRGI)のイベントを遅延させ、現在のタイマー(TRGO経由)とそのスレーブタイマー間の完全な同期を実現します。 |
| 0 | 動作しません。 |
TS
トリガ選択(Trigger selection)これらの3ビットは、カウンタの同期に使用するトリガ入力ソースを選択します。
| 000 | 内部トリガ0 (ITR0) |
| 001 | 内部トリガ1 (ITR1) |
| 010 | 内部トリガ2 (ITR2) |
| 011 | 内部トリガ3 (ITR3) |
| 100 | TI1のエッジ検出器 (TI1F_ED) |
| 101 | フィルタリング後のタイマー入力1 (TI1FP1) |
| 110 | フィルタリング後のタイマー入力2 (TI1FP2) |
| 111 | 外部トリガ入力 (ETRF) |
SMS
入力モードの選択(Input mode selection)コアカウンタのクロックとトリガモードを選択します。
| 000 | 内部クロック CK_INT で駆動 |
| 001 | エンコーダモード 1。 TI1FP1 のレベルに応じて、コアカウンタは TI2FP2 のエッジでカウントアップまたはカウントダウンします。 |
| 010 | エンコーダモード 2。 TI2FP2 のレベルに応じて、コアカウンタは TI1FP1 のエッジでカウントアップまたはカウントダウンします。 |
| 011 | エンコーダモード 3。 他の信号の入力レベルに応じて、コアカウンタは TI1FP1 と TI2FP2 のエッジでカウントアップまたはカウントダウンします。 |
| 100 | リセットモード。 トリガ入力 (TRGI) の立ち上がりエッジでカウンタが初期化され、レジスタを更新するための信号が生成されます。 |
| 101 | ゲーティングモード。 トリガ入力 (TRGI) がハイのとき、カウンタのクロックがオンになります。トリガ入力がローになると、カウンタは停止し、カウンタの開始と停止が制御されます。 |
| 110 | トリガモード。 カウンタはトリガ入力TRGIの立ち上がりエッジで開始し、カウンタの開始のみが制御されます。 |
| 111 | 外部クロックモード1。 選択されたトリガ入力(TRGI)の立ち上がりエッジでカウンタが駆動されます。 |
15.4.4 DMA/割り込み有効レジスタ(TIMy_DMAINTENR)(y=2/3/4)
DMAINTENR= DMA/INTerrupt ENable Register | Access base address 0x40000000 Offset address: 0x0C
■レジスター内容
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | TDE | COMDE | CC4DE | CC3DE | CC2DE | CC1DE | UDE | Reserved | TIE | Reserved | CC4IE | CC3IE | CC2IE | CC1IE | UIE |
| RO | RW | RW | RW | RW | RW | RW | RW | RO | RW | RO | RW | RW | RW | RW | RW |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TDE
トリガーDMA要求有効ビット(Trigger DMA request enable bit)| 1 | トリガーDMA要求有効。 |
| 0 | トリガーDMA要求無効。 |
COMDE
COMのDMA要求有効ビット(DMA request enable bit of COM)| 1 | COMのDMA要求が有効。 |
| 0 | COMのDMA要求が無効。 |
CC4DE
比較/キャプチャ4のDMA要求有効ビット(DMA request enable bit of compare/capture4)| 1 | 比較/キャプチャ4のDMA要求が有効。 |
| 0 | 比較/キャプチャ4のDMA要求が無効。 |
CC3DE
比較/キャプチャ3のDMA要求有効ビット(DMA request enable bit of compare/capture3)| 1 | 比較/キャプチャ3のDMA要求が有効。 |
| 0 | 比較/キャプチャ3のDMA要求が無効。 |
CC2DE
比較/キャプチャ2のDMA要求有効ビット(DMA request enable bit of compare/capture2)| 1 | 比較/キャプチャ2のDMA要求が有効。 |
| 0 | 比較/キャプチャ2のDMA要求が無効。 |
CC1DE
比較/キャプチャ1のDMA要求有効ビット(DMA request enable bit of compare/capture1)| 1 | 比較/キャプチャ1のDMA要求が有効。 |
| 0 | 比較/キャプチャ1のDMA要求が無効。 |
UDE
更新DMA要求有効ビット(Update DMA request enable bit)| 1 | 更新DMA要求有効。 |
| 0 | 更新DMA要求無効。 |
TIE
トリガ割り込み有効ビット(Trigger interrupt enable bit)| 1 | トリガ割り込み有効。 |
| 0 | トリガ割り込み無効。 |
CC4IE
コンペア/キャプチャ4の割り込み許可ビット(Interrupt enable bit of compare/capture4)| 1 | コンペア/キャプチャ4の割り込み許可。 |
| 0 | コンペア/キャプチャ4の割り込み禁止。 |
CC3IE
コンペア/キャプチャ3の割り込み許可ビット(Interrupt enable bit of compare/capture3)| 1 | コンペア/キャプチャ3の割り込み許可。 |
| 0 | コンペア/キャプチャ3の割り込み禁止。 |
CC2IE
コンペア/キャプチャ2の割り込み許可ビット(Interrupt enable bit of compare/capture2)| 1 | コンペア/キャプチャ2の割り込み許可。 |
| 0 | コンペア/キャプチャ2の割り込み禁止。 |
CC1IE
コンペア/キャプチャ1の割り込み許可ビット(Interrupt enable bit of compare/capture1)| 1 | コンペア/キャプチャ1の割り込み許可。 |
| 0 | コンペア/キャプチャ1の割り込み禁止。 |
UIE
更新割り込み有効ビット ()| 1 | 更新割り込み有効。 |
| 0 | 更新割り込み無効。 |
15.4.5 割り込みフラグレジスタ(R16_TIMy_INTFR)(y=2/3/4)
INTFR = INTerrupt Flag Register | Access base address 0x40000000 Offset address: 0x10
■レジスター内容
このフラグビットはハードウェアによってセットされ、ソフトウェアで0を書き込むとクリアされます。
トリガイベントが発生すると、ハードウェアによってセットされ、ソフトウェアによってクリアされます。
トリガイベントには、ゲートモード以外のモードからTRGI入力端子に有効なエッジが検出された場合、またはゲートモードの場合は任意のエッジが検出された場合が含まれます。
コンペア/キャプチャが出力モードに設定されている場合、カウンタ値が比較値と一致すると、このビットはハードウェアによってセットされます(センターアラインモードを除く)。
このビットはソフトウェアによってクリアされます。
コンペア/キャプチャが出力モードに設定されている場合、キャプチャイベントが発生すると、このビットはハードウェアによってセットされ、ソフトウェアによってクリアされるか、コンペア/キャプチャレジスタの読み取りによってクリアされます。
更新イベントが発生すると、ハードウェアによってセットされ、ソフトウェアによってクリアされます。
更新イベントは、以下の状況で発生します。
UDIS=0の場合、繰り返しカウンタ値がオーバーフローまたはアンダーフローした場合。
URS=0、UDIS=0の場合、UGビットがセットされたとき、またはカウンタコアがソフトウェアによって再初期化されたとき。
URS=0、UDIS=0の場合、カウンタCNTがトリガイベントによって再初期化されたとき。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | CC4OF | CC3OF | CC2OF | CC1OF | Reserved | TIF | Reserved | CC4IF | CC3IF | CC2IF | CC1IF | UIF | |||
| RO | WO | WO | WO | WO | RO | WO | RO | WO | WO | WO | WO | WO | |||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CCxOF (x=4,3,2,1)
比較/キャプチャxのオーバーキャプチャフラグビット コンペア/キャプチャが入力キャプチャモードに設定されている場合。このフラグビットはハードウェアによってセットされ、ソフトウェアで0を書き込むとクリアされます。
| 1 | カウンタの値がキャプチャ比較レジスタにキャプチャされると、CC1IFのステータスがセットされます。 |
| 0 | オーバーキャプチャは生成されません。 |
TIF
トリガ割り込みフラグビット(Trigger interrupt flag bit)トリガイベントが発生すると、ハードウェアによってセットされ、ソフトウェアによってクリアされます。
トリガイベントには、ゲートモード以外のモードからTRGI入力端子に有効なエッジが検出された場合、またはゲートモードの場合は任意のエッジが検出された場合が含まれます。
| 1 | トリガイベント発生。 |
| 0 | トリガイベント未発生。 |
CCxIF (x=1,2,3,4)
コンペア/キャプチャレジスタxの割り込みフラグビット(Interrupt flag bit of compare/capture x.)コンペア/キャプチャが出力モードに設定されている場合、カウンタ値が比較値と一致すると、このビットはハードウェアによってセットされます(センターアラインモードを除く)。
このビットはソフトウェアによってクリアされます。
| 1 | コアカウンタの値がコンペア/キャプチャレジスタ1の値と一致しました。 |
| 0 | 一致しません。 |
コンペア/キャプチャが出力モードに設定されている場合、キャプチャイベントが発生すると、このビットはハードウェアによってセットされ、ソフトウェアによってクリアされるか、コンペア/キャプチャレジスタの読み取りによってクリアされます。
| 1 | カウンタ値がコンペア/キャプチャレジスタ1によってキャプチャされました。 |
| 0 | 入力キャプチャは生成されません。 |
UIF
更新割り込みフラグビット(Update interrupt flag bit)更新イベントが発生すると、ハードウェアによってセットされ、ソフトウェアによってクリアされます。
| 1 | 更新割り込み発生。 |
| 0 | 更新割り込みなし。 |
UDIS=0の場合、繰り返しカウンタ値がオーバーフローまたはアンダーフローした場合。
URS=0、UDIS=0の場合、UGビットがセットされたとき、またはカウンタコアがソフトウェアによって再初期化されたとき。
URS=0、UDIS=0の場合、カウンタCNTがトリガイベントによって再初期化されたとき。
15.4.6 イベント生成レジスタ(TIMx_SWEVGR)(x=2/3/4)
SWEVGR = EVent Generation Register | Access base address 0x40000000 Offset address: 0x14
■レジスター内容
このビットはソフトウェアによってセットまたはクリアされ、ブレークイベントを生成します。
このビットはソフトウェアによってセットされ、ハードウェアによってクリアされてトリガーイベントを生成します。
コンペア/キャプチャ制御更新イベントを生成します。
このビットはソフトウェアによってセットされ、ハードウェアによって自動的にクリアされます。
注:このビットは、コンプリメンタリ出力を持つチャネル(チャネル 1、2、3)でのみ有効です。
このビットはソフトウェアによってセットされ、ハードウェアによってクリアされます。
コンペア/キャプチャイベントを生成するために使用されます。
このビットはソフトウェアによってセットされ、ハードウェアによって自動的にクリアされます。
注:分周器のカウンタもクリアされますが、分周器の係数は変更されません。
Centro対称モードまたはアップカウントモードでは、コアカウンタがクリアされます。
ダウンカウントモードでは、コアカウンタはリロード値レジスタの値を取得します。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | BG | TG | COMG | CC4G | CC3G | CC2G | CC1G | UG | |||||||
| RO | WO | WO | WO | WO | WO | WO | WO | WO | |||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
BG
ブレークイベント生成ビット(Break event generation bit)このビットはソフトウェアによってセットまたはクリアされ、ブレークイベントを生成します。
| 1 | ブレークイベントが生成されます。このとき、MOE=0、BIF=1です。 対応する割り込みとDMAが有効な場合、対応する割り込みとDMAが生成されます。 |
| 0 | 影響なし。 |
TG
トリガーイベント生成ビット(Trigger event generation bit)このビットはソフトウェアによってセットされ、ハードウェアによってクリアされてトリガーイベントを生成します。
| 1 | トリガーイベントが生成されます。 TIF がセットされ、対応する割り込みと DMA が有効な場合、対応する割り込みと DMA が生成されます。 |
| 0 | 影響なし。 |
COMG
コンペア/キャプチャ制御更新生成ビット (Compare/capture control update generation bit)コンペア/キャプチャ制御更新イベントを生成します。
このビットはソフトウェアによってセットされ、ハードウェアによって自動的にクリアされます。
| 1 | CCPC=1 の場合、CCxE、CCxNE、OCxM ビットの更新が許可されます。 |
| 0 | 影響しません。 |
CCxG(x=1,2,3,4)
コンペア/キャプチャx生成ビット(Compare/capturex generation bit)このビットはソフトウェアによってセットされ、ハードウェアによってクリアされます。
コンペア/キャプチャイベントを生成するために使用されます。
| 1 | チャネル1でコンペア/キャプチャイベントを生成します。 コンペア/キャプチャ y が出力として設定されている場合:CCyIFビットをセットします。 対応する割り込みとDMAが有効な場合は、対応する割り込みとDMAが生成されます。 コンペア/キャプチャ y が入力として設定されている場合、現在のコアカウンタ値がコンペア/キャプチャレジスタ y にキャプチャされます。 CCyIFビットをセットします。 対応する割り込みとDMAが有効な場合は、対応する割り込みとDMAが生成されます。 CCyIFビットがセットされている場合は、CCyOFビットをセットします。 |
| 0 | 影響なし。 |
UG
更新イベント生成ビットは更新イベントを生成します。このビットはソフトウェアによってセットされ、ハードウェアによって自動的にクリアされます。
| 1 | カウンタを初期化し、更新イベントを生成します。 |
| 0 | 影響しません。 |
Centro対称モードまたはアップカウントモードでは、コアカウンタがクリアされます。
ダウンカウントモードでは、コアカウンタはリロード値レジスタの値を取得します。
15.4.7 コンペア/キャプチャ制御レジスタ1 (TIMx_CHCTLR1) (x=2/3/4)
CHCTLR1 = Compare/capture ConTroL Register1 | Access base address 0x40000000 Offset address: 0x18チャネルは入力(キャプチャモード)または出力(コンペアモード)として使用できます。チャネルの方向は、対応するCCxSビットによって定義されます。
このレジスタの他のビットの機能は、入力モードと出力モードで異なります。
OCxxは出力モードにおけるチャネルの機能を示し、ICxxは入力モードにおけるチャネルの機能を示します。
■レジスター内容
□比較モード(ピン方向は出力)
これらの3ビットは出力リファレンス信号OCyREFの動作を定義し、OCyREFはOCyとOCyNの値を決定します。
OCyREFはハイレベルでアクティブですが、OCyとOCyNのアクティブレベルはCCyPビットとCCyNPビットに依存します。
注:LOCKレベルが3に設定され、CCyS=00bに設定されると、このビットは変更できなくなります。
PWMモード1またはPWMモード2では、OCyREFレベルは、比較結果が変化したとき、または出力コンペアモードでフリーズモードからPWMモードに切り替えたときにのみ変化します。
注:LOCKレベルが3に設定され、CCyS=00bの場合、このビットは変更できません。
シングルパルスモード(OPM=1)の場合のみ、プリロードレジスタを確認せずにPWMモードを使用できます。
それ以外の場合、動作は不確定です。
このビットは、トリガ入力イベントに対するコンペア/キャプチャ出力の応答を高速化するために使用されます。
OC2FEは、チャネルがPWM1またはPWM2モードに設定されている場合にのみ機能します。
コンペア/キャプチャ y は、チャネルがオフ(CCyEが0)の場合にのみ書き込み可能です。
□キャプチャモード(ピン方向は入力)
これらのビットは、TI1入力のサンプリング周波数とデジタルフィルタ長を設定します。
デジタルフィルタはイベントで構成されます。
コンペア/キャプチャ y プリスケーラ設定ビット。
これらの2つのビットは、コンペア/キャプチャ y のプリスケーラ係数を定義します。
CC1E=0になると、プリスケーラはリセットされます。
注:CCySは、チャネルがクローズされている(CCyEが0)場合にのみ書き込むことができます。
| モード | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 比較モード ピン方向は出力 |
OC2CE | OC2M | OC2PE | OC2FE | CC2S | OC1CE | OC1M | OC1PE | OC1FE | CC1S | ||||||
| RW | RW | RW | RW | RW | RW | RW | RW | |||||||||
| キャプチャモード ピン方向は入力 |
IC2F | I2PSC | IC1F | IC1PSC | ||||||||||||
| RW | RW | RW | RW | RW | RW | |||||||||||
| 初期データ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
□比較モード(ピン方向は出力)
OCyCE (y=2,1)
コンペア/キャプチャ y のイネーブルビットをクリアします。| 1 | ETRF入力のハイレベルが検出されると、OCyREFビットをゼロにクリアします。 |
| 0 | OCyREFはETRF入力の影響を受けません。 |
OCyM (y=2,1)
コンペア/キャプチャ y のモード設定 (Mode setting of compare/capture y)これらの3ビットは出力リファレンス信号OCyREFの動作を定義し、OCyREFはOCyとOCyNの値を決定します。
OCyREFはハイレベルでアクティブですが、OCyとOCyNのアクティブレベルはCCyPビットとCCyNPビットに依存します。
| 000 | 固定。 コンペア/キャプチャレジスタの値とコアカウンタとの比較値は、OCyREFに影響を与えません。 |
| 001 | 強制的にアクティブ。 コアカウンタと比較/キャプチャレジスタ1の値が同じ場合、OCyREFを強制的にハイレベルにします。 |
| 010 | 強制的に非アクティブレベルに設定します。 コアカウンタの値が比較/キャプチャレジスタ1の値と同じ場合、OC1REFを強制的にローレベルにします。 |
| 011 | 反転。 コアカウンタと比較/キャプチャレジスタ1の値が同じ場合、OCyREFのレベルを反転します。 |
| 100 | 強制的に非アクティブにします。 OCyREFをローレベルにします。 |
| 101 | アクティブレベルに強制します。 OCyREFをハイレベルにします。 |
| 110 | PWMモード1 アップカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1 は非アクティブレベルになります。 それ以外の場合はアクティブレベルになります。 ダウンカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1 はアクティブレベルになります。 それ以外の場合は非アクティブレベルになります。 |
| 111 | PWMモード2 アップカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1はアクティブレベルになります。 それ以外の場合は非アクティブレベルになります。 ダウンカウント時、コアカウンタがコンペア/キャプチャレジスタの値を超えると、チャネル1は非アクティブレベルになります。 それ以外の場合は、アクティブレベル(OCyREF=1)になります。 |
PWMモード1またはPWMモード2では、OCyREFレベルは、比較結果が変化したとき、または出力コンペアモードでフリーズモードからPWMモードに切り替えたときにのみ変化します。
OCyPE (y=2,1)
コンペア/キャプチャレジスタ y のプリロード有効ビット (Preload enable bit of compare/capture register y)| 1 | コンペア/キャプチャレジスタのプリロード機能を有効にします。 読み出しおよび書き込み操作はプリロードレジスタに対してのみ行われます。 コンペア/キャプチャレジスタ y のプリロード値は、更新イベントの到着時に現在のシャドウレジスタにロードされます。 |
| 0 | コンペア/キャプチャレジスタ y のプリロード機能を無効にします。 コンペア/キャプチャレジスタ y にはいつでも書き込み可能で、書き込まれた値は直ちに有効になります。 |
シングルパルスモード(OPM=1)の場合のみ、プリロードレジスタを確認せずにPWMモードを使用できます。
それ以外の場合、動作は不確定です。
OCyFE (y=2,1)
コンペア/キャプチャ y 高速イネーブルビット (Compare/capture y fast enable bit)このビットは、トリガ入力イベントに対するコンペア/キャプチャ出力の応答を高速化するために使用されます。
| 1 | トリガに入力された非アクティブエッジの効果は、比較一致と同等です。 したがって、比較結果に関わらず、OCは比較レベルに設定されます。 サンプリングトリガの有効エッジとコンペア/キャプチャ y 出力間の遅延は3クロックサイクルに短縮されます。 |
| 0 | カウンタとコンペア/キャプチャレジスタ y の値に応じて、トリガがオンになっていてもコンペア/キャプチャ y は通常どおり動作します。 トリガ入力に有効エッジがある場合、コンペア/キャプチャ y 出力をアクティブ化するまでの最小遅延は5クロックサイクルです。 |
CCyS (y=2,1)
コンペア/キャプチャ y の入力選択 (Input selection of compare/capture y)| 00 | コンペア/キャプチャ y は出力として設定されます。 |
| 01 | コンペア/キャプチャ y は入力として設定され、ICyはTI2にマッピングされます。 |
| 10 | コンペア/キャプチャ y は入力として設定され、ICyはTI1にマッピングされます。 |
| 11 | コンペア/キャプチャ y は入力として設定され、ICyはTRCにマッピングされます。 このモードは、内部トリガ入力が選択されている(TSビットで選択)場合にのみ機能します。 |
□キャプチャモード(ピン方向は入力)
ICyF (y=2,1)
カウンタで構成され、出力の遷移を検証するにはN個のイベントが必要です。| 0000 | フィルタなし、サンプリングはFdtsで行われます。 |
| 0001 | Fsampling=Fck_int、N=2 |
| 0010 | Fsampling=Fck_int、N=4 |
| 0011 | Fsampling=Fck_int、N=8 |
| 0100 | Fsampling=Fdts/2、N=6 |
| 0101 | Fsampling=Fdts/2、N=8 |
| 0110 | Fsampling=Fdts/4、N=6 |
| 0111 | Fsampling=Fdts/4、N=8 |
| 1000 | Fsampling=Fdts/8、N=6 |
| 1001 | Fsampling=Fdts/8、N=8 |
| 1010 | Fsampling=Fdts/16、N=5 |
| 1011 | Fsampling=Fdts/16、N=6 |
| 1100 | Fsampling=Fdts/16, N=8 |
| 1101 | Fsampling=Fdts/32, N=5 |
| 1110 | Fsampling=Fdts/32, N=6 |
| 1111 | Fsampling=Fdts/32, N=8 |
ICyPSC (y=2,1)
入力キャプチャ y フィルタ設定ビット (Input capture y filter configuration bits)これらのビットは、TI1入力のサンプリング周波数とデジタルフィルタ長を設定します。
デジタルフィルタはイベントで構成されます。
コンペア/キャプチャ y プリスケーラ設定ビット。
これらの2つのビットは、コンペア/キャプチャ y のプリスケーラ係数を定義します。
CC1E=0になると、プリスケーラはリセットされます。
| 00 | プリスケーラOFF、キャプチャ入力ポートで検出された各エッジでキャプチャをトリガします。 |
| 01 | 2イベントごとにキャプチャをトリガします。 |
| 10 | 4イベントごとにキャプチャをトリガします。 |
| 11 | 8イベントごとにキャプチャをトリガします。 |
CCyS (y=2,1)
コンペア/キャプチャ y 入力選択ビット (Compare/capture y input selection bits)| 00 | コンペア/キャプチャ y は出力として設定されます。 |
| 01 | コンペア/キャプチャ y は入力として設定されます。 ICyはTI1にマッピングされます。 |
| 10 | コンペア/キャプチャ y は入力として設定されます。 ICyはTI2にマッピングされます。 |
| 11 | コンペア/キャプチャ y は入力として設定されます。 ICyはTRCにマッピングされます。 このモードは、内部トリガ入力が選択されている(TSビットで選択)場合にのみ機能します。 |
15.4.8 コンペア/キャプチャ制御レジスタ2 (TIMx_CHCTLR1) (x=2/3/4)
CHCTLR2 = Compare/capture ConTroL Register2 | Access base address 0x40000000 Offset address: 0x1Cチャネルは入力(キャプチャモード)または出力(コンペアモード)として使用できます。チャネルの方向は、対応するCCxSビットによって定義されます。
このレジスタの他のビットの機能は、入力モードと出力モードで異なります。
OCxxは出力モードにおけるチャネルの機能を示し、ICxxは入力モードにおけるチャネルの機能を示します。
■レジスター内容
□比較モード(ピン方向は出力)
これらの3ビットは出力リファレンス信号OCyREFの動作を定義し、OCyREFはOCyとOCyNの値を決定します。
OCyREFはハイレベルでアクティブですが、OCyとOCyNのアクティブレベルはCCyPビットとCCyNPビットに依存します。
注:LOCKレベルが3に設定され、CCyS=00bに設定されると、このビットは変更できなくなります。
PWMモード1またはPWMモード2では、OCyREFレベルは、比較結果が変化したとき、または出力コンペアモードでフリーズモードからPWMモードに切り替えたときにのみ変化します。
注:LOCKレベルが3に設定され、CCyS=00bの場合、このビットは変更できません。
シングルパルスモード(OPM=1)の場合のみ、プリロードレジスタを確認せずにPWMモードを使用できます。
それ以外の場合、動作は不確定です。
このビットは、トリガ入力イベントに対するコンペア/キャプチャ出力の応答を高速化するために使用されます。
OC2FEは、チャネルがPWM1またはPWM2モードに設定されている場合にのみ機能します。
コンペア/キャプチャ y は、チャネルがオフ(CCyEが0)の場合にのみ書き込み可能です。
□キャプチャモード(ピン方向は入力)
これらのビットは、TI1入力のサンプリング周波数とデジタルフィルタ長を設定します。
デジタルフィルタはイベントで構成されます。
コンペア/キャプチャ2プリスケーラ設定ビット。
これらの2つのビットは、コンペア/キャプチャ2のプリスケーラ係数を定義します。
CC1E=0になると、プリスケーラはリセットされます。
注:CCySは、チャネルがクローズされている(CCyEが0)場合にのみ書き込むことができます。
| モード | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 比較モード ピン方向は出力 |
OC2CE | OC4M | OC4PE | OC4FE | CC4S | OC3CE | OC3M | OC3PE | OC3FE | CC3S | ||||||
| RW | RW | RW | RW | RW | RW | RW | RW | |||||||||
| キャプチャモード ピン方向は入力 |
IC4F | IC4PSC | IC3F | IC3PSC | ||||||||||||
| RW | RW | RW | RW | RW | RW | |||||||||||
| 初期データ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
□比較モード(ピン方向は出力)
OCyCE (y=4,3)
コンペア/キャプチャ y のイネーブルビットをクリアします。| 1 | ETRF入力のハイレベルが検出されると、OCyREFビットをゼロにクリアします。 |
| 0 | OCyREFはETRF入力の影響を受けません。 |
OCyM (y=4,3)
コンペア/キャプチャ y のモード設定 (Mode setting of compare/capture y)これらの3ビットは出力リファレンス信号OCyREFの動作を定義し、OCyREFはOCyとOCyNの値を決定します。
OCyREFはハイレベルでアクティブですが、OCyとOCyNのアクティブレベルはCCyPビットとCCyNPビットに依存します。
| 000 | 固定。 コンペア/キャプチャレジスタの値とコアカウンタとの比較値は、OCyREFに影響を与えません。 |
| 001 | 強制的にアクティブ。 コアカウンタと比較/キャプチャレジスタ y の値が同じ場合、OCyREFを強制的にハイレベルにします。 |
| 010 | 強制的に非アクティブレベルに設定します。 コアカウンタの値が比較/キャプチャレジスタ y の値と同じ場合、OCyREFを強制的にローレベルにします。 |
| 011 | 反転。 コアカウンタと比較/キャプチャレジスタ y の値が同じ場合、OCyREFのレベルを反転します。 |
| 100 | 強制的に非アクティブにします。 OCyREFをローレベルにします。 |
| 101 | アクティブレベルに強制します。 OCyREFをハイレベルにします。 |
| 110 | PWMモード1 アップカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1 は非アクティブレベルになります。 それ以外の場合はアクティブレベルになります。 ダウンカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1 はアクティブレベルになります。 それ以外の場合は非アクティブレベルになります。 |
| 111 | PWMモード2 アップカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1はアクティブレベルになります。 それ以外の場合は非アクティブレベルになります。 ダウンカウント時、コアカウンタがコンペア/キャプチャレジスタの値を超えると、チャネル1は非アクティブレベルになります。 それ以外の場合は、アクティブレベル(OC1REF=1)になります。 |
PWMモード1またはPWMモード2では、OCyREFレベルは、比較結果が変化したとき、または出力コンペアモードでフリーズモードからPWMモードに切り替えたときにのみ変化します。
OCyPE (y=4,3)
コンペア/キャプチャレジスタ y のプリロード有効ビット (Preload enable bit of compare/capture register y)| 1 | コンペア/キャプチャレジスタのプリロード機能を有効にします。 読み出しおよび書き込み操作はプリロードレジスタに対してのみ行われます。 コンペア/キャプチャレジスタ y のプリロード値は、更新イベントの到着時に現在のシャドウレジスタにロードされます。 |
| 0 | コンペア/キャプチャレジスタ2のプリロード機能を無効にします。 コンペア/キャプチャレジスタ y にはいつでも書き込み可能で、書き込まれた値は直ちに有効になります。 |
シングルパルスモード(OPM=1)の場合のみ、プリロードレジスタを確認せずにPWMモードを使用できます。
それ以外の場合、動作は不確定です。
OCyFE (y=4,3)
コンペア/キャプチャ y 高速イネーブルビット (Compare/capture y fast enable bit)このビットは、トリガ入力イベントに対するコンペア/キャプチャ出力の応答を高速化するために使用されます。
| 1 | トリガに入力された非アクティブエッジの効果は、比較一致と同等です。 したがって、比較結果に関わらず、OCは比較レベルに設定されます。 サンプリングトリガの有効エッジとコンペア/キャプチャ y 出力間の遅延は3クロックサイクルに短縮されます。 |
| 0 | カウンタとコンペア/キャプチャレジスタ y の値に応じて、トリガがオンになっていてもコンペア/キャプチャ y は通常どおり動作します。 トリガ入力に有効エッジがある場合、コンペア/キャプチャ y 出力をアクティブ化するまでの最小遅延は5クロックサイクルです。 |
CCyS (y=4,3)
コンペア/キャプチャ y の入力選択 (Input selection of compare/capture y)| 00 | コンペア/キャプチャ y は出力として設定されます。 |
| 01 | コンペア/キャプチャ y は入力として設定され、ICyはTI2にマッピングされます。 |
| 10 | コンペア/キャプチャ y は入力として設定され、ICyはTI1にマッピングされます。 |
| 11 | コンペア/キャプチャ y は入力として設定され、ICyはTRCにマッピングされます。 このモードは、内部トリガ入力が選択されている(TSビットで選択)場合にのみ機能します。 |
□キャプチャモード(ピン方向は入力)
ICyF (y=4,3)
カウンタで構成され、出力の遷移を検証するにはN個のイベントが必要です。| 0000 | フィルタなし、サンプリングはFdtsで行われます。 |
| 0001 | Fsampling=Fck_int、N=2 |
| 0010 | Fsampling=Fck_int、N=4 |
| 0011 | Fsampling=Fck_int、N=8 |
| 0100 | Fsampling=Fdts/2、N=6 |
| 0101 | Fsampling=Fdts/2、N=8 |
| 0110 | Fsampling=Fdts/4、N=6 |
| 0111 | Fsampling=Fdts/4、N=8 |
| 1000 | Fsampling=Fdts/8、N=6 |
| 1001 | Fsampling=Fdts/8、N=8 |
| 1010 | Fsampling=Fdts/16、N=5 |
| 1011 | Fsampling=Fdts/16、N=6 |
| 1100 | Fsampling=Fdts/16, N=8 |
| 1101 | Fsampling=Fdts/32, N=5 |
| 1110 | Fsampling=Fdts/32, N=6 |
| 1111 | Fsampling=Fdts/32, N=8 |
ICyPSC (y=4,3)
入力キャプチャ y フィルタ設定ビット (Input capture y filter configuration bits)これらのビットは、TI1入力のサンプリング周波数とデジタルフィルタ長を設定します。
デジタルフィルタはイベントで構成されます。
コンペア/キャプチャ2プリスケーラ設定ビット。
これらの2つのビットは、コンペア/キャプチャ2のプリスケーラ係数を定義します。
CC1E=0になると、プリスケーラはリセットされます。
| 00 | プリスケーラOFF、キャプチャ入力ポートで検出された各エッジでキャプチャをトリガします。 |
| 01 | 2イベントごとにキャプチャをトリガします。 |
| 10 | 4イベントごとにキャプチャをトリガします。 |
| 11 | 8イベントごとにキャプチャをトリガします。 |
CCyS (y=4,3)
コンペア/キャプチャ y 入力選択ビット (Compare/capture y input selection bits)| 00 | コンペア/キャプチャ y は出力として設定されます。 |
| 01 | コンペア/キャプチャ y は入力として設定されます。 ICyはTI1にマッピングされます。 |
| 10 | コンペア/キャプチャ y は入力として設定されます。 ICyはTI2にマッピングされます。 |
| 11 | コンペア/キャプチャ y は入力として設定されます。 ICyはTRCにマッピングされます。 このモードは、内部トリガ入力が選択されている(TSビットで選択)場合にのみ機能します。 |
15.4.9 比較/キャプチャ有効レジスタ(TIMx_CCER)(x=2/3/4)
CCER = Compare/Capture Eenable Register | Access base address 0x40000000 Offset address: 0x20
■レジスター内容
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | CC4P | CC4E | Reserved | CC3P | CC3E | Reserved | CC2P | CC2E | Reserved | CC1P | CC1E | ||||
| RO | RW | RW | RO | RW | RW | RO | RW | RW | RO | RW | RW | ||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CCyP (y=4,3,2,1)
比較/キャプチャyの出力極性設定ビット (Output polarity setting bit of compare/capture y )CCyE (y=4,3,2,1)
比較/キャプチャyの出力イネーブルビット (Output enable bit of compare/capture y )15.4.10 汎用タイマーのカウンタ(TIMx_CNT)(x=2/3/4)
CNT = CouNter of general purpose Timer | Access base address 0x40000000 Offset address: 0x00
■レジスター内容
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CNT | |||||||||||||||
| RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CNT
タイマーカウンターのリアルタイム値15.4.11 プリスケーラ(TIMx_PSC)(x=2/3/4)
PSC = PreSCaler | Access base address 0x40000000 Offset address: 0x28
■レジスター内容
カウンターのクロック周波数は、分周器の入力周波数/(PSC+1)に等しくなります。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PSC | |||||||||||||||
| RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PSC
タイマーの分周器の分周係数。カウンターのクロック周波数は、分周器の入力周波数/(PSC+1)に等しくなります。
15.4.12 自動リロードレジスタ(TIMx_ATRLR)(x=2/3/4)
ATRLR = AuTo ReLoad Register | Access base address 0x40000000 Offset address: 0x2C
■レジスター内容
ATRLRの動作と更新時間については、セクション14.2.4を参照してください。
ATRLRが空になると、カウンタは停止します。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ATRLR | |||||||||||||||
| RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
ATRLR
ATRLR[15:0]の値がカウンタにロードされます。ATRLRの動作と更新時間については、セクション14.2.4を参照してください。
ATRLRが空になると、カウンタは停止します。
15.4.13 比較/キャプチャレジスタ1 (TIMx_CH1CVR) (x=2/3/4)
CH1CVR = Compare/capture Register1 | Access base address 0x40000000 Offset address: 0x34
■レジスター内容
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CH1CVR | |||||||||||||||
| RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CH1CVR
比較/キャプチャ チャネル 1 の値15.4.14 比較/キャプチャレジスタ1 (TIMx_CH2CVR) (x=2/3/4)
CH2CVR = Compare/capture Register2 | Access base address 0x40000000 Offset address: 0x38
■レジスター内容
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CH2CVR | |||||||||||||||
| RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CH2CVR
比較/キャプチャ チャネル 2 の値15.4.15 比較/キャプチャレジスタ3 (TIMx_CH3CVR) (x=2/3/4)
CH3CVR = Compare/capture Register3 | Access base address 0x40000000 Offset address: 0x3C
■レジスター内容
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CH3CVR | |||||||||||||||
| RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CH3CVR
比較/キャプチャ チャネル 3 の値15.4.16 比較/キャプチャレジスタ4 (TIMx_CH4CVR) (x=2/3/4)
CH4CVR = Compare/capture Register4 | Access base address 0x40000000 Offset address: 0x40
■レジスター内容
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CH4CVR | |||||||||||||||
| RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
CH4CVR
比較/キャプチャ チャネル 4 の値15.4.17 DMA制御レジスタ(TIMx_DMACFGR)(x=2/3/4)
DMACFGR = DMA Control Register | Access base address 0x40000000 Offset address: 0x48
■レジスター内容
実際の値はこのドメインの値+1です。
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Reserved | DBL | Reserved | DBA | ||||||||||||
| RO | RW | RO | RW | ||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DBL
DMAが連続的に転送するデータの長さ。実際の値はこのドメインの値+1です。
DBA
これらのビットは、連続モードにおける制御レジスタ1のアドレスからのDMAのオフセットを定義します。15.4.18 連続モードのDMAアドレスレジスタ(TIMx_DMAADR)(x=2/3/4)
DMAADR = DMA ADdress Register in continuous mode | Access base address 0x40000000 Offset address: 0x4C
■レジスター内容
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DMAADR | |||||||||||||||
| RW | |||||||||||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
