STM32WB - A/D コンバータ
A/D コンバータ
1.0 版

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

1

概要

2

• アナログ／デジタル変換を提供

19:1
mux

SAR
A/Dコンバータ• 16の IO 入力• 12bit 分解能、オーバーサンプリングで 16bit の分解能12bit• 最大で4.26M サンプル/s （12bit）• 3 つのアナログウォッチドッグ• DMA リクエストの生成• 割込みの生成

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

アナログウォッチドッグ

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

DMA／割込み生成• 超低消費電力：190µA @ 1M サンプル/s• フレキシブルトリガ、CPU の負荷低減のためのデータ管理

STM32 製品内部の A/D コンバータにより、マイクロコント
ローラはセンサ出力のようなアナログ値を受け入れ、デジタルドメインに信号を変換できます。A/D コンバータ 1個につき、デバイスによって 16 のアナログ入力があります。各 A/D コンバータモジュールは、オーバーサンプリングハードウェアを加えた12bit の逐次比較型コンバータです。一定の条件下では、オーバーサンプリングによる出力結果は 16bit となります。サンプリングスピードは、4M サンプル/秒を超えます。
A/D コンバータモジュールには、3個のアナログウォッチドッ
グが組込まれています。データは、DMA 動作か割込みのいずれかにより利用できます。この A/D コンバータは、低消費電力および高性能に向けて設計されています。多くのトリガメカニズムを備え、また CPU の負荷が最小になるようデータ管理を設定できます。

2

主な機能

3

A/D コンバータ 1モジュールユニット
入力チャネル
テクノロジー
変換時間
機能モード
トリガ

最大 16 の外部チャネル（GPIO）、シングル／差動
12bit 逐次比較
234nS、4.26M サンプル/s（ fADC_CLK = 64MHz のとき）
シングル、連続、スキャン、不連続、またはインジェクト
ソフトウェアまたは外部トリガによる（タイマと IO から）

特別な機能

ハードウェアオーバーサンプリング、アナログウォッチドッグ
割込みの生成、DMA リクエスト
ディープパワーダウン、自動遅延、電力消費はスピードで変化

データ処理
低電力モードSTM32WB 製品の内部に1つの A/D コンバータが組み込まれています。入力チャネルは、シングルエンドか差動モードのいずれかで信号を変換できる最大 16 の GPIO チャネルに接続されます。A/D コンバータは、1 秒あたり 5M サンプル以上の速さで信号を変換できます。機能モードには数種類あり、それは後で説明します。トリガにもいくつかの方法があります。
CPU の負荷低減のため、A/D コンバータは3つのアナログウォッチドッグにより閾値をモニタします。A/D コンバータはまた、最終的な変換値に寄与するビット数を増やすため、オーバーサンプリングにも対応しています。消費電力への配慮が特に必要なアプリケーション用に、A/D コンバータは多くの低消費電力機能を備えています。

3

ブロック図

4

VREF+
VDDA
ADEN/ADDIS

スタート

レギュラデータレジスタ（12bits）

開始 & 停止制御

3 個のアナログウォッチドッグ

ソフトウェアトリガ

トリガ信号

割込みの生成H/W

低閾値レジスタ（ 12bits）

トリガ

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

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

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

AWD3_OUT

GPIO

サンプルとホールド

アド
レス／データバス

インジェクトデータレジスタ（ 4x12bits）

AWD2_OUTGPIO

DMA リクエスト

SAR A/Dコンバータ

AWD1_OUT

アナログマルチ
プレクサ

GPIO

ADCAL

タイマへ

このスライドは、STM32WB マイクロコントローラに組み込まれた A/D コンバータの一般的なブロック図を示しています。

4低電力機能

5

次の低電力機能を実装
VDDA

VREF+

• ディープパワーダウンモード
ディープパワーダウン• A/D コンバータへの内部電源供給は、漏れ削減のためパワースイッチにより無効化できます。

A/Dコンバータ• 自動遅延変換• 消費電力はサンプリング時間で変動• 860µA @ 4.26Mサンプル/s、190µA @1Mサンプル/s、17µA @ 10kサンプル/s

変換

オートウェイト

データレディ
データ読込み消費電流
Current
Consumption(uA)• A/D コンバータは、最終データの読込みが完了するまで自動的に待機します。

1000

1001010100

1000

10000

サンプリング周波数(kSps)

STM32WB の A/D コンバータは、ディープパワーダウンモードをサポートします。A/D コンバータの不使用時にはパワースイッチで分離して、漏れ電流をさらに削減できます。自動遅延モードは、最後の変換データの読込みが完了するまでの間、次の変換まで A/D コンバータを待機させます。これにより不必要な変換を回避でき、消費電力の削減に役立ちます。
消費電力はサンプリング周波数に応じて変わります。サンプ
リングレートが低いときは、消費電流はほぼ比例して低下します。

5

ハイパフォーマンス機能

6

次のハイパフォーマンス機能を実装• 64MHz の A/D コンバータクロックで4.26Mサンプル/s• ハードウェアによるオーバーサンプリング• アキュムレータとビットシフタにより、CPU のサポートなしに 16bit のデータの出力が可能

SAR
A/D

累算
データレジスタ

CH2

CH8コンバータ

CH1• フレキシブルシーケンサ

+

CH1

データ
シフタ

16bit
出力

CH3

2.5サイクル
47.5サイクル
24.5サイクル
6.5サイクル
2.5サイクル• オフセット低減のための自己較正

A/D コンバータは、1 秒あたり最大で 4.27メガのサンプル変換をサポートします。A/D コンバータは、CPU のサポートなしでデータを蓄積し分割するオーバーサンプリングハードウェアを備えています。オーバーサンプリング回路は 2～256回分のサンプルを収容し、１～8bit の右シフトができます。
ユーザはシーケンサにより、望む順序で最大 16チャネルを変換できます。また、各チャネルごとに異なるサンプリング期間を設定できます。A/D コンバータは自己較正のメカニズムを備えています。アナログ電圧の供給が絶たれ再度開始される、RESET または低消費電力状態からの立ち上げ時など、基準電圧が10%を超えて変化する場合、アプリケーションの較正を実施するようおすすめします。

6A/D コンバータ変換スピード

7

変換スピードは分解能に依存• A/D コンバータは、サンプル期間に最低で2.5ADC_CLKs、変換（12 bit） に 12.5ADC_CLKs を必要とします。
• 64MHz の最大クロックと 4.26Mサンプル/s で15サイクルの結果を取得。
• 低分解能による高速化• 10bit：10.5ADC_CLKs(+2.5) => 4.92Mサンプル/s•

8bit： 8.5ADC_CLKs (+2.5) => 5.81Mサンプル/s•

6bit： 6.5ADC_CLKs (+2.5) => 7.11Mサンプル/s

分解能t変換

12bit

12.5サイクル

10bit

10.5サイクル

8bit

8.5サイクル

6bit

6.5サイクル

A/D コンバータは、サンプル期間に最低で2.5クロックサイクル、変換に12.5クロックサイクルを必要とします。64MHz のA/D コンバータクロックで 4.27M サンプル/s を実現します。
分解能を6bit に下げることで、サンプリングのスピードを7.11M サンプル/s にまで上げられます。

7

サンプリング時間

8

プログラム可能なサンプリング時間• サンプリング時間は以下から選択できます。
•2.5サイクル•

6.5サイクル•

12.5サイクル•

24.5サイクル•

47.5サイクル• 92.5サイクル• 247.5サイクル• 640.5サイクル• スキャンモードを選択すると、チャネルごとに異なるサンプリング時間を設定できます。
• 単一の A/D コンバータは、ソースのインピーダンスに関係なく異なる入力ソースをスキャンできます。

サンプリング時間は、A/D コンバータの入力チャネルごとに個別にプログラムが可能です。このスライドで A/D コンバー
タクロックサイクルとして一覧表示したサンプリング時間を利用できます。高インピーダンスの信号を確実に正しく変換するには、サンプリング時間を長くします。

8

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

9クロックのフレキシブルな選択• A/D コンバータクロックは、以下から選択できます。
• 1、2、または 4 で割った AHB クロック
トリガイベントが AHB クロックに依存する場合、イベントから変換開始までの遅延時間は確定しています。
• 専用の A/D コンバータクロック
システムクロックから独立し、かつ非同期。A/Dコンバータがフルスピードで稼働していても CPUは低速での稼働が可能。

A/D コンバータ1

HCLKリセット＆クロック
コントローラAHB インタフェース/1、/2、または /4
ADC1_CKA/D コンバータ
1

1 … /256CKMODE[0:1]

A/D コンバータは選択可能なクロックソースを持っています。
システムが同期して実行する必要がある場合、AHB クロックソースは最適な選択となります。CPU は低速で稼働させる
一方で A/D コンバータのサンプリングレートは高くする必要がある場合、専用の A/D コンバータクロックを選択できます。

9

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

スタート

スタート

CHx

CHx

CHx。
。
。

STOP

CHn

スタート

CHx。
。
。

CHn

10スタートCHx
ストップ／スタート。
。
。

ストップ／スタート

STOP

CHn

STOPシングルシングル連続

スキャン：マルチチャネル

スキャン：連続（マルチチャネル繰り返し）

不連続モードA/D コンバータは以下の変換モードをサポートしています。
• シングルモード：シングルショットまたは連続モードで１つのチャネルのみを変換します。
• スキャンモード：シングルショットまたは連続モードで、あらかじめ定義した入力チャネル一式を変換します。
• 不連続モード：あらかじめ定義しプログラムした入力チャネルのリストから、各トリガ信号で単一のチャネルのみを変換します。

10ハードウェアによるオーバーサンプリング

11

CPU の負荷を軽減するデータの前処理
SAR• プログラム可能なオーバーサンプリング比率： A/Dコンバータ
x2, x4, x8, x16, x32, x64, x128, x256

+累算
データレジスタ

16bit 出力• プログラム可能なデータシフタ & トランケータ
0～8bit の右シフト• 最大 16bit での A/D コンバータ結果• 平均化、データレート低減、SNR 改善、
基本的フィルタリング

データシフタトランケータオーバーサンプリング比率

出力分解能

等価サンプリング
周波数最大x4

13bit

1.06bit/sx1614bit

266kサンプル/s

x64

15bit

66.6kサンプル/s

x256

16bit

16.6kサンプル/sA/D コンバータは、ハードウェアでのオーバーサンプリングをサポートしています。CPU のサポートなしで 2、4、8、16、32、64、128、256倍のサンプリングができます。変換データはレジスタに蓄積され、その出力はデータシフタとトランケータで処理が行われます。
12bit データは、拡張すれば16bit データとして提示できます。
この機能は平均化の用途の他に、データレートの低減、SN比改善、さらに基本的なフィルタリングを目的に使用できます。

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

12ソフトウェアオーバーヘッドの低減• A/D コンバータは、3 つのウィンドウコンパレータを備えています。
• 1 つの 12bit のアナログウォッチドッグは、選択したチャネル 1 つかすべての有効チャネルをモニタできます。
• 2 つの 8bit のアナログウォッチドッグは、選択した複数のチャネルをモニタできます。

SARA/D高閾値コンバータ

低閾値

割込み／信号生成• 各ウォッチドッグは、閾値の上か下かの状態を連続的にモニタし、割込み、外部信号、タイマ停止のいずれかを生成します。

各 A/D コンバータは、高閾値および低閾値の設定ができる3 つの内蔵アナログウォッチドッグを備えています。A/D コン
バータの変換値はこのウインドウ閾値と比較され超過が判明した場合、割込みまたは外部信号を生成するか CPU の介在なしにタイマをすぐに停止させることができます。

12データ転送

13

ソフトウェアオーバーヘッドの低減• レギュラ変換データは 16bit のデータレジスタに保存されます。
• ソフトウェアのポーリング、割込み、DMA リクエストは、データの移動に使用します。
• OVERRUN フラグは、先に変換したデータを現在のデータで上書きするときにセットされます。
• アナログウォッチドッグは各データを処理する必要はありません。OVERRUN フラグは無効にできます。

• インジェクト変換データは 4 つの 16bit のデータレジスタに保存されます。
• インジェクト変換データは専用レジスタに保存されます。レギュラデータシーケンスは、インジェクト変換が発生してもそのまま維持されます。

A/D コンバータの変換結果は 16bit の データレジスタに保存されます。システムは、CPU ポーリング、割込み、DMA を使用して変換データを使用できます。次の変換データがレディーになる前にデータの読込みが完了していない場合、オーバーランフラグを生成できます。インジェクトチャネル変換に対して、4 つの専用のレジスタを使用できます。

13インジェクト変換

14A/D コンバータ変換中の割込み• A/D コンバータは、レギュラ変換の実行中でもインジェクトトリガを受け付けできます。
• トリガにより、レギュラ変換が停止しインジェクト変換が開始します。
1つのトリガで最大 4 つのインジェクト変換を実行できます。
• インジェクト変換が終了すると自動レジュームが発生します。
• インジェクト変換の結果に対して 4 つの 16bit 専用レジスタを使用できます。
• 割込み、またはユーザファームウェアで使用するフラグを生成します。
• インジェクト変換のキューは進行中に再プログラムできます。

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

14

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

説明

割込み
イベント

説明

ADRDY

A/D コンバータ変換レディ

AWDx

アナログウォッチドッグの閾値超えを検出

EOC

レギュラ変換終了

EOSMP

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

EOS

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

OVR

データオーバーラン発生

JEOC

インジェクト変換終了

JQOVF

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

JEOS

インジェクト変換グループシーケンス終了• チャネルのそれぞれの変換後に、DMA リクエストを生成できます。

それぞれの A/D コンバータは、次の 9個の異なる割込みを生成できます。A/D コンバータレディー、変換終了、シーケンス終了、インジェクト変換終了、インジェクトシーケンス終了、
アナログウォッチドッグ、サンプリング終了、データオーバーラ
ン、インジェクテッドシーケンスのコンテキストキューのオーバーフロー。
DMA リクエストは、A/D コンバータ出力データがレディのとき、それぞれの変換の終了時に生成されます。

15低電力モード
モード

説明

RUN

アクティブ

SLEEP

アクティブペリフェラル割込みによって、デバイスは SLEEP モードを終了します。

低電力 RUN

アクティブ

低電力 SLEEP

アクティブペリフェラル割込みによって、デバイスは低電力 SLEEP モードから復帰します。

STOP 0 / STOP 1

使用不可ペリフェラルレジスタの内容は保たれます。

STOP 2

使用不可ペリフェラルレジスタの内容は保たれます。

STANDBY

パワーダウン状態です。ペリフェラルは、STANBY モード終了後に再初期化する必要があります。

SHUTDOWN

パワーダウン状態です。ペリフェラルは、SHUTDOWN モード終了後に再初期化する必要があります。

• ディープパワーダウンモードでは、各 A/D コンバータのアナログ部はオンチップパ
ワースイッチによりスイッチオフされます。較正データは維持されます。

A/D コンバータは、RUN、SLEEP、低電力 RUN、および低電力 SLEEP の各モードでアクティブとなります。STOP 0、STOP 1、またはSTOP 2モードでは A/D コンバータは使用不能となりますが、そのレジスタの内容は維持されます。A/D
コンバータは STANDBY または SHUTDOWN モードではパワーダウンされるため、高パワー状態に戻すには再初期化する必要があります。各 A/D コンバータ単位でディープパワーダウンモードを備え、オンチップパワースイッチを切断して漏れを低減します。これは、A/D コンバータ未使用時におすすめするモードです。

16

性能
サンプリングレート状態
12bit モード
6bit モード

DNL
INL
ENOB

消費電流

シングルエンド
差動
4.26M サンプル/s
1M サンプル/s
10k サンプル/s

データ（typ）
4.26
7.11+/-1+/-1.5
10.5
10.9
860
190
1717単位M サンプル/s
M サンプル/s
LSBLSBbitbit
µA
µA
µA

次の表に A/D コンバータの性能パラメータを示します。

17

関連ペリフェラル

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

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

18

参照

19

• 詳細については、以下の資料を参照してください。
• AN2834: How to get the best ADC accuracy in STM32 microcontrollers• AN4073: How to improve ADC accuracy when using STM32F2xx and STM32F4xx
microcontrollers• AN2668: Improving STM32F1 Series, STM32F3 Series and STM32Lx Series ADC
resolution by oversampling• AN4629: ADC hardware oversampling for microcontrollers of the STM32 L0 and L4seriesA/D コンバータ専用のアプリケーションノートを利用できます。
A/D コンバータの詳細については、逐次比較型 A/D コン
バータについて説明した、広範囲にわたるウェブページにアクセスしてください。

19