STM32G0 - COMP
アナログコ・パレータ
レビジョン 1.0

STM32G0 アナログコンパレータのプレゼンテーションへようこ
そ。ここでは、超低消費電力コンパレータの主な機能といくつかの応用例について説明します。

1

概要

2

• 2つのアナログ信号を比較してどちらが大きいかを示すデジタル出力を提供• STOPモードからCPUをウェイクアップできる

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

設定ロック、タイマのブレークイベント・ジェネレータなどの安全機能•

柔軟性の高いI/O相互接続•

ヒステリシスおよび速度と消費電力の設定

STM32 マイクロコントローラ内蔵の 2 つのコンパレータは、正入力のアナログ電圧が負入力の電圧より大きいかどうかを示すバイナリ出力を提供します。マイクロコントローラは、この出力を使用して、アナログ信号が定義済みの閾値を超えたときに対応できます。コンパレータは、サンプリングモードで動作するアナログデジタルコンバータとは異なり、電圧を継続的に監視します。
コンパレータを使用して、SLEEP モードおよび STOP モードからデバイスをウェイクアップできます。
コンパレータの特性を柔軟に設定できることは、アプリケーションに恩恵をもたらします。これらの特性は安全上の理由でロックできます。コンパレータは、もう 1 つの安全機能として、タイマのブレーク信号を生成できます。これにより PWM 駆動信号の生成を安全に停止できます。

2

主な機能

3

• 2つの独立したコンパレータCOMP1とCOMP2を組み合わせて、1つのウィンドウ・コンパレータを作成できる• プログラム可能なヒステリシスおよび速度と消費電力の設定• 設定可能な正入力と負入力• 多重化されたI/Oピン、DACチャネル1と2、内部基準電圧、および3つの約数値• 出力先変更• 設定可能なI/O• タイマ - 高速 PWM シャットダウンを実現するブレークイベント、サイクルごとの電流制御、およびタイミング測定のための入力キャプチャ• 出力のブランキング・ソース• コンパレータの制御およびステータス・レジスタを書込み保護できる

2 つの内蔵アナログコンパレータを結合して 1 つのウィンドウコンパレータを作成できます。
ヒステリシス、速度と消費電力のトレードオフなど、コンパレータのアナログ特性は設定可能です。
入力と出力を柔軟に相互接続できるので、DAC 出力、内部基準電圧出力など、さまざまな外部入力と内部入力に対して閾値を選択できます。
コンパレータの出力は、オルタネート機能チャネルを使用してI/O に接続することや、内部でさまざまなタイマ入力にリダイレクトして高速 PWM シャットダウンを実現するブレークイベントとして使用することができます。また、サイクルごとの電流制御やタイミング測定のための入力キャプチャを作成することもできます。
COMPx 制御レジスタは、マイクロコントローラの次のリセットまでロックできます。

3

STM32F0との主な違い

4• STM32G0の実装は、次の項目を除いて、STM32F0に類似しています。

項目

STM32F0x

STM32G0x

ウィンドウ･モード

CPUの介在あり

完全なハードウェア･ソリューション

タイマ接続

OCREF_CLR入力へ

ETR入力へ

コンパレータの同一性

COMP1とCOMP2は同一ではない

両方のコンパレータは同一

ブランキング入力

該当なし

選択可能なブランキング
ソース

スライドの表に、STM32F0 と STM32G0 のコンパレータの比較を示します。

4COMPブロック図

5

GPIO オルタネート機能

極性選択

ウェイクアップ
EXTI ライン割込み

ブランキングソース

このスライドでは、STM32G0 マイクロコントローラの内蔵コンパレータの概要ブロック図を示します。
左側のマルチプレクサは、GPIO、DAC 出力、および 4 つの分周比の VREFINT から、比較する電圧ソースを選択します。
コンパレータの出力は反転できます。
ブランキングソースがアクティブな場合、電圧比較結果は無視され、COMPx_VALUE は符号反転されます。
右側の XOR ゲートと最後のマルチプレクサは、ウィンドウモードを有効または無効にします。
コンパレータの状態は、次のものに接続できます。
• GPIO• EXTI モジュール。CPU に対するウェイクアップリクエストまたはイベントを生成します。
• タイマ入力

5

COMP入力 (1/2)
コンパレータ 1

コンパレータ 2

COMP1_CSR[INMSEL]

COMP2_CSR[INMSEL]

0000 = 1/4 VREFINT

0000 = 1/4 VREFINT

0001 = 1/2 VREFINT0001 = 1/2 VREFINT

0010 = 3/4 VREFINT

0010 = 3/4 VREFINT

0011 = VREFINT

0011 = VREFINT

0100 = DAC チャネル 10100 = DAC チャネル 10101 = DAC チャネル 20101 = DAC チャネル 20110 = PB10110 = PB30111 = PC40111 = PB71000 = PA01000 = PA2

COMP1_CSR[INPSEL]

6

COMP2_CSR[INPSEL]

00 = PC500 = PB401 = PB201 = PB6

10 = PA1

10 = PA311= オープン

11= オープン

各コンパレータに非反転入力と反転入力が 1 つずつあります。
反転入力を選択するには、COMP1_CSR レジスタとCOMP2_CSR レジスタの INMSEL フィールドを使用します。
非反転入力を選択するには、COMP1_CSR レジスタとCOMP2_CSR レジスタの INPSEL フィールドを使用します。

6

COMP入力 (2/2)
コンパレータ 1

コンパレータ 2

COMP1_CSR[BLANKSEL]

COMP2_CSR[BLANKSEL]

00000：ブランキングなし

00000：ブランキングなし

xxxx1：TIM1 OC4をブランキングソースとして有効化

xxxx1：TIM1 OC4をブランキングソースとして有効化

xxx1x：TIM1 OC5をブランキングソースとして有効化

xxx1x：TIM1 OC5をブランキングソースとして有効化

xx1xx：TIM2 OC3をブランキングソースとして有効化

xx1xx：TIM2 OC3をブランキングソースとして有効化

x1xxx：TIM3 OC3をブランキングソースとして有効化

x1xxx：TIM3 OC3をブランキングソースとして有効化

1xxxx：TIM15 OC2をブランキングソースとして有効化

1xxxx：TIM15 OC2をブランキングソースとして有効化

COMP1_CSR[WINOUT]

COMP2_CSR[WINOUT]

0： COMP1_OUT = COMP1_VALUE

0：COMP2_OUT = COMP1_VALUE

1：COMP1_OUT = COMP1_VALUE XOR
COMP2_VALUE

1：COMP2_OUT = COMP1_VALUE XOR
COMP2_VALUE7BLANKSEL フィールドで選択されているタイマ出力比較値により定義されるブランキング時間中、各コンパレータの出力をマスクできます。
2 つのコンパレータを WINOUT フィールドを通じて関連付けてウィンドウコンパレータを形成できます。

7

コンパレータの出力のブランキング機能

8• コンパレータの場合、ターンオン時のスプリアス過電流またはターンオフ時のゼロ交差イベントをマスクするためにブランキングする可能性がある（予測機能制御の場合）• 5つのソース：TIM1、TIM2、TIM3、TIM15

COMPx_INPCOMPx_POLCOMPx_WINOUTCOMPx_VALUECOMPx_INM
COMPx_OUT

極性選択

ブランキングソース

COMPy_VALUE

ブランキング機能は、タイマで指定される期間中、コンパレータの出力をマスクすることを目的としています。これは通常、予測機能制御（PFC）手法で使用します。

8

コンパレータの出力のブランキング機能

9• PWM周期の開始時の短時間の電流スパイクによる電流調整のトリップを防止
電流制限• タイマブレーク入力にリダイレクトされるCOMP出力をマスク

電流元のコンパレータ出力

ブランキングウィンドウ

最後のコンパレータ出力

コンパレータ出力
コンパレータ出力（TIM_BK へ...）ブランク

コンパレータをサイクルごとの調整ループで使用して、負荷に流れる電流のピーク値を監視できます。ブランキング機能の目
的は、PWM 周期の開始時の短時間の電流スパイクによる電流調整の不正なトリップを防止することです。電源スイッチをオンにすることで生じる短時間の電流スパイクにより、コンパレータ出力に偽のパルス（図の青い線で囲まれている部分）が生成される可能性があります。これらのパルスは、誤った障害検出を避けるために、ブランキングウィンドウでマスクする必要があります。ブランキングウィンドウの波形は、タイマ出力チャネルの 1 つで生成できます。

9コンパレータとタイマの連携 (1/2)

10• コンパレータの2つの出力が多目的設定のためにタイマ入力と相互接続されている• 入力1と2（外部タイミングまたは外部カウンタ･リセットのキャプチャ）• ブレーク入力（PWMの恒久的なシャットダウンまたはサイクルごとの制限）• ETR 入力（サイクルごとの制限または外部カウンタ･リセット）

コンパレータは、タイマユニットと内部接続しています。
出力は、次の目的で幅広いタイマ入力に内部でリダイレクトできます。
• BKIN 入力および BKIN2 入力を使用した PWM 信号の緊急停止• 電子タイミングリレー（ETR）入力を使用したサイクルごとの電流制御• タイミング測定の入力キャプチャ。

10

コンパレータとタイマの連携 (2/2)

11• 現在はタイマで直接、相互接続オプションを選択できる
IC1

IC2

ETR

BKIN

BKIN2

TIM1

COMP1

COMP2

COMP1/COMP2

COMP1/COMP2

COMP1/COMP2

TIM2

COMP1

COMP2

COMP1/COMP2

TIM3

COMP1

COMP2

COMP1/COMP2

TIM15

COMP1/COMP2

TIM16

COMP1/COMP2

TIM17

COMP1/COMP2• STM32F0からの主な変更点：OCREF_CLR入力がETR入力への接続に置き換えられている
STM32F0

STM32G0
COMP 割込みリクエスト（EXTI へ）

極性選択

タイマへの直接接続で置換（入力キャプチャ、ETR、BKIN、BKIN2）

スライドの上側の表は、コンパレータとタイマユニットの間の接続マトリックスです。
STM32F0 で使用されている OCREF_CLR タイマ入力は、
STM32G0 では ETR 入力で置き換えられています。

11

ETRタイマ入力の使用

12• STM32F0のOCREF_CLR接続はSTM32G0のETRタイマ入力で置き換えられている• 利点：コンパレータを多目的に使用できる• サイクルごとの電流制限• 外部カウンタリセット（ゼロ交差検出）• 制限：• 外部カウンタリセットとサイクルごとの電流制限が同時に使用される場合、外部リセットはTIMのCH1入力またはCH2入力を使用する（TIM ETRピンは使用できない）。次のスライドを参照。
• これは問題にならないと思われる（すべてのTIM入力／出力とサイクルごとの電流制限と外部カウンタリセットを必要とする使用例は存在しないため）• 例• 照明（PFC）：電流保護に ETR、PWM にCH1、ゼロ交差検出にCH2• 照明（LLC）：ハーフブリッジ制御にCH1 + CH1N、障害検出にBKIN• 照明（降圧コンバータ）：PWM にCH1、電流ループにETR

コンパレータとタイマの間の接続は、通常は次の 2 つの目的で使用されます。
• ブランキングメカニズムに基づくサイクルごとの電流制限• 電圧が閾値以下に降下した場合の外部カウンタリセット：ゼロ交差検出
両方を同時に使用する必要がある場合、電流制限には ETRタイマ入力を使用し、カウンタリセットにはタイマチャネル入力経由の信号を使用します。

12

電流制御

13

• 内部コンパレータ･リソースを使用する電流制御

TIMER1CH2CH2PWM 出力CH1+ETRETRBKIN

過電流（障害）（恒久的なシャットダウン）

内部コンパレータを使用する過電流（サイクルごとの制限）

COMP1-+内部コンパレータを使用する ZCD

COMP2-

スライドの図は、タイマユニットと COMP ユニットの間の直接接続の例を表しています。
過電流制限には ETR 入力を使用し、外部リセットには CH1入力を使用します。

13

タイマ機能の概要
デバイス

Toffmax Toffmin

Tonmax Tonmin*

過電流ゼロ交差ありあり（外部ループバック使用）

コンパレータまたはBKINデジタル
入力

OCREF_CLRまたはTI1/2 入力あり（内部 ありリンク使用）あり（コンパレータ･ブランキング）

コンパレータ、
BKIN/BKIN2デジ
タル入力

ETRまたはTI1/2入力

STM32F05x ありあり（外部ループバック使用）

STM32G0あり

通常動作

過電流

14

通常動作

STM32G0 のサイクルごとの電流制御ループは、タイマからのPWM 出力と組み合わせることで、STM32F0 マイクロコント
ローラより単純化されています。
外部ループバックは必要ありません。
Tonmin と Toffmin は、コンパレータをタイマに接続する直接信号により制御されます。

14

真のウィンドウ･コンパレータ
領域

低閾値

高閾値

123

閾値より小さい閾値より大きい閾値より大きい閾値より小さい閾値より小さい閾値より小さい閾値より大きい閾値より大きいウィンドウの内側か外側
内側
外側
該当なし

出力

153

高閾値01012

低閾値
1

COMPx_WIN_MODE = 0
入力

COMPx_WINOUT=1

COMPx_INP+COMPx

高閾値COMPx_VALUECOMPx_OUTCOMPx_INM
COMPy_WIN_MODE = 1
COMPy_INP

低閾値+
COMPy

COMPy_INM-

COMPy_VALUE

ウィンドウコンパレータの目的は、各コンパレータの反転入力に印可されるアナログ電圧が、定義されている電圧の高閾値／低閾値を超えた場合に、割込みをトリガすることです。このイベントで、EXTI ライン経由の割込みを生成できます。
WINMODE ビットをイネーブルにすることで 2 つの非反転入力を内部で接続できるので、1 つの IO が節約され、別の目的に使用できます。
ADC ウォッチドッグは入力電圧を定期的にサンプリングしますが、コンパレータは連続的に電圧を監視します。

15COMP低消費電力機能

16• COMP1とCOMP2の消費電力と伝搬遅延を調節して、特定の用途に最適なトレードオフを実現できる• 次の2つの電力モードが用意されている• ハイスピードおよびフル電力• ミディアムスピードおよび中電力

コンパレータの消費電力を調節して、特定の用途の速度とエネルギー効率の間で最適なトレードオフを実現できます。
ハイスピード、ミディアムスピード、および超低消費電力の 3 つのモードが用意されています。ハイスピードモードは、モータ制御設計など、電力変換用途に適しています。
コンパレータは、システムの他の部分がサスペンドされ、クロックがスイッチオフされている場合も、アクティブなままにできます。

16

割込み
説明割込みイベント
EXTI 経由のコンパレータ出力

17立ち上がりエッジと立ち下がりエッジの両方または一方を使用して設定可能• COMP出力によりEXTIライン経由で割込みをトリガできる• COMP1  EXTI ライン17• COMP2  EXTI ライン18

割込みイベント
NVICへのコンパレータ出力

説明
割込みを生成するにはAHBクロックが必要• COMP出力で NVIC に割込みをトリガできる• COMP1/COMP2  NVIC位置12をADC割込みと共有

コンパレータは、コンパレータ出力の立ち上がりエッジと立ち下がりエッジの両方または一方で、EXTI ライン経由で割込みをトリガできます。これは STOP モードを終了するために必要です。
この出力は、CPU のネスト化されたベクタ割込みコントローラ（NVIC）にも接続できます。

17

低消費電力モード
モード

説明

RUN

アクティブ。

SLEEP

コンパレータへの影響はない。
コンパレータ割込みにより、デバイスはSLEEPモードを終了する。

STOP 0STOP 1
STANDBY
SHUTDOWN

18

コンパレータへの影響はない。
コンパレータ割込みにより、デバイスはSTOPモードを終了する。

COMP レジスタはパワーダウンされ、STANDBYモードまたはSHUTDOWNモードを終了した後に再初期化する必要がある。

オンチップコンパレータは、RUN モード、SLEEP モード、および STOP モードでもアクティブなままです。
STANDBY モードと SHUTDOWN モードではパワーダウンされ、いずれかの高電力モードに復帰する場合は、再初期化してから使用する必要があります。

18

性能と消費電力

19• コンパレータの伝搬遅延
条件

標準遅延時間（µs）

ミディアム･モード

0.07

ハイスピード･モード

1.2

ステップ > 200 mV、正入力に 100 mV のオーバードライブ、デグリッチャなしの場合の伝搬遅延• VDDA からのコンパレータの消費電流
条件

スタティック標準（µA）

アクティブ(1) 標準（µA）

ミディアム･モード（デグリッチャなし）

56

ハイスピード･モード

250250

周波数 50 kHz でトグル、±100 mV オーバードライブ矩形波信号、デグリッチャなし

ユーザは、オンチップコンパレータの設定機能を使用して、ターゲットアプリケーションに最適な性能値を選択できます。外部にスタンドアロンコンパレータを用意する必要がないので、部品点数が削減されます。

19