Hobby Lab 趣味のモノ作り実験のサイトです。
部品 プロセッサー他 CH32V 203マニュアル_15_GPTM
15 汎用タイマー
15.1 主な特徴
15.2 原理と構造
15.2.1 概要
15.2.2 汎用タイマーと・・違い
15.2.3 クロック入力
15.2.3.1 内部クロックソース
15.2.3.2 外部クロックソース モード1
15.2.3.3 外部クロックソース モード2
15.2.3.4 エンコーダモード
15.2.4 カウンタと周辺回路
15.2.5 コンペア/キャプチャチャンネル

15.3 機能と実装
15.3.1 入力キャプチャモード
15.3.2 比較出力モード
15.3.3 強制出力モード
15.3.4 PWM入力モード
15.3.5 PWM出力モード
15.3.6 シングルパルスモード
15.3.7 エンコーダモード
15.3.8 タイマー同期モード
15.3.9 デバッグモード

15.4 レジスタの説明
15.4.1 TIMy_CTLR1
15.4.2 TIMy_CTLR2
15.4.3 TIMy_SMCFGR
15.4.4 TIMy_DMAINTENR
15.4.5 TIMy_INTFR
15.4.6 TIMx_SWEVGR
15.4.7 TIMx_CHCTLR1
15.4.8 TIMx_CHCTLR1
15.4.9 TIMx_CCER
15.4.10 TIMx_CNT
15.4.11 TIMx_PSC
15.4.12 TIMx_ATRLR
15.4.13 TIMx_CH1CVR
15.4.14 TIMx_CH2CVR
15.4.15 TIMx_CH3CVR
15.4.16 TIMx_CH4CVR
15.4.17 TIMx_DMACFGR
15.4.18 TIMx_DMAADR

Pr:Prプロセッサ関係
PrP:プロセッサ
動作比較
 STM32F動作比較
 CH32V203&STM32F 動作比較
 arduino動作比較
raspberrypi関係
 RaspberryPiハード
CH32V関係
 -CH32V開始
 -203K8T6(32Pin)開始
 -203C8T6(48P)開始
 -003J4M6(8Pin)開始
 -003F4P6(20Pin)開始
 -Moun River StudioⅡ
 プログラミング!
  203_GPIO関係
  203_TIME関係
  203_TIME Encoder
  203_I2C関係
  203_1-Wire関係
  003_DS18B20テスター
  USART(UART)関係
  DS18B20をModBus制御
 -マニュアル
 203データシート
 203取説
  MBA メモリとバス方式
  PWR 電力制御
  RCC リセット・拡張・クロック
  BKP バックアップレジスタ
  CRC 巡回冗長検査
  RTC リアルタイムクロック
  GPIO GPIOと代替機能
  DMA ダイレクトメモリアクセス制御
  ADTM 高度な制御タイマー
  GPTM 汎用タイマー
  BCTM 基本タイマー
  USART 同期非同期通信
arduino関係
 ESP12関係
 (a)ESP-8266D1mini注意
PrP:その他  RS485ドライバー
 CP2102 BRIDGE
 WCH-LinkEエミュレーター
Pr:Wire 電線関係
Pr:Resistance 抵抗
Pr:Capacitor コンデンサ
Pr:Coil コイル
Pr:PassiveElmt 受動素子
Pr:Diode ダイオード関係
Pr:OPAMP オペアンプ関係
PrO:送受信機
Si4735
 Si4735について
 Si4735ラジオを作って見よう1
PrO:オペアンプ  LM324
 LM358
Pr:Tr トランジスタ関係
2SC1815
 リレードライバー設計
 アンプ設計
 発振器
TLP152
 TLP152テスト
TLP2361
 TLP2361テスト
TLP5754
 TLP5754テスト
Pr:Source 電源関係  ツェナーダイオード
 TL431
 LM317
PrS:Downモジュール
 EGS002_IR2110S
 SKU011012
 ACDC02
 XH_M299
 LM2596
 Mini360_MP23070N
 DROK
 WH140
PrS:UPモジュール
 MT3608
PrS:充電モジュール
 TP4056
Pr:Sensor_AD_時計等
PrS:電圧、電流
ADS1115 16bit4CH I2C A/D
 Hardware
 RaspberryPi_コマンド接続
 RaspberryPi_Python
 Arduino
 CH23V203 MounRiverStudioⅡ
INA226 I2C 直流電圧電流
 Hardware
 Arduino
 RaspberryPi_Python
WCS 電流ホール素子
 Hardware
PrS:温度、気圧、湿度、照度
BNE280 I2C 気圧,湿度,気温
 Hardware
 Arduino
 RaspberryPi_Python
BH1750 I2C 照度
 Hardware
 Arduino
 RaspberryPi_Python
DS18B20 1-Wire 温度計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:時間、日時
DS3231 I2C 時計
 Hardware
 Arduino
 RaspberryPi_Python
PrS:表示器
MAR3953 320X480 3.95"
 概要と線や点を描く
 フォントを描く
SSD1306 I2C 0.96"OLED
 Hardware
 Arduino
 RaspberryPi_Python
Pr:Old Processor他

15 汎用タイマー(GPTM)

この章は、CH32F2x、CH32V2x、およびCH32V3xファミリ全体に適用されます。 汎用タイマーモジュールには、16ビットタイマー(TIM2、TIM3、TIM4、およびTIM5)が搭載されており、 自動的にリロードすることでパルス幅の測定や特定周波数のパルスおよびPWM波形の生成などに使用できます。 自動制御や電源供給に使用できます。

15.1 主な特徴

汎用タイマー(TIM1/8/9/10)の機能
・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から供給されます。

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です。

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信号を送信します。

15.2.3.3 外部クロックソースモード2

外部トリガモード2を使用して、外部クロックピン入力のすべての立ち上がりエッジまたは立ち下がりエッジをカウントします。
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を参照してください。

15.2.4 カウンタと周辺回路

CK_PSCは分周器(PSC)への周波数分周用入力です。
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 機能と実装

汎用タイマーの複合機能は、コンペア/キャプチャチャネル、クロック入力回路、カウンタ、およびタイマーの周辺回路の動作によって実現されます。
タイマーのクロック入力は、コンペア/キャプチャレジスタへの入力を含む複数のクロックソースから供給できます。
コンペア/キャプチャレジスタチャネルの動作とクロックソースの選択によって、タイマーの機能が直接決定されます。
コンペア/キャプチャレジスタは双方向で、入力モードと出力モードで動作できます。

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)に書き込むことでソフトウェアで生成できます。

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ビットをセットし、タイマーを開始します。

15.3.3 強制出力モード

タイマーのコンペア/キャプチャ出力モードは、シャドウレジスタやコンペア/キャプチャレジスタのコアカウンタに依存せずに、ソフトウェアによって特定のレベルを強制的に出力することができます。
具体的な方法は、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ビットを設定します。

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ビットをセット)するのが最適です。

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 エンコーダモードにおけるタイマーのカウント方向とエンコーダ信号の関係
Count active edgeRelative
signal level
TI1FP1 signal edgeTI2FP2 signal edge
Rising edgeFalling edgeRising edgeFalling edge
Only count at TI1 edgeHighDowncountUpcountNot count
LowUpcountDowncount
Only count at TI2 edgeHighNot countUpcountDowncount
LowDowncountUpcount
Count on both edges
of TI1 and TI2
HighDowncountUpcountUpcountDowncount
LowUpcountDowncountDowncountUpcount

15.3.8 タイマー同期モード

タイマーはクロックパルス(TRGO)を出力するだけでなく、他のタイマーからの入力(ITRx)も受信できます。
各タイマーのITRxのソース(他のタイマーのTRGO)は異なります。表12-2にタイマーの内部トリガ接続を示します。
図15-2 GTPM内部トリガー接続
Slave timerITR0(TS=000)ITR1(TS=001)ITR2(TS=010)ITR3(TS=011)
TIM2TIM1TIM8/USB/ETHTIM3TIM4
TIM3TIM1TIM2TIM5TIM4
TIM4TIM1TIM2TIM5TIM8
TIM5TIM2TIM3TIM4TIM8

15.3.9 デバッグモード

システムがデバッグモードに入ると、タイマーはDBGモジュールの設定に応じて実行を継続するか停止します。




15.4 レジスタの説明

表15-3 TIM2関連レジスタ
TIMTIM2TIM3TIM4
Offset address0x4000000x4000040x400008

NameOffset
address
DescriptionReset
value
R16_TIMy_CTLR100TIMy control register10x0000
R16_TIMy_CTLR204TIMy control register20x0000
R16_TIMy_SMCFGR08TIMy slave mode control register0x0000
R16_TIMy_DMAINTENR0CTIMy DMA/interrupt enable register0x0000
R16_TIMy_INTFR10TIMy interrupt flag register0x0000
R16_TIMy_SWEVGR14TIMy event generation register0x0000
R16_TIMy_CHCTLR118TIMy compare/capture control register10x0000
R16_TIMy_CHCTLR21CTIMy compare/capture control register20x0000
R16_TIMy_CCER20TIMy compare/capture enable register0x0000
R16_TIMy_CNT24TIMy counter0x0000
R16_TIMy_PSC28TIMy prescaler0x0000
R16_TIMy_ATRLR2CTIMy auto reload register0x0000
R16_TIMy_CH1CVR34TIMy compare/capture register10x0000
R16_TIMy_CH2CVR38TIMy compare/capture register20x0000
R16_TIMy_CH3CVR3CTIMy compare/capture register30x0000
R16_TIMy_CH4CVR40TIMy compare/capture register40x0000
R16_TIMy_DMACFGR44TIMy DMA configuration register0x0000
R16_TIMy_DMAADR48TIMy DMA address register in continuous mode0x0000

15.4.1 制御レジスタ1 (TIMy_CTLR1) (y=2/3/4)

CTLR1 = ConTroL Register1 | Access base address 0x40000000 Offset address: 0x00
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
ReservedCKD ARPECMSDIROPMURSUDISCEN
RORW RWRWRWRWRWRWRW
00000000 00000000

CKD

これらの2ビットは、デジタルフィルタに使用されるタイマークロック(CK_INT)周波数とサンプリングクロックの分周比を定義します。
00Tdts=Tck_int
01Tdts=2xTck_int
10Tdts=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)の出力比較割り込みフラグビットは、カウンタがカウントアップしているときのみセットされます。
注:カウンタが有効(CEN=1)の場合、エッジアライメントモードからセンターアライメントモードに切り替えることはできません。

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イベントの生成を許可/無効化します。
1UEVを無効化。
更新イベントは生成されず、レジスタ(ATRLR、PSC、CHCTLRx)は値を維持します。UGビットがセットされているか、モードコントローラからハードウェアリセットが発行された場合、カウンタとプリスケーラは再初期化されます。
0UEVを許可。更新(UEV)イベントは、以下のいずれかのイベントによって生成されます。
・ カウンタのオーバーフロー/アンダーフロー
・ UGビットのセット
・ スレーブモードコントローラによって生成された更新
バッファ付きレジスタには、プリロードされた値がロードされます。

CEN

カウンタ有効(Counter enable)
1カウンタ有効
0カウンタ無効
注:CENビットがソフトウェアでセットされると、外部クロック、ゲーティングモード、エンコーダモードのみが動作します。
トリガーモードでは、CENビットがハードウェアによって自動的にセットされます。


15.4.2 制御レジスタ2 (TIMy_CTLR2) (y=2/3/4)

CTLR2 = ConTroL Register2 | Access base address 0x40000000 Offset address: 0x04
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
Reserved TIISMMSCCDSCCUSReservedCCPC
RO RWRWRWRWRORW
00000000 00000000

TIIS

TI1の選択(TI1 selection)
1TIMx_CH1、TIMx_CH2、TIMx_CH3ピンはXORを介してTI1入力に接続されます。
0TIMx_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)。
100OC1REF信号がトリガ出力として使用されます(TRGO)。
101OC2REF信号がトリガ出力として使用されます(TRGO)。
110OC3REF信号がトリガ出力として使用されます(TRGO)。
111OC4REF信号がトリガ出力として使用されます(TRGO)。

CCDS

1更新イベントが発生すると、CHxCVRのDMA要求を送信します。
0CHxCVRが発生すると、CHxCVRのDMA要求が生成されます。

CCUS

コンペア/キャプチャ制御更新選択ビット(Compare/capture control update selection bit)
1CCPC がセットされている場合、COM ビットまたは TRGI の立ち上がりエッジで更新できます。
0CCPC がセットされている場合、COM ビットをセットすることによってのみ更新できます。
注:このビットは、相補出力を持つチャネルでのみ機能します。

CCPC

コンペア/キャプチャプリロード制御ビット(Compare/capture preload control bit)
1CCxE、CCxNE、OCxMビットがプリロードされます。
これらのビットが設定された後は、COMビットの設定後にのみ更新されます。
0CCxE、CCxNE、OCxMビットはプリロードされません。
注: このビットは、コンプリメンタリ出力を持つチャネルでのみ機能します。


15.4.3 スレーブモード制御レジスタ(TIMy_SMCFGR)(y=2/3/4)

SMCFGR = Slave Mode Control Register | Access base address 0x40000000 Offset address: 0x08
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
ETPECEETPSETF MSMTSReservedSMS
RWRWRWRW RWRWRORW
00000000 00000000

ETP

ETRトリガ極性選択(ETR trigger polarity selection)
このビットは、ETRを直接入力するか、反転ETRを入力するかを選択します。
1ETR反転、ローレベルまたは立ち下がりエッジでアクティブ。
0ETR、ハイレベルまたは立ち上がりエッジでアクティブ。

ECE

外部クロックモード2の有効/無効の選択(External clock mode2 enable selection)
1外部クロックモード2が有効。
0外部クロックモード2が無効。
注1:スレーブモードは、外部クロックモード2(リセットモード、ゲーティングモード、トリガーモード)と同時に使用できます。
ただし、TRGIをETRFに接続することはできません(TSビットを111bにすることはできません)。
注2:外部クロックモード1と外部クロックモード2の両方が同時に有効になっている場合、外部クロックの入力はETRFになります。

ETPS

外部トリガ・プリスケーラ(ETRP)(External trigger prescaler)
周波数はTIMxCLK周波数の1/4以下にする必要があり、この領域で周波数を下げることができます。
00プリスケールOFF
01ETRP周波数を2分周
10ETRP周波数を4分周
11ETRP周波数を8分周

ETF

外部トリガーフィルタ(External trigger filter)
実際には、デジタルフィルタはイベントカウンタです。
出力の遷移を検証するにはN個のイベントが必要です。
0000フィルタなし、サンプリングはFdtsで行われます。
0001Fsampling=Fck_int、N=2
0010Fsampling=Fck_int、N=4
0011Fsampling=Fck_int、N=8
0100Fsampling=Fdts/2、N=6
0101Fsampling=Fdts/2、N=8
0110Fsampling=Fdts/4、N=6
0111Fsampling=Fdts/4、N=8
1000Fsampling=Fdts/8、N=6
1001Fsampling=Fdts/8、N=8
1010Fsampling=Fdts/16, N=5
1011Fsampling=Fdts/16, N=6
1100Fsampling=Fdts/16, N=8
1101Fsampling=Fdts/32, N=5
1110Fsampling=Fdts/32, N=6
1111Fsampling=Fdts/32, N=8

MSM

マスター/スレーブモードの選択(Master/Slave mode selection) トリガー入力(TRGI)のイベントを遅延させ、現在のタイマー(TRGO経由)とそのスレーブタイマー間の完全な同期を実現します。
これは、複数のタイマーを単一の外部イベントに同期させる必要がある場合に非常に便利です。
1
0動作しません。

TS

トリガ選択(Trigger selection)
これらの3ビットは、カウンタの同期に使用するトリガ入力ソースを選択します。
000内部トリガ0 (ITR0)
001内部トリガ1 (ITR1)
010内部トリガ2 (ITR2)
011内部トリガ3 (ITR3)
100TI1のエッジ検出器 (TI1F_ED)
101フィルタリング後のタイマー入力1 (TI1FP1)
110フィルタリング後のタイマー入力2 (TI1FP2)
111外部トリガ入力 (ETRF)
SMSが0の場合にのみ値を変更できます。

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
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
ReservedTDECOMDECC4DECC3DECC2DECC1DEUDE ReservedTIEReservedCC4IECC3IECC2IECC1IEUIE
RORWRWRWRWRWRWRW RORWRORWRWRWRWRW
00000000 00000000

TDE

トリガーDMA要求有効ビット(Trigger DMA request enable bit)
1 トリガーDMA要求有効。
0トリガーDMA要求無効。

COMDE

COMのDMA要求有効ビット(DMA request enable bit of COM)
1COMのDMA要求が有効。
0COMの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
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
ReservedCC4OFCC3OFCC2OFCC1OFReserved TIFReservedCC4IFCC3IFCC2IFCC1IFUIF
ROWOWOWOWORO WOROWOWOWOWOWO
00000000 00000000

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
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
Reserved BGTGCOMGCC4GCC3GCC2GCC1GUG
RO WOWOWOWOWOWOWOWO
00000000 00000000

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)
コンペア/キャプチャ制御更新イベントを生成します。
このビットはソフトウェアによってセットされ、ハードウェアによって自動的にクリアされます。
1CCPC=1 の場合、CCxE、CCxNE、OCxM ビットの更新が許可されます。
0影響しません。
注:このビットは、コンプリメンタリ出力を持つチャネル(チャネル 1、2、3)でのみ有効です。

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は入力モードにおけるチャネルの機能を示します。
■レジスター内容
モード 1514131211109 8 7 6 5 4 3 2 1 0
比較モード
ピン方向は出力
OC2CEOC2MOC2PEOC2FECC2S OC1CEOC1MOC1PEOC1FECC1S
RWRWRWRWRWRWRWRW
キャプチャモード
ピン方向は入力
IC2FI2PSCIC1FIC1PSC
RWRWRWRWRWRW
初期データ 00000000 00000000

□比較モード(ピン方向は出力)

OCyCE (y=2,1)

コンペア/キャプチャ y のイネーブルビットをクリアします。
1ETRF入力のハイレベルが検出されると、OCyREFビットをゼロにクリアします。
0OCyREFは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をハイレベルにします。
110PWMモード1
アップカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1 は非アクティブレベルになります。
それ以外の場合はアクティブレベルになります。
ダウンカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1 はアクティブレベルになります。
それ以外の場合は非アクティブレベルになります。
111PWMモード2
アップカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1はアクティブレベルになります。
それ以外の場合は非アクティブレベルになります。
ダウンカウント時、コアカウンタがコンペア/キャプチャレジスタの値を超えると、チャネル1は非アクティブレベルになります。
それ以外の場合は、アクティブレベル(OCyREF=1)になります。
注:LOCKレベルが3に設定され、CCyS=00bに設定されると、このビットは変更できなくなります。
PWMモード1またはPWMモード2では、OCyREFレベルは、比較結果が変化したとき、または出力コンペアモードでフリーズモードからPWMモードに切り替えたときにのみ変化します。

OCyPE (y=2,1)

コンペア/キャプチャレジスタ y のプリロード有効ビット (Preload enable bit of compare/capture register y)
1コンペア/キャプチャレジスタのプリロード機能を有効にします。
読み出しおよび書き込み操作はプリロードレジスタに対してのみ行われます。
コンペア/キャプチャレジスタ y のプリロード値は、更新イベントの到着時に現在のシャドウレジスタにロードされます。
0コンペア/キャプチャレジスタ y のプリロード機能を無効にします。
コンペア/キャプチャレジスタ y にはいつでも書き込み可能で、書き込まれた値は直ちに有効になります。
注:LOCKレベルが3に設定され、CCyS=00bの場合、このビットは変更できません。
シングルパルスモード(OPM=1)の場合のみ、プリロードレジスタを確認せずにPWMモードを使用できます。
それ以外の場合、動作は不確定です。

OCyFE (y=2,1)

コンペア/キャプチャ y 高速イネーブルビット (Compare/capture y fast enable bit)
このビットは、トリガ入力イベントに対するコンペア/キャプチャ出力の応答を高速化するために使用されます。
1トリガに入力された非アクティブエッジの効果は、比較一致と同等です。
したがって、比較結果に関わらず、OCは比較レベルに設定されます。
サンプリングトリガの有効エッジとコンペア/キャプチャ y 出力間の遅延は3クロックサイクルに短縮されます。
0カウンタとコンペア/キャプチャレジスタ y の値に応じて、トリガがオンになっていてもコンペア/キャプチャ y は通常どおり動作します。
トリガ入力に有効エッジがある場合、コンペア/キャプチャ y 出力をアクティブ化するまでの最小遅延は5クロックサイクルです。
OC2FEは、チャネルがPWM1またはPWM2モードに設定されている場合にのみ機能します。

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ビットで選択)場合にのみ機能します。
コンペア/キャプチャ y は、チャネルがオフ(CCyEが0)の場合にのみ書き込み可能です。

□キャプチャモード(ピン方向は入力)

ICyF (y=2,1)

カウンタで構成され、出力の遷移を検証するにはN個のイベントが必要です。
0000フィルタなし、サンプリングはFdtsで行われます。
0001Fsampling=Fck_int、N=2
0010Fsampling=Fck_int、N=4
0011Fsampling=Fck_int、N=8
0100Fsampling=Fdts/2、N=6
0101Fsampling=Fdts/2、N=8
0110Fsampling=Fdts/4、N=6
0111Fsampling=Fdts/4、N=8
1000Fsampling=Fdts/8、N=6
1001Fsampling=Fdts/8、N=8
1010Fsampling=Fdts/16、N=5
1011Fsampling=Fdts/16、N=6
1100Fsampling=Fdts/16, N=8
1101Fsampling=Fdts/32, N=5
1110Fsampling=Fdts/32, N=6
1111Fsampling=Fdts/32, N=8

ICyPSC (y=2,1)

入力キャプチャ y フィルタ設定ビット (Input capture y filter configuration bits)
これらのビットは、TI1入力のサンプリング周波数とデジタルフィルタ長を設定します。
デジタルフィルタはイベントで構成されます。
コンペア/キャプチャ y プリスケーラ設定ビット。
これらの2つのビットは、コンペア/キャプチャ y のプリスケーラ係数を定義します。
CC1E=0になると、プリスケーラはリセットされます。
00プリスケーラOFF、キャプチャ入力ポートで検出された各エッジでキャプチャをトリガします。
012イベントごとにキャプチャをトリガします。
104イベントごとにキャプチャをトリガします。
118イベントごとにキャプチャをトリガします。

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ビットで選択)場合にのみ機能します。
注:CCySは、チャネルがクローズされている(CCyEが0)場合にのみ書き込むことができます。


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は入力モードにおけるチャネルの機能を示します。
■レジスター内容
モード 1514131211109 8 7 6 5 4 3 2 1 0
比較モード
ピン方向は出力
OC2CEOC4MOC4PEOC4FECC4S OC3CEOC3MOC3PEOC3FECC3S
RWRWRWRWRWRWRWRW
キャプチャモード
ピン方向は入力
IC4FIC4PSCIC3FIC3PSC
RWRWRWRWRWRW
初期データ 00000000 00000000

□比較モード(ピン方向は出力)

OCyCE (y=4,3)

コンペア/キャプチャ y のイネーブルビットをクリアします。
1ETRF入力のハイレベルが検出されると、OCyREFビットをゼロにクリアします。
0OCyREFは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をハイレベルにします。
110PWMモード1
アップカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1 は非アクティブレベルになります。
それ以外の場合はアクティブレベルになります。
ダウンカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1 はアクティブレベルになります。
それ以外の場合は非アクティブレベルになります。
111PWMモード2
アップカウント時、コアカウンタが比較/キャプチャレジスタの値を超えると、チャネル1はアクティブレベルになります。
それ以外の場合は非アクティブレベルになります。
ダウンカウント時、コアカウンタがコンペア/キャプチャレジスタの値を超えると、チャネル1は非アクティブレベルになります。
それ以外の場合は、アクティブレベル(OC1REF=1)になります。
注:LOCKレベルが3に設定され、CCyS=00bに設定されると、このビットは変更できなくなります。
PWMモード1またはPWMモード2では、OCyREFレベルは、比較結果が変化したとき、または出力コンペアモードでフリーズモードからPWMモードに切り替えたときにのみ変化します。

OCyPE (y=4,3)

コンペア/キャプチャレジスタ y のプリロード有効ビット (Preload enable bit of compare/capture register y)
1コンペア/キャプチャレジスタのプリロード機能を有効にします。
読み出しおよび書き込み操作はプリロードレジスタに対してのみ行われます。
コンペア/キャプチャレジスタ y のプリロード値は、更新イベントの到着時に現在のシャドウレジスタにロードされます。
0コンペア/キャプチャレジスタ2のプリロード機能を無効にします。
コンペア/キャプチャレジスタ y にはいつでも書き込み可能で、書き込まれた値は直ちに有効になります。
注:LOCKレベルが3に設定され、CCyS=00bの場合、このビットは変更できません。
シングルパルスモード(OPM=1)の場合のみ、プリロードレジスタを確認せずにPWMモードを使用できます。
それ以外の場合、動作は不確定です。

OCyFE (y=4,3)

コンペア/キャプチャ y 高速イネーブルビット (Compare/capture y fast enable bit)
このビットは、トリガ入力イベントに対するコンペア/キャプチャ出力の応答を高速化するために使用されます。
1トリガに入力された非アクティブエッジの効果は、比較一致と同等です。
したがって、比較結果に関わらず、OCは比較レベルに設定されます。
サンプリングトリガの有効エッジとコンペア/キャプチャ y 出力間の遅延は3クロックサイクルに短縮されます。
0カウンタとコンペア/キャプチャレジスタ y の値に応じて、トリガがオンになっていてもコンペア/キャプチャ y は通常どおり動作します。
トリガ入力に有効エッジがある場合、コンペア/キャプチャ y 出力をアクティブ化するまでの最小遅延は5クロックサイクルです。
OC2FEは、チャネルがPWM1またはPWM2モードに設定されている場合にのみ機能します。

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ビットで選択)場合にのみ機能します。
コンペア/キャプチャ y は、チャネルがオフ(CCyEが0)の場合にのみ書き込み可能です。

□キャプチャモード(ピン方向は入力)

ICyF (y=4,3)

カウンタで構成され、出力の遷移を検証するにはN個のイベントが必要です。
0000フィルタなし、サンプリングはFdtsで行われます。
0001Fsampling=Fck_int、N=2
0010Fsampling=Fck_int、N=4
0011Fsampling=Fck_int、N=8
0100Fsampling=Fdts/2、N=6
0101Fsampling=Fdts/2、N=8
0110Fsampling=Fdts/4、N=6
0111Fsampling=Fdts/4、N=8
1000Fsampling=Fdts/8、N=6
1001Fsampling=Fdts/8、N=8
1010Fsampling=Fdts/16、N=5
1011Fsampling=Fdts/16、N=6
1100Fsampling=Fdts/16, N=8
1101Fsampling=Fdts/32, N=5
1110Fsampling=Fdts/32, N=6
1111Fsampling=Fdts/32, N=8

ICyPSC (y=4,3)

入力キャプチャ y フィルタ設定ビット (Input capture y filter configuration bits)
これらのビットは、TI1入力のサンプリング周波数とデジタルフィルタ長を設定します。
デジタルフィルタはイベントで構成されます。
コンペア/キャプチャ2プリスケーラ設定ビット。
これらの2つのビットは、コンペア/キャプチャ2のプリスケーラ係数を定義します。
CC1E=0になると、プリスケーラはリセットされます。
00プリスケーラOFF、キャプチャ入力ポートで検出された各エッジでキャプチャをトリガします。
012イベントごとにキャプチャをトリガします。
104イベントごとにキャプチャをトリガします。
118イベントごとにキャプチャをトリガします。

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ビットで選択)場合にのみ機能します。
注:CCySは、チャネルがクローズされている(CCyEが0)場合にのみ書き込むことができます。


15.4.9 比較/キャプチャ有効レジスタ(TIMx_CCER)(x=2/3/4)

CCER = Compare/Capture Eenable Register | Access base address 0x40000000 Offset address: 0x20
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
ReservedCC4PCC4EReservedCC3PCC3E ReservedCC2PCC2EReservedCC1PCC1E
RORWRWRORWRW RORWRWRORWRW
00000000 00000000

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
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
CNT
RW
00000000 00000000

CNT

タイマーカウンターのリアルタイム値


15.4.11 プリスケーラ(TIMx_PSC)(x=2/3/4)

PSC = PreSCaler | Access base address 0x40000000 Offset address: 0x28
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
PSC
RW
00000000 00000000

PSC

タイマーの分周器の分周係数。
カウンターのクロック周波数は、分周器の入力周波数/(PSC+1)に等しくなります。


15.4.12 自動リロードレジスタ(TIMx_ATRLR)(x=2/3/4)

ATRLR = AuTo ReLoad Register | Access base address 0x40000000 Offset address: 0x2C
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
ATRLR
RW
00000000 00000000

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
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
CH1CVR
RW
00000000 00000000

CH1CVR

比較/キャプチャ チャネル 1 の値


15.4.14 比較/キャプチャレジスタ1 (TIMx_CH2CVR) (x=2/3/4)

CH2CVR = Compare/capture Register2 | Access base address 0x40000000 Offset address: 0x38
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
CH2CVR
RW
00000000 00000000

CH2CVR

比較/キャプチャ チャネル 2 の値


15.4.15 比較/キャプチャレジスタ3 (TIMx_CH3CVR) (x=2/3/4)

CH3CVR = Compare/capture Register3 | Access base address 0x40000000 Offset address: 0x3C
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
CH3CVR
RW
00000000 00000000

CH3CVR

比較/キャプチャ チャネル 3 の値


15.4.16 比較/キャプチャレジスタ4 (TIMx_CH4CVR) (x=2/3/4)

CH4CVR = Compare/capture Register4 | Access base address 0x40000000 Offset address: 0x40
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
CH4CVR
RW
00000000 00000000

CH4CVR

比較/キャプチャ チャネル 4 の値


15.4.17 DMA制御レジスタ(TIMx_DMACFGR)(x=2/3/4)

DMACFGR = DMA Control Register | Access base address 0x40000000 Offset address: 0x48
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
ReservedDBLReservedDBA
RORWRORW
00000000 00000000

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
■レジスター内容
1514131211109 8 7 6 5 4 3 2 1 0
DMAADR
RW
00000000 00000000

DMAADR

連続モードでの DMA アドレス。






































更新日 2026/03/21 10:58  管理者 平林 剛Hirabayashi Takeshi