目次

stm32

ADC

stm32のADCには逐次比較(SAR)型のADCが搭載されている.
stm32F3の中で,一部にはΣΔ型のADCが搭載されている.

入力インピーダンスについて

stm32のADCに限らずサンプル&ホールド(S&H)キャパシタをもつADC全てに共通するもであるが,分解能をあげようと思うほどサンプリング時間を長くしなければならない.
S&Hキャパシタには1次遅れで電圧が上昇していくので,計測したいアナログ電圧に達するまで整定時間がその分必要.
なのでサンプル時間が短すぎると本来測定したい電圧より低い値になってしまうため注意。
サンプル時間を短くするほど、許容入力抵抗が下がる。
データシートには「誤差を〇LSB以下に収束させたい時、特定のサンプリング時間においては許容されるRINは〇〇以下」という表現になっている? F405のデータシートには計算式がのっているが、G491には表で一覧になっている。

入力チャネルについて

stm32のADCのピンは高速チャネル、低速チャネルに分かれている。アナログ入力の番号が若い方に高速チャネルが割り当てられている。
これはピンごとのインピーダンスの違いによるもの?

Question about STM32F407 ADC input impedance

内部基準電圧Vrefint

Vrefintは内部レギュレータに接続されており,基準電圧約1.2Vが常に出力されている.
この基準電圧のADCの変換結果がメモリに保存されているのでそこの数字を使ってVDDAの電圧変動などが監視できる.
このVrefintの精度はデータシートに記載あり
可変抵抗,分圧抵抗などを使って電圧の計算をすることは多々あると思うが,基準電圧の変動がどれほどに実際使用するであろうアプリケーションに対しての精度の変化につながるのか,一度計算の必要がありそう.(多分許容できる範囲だと思うけど)
電源の電圧をマイコン内蔵A-Dコンバーターで測定する裏技

複数ADC同期時のDMAでの転送

ADCのDMA転送モードはそこそこ複雑。マルチじゃなくても1つずつ転送するモードもある? → F4にはあったけどG4には無さそう
stm32F4はトリプルモードというのがあったりする。3つのADCを同期して動かし、それぞれの結果をDMAで転送する。
STM32: Triple Interleaved ADC - Example Code By ST

参考文献

AN2834 アプリケーション・ノート STM32マイクロコントローラで最高のADC精度を実現する方法
AN3116 Application note STM32™’s ADC modes and their applications
AN5354 Application note Getting started with the STM32H7 Series MCU 16-bit ADC
Quantify STM32G4 slow vs fast ADC channels