STM32G4 – A/Dコンバータ
A/Dコンバータ
1.0版

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

1

概要

2

• アナログからデジタルへの変換を提供• 最大42の入力チャネルを備えた5つの12ビットA/Dコ
ンバータ
19:1
mux

SAR
A/Dコン
バータ

オーバーサンプリング回路

12ビット

•
•
•
•
•

オーバーサンプリング機能
最速4メガサンプル/秒（12ビット分解能）
A/Dコンバータあたり3つのアナログウォッチドッグ
DMAリクエストの生成
割込みの生成アナログウォッチドック

DMA/割込み生成

アプリケーション側の利点• 超低消費電力• フレキシブルトリガ、CPUの負荷低減のためのデータ管理

STM32G4マイクロコントローラ内のA/Dコンバータにより、マイク
ロコントローラはセンサ出力のようなアナログ値を受け入れ、デ
ジタルドメインに信号を変換できます。
最大5つのA/Dコンバータがあり、42のアナログ入力が使用できます。
オーバーサンプリングユニットは、メインプロセッサの負荷をオフロードするためにデータをプリプロセスします。複数の変換を処理し、データ幅を最大16ビットまで増加させたデータに平均化が可能です。
ADCモジュールは、12ビットの逐次比較型コンバータで、オー
バーサンプリングハードウェアを追加で備えています。
サンプリング速度は、12ビット解像度で毎秒4メガサンプルです。
データは、DMA転送または割込みのいずれかを介してソフトウェ
アに利用可能にすることができます。
このA/Dコンバータは、低消費電力と高性能を実現するように設計されています。
トリガメカニズムは多数あり、データ管理はCPUワークロードを最小化するように構成できます。
A/Dコンバータモジュールはアナログウォッチドッグも統合します。
2

主な機能
機能

3

説明

A/Dコンバータユニット

5モジュール（最大）入力チャネル

最大42の外部チャネル（GPIO）、シングルまたは差動チャネルと3つの内部
チャネル

テクノロジ

12ビット逐次比較

変換時間

最小15ADCクロックサイクル• 200ns（fADC_CLK=60MHz、12ビット分解能の場合）• 4.0メガサンプル/秒

機能モード

シングル、連続、スキャン、不連続またはインジェクト

トリガ

ソフトウェアまたは外部トリガによる（タイマとIOから）

特別な機能

ハードウェアオーバーサンプリング、アナログウォッチドッグ（+フィルタ）、デー
タの事前処理（オフセットおよびゲイン補償）、柔軟なサンプリング時間

データ処理

割込みの生成、DMAリクエスト

低電力モードディープパワーダウン、自動遅延変換モード、低い周波数で動作する場合のA/Dコンバータ消費電流を低減する「速度適応型低電力モード」

最大5つのアナログデジタルコンバータをSTM32G4xx製品に内蔵しています。
入力チャネルは、シングルエンドまたは差動モードで信号を変換可能で、最大42チャネルに接続されます。
ADCクロック周波数が60MHzの場合、A/Dコンバータは12ビットモードで毎秒4メガサンプルの信号を変換できます。
また後で説明する、いくつかのサポート機能があります。
いくつかの異なるトリガ方法もあります。CPUの負荷をオフロードするために、A/Dコンバータには、しきい値を監視するためのア
ナログウォッチドッグがあります。アナログウォッチドッグには新規のフィルタリング機能があります。
A/Dコンバータは、最終的なビット数を拡張、変換するオーバー
サンプリング回路も提供します。
また、新しい柔軟なサンプリング時間制御と新しいゲインとオフ
セット補正があります。
電力を重視するアプリケーション用に、A/Dコンバータは多くの低消費電力機能を備えています。

3

ブロック図4

電源装置およびオン/オフ制御
ディープパワーダウン
AD_VREG_EN

VREF+
VDDA

Reg

ADEN/ADDISADC_INP[18:0]
CALFACTVBAT
VREFINT
アナログ
フロントエンドアナログ
マルチプレクサ

ADC_INN[18:0]

VTS(温度センサ)インジェクトデータレジスタ（ 16ビット）

ADCCALDIF
ADCAL
VIN

サンプル&
ホールド
コンデンサ

オーバーサンプラ

SAR A/Dコンバータスタート

ゲイン &オフセット

AHB
AHBインタフェース

レギュラデータレジスタ（ 16ビット）

ADC DMA
リクエスト
ADC割込みリクエストスタート

アナログウォッチドッグ

開始&停止
制御

高閾値レジスタ（ 12ビット）

インジェクテッド レギュラ
ソフトウェア ソフトウェア
トリガ
トリガ

低閾値レジスタ（ 12ビット）

AWD1_OUT
AWD2_OUT
AWD3_OUT

デジタルバックエンド
レギュラ
トリガ信号

ハード
ウェア
トリガ

adc_ker_ck
クロック
インジェクト
トリガ信号

ハード
ウェア
トリガ

adc_hclk

トリガロジック

このスライドは、A/Dコンバータの全般的なブロック図を示しています。
A/Dコンバータの主になる重要なサブユニットは、以下になります。
• 電源装置およびオン/オフ制御• アナログフロントエンド• トリガロジック• アナログウォッチドッグとAHBスレーブインタフェースを含むデ
ジタルバックエンド• クロック
次のスライドでは、これらすべてのサブユニットについて詳しく説
明します。

4

ブロック図

5

クロック
÷1256

クロック
SAR ADC
同期

adc_ker_ck

÷1-4

AHBスレーブ
インタフェース

adc_hclk• A/Dコンバータはデュアルクロックドメインアーキテクチャを実装• ADCクロックを取得するために使用するルートクロックを選択する必要がある• オプション1:adc_ker_ckは通常、PLLのP出力を係数（プログラム可能）で除算（1から256）• オプション2:AHBクロックを係数（プログラム可能）で割った値（1、2、または4）

オプション

利点

1

ADCクロック周波数はAHBクロック速度に依存しない

2

一意のクロックドメインが使用されるため、再同期遅延は発生しない

ADCには、adc_ker_ckとadc_hclkの2つのクロック入力があります。
AHBインタフェースは、adc_hclkクロックドメインに属します。
逐次比較型（SAR）A/Dコンバータのデジタル部分に関しては、2つのオプションがあります。
• adc_hclkを基準クロックとして使用する• または、adc_hclkに独立して専用であるadc_ker_ckを使用しています。
この2番目のオプションを使用すると、AHBおよびCPUクロックドメ
インに動的に周波数スケーリングを実装でき、サンプリングクロッ
クは固定されます。
ただし、adc_ker_ckクロックドメインで取得したサンプルは、同期遅延が必要なCPUまたはDMAによって読み取られるにはAHBク
ロックドメインに渡す必要があります。
即時のトリガの不確実性は、2つのクロックドメイン間の再同期によっても追加されます。

5

ブロック図6

電源装置およびオン/オフ制御
電源装置およびオン/オフ制御

VREF+
VDDA

ディープパワーダウン
AD_VREG_EN

Reg

ADEN/ADDISSAR A/Dコンバータ• ディープパワーダウンモード• A/Dコンバータの内部供給は、漏れ電流低減のための電源スイッチによって無効にすることが可能

A/Dコンバータのアナログ部分には2つの電源が必要になります。
• 正のアナログリファレンスでVREF+と• アナログ電源であるVDDA。
デフォルトでは、A/Dコンバータはディープパワーダウンモードで、漏れ電流を減らすために供給が内部的にオフになっています。
A/Dコンバータの操作を開始するには、まずディープパワーダウ
ンビットをゼロに設定して、ディープパワーダウンモードを終了する必要があります。
また、A/Dコンバータの電圧レギュレータを無効にすることで、電力を節約することができます。これは、ビットADVREGENをゼロに書き込むことで可能になります。
ADDISを1にセットすると、A/Dコンバータが無効になります。アナ
ログA/Dコンバータが事実上無効になると、ADENとADDISはハードウェアによって自動的にクリアされます。

6

ブロック図7

電源装置およびオン/オフ制御、IO電圧ブースタ• IOアナログスイッチ電圧ブースタ• VDDAが減少するとアナログスイッチの抵抗が増加• VDDAが低い場合、内部の電圧ブースタを有効にしてスイッチを制御することで、アナログスイッチの抵抗を最小限に抑えることが出来る• 推奨されるアナログスイッチの電源は以下の通り
VDD

VDDA

BOOSTEN

ANASWVDD

アナログスイッチ電源->2.4 v00

VDDA（デフォルト）>2.4 v<2.4 v

0

1

VDD<2.4 v<2.4 v

10

電圧ブースタ

VDD
ブースタ

ANASWVDD
1: I/O VDDが提供するアナログスイッチ
0: I/O VDDAまたはブースタが提供するアナログスイッチ
BOOSTEN
1: I/Oアナログスイッチは電圧ブースタによって供給
0: I/OアナログスイッチはVDDAによって供給

I/Oアナログスイッチ

VDDA

IO内部のアナログスイッチは、アナログスイッチの電圧が減少す
ると抵抗が大きくなります。
VDDAとVDDが低い場合は、アナログスイッチを電力を供給し、低抵抗を最小限に抑えることが必要になります。
アナログスイッチの推奨電源はVDDAを使用する方法です。
しかし、VDDAが2.4ボルトより低く、VDDが2.4ボルトより大きい場
合、電源はVDDに切り替えることができます。
VDDAとVDDの両方が2.4ボルトより低い場合は、電圧ブースタを有効にする必要があります。

7

ブロック図8

電源装置およびオン/オフ制御、内部電圧リファレンスVREFBUF• アナログ電圧リファレンスVrefは、電圧リファレンスVREFBUFを介して外部または内部に提供することが可能• 3つの電圧が利用可能:2.048V、2.5V、2.9V• Vref+ピンが使用可能なパッケージでのみ使用可能• VREFBUFを使用しても、デカップリングコンデンサをVrefpピンに配置する必要がある

VREFBUFを使用して内部基準電圧Vrefを内部で提供することが可能です。
3つの電圧レベルが利用できます。
この機能は、パッケージにVrefピンが含まれる場合にのみ使用できます（32ピンSTM32G431 UFQFPN32およびLQFP32パッケー
ジを除くすべてのパッケージ）。
Vrefが内部VREFBUFによって提供される場合でも、デカップリン
グコンデンサはVrefピンに外部接続する必要があります。

8

ブロック図9

アナログフロントエンド
ADC_INP[18:0]

VBAT
VREFINT
VTS

アナログ
マルチプレクサ

ADC_INN[18:0]

サンプル&
ホールド
コンデンサ

VIN

SAR A/Dコンバータ

スタート

アナログフロントエンド （温度センサ）• 最大5個のADCのうち4つのADC（ペア）がデュアルモードで動作可能:• ADC1は14の外部チャネル + 4つの内部チャネルに接続• ADC2は16の外部チャネル + 2つの内部チャネルに接続• ADC3は15の外部チャネル + 3つの内部チャネルに接続• ADC4は16の外部チャネル + 2つの内部チャネルに接続• ADC5は13の外部チャネル + 5つの内部チャネルに接続• オフセットを減らすための自動キャリブレーション

STM32G4は、最大5個のADCをサポートします。
これらの各チャネルは、外部アナログチャネルと内部アナログソースに接続されています。
内部チャネルは次のとおりです。
• 内部基準電圧（VREFINT）• 内部温度センサ（VSENSE）• VBATモニタリングチャネル（VBAT/3）• OPAMP1,2,3,4,6は、図には示されていないが、様々なADCに接続されています。
アナログ入力はシングルエンドまたは差動の設定ができます。
ADCは自動キャリブレーションの機能を提供します。
キャリブレーションは、任意のA/Dコンバータの動作に対して予備的です。プロセス、供給電圧、温度変動により、チップごとに変化するオフセットエラーを除去します。
シングルエンド入力と差動入力は、ADCCALDIFビット値の状態に応じて個別に調整されます。
ソフトウェアは、ADCALビットを1に設定することで、キャリブレーションの要求ができます。
キャリブレーション係数は、ADC_CALFACTレジスタから読み取れます。
リファレンス電圧が10％を超えて変化する場合は、アプリケーション上でキャリブ
レーションを実行することをお勧めします。これには、RESETからの再起動、またはアナログ電圧供給が取り外され、再確立された低電力状態からの起動が含まれます。
高温での動作でも、オフセットキャリブレーションの実行が必要になる場合があります。
9

A/Dコンバータ内部チャネル10

アナログフロントエンド

ADC1

ADC2

ADC3

ADC4

ADC5

温度センサ

IN16

-

-

-

IN4

VBAT/3

IN17

-

IN17

-

IN17

VREFINT

IN18

-

IN18

IN18

IN18

OPAMPx内部出力(*)

IN13（x = 1）

IN16（x = 2）、IN18（x = 3）

IN13（x = 3）

IN17（x = 6）

IN3（x = 5）、IN5（x = 4）(*)外部ピンの占有のない、ADC内部へのOPAMP出力の接続

この表は、5つのA/Dコンバータの内部アナログチャネルを示します。

10

ブロック図アナログ
マルチプレクサ

トリガロジック• 柔軟なシーケンサは、変換を2つのグループに
編成:レギュラおよびインジェクト
VIN
VIN

サンプル&
ホールド
コンデンサ

SAR A/Dコンバータ

スタート

開始&停止
制御
インジェクテッド レギュラ
ソフトウェア ソフトウェア
トリガ
トリガ

レギュラ
トリガ信号

ハード
ウェア
トリガ

11

スタート

• グループは、任意のチャネル、任意の順序で行うことができるように一連の変換で構成• レギュラグループは、最大16の変換で構成• レギュラチャネルと変換シーケンスでのそれらの順序は、
ADC_SQRyレジスタで選択する必要がある• インジェクトグループは4つまでの変換から構成
インジェクト
トリガ信号

ハード
ウェア
トリガ

• インジェクトチャネルと変換シーケンス内のそれらの順序
は、ADC_JSQRレジスタで選択する必要がある

トリガロジック

変換は、レギュラグループとインジェクトグループの2つのグループに分けて構成されます。
インジェクトグループは、レギュラグループサンプリングシーケン
スの実行を先取りできます。
ユーザーは、各グループのサイズの選択を担当します。レギュラ
グループで最大16回、インジェクトグループで最大4回の取得です。
また、シーケンス内のサンプリングごとにアナログチャネルを割り当てる必要があります。
各グループには、独自のトリガロジックがあります。
トリガは、外部信号（GPUまたはタイマ出力から来る）の場合があります。
取得のシーケンスは、ソフトウェアによってもトリガすることができます。

11

ブロック図12

デジタルバックエンド
インジェクトデータレジスタ（ 16ビット）

VIN

オーバーサンプラ

SAR A/Dコンバータ

ゲイン &オフセット

AHB
AHBインタフェース

レギュラデータレジスタ（ 16ビット）

ADC DMA
リクエスト
ADC割込みリクエスト

アナログウォッチドッグ
高閾値レジスタ（ 12ビット）
低閾値レジスタ（ 12ビット）

AWD1_OUT
AWD2_OUT
AWD3_OUT

デジタルバックエンド• AHBバスにA/Dコンバータがマッピングされ、高速なデータ処理が可能• アナログウォッチドッグ機能により、入力電圧がユーザ定義の高閾値または低閾値の範囲外かどうかをアプリケーションで検出可能

デジタルバックエンドは、SAR A/Dコンバータで得られたサンプルをオーバーサンプラ、ゲイン&オフセットユニットで処理します。
サンプルされた生データは、ソフトウェアに提供される前に、オーバーサンプラ、ゲイン、オフセット補償ユニットによって処理することも可能です。
その結果は、AHBスレーブインタフェースからアクセス可能なレジ
スタに格納されます。
AHBは、CPUとDMAもAHB相互に接続されるため、高帯域幅をサポートし、遅延を最小限に抑えます。
A/DコンバータはDMAへの要求をアサートすることができるため、通常のチャネルから送信されるサンプルは自動的にメモリに移動されます。
インジェクト取り込みされたチャネルは、DMAリクエストをサポート
しません。

12

ブロック図13

デジタルバックエンド、オーバーサンプラ
オーバーサンプラ、ゲイン&オフセット
オーバー
生データ

SAR
A/Dコン
バータ

16ビットデータ

サンプラ

ゲイン

オフセット

補償

補償

+

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

データ
シフタ

16ビット
出力

出力レジスタ

生データ

V(t)

レシオ=4

• ハードウェアオーバーサンプリング• プログラマブルオーバーサンプリングレシオ:• x2、x4、x8、x16、x32、x64、x128、x256• プログラマブルデータシフタ & トランケータ• オーバーサンプリングは、サンプルに4を掛けるとき追加の1ビットを追加t

オーバーサンプリ
ングレシオ

出力
分解能

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

x4

13ビット

1.0033メガサンプル/秒• 右シフト（除算）0~8ビット

x16

14ビット

250.333キロサンプル/秒• アキュムレータとビットシフタは、CPUサポートなしで16ビットデータを出力可能

x64

15ビット

62.583キロサンプル/秒

x256

16ビット

15.620.8キロサンプル/秒

A/Dコンバータには、データを蓄積し、CPUのサポートなしで除算するオーバーサンプリングハードウェアが含まれています。
オーバーサンプラは2から256の時間サンプル、および右シフト1から8の二進数に収容できます。
12ビットデータは、16ビットデータとして表示するために拡張できます。
この機能は、アベレージファンクションとして、またはデータレートの低減と信号対雑音比の改善、および基本的なフィルタリングに使用できます。

13

ブロック図14

デジタルバックエンド、オーバーサンプラ、ゲイン補償
オーバーサンプラ、ゲイン&オフセット
オーバー
生データ

サンプラ

16ビットデータ

ゲイン

オフセット

補償

補償

出力レジスタ

生データ• ゲイン補償• 入力範囲が基準電圧に合致しない場合でも、A/Dコンバータのダイナミックレンジを向上• ゲインファクターを適用すると、信号範囲を拡張してA/Dコンバータ全範囲にマッピングするのに有効• オーバーサンプリングシフト後、変換されたすべてのデータ（すべてのチャネル）に適用される• ゲインファクタ=（ADC_GCOMP.GCOMPCOEFF[13:0]） 4096
• ゲイン係数は0から3.999756の範囲• 各変換後、データは次の数式で計算される• データ=データ（ADC結果）x（GCOMPCOEFF[13:0]） 4096

ダイナミックレンジを改善するために、生データにゲイン係数を適用できます。
ゲイン係数はオーバーサンプリング後に実行されます。
0から4の範囲でプログラム可能です。

14

ブロック図15

デジタルバックエンド、オフセット飽和制御
オーバーサンプラ、ゲイン、オフセット
オーバー
生データ

サンプラ

16ビットデータ

ゲイン

オフセット

保証

補償

出力レジスタ

生データ• オフセット補償• チャネル依存オフセット補正（最大4チャネル）• チャネル選択に設定ADC_OFRy.OFFSETy_CH[4:0]• オフセット値はプログラミングによって設定 ADC_OFRy.OFFSETy[11:0]• オフセットは正または負の値になる（ADC_OFRy.OFFSETPOS）• 飽和制御で（ADC_OFRy.SATEN）、オーバーフローを防ぐために有効にすることが可能• データは符号なしになり、負のオフセットの場合は0x000、正のオフセットの場合は0xFFFで飽和する• データ=データ（ゲイン結果）+/-OFFSETy[11:0]• オフセット補正はオーバーサンプリングモードではサポートされていない

ビットOFFSETy_EN=1をレジスタに設定すると、ADC_OFRyレジス
タのオフセットy（y=1,2,3,4）をチャネルに適用。
オフセットが適用されるチャネルは、レジスタのビット
OFFSETy_CH[4:0] ADC_OFRyプログラムされます。
この場合、変換された値は、ビットOFFSETy[11:0]に書き込まれたユーザー定義オフセットによって減少します。
結果は、読み取りデータがSIGNの場合に負の値になることがあ
ります。

15

低電力機能16

複数の低電力機能が実装• 自動遅延モード• 新しいA/Dコンバータは、以前のデータが処理され、ADC_DRレジスタが読み取られた後、またはEOC
ビットが通常の変換用にクリアされている場合にのみ開始することが可能• 最後のシーケンスを除く、インジェクトシーケンスの各変換の間に遅延は挿入されない
レギュラ変換
データレディ
データリード自動遅延• VDDAからの消費電力はサンプリング時間に依存• 590µA @ 4メガサンプル/秒• 16µA @ 10キロサンプル/秒

自動遅延モードがアクティブな場合、A/Dコンバータは、最後の変換データが読み取られるか、変換終了フラグがクリアされてから次の変換を開始するまで待機させることが出来ます。
これは、データを読取るシステムの速度に自動的にA/Dコンバー
タの速度を適応させる方法です。
また、不要な変換を回避し、消費電力を削減します。
この自動遅延モードは、レギュラ変換に戻す際の最後の変換を除き、インジェクト変換には適用されません。
VDDA電源からの消費電力は、サンプリング時間に依存し、毎秒10キロのサンプルで16μAから毎秒4メガサンプルで590μAになります。
低サンプリングレートの場合、電流消費量はほぼ比例して減少します。

16

A/Dコンバータ変換速度17

変換速度は分解能に依存• tCONV=サンプリング時間+変換時間• ADCは、サンプル期間と変換のための12.5ADC_CLKsに最低限の2.5ADC_CLKsを必要とする（12ビット分解
能）• 最大クロック60MHz、4.00メガサンプル/秒、15サイクルで変換• デュアルインタリーブモードで7.0メガサンプル/秒• ※最大周波数は、アクティブ化されたインスタンスの数によって異なりますので、データシートを確認ください。

• 低い分解能でスピードアップ• 12ビット: 12.5ADC_CLKs（+2.5）=> 4.00メガサンプル/秒• 10ビット: 10.5ADC_CLKs（+2.5）=> 4.61メガサンプル/秒•

8ビット: 8.5ADC_CLKs（+2.5）=> 5.45メガサンプル/秒•

6ビット: 6.5ADC_CLKs（+2.5）=> 6.66メガサンプル/秒

分解能

tSAR
（ADCクロック）tCONV（ADCクロック）

12ビット

12.5サイクル

15

10ビット

10.5サイクル

13

8ビット

8.5サイクル

11

6ビット

6.5サイクル9全体の変換時間は、サンプリング時間に変換時間を加算した値です。
ADCは、サンプリングに最低2.5クロックサイクル、12ビットモードの変換に12.5クロックサイクルを必要とします。
60MHzのADCクロックにより、毎秒4メガのサンプルを実現できます。
サンプリング速度を高くする場合、解像度を10ビット、8ビット、6ビットに下げることにより可能です。
マスタとスレーブADCを関連付けるインターリーブモードの場合、最大パフォーマンスは8クロックごとに1サンプル、56MHzで毎秒7メガのサンプルです。

17サンプリング時間

18

プログラム可能なサンプリング時間
ADC_INP[18:0]

VBAT
VREFINT
VTS

アナログ
マルチプレクサ

ADC_INN[18:0]

サンプル&
ホールド
コンデンサ

VIN

SAR A/Dコンバータ

スタート

アナログフロントエンド （温度センサ）• 変換を開始する前に、A/Dコンバータは測定対象の電圧源とA/Dコンバータの内蔵サンプリングコンデン
サとの間で直接接続を確立する必要がある• 1つのADCは、さまざまなソース、インピーダンスで異なる入力ソースをスキャンすることが可能• 各チャネルはプログラム可能で、異なるサンプリング時間でサンプリングすることが可能• 次のサンプリング時間をサポート• 2.5サイクル、6.5サイクル、12.5サイクル、24.5サイクル、47.5サイクル、92.5サイクル、247.5サイクル、640.5サイクル

変換の最初は、測定する電圧をサンプル&ホールドコンデンサで測定します。
サンプル時間を長くすることで、高いインピーダンスを持つ信号も正しく変換されます。
ADCクロックサイクルは、このスライドに示されているサンプリン
グ時間を使用できます。
サンプリング時間は、A/Dコンバータの入力チャネルごとに個別にプログラムできます。

18

サンプリング時間

19

プログラム可能なサンプリング時間
通常（不連続）モード• フレキシブルなサンプリング時間• バルブサンプリングモード• 不連続モードでのみ使用可能• サンプリングは、最後の変換の直後に開始• トリガから実際のサンプリングポイントまでの待機時間を短縮• ハイインピーダンスソースで有用

アイドル

サンプル

変換

アイドル

サンプル

変換

トリガ

バルブ（不連続）モード
アイドル

サンプル

変換

サンプル

変換

トリガ
サンプリング時間• サンプルタイムコントロールトリガモード• サンプリング時間はトリガ信号によって完全に制御• 立上がりエッジはサンプリングを開始し、立下りエッ
ジはサンプリングを停止し、変換が開始

トリガ

アイドル

サンプル

変換

アイドル

2つの新しいサンプリングメカニズムがSTM32F3シリーズから追加されました。
最初の1つは、不連続モードでのみ動作するバルブモードです。
このモードでは、最後の変換が終了した直後にサンプリングが開始され、アイドル状態に移行しません。これにより、トリガ信号から変換開始までの遅延が少なくなります。
ADCが有効になった後、最初のA/Dコンバータの変換は、SMP
ビットでプログラムされたサンプリング時間で実行されます。
バルブモードは、2回目の変換から有効です。
2番目のメカニズムは、トリガ信号に基づくサンプリングモードです。
• 立上がりエッジはサンプリングを開始します。
• 立下りエッジでサンプリングを停止し、変換が開始されます。

19

A/Dコンバータ変換モード

20

異なる変換モード
スタート

スタート

スタート

CHx

CHx

CHx1
..
.

ストップ

CHxn

スタート

スタート

CHx1
CHx1
..
.
CHxn

ストップ

CHx2
ストップ
/スタート

..
.
..
.
ストップ
/スタート

CHxn-1
CHxn
ストップ

シングル

シングル連続スキャン:
マルチチャネル

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

不連続モード（n=2）

ADCは、いくつかの変換モードをサポートしています。:


シングルショットモードまたは連続モードで、1つのチャネルのみを変換するシングルモード。

スキャンモードは、事前に定義されたプログラムされた入力
チャネルの完全なセットを、シングルショットまたは連続モードで変換します。
不連続モードは、変換シーケンスの一部であるn変換（n ≤ 8）の短いシーケンス（サブグループ）を変換します。外部トリガが発生すると、シーケンス内のすべての変換が完了するま
で、ADC_SQRレジスタで選択された次のn個の変換が開始さ
れます。



20

アナログウォッチドッグ

21

より堅牢（グリッチフリー）な、アナログウォッチドッグ
高閾値• A/Dコンバータには3つのウィンドウウォッチドッグ
がある

SAR
A/Dコン
バータ

• 1つのアナログウォッチドッグで、選択した1つのチャネル、またはすべての有効なチャネルを監
視可能

ウィンドウ
ウォッチドッグ

モニタするチャネル• 2つのアナログウォッチドッグは、複数の選択されたチャネルを監視可能

AWD1

1（通常、インジェクト、通常またはインジェクト）
すべて（通常、インジェクト、通常またはインジェクト）

AWD2

ADC_AWD2CRで選択されたすべてのチャネル• 各ウォッチドッグは、閾値を超えた場合、または
閾値以下の状態を継続的に監視し、割込みまたは外部信号を生成

AWD3

ADC_AWD3CRで選択されたすべてのチャネル• アナログウォッチドッグフィルタ（AWD1のみ）• プログラム可能な連続した閾値検出後の割込
みまたは信号生成

V(t)

低閾値

割込み/
信号
ジェネレータ

割込みまたはタイマトリガ（フィルタなし）

高閾値
低閾値

t

各A/Dコンバータには、高閾値と低閾値の設定を備えた、3つの統合された12ビットのアナログウォッチドッグがあります。A/Dコン
バータの変換値は、このウィンドウ閾値と比較され、結果が閾値を超えた場合、CPUの介入なしに割込みまたはタイマトリガ信号をアサートすることができます。
変換されたデータが定義された間隔に属する場合、DMA要求が生成されます。
それ以外の場合は、DMA要求は発行されません。
アナログウォッチドッグ1にはフィルタリング機能もあります。
データが、ADCx_TR1レジスタのAWDFILTで指定された値よりも多い数倍の範囲を超える場合、AWDxフラグが設定され、対応する割込みが発行されます。

21

データ転送22

ソフトウェアのオーバーヘッドを削減

VIN

オーバーサンプラ

SAR A/Dコンバータ

ゲイン&オフセット

インジェクトデータレジスタ（16ビット）AHB
AHBインタフェース

レギュラデータレジスタ（16ビット）ADC DMA
リクエスト
ADC割込みリクエスト• レギュラ変換データは16ビットのデータレジスタに保存• デュアルモードでは、レギュラ変換データは32ビットのデータレジスタに保存ADCx_CDR• ソフトウェアのポーリング、割込み、またはDMA要求を使用してデータを移動可能• OVERRUNフラグは、以前に変換されたデータが現行データによって上書きされる時に設定される• アナログウォッチドッグの場合、各データを処理する必要はない:OVERRUNフラグは無効にすることが可能• インジェクト変換データは、4つの16ビットデータレジスタに保存• インジェクト変換データは専用レジスタに保存• レギュラデータシーケンスは、インジェクト変換が発生しても保持させる

ADC変換の結果は、16ビットのデータレジスタに格納されます。
デュアルモードでは、2つのサンプルがADCx_CDRと呼ばれる32
ビットレジスタに結合されるため、AHB上のトランザクション数が最小限に抑えられます。
システムは、CPUポーリング、割込み、またはDMAコントローラを使用して、変換データを利用できます。
次の変換データの準備が整う前にデータが読み取られていない
場合は、オーバーランフラグを生成できます。
オーバーランが起きた場合、新しいサンプルが削除されるか、または前のサンプルが上書きされます。
インジェクトチャネル変換の場合、4つの専用データレジスタが利用可能です。

22

インジェクト変換

23

A/Dコンバータ変換中の中断
レギュラチャネル（5）Ch(N0)

Ch(N1)

Ch(N1)

Ch(N2)

Ch(N3)

Ch(N4)

中止
インジェクトチャネル（4）Ch(J0)

Ch(J1)

Ch(J2)

Ch(J3)

インジェクトコンバージョントリガ

JEOS←1• A/Dコンバータは、レギュラ変換が実行されている場合でも、インジェクトトリガを受け入れることが可能• トリガは、レギュラ変換を停止し、インジェクト変換を開始• 1つのトリガで最大4つのインジェクト変換を利用可能• インジェクト変換が完了すると、自動再開が発生• インジェクト変換の取り込みキューは、その場で再プログラム可能

インジェクト変換は、レギュラ変換を中断し、最大4つのチャネル
変換を挿入するために使用されます。
インジェクト変換が完了したら、レギュラ変換シーケンスを再開します。
インジェクト変換結果は専用のデータレジスタに保存されます。
フラグと割込みは、変換の終了とシーケンスの終了に使用できます。
インジェクトチャネルのためのキューは、その場で再プログラムすることができます。
レギュラ変換またはインジェクト変換が進行中であっても、キューに別のチャネルを追加して、次にインジェクトチャネルを前のチャネルとは異なるようにすることができます。

23

個々のADCの機能
デュアルモード

マスタ

スレーブ

ADC1およびADC2

ADC1

ADC2

ADC3およびADC4

ADC3

ADC4

24

• 各A/Dコンバータのマスタは、A/Dコンバータのスレーブと同じ入力トリガを共有• ADC5は独立して制御

4つの可能なモード

デュアル結合モード

インジェクト同時モード

インジェクト同時モード+レギュラ同時モード

レギュラ同時モード

レギュラ同時モード+交互トリガモード

インタリーブモード

インジェクト同時モード+インタリーブモード

交互トリガモード

STM32G4は、5つのA/Dコンバータを組み込んでいます。
ADC1とADC2は、デュアルモードで連携するように構成でき、アナログからデジタルへの変換を各モジュール間で同期させることができます。
ADC3とADC4もデュアルモードで連携するように設定することができます。
ADC5はスタンドアロンのコンバータとして機能します。
4つの可能なデュアルA/Dコンバータモードが実装されています。
• インジェクト同時モード• レギュラ同時モード• インターリーブモード• 交互トリガモード
また、以下の方法で組み合わせてこれらのモードを使用することも可能です。
• インジェクト同時モード+レギュラ同時モード• レギュラ同時モード+交互トリガモード• インジェクト同時モード+インターリーブモード

24デュアルA/Dコンバータモード

25

インジェクトおよびレギュラ同時モード• デュアルA/Dコンバータモードでは、ADCx_CCRレジスタのデュアル[4:0]のビットで選択されたモードに応じて、A/DコンバータxマスタからA/Dコンバータスレーブへの変換の開始が交互または同時にトリガされる
4チャネルインジェクト同時モード
マスタA/Dコンバータ（インジェクトチャネル）
スレーブA/Dコンバータ（インジェクトチャネル）

Ch(NMI0)

Ch(NMI1)

Ch(NMI2)

Ch(NMI3)

Ch(NSI0)

Ch(NSI1)

Ch(NSI2)

Ch(NSI3)

マスタおよびスレーブA/Dコンバータでインジェクトシーケンス終了

インジェクト変換トリガ

6チャネルレギュラ同時モード
マスタA/Dコンバータ（レギュラチャネル）

Ch(NMR0)

Ch(NMR1)

Ch(NMR2)

Ch(NMR3)

Ch(NMR4)

Ch(NMR5)

スレーブA/Dコンバータ（レギュラチャネル）

Ch(NSR0)

Ch(NSR1)

Ch(NSR2)

Ch(NSR3)

Ch(NSR4)

Ch(NSR5)

レギュラ変換トリガ

マスタおよびスレーブA/Dコンバータのレギュラシーケンス終了

デュアルA/Dコンバータモードでは、変換はA/DコンバータマスタとA/Dコンバータスレーブで同時に開始することも、交互に開始することもできます。
マスタとスレーブA/Dコンバータで変換されたデータは、A/Dコン
バータ共通データレジスタ（ADCx_CDR）を読み取ることによって並列に読み取ることができます。
2つのA/Dコンバータ上の同じチャネルを変換しないでください。
このスライドでは、インジェクト同時モードとレギュラ同時モードについて説明します。
このトリガは、マスタとスレーブの両方のA/Dコンバータで変換のシーケンスを同時に開始するために使用されます。
変換シーケンスは、マスタとスレーブで等しいか、トリガ間の間隔が両方のシーケンスより長いことを確認する必要があります。
不連続モードでは、同時変換ごとにインジェクトトリガが必要です。

25

デュアルA/Dコンバータモード

26

インタリーブモード
インタリーブモード、連続変換
レギュラチャネルのトリガ
マスタA/Dコンバータ

Spl

スレーブA/Dコンバータ

Chx
Cnv

Spl

Chx
Cnv

Spl

Chx
Cnv

Spl

遅延サイクル

Spl
Chx
Cnv

変換の終了

Chx
Cnv

Spl

Chx
Cnv

変換の終了

変換の終了

インタリーブモード、不連続変換

1stトリガマスタA/Dコンバータ

Spl

スレーブA/Dコンバータ
遅延サイクル

2ndトリガ
Chx
Cnv

Spl

Spl
Chx
Cnv
変換の終了

Chx
Cnv

Spl

Chx
Cnv
変換の終了

インターリーブモードは、レギュラチャネルグループ（通常は1つのチャネル）を変換します。
変換を開始する外部トリガソースは、A/Dコンバータのマスタから取得されます。:• A/Dコンバータマスタは直ちにスタートします• A/Dコンバータスレーブは、マスタのサンプリング終了後、設定可能な遅延の後にスタートされます。
補完しているA/Dコンバータがデータをサンプリングしている間、
A/Dコンバータは変換をスタートするのを防ぎます。
変換の終了（EOC）は、各チャネル変換の終了時に生成されます。
不連続モードでは、同時変換ごとに定期的なトリガが必要です。

26

デュアルA/Dコンバータモード

27

インタリーブモード、SMPPLUS• ADC_SMPR1レジスタのSMPPLUSは、デュアルインタリーブモードで設定して、マスタとスレーブの間で均等に変換可能• 2.5サイクルのサンプリング時間の場合、合計変換時間は15サイクル• したがって、1サイクルがサンプリング時間に追加され、合計16サイクルの変換が可能になり、8サイクルごとにインタリーブすることが可能

インタリーブモード、SMPPLUS有効

インタリーブモード、SMPPLUS無効

サンプリング開始

マスタ
A/Dコンバータ00

1 2 3 ,,

55

サンプリング開始
00 1 1 1
1 1 1
9 8 7 6 5 4 3 2 1 1 2 3, ,9 8
55 2 1 0
2 1 0

…

マスタ
A/Dコンバータ00

1 2, ,

55

00 1 1 1
1 1 1
9 8 7 6 5 4 3 2 1 1 2 ,,9 8 7
55 2 1 0
2 1 0…

サンプリング変換

Start ofスレーブ
A/Dコンバータ

0

0 0

5

5 5

1 2 3 4, 1 2 3, ,8サイクル

Sampling
1 1 1…
9 8 7 6 5 4 3 2 1 1
2 1 0

8サイクル

8サイクル

Start ofスレーブ
A/Dコンバータ

0

0 0

5

5 5

1 2 3 4 , 1 2 3, ,Sampling
1 1 1
9 8 7 6 5 4 3 2 1 1 …
2 1 0

7サイクル 8サイクル

7サイクル

サンプリング時間が2.5ADCクロックサイクルである場合、12ビットモードでは、合計変換時間が15サイクルになります。
デュアルインターリーブモードを使用する場合、サンプリング時間と変換時間を加えた偶数サイクルが必要になるため、サンプリン
グ間隔は2.5ADCクロックサイクルと等しくすることはできません。
右側のタイミング図では、スレーブA/Dコンバータのサンプリング
時間を3.5クロックサイクルに増やす必要がありますが、マスタ
A/Dコンバータのサンプリング時間は2.5クロックサイクルです。
SMPPLUSビットを使用して、サンプリング時間2.5ADCクロックサ
イクルを3.5ADCクロックサイクルに変更できます。このようにして、
合計変換時間は16クロックサイクルとなり、8サイクルごとにインターリーブすることが可能になります。
1秒あたりのサンプルの最大数は、56MHzを8=>7メガサンプルで割った1秒あたりの数です。

27

デュアルA/Dコンバータモード

28

交互トリガモード
交互トリガモード:各A/Dコンバータのインジェクトグループ、不連続無効
マスタA/Dコンバータでのインジェクトシーケンスの終了
マスタA/Dコンバータ（インジェクトチャネル）

Ch(NM0)

スレーブA/Dコンバータ（インジェクトチャネル）

Ch(NM1)Ch(NS0)
1st
トリガ

Ch(NM2)Ch(NS1)

Ch(NM3)Ch(NS2)Ch(NS3)

スレーブA/Dコンバータでのインジェクトシーケンスの終了

2nd
トリガ

交互トリガモード:各A/Dコンバータのインジェクトグループ、不連続有効
マスタA/Dコンバータでのインジェクトシーケンスの終了
マスタA/Dコンバータ（インジェクトチャネル）

Ch(NM0)

スレーブA/Dコンバータ（インジェクトチャネル）

Ch(NS0)
1st
トリガ

2nd
トリガ

Ch(NM1)

Ch(NM2)Ch(NS1)
3rd
4th
トリガ トリガ

Ch(NM3)Ch(NS2)
5th
トリガ

6th
トリガ

Ch(NS3)
7th
トリガ

8th
トリガ

スレーブA/Dコンバータでのインジェクトシー
ケンスの終了

交互トリガモードは、インジェクトチャネルのグループを変換します。
変換は、ハードウェアトリガを使用した場合にのみ開始されます。
外部トリガソースは、マスタA/Dコンバータのインジェクトグループ
マルチプレクサから来ています。
不連続モードが無効になっており、最初のトリガが発生すると、マスタA/Dコンバータのグループ内すべてのインジェクトチャネルが変換されます。
2番目のトリガが発生すると、スレーブA/Dコンバータのグループ
内のすべてのインジェクトチャネルが変換されます。
不連続モードが有効になっており、最初のトリガが発生すると、マスタA/Dコンバータの最初のインジェクトチャネルが変換されます。
第2トリガが発生すると、スレーブA/Dコンバータの最初のインジェクトチャネルが変換されます。

28

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

説明

割込み
イベント

説明

29

ADRDY

ADCは変換する準備が出来ている

AWD1-3

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

EOC

レギュラ変換の終了

EOSMP

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

EOS

レギュラ変換グループのシーケンスの終了

OVR

データオーバーランが発生

JEOC

インジェクト変換の終了

JQOVF

インジェクトシーケンスコンテキストキューがオーバーフロー

JEOS

インジェクト変換グループのシーケンスの終了• DMAリクエストは、レギュラチャネルの変換の各エンドの後に生成

A/Dコンバータは、ADC Ready、変換の終了、シーケンスの終了、インジェクト変換の終了、インジェクトシーケンスの終了、アナロ
グウォッチドッグ、サンプリングの終了、データオーバーラン、およびインジェクトシーケンスコンテキストキューのオーバーフローという9つの異なる割込みを生成できます。
DMAリクエストは、A/Dコンバータ出力データの準備ができたときに、変換の各エンドで生成できます。

29

低電力モード
モード

30

説明

RUN

有効

SLEEP

有効
• ペリフェラルの割込みにより、デバイスはSLEEPモードを終了する

低電力RUN

有効低電力SLEEP

有効• ペリフェラルの割込みにより、デバイスが低電力SLEEPモードを終了する

STOP0

利用できない• ペリフェラルレジスタの内容が保持される

STOP1

利用できない• ペリフェラルレジスタの内容が保持される

STANDBY

パワーダウン• STANDBYモードを終了した後、ペリフェラルを再初期化する必要がある

SHUTDOWN

パワーダウン• SHUTDOWNモードを終了した後、ペリフェラルを再初期化する必要がある• ディープパワーダウンモードでは、各A/Dコンバータのアナログ部分がオン
チップ電源スイッチによってオフになる

A/Dコンバータは、RUN、SLEEP、低電力RUN、低電力SLEEP
モードで有効です。
STOP0またはSTOP1モードでは、A/Dコンバータは使用できませんが、そのレジスタの内容は保持されます。
STANDBYまたはSHUTDOWNモードでは、A/Dコンバータは電源がオフになり、より高いモードに戻るときには、A/Dコンバータを再初期化する必要があります。
各A/Dコンバータ自体にはディープパワーダウンモードがあり、オンチップの電源スイッチをオフにすることで漏れ電流を軽減します。
A/Dコンバータを使用しない場合は、このモードが推奨されます。

30

パフォーマンス
サンプリングレート

コンディション

データ（typ.）ユニット

12ビットモード

4.00

メガサンプル/秒

10ビットモード

4.61

メガサンプル/秒

8ビットモード

5.45

メガサンプル/秒

6ビットモード

6.66

メガサンプル/秒

1.4LSb

微分非直線性エラー
積分非直線性エラー

12ビットモード

2.4

LSb

有効なビット数（ENOB）

12ビットモード

10.6

ビット

4メガサンプル/秒

590µA

10キロサンプル/秒

16µA

消費電流（VDDA）

31

注意: この表は、1つのA/Dコンバータのみがアクティブ化された場合のパフォーマンスを示しています。
複数のADCがアクティブ化されると、パフォーマンスの低下が予想されます。
詳細についてはデータシートを確認してください。

次の表は、A/Dコンバータのパフォーマンスパラメータを示しています。

31

STM32G4 Vs STM32F3
STM32F3

A/Dコンバータの機能32

STM32G4

A/Dコンバータの数

4

5

変換時間

0.19µs（5.1Msps）

0.25µs（4Msps）

外部トリガ

16

32

HWオーバーサンプリング-

あり

IO電圧ブースタ

-

あり

ゲイン補償

-

あり

オフセット補償あり

あり+飽和制御

バルブサンプリング-あり

サンプリング時間制御トリガ-

あり

内部リファレンス電圧Vref-あり（2.048V、2.5V、2.9V）

アナログウォッチドッグ

ありあり+フィルタ

インタリーブモードSMPPLUS-

あり

この表はSTM32F3のA/Dコンバータに関してSTM32G4のA/Dコン
バータに実装された新しい機能を示しています。

32

関連ペリフェラル

33• このペリフェラルに関連するペリフェラルのトレーニングは以下を参照してください。
• DMA–ダイレクトメモリアクセスコントローラ

•
•
•
•
•

割込み
GPIO–汎用入出力
RCC–クロックモジュール
DAC–デジタルアナログ変換器
TIM–割込みとイベントトリガ用タイマ

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

33

参照

34

• 詳細については、以下の資料を参照してください。
• Application note AN2834: How to get the best ADC accuracy in STM32Fx Series andSTM32L1 Series devices• Application note AN4073: How to improve ADC accuracy when using STM32F2xx andSTM32F4xx microcontrollers• Application note AN2668: Improving STM32F1x and STM32L1x ADC resolution by
oversampling• Application note AN4629: ADC hardware oversampling for microcontrollers of the STM32
L0 and L4 series

A/Dコンバータ専用のアプリケーションノートを利用できます。
A/Dコンバータの詳細については、逐次比較型A/Dコンバータについて説明した、広範囲にわたるウェブページにアクセスしてください。

34