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

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

1

概要

2

• アナログからデジタルへの変換を提供• 最大20の入力チャネルを備えた3つのA/Dコンバータ• 16ビット、オーバーサンプリングで最大21ビット

19:0
mux

SAR
A/Dコン
バータ

16ビット

• ENOB はノイズレベルのために14ビットに制限• 最速5メガサンプル/秒 (14ビット分解能)• A/Dコンバータあたり 3つのアナログ・ウォッチドッグ• DMA要求の生成

オーバーサンプラー• 割込み生成アナログ WDG
DMA/割込み生成

アプリケーション側の利点
x3• 超低消費電力: 1.6 mA @ 5 メガサンプル/秒• 柔軟なトリガー、CPUの負荷を軽減するためのデータ管理

STM32G4マイクロコントローラ内のA/D コンバータにより、マイクロコントローラはセンサ出力のようなアナログ値を受け入れ、デジタルドメインに信号を変換できます。
3 つの A/D コンバータで最大 20 個のアナログ入力を使用できます。
A/D コンバータモジュール自体は、追加のオーバーサンプリング・ハードウェアを備えた16ビットの逐次近似コンバータです。
ノイズレベルの関係上、14ビット相当の性能しか得られません。16ビット以上の性能を得るためには、オーバーサンプリング方式を使用する必要があります。
特定の条件下では、オーバーサンプリングされた出力は 21 ビットの結果を持つことができます。
サンプリング速度は、14 ビット分解能で 1 秒あたり 5 メガサンプルです。
各A/D コンバータモジュールは、アナログウォッチドッグを統合します。
データは、DMA からの移動または割込みによって使用可能にできます。
このA/Dコンバータは、低消費電力と高性能を実現するように設計されています。
トリガメカニズムは多数あり、データ管理は CPU ワークロードを最小化するように構成できます。

2

主な機能
機能

3

説明

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

3モジュール

入力チャネルA/Dコンバータあたり最大 20 の外部 (GPIO) または内部チャネル
16ビット逐次近似

変換時間

200ns、5メガサンプル/秒 (fADC_CLK = 50 MHz、14ビットの時)

機能モード

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

トリガ

ソフトウェアまたは外部トリガ(タイマおよびI/O)

特別機能

アナログ・ウォッチドッグ、ハードウェア・オーバーサンプリング、セルフ・キャリブレー
ション

データ処理

割込み生成, DMA要求

低電力モードディープパワーダウン、自動遅延、動作速度に依存した電力消費

STM32H7製品の内部には、3つのA/Dコンバータが内蔵されています。
入力チャネルは、シングルエンドまたは差動モードで信号を変換できる最大20チャネルが接続されています。
A/Dコンバータは 14 ビット モードで 1 秒あたり 5 メガサンプルの信号を変換できます。
いくつかの機能モードがありますが、これは後ほど説明します。
また、いくつかの異なるトリガ方法があります。
CPU負荷をオフロードするために、A/Dコンバータには閾値を監視するためのアナログ・ウォッチドッグがあります。
A/Dコンバータはまた、最終的な変換値に表示されるビット数を拡張するためにオーバーサンプリングを提供します。
パワーに敏感なアプリケーションのために、A/Dコンバータは多くの低消費電力機能を提供します。

3ブロック図VREF+
VDDA

サンプル&ホール
ドSAR
A/Dコン
バータ
スタート

インジェクト･データ･レジスタ(4x32ビット)

デアード
タレバス
ス

レギュラデータ･レジスタ(32ビット)

スタート&ストップ
コントロール3 アナログウォッチドッグ
アナログウォッチドッグ

S/Wトリガ
トリガ信号

DMA要求/

GPIO

アナログ
MUX

GPIO
GPIO

ADEN/ADDIS
ADCAL

4

割込み生成

高閾値レジスタ(26ビット)

H/WトリガAWD3_OUT

NVIC への A/Dコ
ンバータ割込み

AWD2_OUT

J S/Wトリガ
インジェクトトリガ信号

AWD1_OUT

低閾値レジスタ(26ビット)

x3

タイマへ

このスライドは、STM32H7に内蔵された3つのA/Dコンバータの一般的なブロック図を示しています。

4低電力機能5

複数の低電力機能の実装
VDDA

VREF+

• ディープパワーダウンモード
ディープパワーダウン• A/Dコンバータへ供給される内部電力は、リーク電流低減のためスイッチによって無効にすることが可能• 自動遅延変換• A/Dコンバータは、最後のデータが読み取られるまで自動的に待機可能

A/Dコンバータ
コンバージョン

自動待機

データ準備完了
データ読み取り• 消費電力はサンプリング時間に依存
Current Consumption(uA)• 1.6mA @ 5メガサンプル/秒、500µA @ 1メガサンプル/秒、220µA @ 50キロサンプル/秒

消費電流とサンプリング周波数
10000

1000

100
10100

1000

10000

Sampling Frequency (ksps)

STM32H7のA/Dコンバータはディープ・パワーダウン・モードをサポートしています。A/Dコンバータを使用しないときは、リーク電流をさらに減らすためのスイッチで電源と切り離すことができます。自動遅延モードは、次の変換を開始する前の最後の変換データが読み込まれるまでA/Dコンバータを待機させます。これにより不必要な変換を回避し、消費電力を削減します。消費電力はサンプリング周波数に依存します。低いサンプリング・レートでは、消費電流はほぼ比例して減少します。

5高性能な機能

6

複数の高性能な機能の実装• A/Dコンバータ クロック50MHz時：5メガサンプル/秒 @14ビット変換

SAR
A/Dコンバータ• インタリーブモードでは最大10メガサンプル/秒までサポート可能

SAR
A/Dコンバータ• ハードウェア･オーバーサンプリング• アキュムレータとビットシフタは、CPUサポート
SAR
なしで26ビットデータを出力可能
A/Dコン
バータ

5メガサンプル/秒(シングル最大)10メガサンプル/秒(デュアル最大)+アキュムレーション
データレジスタ

CH2

CH8

データ
シフタ

26ビット出力• フレキシブル･シーケンサ• オフセットを低減する自動キャリブレー
ション、直線性の向上

CH1

CH1

CH3

1.5サイクル
32.5サイクル
16.5サイクル
8.5サイクル
1.5サイクル

A/Dコンバータは5メガサンプル/秒＠14ビット変換までサポートしています。
デュアルインターリーブモードを使用することで、10メガサンプル/秒まで拡張できます。
A/DコンバータにはCPUを介在させずにデータを蓄積し、分割するオーバーサンプリング・ハードウェアが含まれています。
オーバーサンプラは2～1024倍のサンプルと、1～8ビットの2進数の右シフトに対応しています。
シーケンサーは、ユーザーの任意の順序で最大16チャネルを変換することができます。また、各チャネルは異なるサンプリング期間を持つことができます。
A/Dコンバータはオフセットと直線性のための自動キャリブレーション機能を提供します。
基準電圧が10%以上変化する場合は、アプリケーション上でキャリブレーションを実行することをお勧めします。これには、リセットからの立ち上がりや、低電力のアナログ電圧供給が取り除かれ、その後の立ち上がりも含まれます。

6

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

7変換スピードは分解能に依存• A/Dコンバータはサンプル期間に最低1.5ADC_CLKs 、変換に最低7.5ADC_CLKsが必要（14ビット）• 10サイクル、50MHzの最大クロック（サンプル周期の2.5clkが必要）の場合、5Mサンプル/秒（14ビット）の結果が得られる• 低分解能でスピードアップ• 12ビット: 6.5ADC_CLKs(+1.5) => 6.25メガサンプル/秒• 10ビット: 5.5ADC_CLKs (+1.5) => 7.1メガサンプル/秒•

8ビット: 4.5ADC_CLKs (+1.5) => 8.3メガサンプル/秒

分解能

tConversion

16ビット

8.5サイクル

14ビット

7.5サイクル

12ビット

6.5サイクル

10ビット

5.5サイクル

8ビット

4.5サイクル

A/Dコンバータはサンプリングに最低1.5クロック・サイクル、14ビット・モードの変換に最低7.5クロック・サイクルが必要です。
50MHzのA/Dコンバータクロックで、1秒間に5メガサンプルを達成することができます。
サンプリング速度を上げるためには、分解能を8ビットに下げて、サンプリング速度を8.3メガサンプル/秒まで上げることが可能です。

7サンプリング時間

8

プログラム可能なサンプリング時間• 次のサンプリング時間を選択可能:•1.5サイクル•

2.5サイクル•

8.5サイクル•

16.5サイクル•

32.5サイクル•

64.5サイクル• 387.5サイクル• 810.5サイクル• スキャンモードでは各入力チャネルで異なるサンプリング時間を持つことが可能• 各A/Dコンバータは、様々なソース･インピーダンスで異なる入力ソースをスキャンすることが出来る

サンプリング時間は、A/Dコンバータの各入力チャネルに対して個別にプログラムすることができます。
このスライドに記載されているサンプリング時間は、A/Dコンバータのクロックサイクルで利用できます。
サンプリング時間を長くすると、より高いインピーダンスを持つ信号を正しく変換することが出来ます。

8

A/Dコンバータ クロック

9

柔軟なクロック選択• A/Dコンバータのクロックは以下の中から選択• AHBクロックを1、2、または4で割った値
トリガ・イベントが AHBクロックに依存する場
合、イベントと変換開始の間の待ち時間は決定される• 専用のA/Dコンバータ クロック
システムクロック(AHB)とは独立しており、非同期
A/Dコンバータがフルスピードで動作していても、CPUはゆっくりと動作可能
ADC_KER_CKソースは独立したPLLから接続可能

ADC1、ADC2、ADC3

HCLK

AHBインターフェイス

リセット&クロックコントローラADC1(マスター)/1 , /2 or /4
ADC_KER_CK/2/1 … /256
CKMODE[0:1]

ADC2(スレーブ)
ADC3(マスター)

A/Dコンバータには選択可能なクロックソースがあります。
システムを同期的に動作させる必要がある場合は、AHBクロックソースが最適な選択となります。
遅いCPU速度が必要だが、A/Dコンバータには高いサンプリン
グ・レートが必要な場合は、専用A/Dコンバータクロックを選択できます。
ADC_KER_CK ソースは独立した PLL から選択できます。

9

A/Dコンバータ パフォーマンス

10

パフォーマンス vs 入力タイプ• 入力には3つの異なるタイプがある• ダイレクトチャネル• I/OにシリーズスイッチなしでA/Dコンバータの入力に接続され、最速のサンプリング時間を得る• 高速チャネル
• I/Oは低抵抗スイッチでA/Dコンバータの入力に接続され、サンプリング時間を短縮できる• 低速チャネル
• I/Oは標準抵抗スイッチでA/Dコンバータの入力に接続され、サンプリング時間が遅くなる

入力には3つの異なるタイプがあります• ダイレクトチャネルはシリーズスイッチなしでA/Dコンバータの入力に接続され、最速のサンプリング時間を得ることが出来ます。
• 高速チャネルは低抵抗スイッチでA/Dコンバータの入力に接続され、サンプリング時間を短縮できます。
• 低速チャネルは標準抵抗スイッチを使用して、I/O がA/Dコンバータの入力に接続され、サンプリング時間は遅くなります。

10

A/Dコンバータ パフォーマンス

11

パフォーマンス vs パッケージ• A/Dコンバータの性能はパッケージの種類と、動作するチャネル数に依存• パッケージの種類は、A/Dコンバータのパフォーマンスに影響する• パッケージに依存し、電圧リファレンスの安定性が変化し、結果、パフォーマンスに影響を与える• 次の順序は、A/Dコンバータのパフォーマンスの向上を示す• BGAパッケージ• TQFP176パッケージ• TQFP208パッケージ

パフォーマンスの向上

A/Dコンバータ
Minimum of Maximum Data Rate (MSPS)• WLCSPパッケージ

98765BGA169 Direct

4BGA240 Direct

3

TQFP208 Direct

210810121416Resolution (bit)A/Dコンバータのパフォーマンスは、パッケージの種類と同時に動作するチャネルの数によって異なります。
この図は、BGAパッケージ技術が特に高分解能においてより良いパフォーマンスを提供していることを示しています。

11

A/Dコンバータ パフォーマンス

12パフォーマンス vs セッティング• A/Dコンバータの速度はサンプリング時間と変換時間に依存する• サンプリング時間中は、ホールドコンデンサを½LSBの誤差電圧の内側に充電する必要がある• 16ビット@3.3V、1LSB =~ 50uV• サンプリング時間中は、入力は+/-25uVで安定している必要がある• 12ビット@3.3V、1LSB=~ 800uV• サンプリング時間中は、入力は+/-400uVで安定している必要がある• このため、16 ビットは低分解能よりも長いサンプリング時間を必要とする• いくつかのケースで、より高いサンプリングレートを得るためには、低いサンプリング周期でより低いクロック周波数を使用することで、より高速になる
16ビットモード、Fadc=37MHz、サンプリング時間=2.5サイクル：結果3.35Msps
16ビットモード、Fadc=36MHz、サンプリング時間=1.5サイクル：結果3.60Msps

A/Dコンバータの速度はサンプリング時間と変換時間にも依存します。サンプリング時間中は、正確な精度を確保するために、ホールド・コンデンサは LSB 電圧の半分以下の誤差で適切なLSB 電圧に充電する必要があります。
そして、分解能が高くなればなるほど、サンプリング時間は長くなります。そのため、低いクロック周波数で低いサンプリング周期を使用して高いサンプリングレートを得る方が効率的な場合があります。

12

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

13

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

スタート

スタート

CHx

CHx

CHx..
.

ストップ

CHn

スタート

スタート
CHx

CHx
..
.

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

CHn

ストップ

ストップ/スタート
CHnストップ
シングル

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

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

不連続モードA/Dコンバータは、いくつかの変換モードをサポートしています。


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

スキャンモードは、あらかじめ定義されプログラムされた入力チャネルのセットを、シングルショットまたは連続モードで変換します。
不連続モードでは、事前に定義されプログラムされた入力チャネルのリストから、各トリガ信号の1つのチャネルのみを変換します。

13

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

14

CPU負荷をオフロードするためのデータの事前処理• プログラム可能なオーバーサンプリングレ
シオ:
x2 から x1024 まで

SAR
A/Dコンバータ+• プログラマブル・データ・シフタ & 切り捨て
左シフトは0~15ビット、右シフトは0~11ビットオーバーサンプリ• 最大 32 ビットのデータ幅• 平均化、データレートの低減、SNR改善、および基本的なフィルタリング

アキュムレーション
データレジスタデータシフタ
切り捨て

32ビットデータ
出力

ング レシオ

出力
分解能

等価サンプリング
周波数（最大）x1(none)

16ビット

3.6メガサンプル/秒

x16

18ビット

225キロサンプル/秒

x256

20ビット

14キロサンプル/秒

x1024

21ビット

2.9キロサンプル/秒

A/Dコンバータはハードウェアのオーバーサンプリングをサポートしています。CPUのサポートなしで2～1024倍のサンプリングが可能です。変換されたデータはレジスタに蓄積され、出力はデータシフタとトランセータで処理されます。
16ビットのデータを拡張して32ビットのデータレジスタとして提示することができます。この機能は、基本的なフィルタリングだけでなく、平均化機能や、データレートの低下やS/N比の改善にも利用できます。

14

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

15

ソフトウェアのオーバーヘッドを削減• 3つのA/Dコンバータのそれぞれに3つのウィンドウ･コンパレータを持つ• 1つの26ビット・アナログ・ウォッチドッグは、選択された1つのチャネルまたはすべての有効なチャネルを監視することが可能• 2つの26ビット・アナログ・ウォッチドッグは、複数の選択されたチャネルを監視することが可能

SAR
A/Dコンバータ

高いしきい値
低いしきい値

割込み/信号
ジェネレータ• 各ウォッチドッグは、しきい値の過大・過小状態を連続的に監視し、割込みや外部信号を発生させたり、タイマを停止することが可能

各A/Dコンバータには、高いしきい値と低いしきい値の設定を備えた統合型アナログウォッチドッグがあります。
A/DC変換値は、このウィンドウしきい値と比較され、結果がしきい値を超えた場合、CPU介入なしに割込み又は外部信号を生成したり、タイマを直ちに停止させることができます。

15

データ転送16

ソフトウェアのオーバーヘッドを削減• 通常の変換データは 32ビットのデータ･レジスタに格納される• ソフトウェアのポーリング、割込み、またはDMA要求を使用してデータを移動できる• OVERRUNフラグは、以前に変換されたデータが現行データによって上書きされるときにセットされる• アナログウォッチドッグの場合は、各データを処理する必要はなくOVERRUNフラグを無効にすることができる• インジェクト変換データは4つの32ビット・データ・レジスタに格納される• インジェクト変換データは専用レジスタに格納され、通常のデータシーケンスは、インジェクト変換が発生しても保持できる

A/Dコンバータの変換結果は32ビットのデータ・レジスタに格納されます。システムは変換データを利用するためにCPUポーリング、割込み、またはDMAを使用することができます。次の変換データの準備が整うまでにデータが読み込まれない場合、オーバーラン・フラグを発生させることができます。インジェクションチャネル変換の場合は、4つの専用データレジスタを用意しています。

16

インジェクト変換

17

A/Dコンバータ変換中の中断• A/Dコンバータは、通常のレギュラ変換が実行されている場合でも、インジェクト･トリガを受け入れることが可能• トリガは、通常のレギュラ変換を停止し、インジェクト変換を開始
1 つのトリガで最大 4 つのインジェクト変換を利用可能• インジェクト変換が終了すると、自動再開が発生• インジェクト変換結果には、4つの専用32ビットデータレジスタが用意される• ユーザのファームウェアで使用するための割込みまたはフラグを作成• インジェクト変換のキューは、その場で再プログラム可能

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

17

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

割込み
イベント

説明

ADRDY

A/Dコンバータは変換する準備ができている

AWDx

アナログ・ウォッチドッグのしきい値違反検出の発生

EOC

レギュラ変換の終了

EOSMP

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

EOS

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

OVR

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

JEOC

インジェクト変換の終了

JQOVF

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

JEOS

インジェクト変換グループのシーケンスの終了

18

説明• DMAリクエストは、チャネルの変換の各エンドの後に生成

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

18

低電力モード
モード

19

説明

RUN

有効SLEEP

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

STOP

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

STANDBY

パワーダウン STANDBYモードを終了した後、ペリフェラルを再初期化する必要がある• ディープ・パワーダウンモードでは、各A/Dコンバータのアナログ部分はオンチップの電源スイッチによってオフになり、キャリブレーションデータは保持される• D1 ドメインと D2 ドメインがSTANDBYモードの間、ADC3(D3 ドメイン)を実行できる

A/DコンバータはRUNモードとSLEEPモードで有効です。STOPモードでは、A/Dコンバータは使用できませんが、レジスタの内容は保持されます。STANDBYモードでは A/Dコンバータはパワーダウンしており、より高い電力状態に戻る時は再初期化する必要があります。各 A/Dコンバータ自体には、オンチップ電源スイッチをオフにすることでリークを減らすディープ・パワーダウン・モードがあります。これは A/Dコンバータを使用しない場合には常に推奨されるモードです。D3 ドメインにある ADC3 は、他のドメインがSTANDBYモードの間も動作することに注意してください。

19

パフォーマンス条件

データ (typ.)単位

16ビットモード

3.6

メガサンプル秒

14ビットモード

5.0

メガサンプル/秒

8ビットmode

8.3

メガサンプル/秒

DNL(シングルエンド)

+3/-1

LSB

INL

16ビットモード

±11.0

LSB

16ビットモード(シングルエンド)

12.2

ビット

16ビットモード(差動)

13.2

ビット

5メガサンプル/秒(14ビット)

1.6mA

50メガサンプル/秒(14ビット)

220

µA

サンプリング
レート

ENOB

消費電流20

注: ここに示されているデータは、ダイレクトチャネル用

次の表は A/Dコンバータの性能パラメータを示しています。すべての値は予備的なものです。16ビット・モードのENOBはシステ
ムのノイズ・レベルのため14ビット以下になると飽和します。オーバーサンプル・モードを使用することで、ENOBをさらに拡張することができます。

20

関連ペリフェラル

21• このペリフェラルに関連するペリフェラルのトレーニングは以下を参照してください。
• DMA –ダイレクト･メモリ･アクセス･コントローラ• 割込み• GPIO –汎用入出力• RCC – クロックモジュール• DAC –デジタル・アナログ変換器• TIM –割込みとイベント･トリガ用タイマ• DFSDM –シグマデルタ･モジュレータ･デジタルフィルタ

これらのペリフェラルは、A/Dコンバータを正しく使用するために特別に設定する必要があるかもしれません。詳細については、対応するペリフェラル・トレーニング・モジュールを参照してください。

21

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

ADC1

ADC2

ADC3

デュアルモード

マスター

スレーブ

-インターコネクト/
ドメイン

AHB1/
ドメイン2

AHB1/
ドメイン2

AHB4/
ドメイン3

DAC1 出力
DAC2 出力バンド ギャップ
(VREFINT)
温度センサ
VBAT/4

内部チャネル接続

22

STM32H7は3つのA/Dコンバータを内蔵しています。 ADC1とADC2はデュアルモードで一緒に動作するよう構成できるので、各A/D変換を2つのモジュール間で同期させることができます。
ADC3はスタンドアロン・コンバータとして動作します。

22

参照

23

• 詳細については、以下の資料をご参照ください。
• 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 byoversampling• Application note AN4629: ADC hardware oversampling for microcontrollers of the STM32
L0 and L4 series

A/Dコンバータに特化したアプリケーション・ノートがいくつかあります。A/Dコンバータについてさらに詳しく知りたい方は、逐次近似A/Dコンバータについて論じた幅広いWebページをご覧ください。

23