STM32G0 - ADC
アナログ･デジタル･コンバータレビジョン 1.0

STM32 アナログデジタルコンバータブロックのプレゼンテー
ションへようこそ。ここではこのブロックの主な機能について説明します。このブロックは、外部のアナログ電圧のようなセンサ出力をデジタル値に変換して、デジタルドメインで処理できるようにします。

1

概要

2

• アナログ･デジタル変換を提供• 最大19入力チャネルの12ビット ADC• オーバーサンプリング回路

18:0
mux

SAR
ADC

12ビット

• 最大 2.5Mサンプリング/秒（12ビット分解能）• ADCごとに3つのアナログ･ウォッチドッグ• DMAリクエストの生成• 割込みの生成

オーバーサンプリング回路
アナログ WDG
DMA／割込み生成

アプリケーション側の利点
x3• 超低消費電力：118µA @1Mサンプリング/秒• フレキシブル･トリガ、データ管理によりCPUの負荷を軽減

STM32G0 マイクロコントローラ内蔵のアナログデジタルコン
バータにより、マイクロコントローラはセンサ出力のようなアナログ値を受け取り、デジタルドメインで使用できるように信号を変換できます。最大 19 のアナログ入力があります。ADC
モジュール自体は 12 ビットの逐次比較型コンバータであり、オーバーサンプリングハードウェアが増設されています。
オーバーサンプリングユニットは、データを前処理して、メインプロセッサの負荷を軽減します。複数の変換を処理して、データ幅を最大 16 ビットに拡張した単一データに平均化できます。
サンプリングスピードは、12 ビット分解能で 2.5 Mサンプリング/秒です。データは、DMA 転送または割込みのどちらかにより取得できます。この ADC は、低消費電力、高性能を目的として設計されています。さまざまなトリガメカニズムがあり、CPU の作業負荷が最小化されるようにデータ管理を設定できます。
ADC モジュールには、アナログウォッチドッグも統合されています。
2主な機能機能
入力チャネル
変換の種類
変換時間

説明
最大16個の外部（GPIO）チャネルと3個の内部チャネル
12ビット逐次比較
400ns、2.5Mサンプリング/秒（fADC_CLK = 35MHz、12ビット）

機能モード
トリガ
特殊機能

シングル、連続、スキャン、不連続
ソフトウェアまたは外部トリガ（タイマ & IO）

データ処理低消費電力モード

割込み生成およびDMAリクエスト
ウェイト、オートオフ、パワーダウン

3

アナログ･ウォッチドッグ、ハードウェア･オーバーサンプリング、自己較正

入力チャネルは、シングルエンドモードまたは差動モードのどちらかで信号を変換できる最大 19 個のチャネルに接続されています。ADC は、12 ビットモードで 2.5 Mサンプリング/秒で変換できます。さまざまな機能モードがありますが、これらについては後で説明します。また、さまざまなトリガ方法もあります。CPU の負荷を軽減するために、ADC には閾値を監視するアナログウォッチドッグがあります。また、最終的な変換値で示されるビット数を拡張するために、オーバーサンプリングを提供します。消費電力が重視されるアプリケーション向けには、さまざまな低消費電力機能を提供します。

3ブロック図

4

VREF+
VDDA

ADEN/ADDIS
オートオフ

GPIO

GPIO
VBAT
VREFINT

ADCAL

アナログマルチプレ
クサ

ADC_IN[18:15,11:0]

GPIO

DMA リクエスト
サンプル &ホールドコン
デンサ

VTS （温度センサ）

SAR ADCスタートオーバーサン
プリング回路レギュラデータレジスタ（16 ビット）

3 x アナログウォッチドッグ

開始 & 停止制御

アドレス
／データ
バス

アナログウォッチドッグ
高閾値レジスタ（ 12 ビット）割込みの生成ソフト

トリガ信号

ウェアトリガ低閾値レジスタ（ 12 ビット）

AWD3_OUT

NVIC への ADC 割込み

AWD21_OUT

ウェアトリガAWD1_OUT

ハード

タイマへ

このスライドでは、ADC の概略ブロック図を示します。
左側は、ADC のアナログマルチプレクサと内蔵サンプリングコンデンサをベースとするアナログフロントエンドです。このサンプリング時間は、入力電圧ソースがサンプルおよびホールドコンデンサを入力電圧レベルに充電するのに十分な長さである必要があります。
右側は、デジタルバックエンドです。サンプルはデータレジス
タに保存され、ソフトウェアによって読み出されるか、またはDMA チャネル経由でメモリに転送されます。
3 つのアナログウォッチドッグは、選択されているアナログ入力の電圧を高閾値と低閾値に対して監視します。電圧がガードレンジから外れたときに、割込みを生成するか、またはトリガイベントをタイマユニットに通知することができます。
アナログフロントエンドは、オートオフ機能を使用して、ADCを使用しない場合およびデータを取得してから次に取得するまでの間、電力をゲート制御（パワーゲート）することができます。

4低消費電力機能

5

さまざまな低消費電力機能を実装
VDDA• ディープ･パワーダウン･モード

VREF+

ディープパワーダウン• ADCに供給する内部電源は、リーク電流低減のために電源スイッチで無効化できる

ADC• ウェイト･モード• 新しい変換を開始できるのは、前のデータが処理された場合、ADC_DRレジスタが読み出された場合、またはEOCビットがクリアされた
場合のみ

変換

オートウェイト

データレディ
データ読出しADC はディープパワーダウンモードをサポートしています。
ADC は、使用されていない場合は電源スイッチで切断してリーク電流を低減できます。ウェイトモードがアクティブな場合、ADC は、最後の変換データが読み出されるか、または変換終了フラグがクリアされるのをウェイトしてから、次の変換を開始します。これにより、不要な変換を回避し、消費電力を低減します。

5

低消費電力機能

6

さまざまな低消費電力機能を実装• オートオフ･モード• ADCは、変換中でないときには常に電源がオフでTRGxあり、（ソフトウェアまたはハードウェアのトリガによって）変換が開始されると自動的にウェイクアップ ADC の状態する。起動時間は、変換を開始するトリガ･イベントとADCのサンプリング時間の間に自動的に挿入される。

オフ

スタート
アップ

Ch1.
.
.

Chn

オフ

オフ

変換シーケンス• 消費電力はサンプリング時間によって変動• 475µA @ 2.5Mサンプリング/秒• 15µA @ 10kサンプリング/秒

ADC には、オートオフモードと呼ばれる自動電源管理機能があります。
ADC は、オートオフモードが有効な場合、変換中以外は常に電源がオフになり、（ソフトウェアまたはハードウェアのトリガによって）変換が開始されると自動的にウェイクアップします。
起動時間は、変換を開始するトリガイベントと ADC のサンプリング時間の間に自動的に挿入されます。変換シーケンスが完了すると、ADC は自動的に無効になります。
低周波数のクロックで動作するアプリケーションの場合、オートオフモードとウェイトモード変換（WAIT=1）を組み合わせることができます。ADC がウェイトフェーズで自動的に電源オフされ、アプリケーションによる ADC_DR レジスタの読出しで再起動される場合は、この組み合わせで大幅に節電できます。
消費電力は、サンプリング周波数の関数です。低サンプリン
グレートでは、消費電流はほぼ比例して減少します。

6

ハイパフォーマンス機能

7

さまざまなハイパフォーマンス機能を実装• ハードウェア･オーバーサンプリング• アキュムレータとビットシフタはCPUの負荷なしで16ビットデータを出力可能• 柔軟性があるシーケンサ• ソフトウェアは、次の2つのオプションを使用して変換シーケンスを設定可能• 昇順または降順のチャネル順序を選択（最大19チャネル）• ユーザ定義順序（最大8チャネル）

SAR
ADC

𝑅𝑒𝑠𝑢𝑙𝑡 =CH2

アキュムレーション
データ･レジスタ+1∗
𝑀

データシフタ16 ビット
出力𝐶𝑜𝑛𝑣𝑒𝑟𝑠𝑖𝑜𝑛( 𝑡 )

CH3

CH15

8.5サイクル

8.5サイクル

1.5サイクルCH2
1.5サイクルCH91.5サイクル• 自己較正によりオフセットを削減

ADC には、CPU の助けを借りずにデータを累算して除算するオーバーサンプリングハードウェアが組み込まれています。
オーバーサンプリング回路は、2～256 個の時間サンプルと1～8 桁の 2 進数の右シフトに対応できます。 シーケンサを使用すると、最大 19 チャネルを昇順または降順で、あるいは最大 8 チャネルをユーザが定義した順序で、変換できます。
サンプリング期間は 2 つプログラムできます。各チャネルにその 2 つの値のどちらかが割り当てられます。
ADC は、オフセットの自己較正メカニズムを備えています。
基準電圧が 10% 以上変化した場合、アプリケーションでオフセット較正を実行することを推奨します。したがって、これには、リセットからの復帰、またはアナログ電源が失われた後に元に戻った低消費電力状態からの復帰が含まれます。高温で動作する場合も、オフセット較正を実行する必要がある可能性があります。

7

ADC変換速度8

変換速度は分解能に依存• ADCは、サンプリング期間として1.5ADC_CLKs以上、変換に12.5ADC_CLKs以上が必要（12ビット）• 最大クロック 35MHz、2.5Mサンプリング/秒、14サイクルで変換• 分解能が低いほど速度が向上• 12ビット：12.5ADC_CLKs(+1.5) => 2.5Mサンプリング/秒

分解能• 10ビット：10.5ADC_CLKs(+1.5) => 2.92Mサンプリング/秒

tConversion

12ビット

12.5サイクル• 8ビット：8.5ADC_CLKs(+1.5) => 3.50Mサンプリング/秒

10ビット

10.5サイクル• 6ビット：6.5ADC_CLKs(+1.5) => 4.37Mサンプリング/秒

8ビット

8.5サイクル

6ビット

6.5サイクル

ADC は、12 ビットモードでサンプリングに 1.5 クロックサイクル以上、変換に 12.5 クロックサイクル以上を必要とします。
35 MHz の ADC クロックでは、2.5 Mサンプリング/秒を達成できます。分解能を 10 ビット、8 ビット、または 6 ビットに下げると、サンプリング速度を向上できます。

8サンプリング時間

9

プログラム可能なサンプリング時間• 1 つのADCでさまざまなソースインピーダンスの複数の入力ソースをスキャン可能• サポートされているサンプリング時間：• 1.5サイクル、3.5サイクル、7.5サイクル、12.5サイクル、19.5サイクル、39.5サイクル、79.5サイクル、160.5サイクル• ユーザは上記の値のうち2つを選択• 選択された2つの値のどちらかが、ADCサンプリング時間レジスタADC_SMPRを使用して各アナログ･チャネルに割当て

このスライドにリストされているサンプリング時間（ADC クロッ
クサイクル単位）から選択できます。サンプリング時間を長くするほど、ハイインピーダンスの信号が正しく変換されることが保証されます。
同時にアクティブにできるのは、2 つのサンプリング時間のみです。ユーザは、アナログチャネルごとに、選択されている 2つの値のどちらかを自由に割り当てることができます。

9

ADCクロック

10

フレキシブルなクロック選択
ADC• 選択できる ADCクロック• 1、2、または4分周したAPBクロック
トリガイベントがAPBクロックに依存する場合、イベント発生から変換開始までの遅延は予想可能

リセットおよびクロック
コントローラPCLKPLLPCLKADC_CLK

APBインタフェース• 専用ADCクロック• ADCがフルスピードで動作していてもCPUは低速で動作可能• ADC_CKソースがPLLPCLKまたはHSI16の場合、APBクロックと非同期で、2つのクロック･ドメイン間の再同期は、トリガ実行時期の不確実性が増加/1、/2 または /4

SYSCLKADC/1 … /256

またはHSI16CKMODE[1:0]

ADC では、クロックソースを選択できます。システムが同期状態で動作する必要がある場合、APB クロックソースは最適な選択肢です。CPU は低速で動作し、ADC は高サンプリングレートで動作する必要がある場合、専用 ADC クロックを選択できます。この場合、ADC は PCLK と ADC_CLK の 2 つのクロックドメインを考慮し、両者の再同期を実行するための遅延も考慮してください。

10

ADC変換モード

11

複数の変換モード
スタート

スタート

スタート

CHx

CHx

CHx.
..

ストップ

CHn

スタート

CHx
..
.

CHnストップスタート
CHxストップ／スタート..
.

ストップ／スタート

CHnストップ
シングル

シングル連続

スキャン：マルチチャネ
ルスキャン：連続（マルチチャネル･リピート）

不連続モードADC は、次に示す複数の変換モードをサポートしています。


シングルモード。シングルショットモードまたは連続モードで、1 つのチャネルのみ変換します。
スキャンモード。シングルショットモードまたは連続モード
で、事前に定義されているプログラムされた入力チャネ
ル一式を変換します。
不連続モード。トリガ信号が発生するたびに、事前に定義されているプログラムされた入力チャネルのうち 1 つのチャネルのみ変換します。

11ハードウェア･オーバーサンプリング

12

データの前処理によりCPUの負荷を軽減• プログラム可能なオーバーサンプリング
比：2～256倍SAR
ADC+

アキュムレーション
データ･レジスタ

データ･シフタトラン
ケータ
16 ビットデータ出力

V(t)

比=4

• プログラム可能なデータシフタ & トラン
ケータt• 0～8ビットの右シフト• 結果が16ビットデータレジスタに収まるように4ビット切り詰め（28 * 212 = 220）

• 平均化、データレートの削減、SNRの向上、および基本的フィルタリング

オーバーサンプリ
ング比

出力分解能

同等のサンプリング周波数（最大値）

x1 （なし）12ビット

2.5 Mサンプリング/秒

x16

16ビット

156.25kサンプリング/秒

x256

20ビット

9.77kサンプリング/秒（シフト & トランケー
ト（切り捨て）の前）

ADC は、ハードウェアオーバーサンプリングをサポートしています。CPU のサポートなしで、2～256 倍のサンプリングを実行できます。変換後のデータはレジスタに累算され、データシフタとトランケータで処理してから出力できます。
この機能は、平均化関数として、またはデータレートの削減、信号対雑音比の向上、および基本的フィルタリングのために、使用できます。

12アナログ･ウォッチドッグ

13

ソフトウェアのオーバーヘッドを削減• ADC には3つのウィンドウ型ウォッチドッグ• 1つのアナログ･ウォッチドッグは、選択した1つのチャネルまたは有効にしたすべてのチャネルを監視• 2つのアナログウォッチドッグは、選択した複数のチャネルを監視可能

SAR
ADC

割込み／信号発生器

高閾値低閾値
ウィンドウ
ウォッチドッグ

監視するチャネル

AWD1

1 つまたはすべてAWD2

ADC_AWD2CR で選択されているすべてのチャネル

AWD3• 各ウォッチドッグは、高閾値を上回る／低閾値を下回る状態を継続的に監視し、それらV(t)の状態が発生すると割込みまたは外部信号のどちらかを生成
高閾値

ADC_AWD3CR で選択されているすべてのチャネル

割込みまたはタイマ･トリガ

低閾値t

各 ADC には、3 つの 12 ビットアナログウォッチドッグが組み込まれており、高閾値と低閾値を設定できます。ADC の変換値をこのウィンドウ閾値と比較して、結果が閾値に収まらない場合、CPU の介入なしで割込みまたはタイマトリガ信号をアサートできます。

13

データ転送14

ソフトウェアのオーバーヘッドを削減• レギュラ変換データは16ビット･データ･レジスタに保存• ソフトウェア･ポーリング、割込み、またはDMAリクエストによりデータを移動• 前に変換したデータが現在のデータで上書きされた場合、OVERRUNフラグがセット• アナログ･ウォッチドッグの場合は各データの処理は不要• OVERRUNフラグは無効可能• オーバーラン･イベントが発生した場合にデータを保持するか、または上書きするかを設定できる

ADC 変換結果は 16 ビットデータレジスタに保存されます。
システムは、CPU ポーリング、割込み、または DMA コント
ローラを使用して変換データを利用できます。次の変換デー
タの準備が完了する前にデータが読み出されなかった場合、オーバーランフラグを生成できます。オーバーランが発生した場合、新しいサンプルが破棄されるか、または前のサンプルが上書きされます。

14

割込みとDMA
割込み
イベント

説明

割込みイベ
ント

15

説明

ADRDY

ADC変換の準備完了

AWD1-3

アナログ･ウォッチドッグ閾値違反検出の発生

EOC

変換の終了

EOSMP

サンプリング･フェーズの終了

EOS

シーケンスの終了

OVR

データ･オーバーランの発生

EOCAL

較正の終了

CCREADY

チャネル設定の準備完了• チャネル変換が終了するたびにDMAリクエストを生成可能

各 ADC は、ADC の準備完了、変換の終了、シーケンスの終了、較正の終了、アナログウォッチドッグ、サンプリングの終了、データオーバーラン、およびチャネル設定の準備完了の 8 つの異なる割込みを生成できます。
変換が終了して ADC 出力データの準備が完了するたびに、DMA リクエストを生成できます。

15低消費電力モードモード

16

説明RUNアクティブSLEEPアクティブ。ペリフェラル割込みによって、デバイスはSLEEPモードを終了STOP利用できない。ペリフェラルレジスタの内容は保持

STANDBY

パワーダウン。ペリフェラルは、STANDBYモード終了後に再初期化が必要• ディープ･パワーダウン･モードでは、各ADCのアナログ部分はオンチップ電源スイッチによりスイッチオフされる

ADC は、RUN モードおよび SLEEP モードでアクティブです。
STOP モードでは利用できませんが、そのレジスタの内容は保持されます。STANDBY モードではパワーダウン状態であり、高電力状態に復帰する際は再初期化する必要があります。各 ADC はそれ自体にディープパワーダウンモードがあり、オンチップ電源スイッチをオフにすることによりリーク電流が低減されます。ADC を使用しない場合は常にこのモードにすることを推奨します。

16性能

サンプリングレート

状態

データ（標準）単位

12ビット･モード

2.5

Mサンプリン
グ/秒

10ビット･モード

2.9

Mサンプリン
グ/秒

8ビット･モード

3.5

Mサンプリン
グ/秒±1.2LSB

微分直線性誤差
積分直線性誤差12ビットモード

±2.5

LSB

有効ビット数（ENOB）

12ビットモード

10.2ビット

2.5Mサンプリング/秒

475

µA

10kサンプリング/秒

17µA

消費電流

17

スライドの表に、ADC の性能パラメータを示します。値はすべて暫定です。

17

機能の比較
STM32F0 MCU内蔵ADC

STM32G0 MCU内蔵ADC

TSMC180

TSMC090

性能分解能

同じ

変換時間：12 ビット分解能で 1 µs

12ビット分解能で0.4µs （2.5Mサンプリング/秒）較正、サンプリング時間データ配置、および DMA サ
ポート

同じ

低消費電力：周波数、ウェイトモード & 変換フェーズ、およびアナログ入力チャネル

同じ

1 x アナログ･ウォッチドッグ

3 x アナログ･ウォッチドッグ変換トリガ：Tim1/2/3/15

Tim1/2/3/6/15

変換モード、割込み同じ

電源：2.4～3.6 V

1.62～3.6V

ハードウェア･オーバーサンプリングなし

ハードウェア･オーバーサンプリングあり

簡易シーケンサ、グローバル･サンプリング時間 x1

高度なシーケンサ、サンプリング時間グループ x2

18

スライドの表に、STM32F0 内蔵 ADC と STM32G0 内蔵 ADC比較を示します。

18

関連ペリフェラル

19• 必要に応じて、次のペリフェラルに関連するトレーニングを参照：• DMA - ダイレクト･メモリ･アクセス･コントローラ• 割込み - ネスト化されたベクタ割込みコントローラ• GPIO - 汎用入出力• RCC - クロック･モジュール• DAC - デジタル･アナログ･コンバータ• TIM - 割込み／イベント･トリガ用タイマ

これらのペリフェラルは、ADC と組み合わせて正しく使用するために特別な設定が必要な場合があります。詳細については、対応するペリフェラルのトレーニングモジュールを参照
してください。

19

参照

20

• 詳細については、次のリソースを参照：• アプリケーションノート AN2834：How to get the best ADC accuracy in STM32Fx Series andSTM32L1 Series devices• アプリケーションノート AN4073：How to improve ADC accuracy when using STM32F2xx
and STM32F4xx microcontrollers• アプリケーションノート AN2668：Improving STM32F1x and STM32L1x ADC resolution byoversampling• アプリケーションノート AN4629：ADC hardware oversampling for microcontrollers of theSTM32 L0 and L4 series

アナログデジタルコンバータ専用のアプリケーションノートが多数公開されています。ADC の詳細については、逐次比較
型アナログデジタルコンバータについて説明する広範囲にわたる Web ページをご覧ください。

20