stm32のADCには逐次比較(SAR)型のADCが搭載されている.
stm32F3の中で,一部にはΣΔ型のADCが搭載されている.
stm32のADCに限らずサンプル&ホールド(S&H)キャパシタをもつADC全てに共通するもであるが,分解能をあげようと思うほどサンプリング時間を長くしなければならない.
S&Hキャパシタには1次遅れで電圧が上昇していくので,計測したいアナログ電圧に達するまで整定時間がその分必要.
なのでサンプル時間が短すぎると本来測定したい電圧より低い値になってしまうため注意。
サンプル時間を短くするほど、許容入力抵抗が下がる。
データシートには「誤差を〇LSB以下に収束させたい時、特定のサンプリング時間においては許容されるRINは〇〇以下」という表現になっている?
F405のデータシートには計算式がのっているが、G491には表で一覧になっている。
stm32のADCのピンは高速チャネル、低速チャネルに分かれている。アナログ入力の番号が若い方に高速チャネルが割り当てられている。
これはピンごとのインピーダンスの違いによるもの?
Vrefintは内部レギュレータに接続されており,基準電圧約1.2Vが常に出力されている.
この基準電圧のADCの変換結果がメモリに保存されているのでそこの数字を使ってVDDAの電圧変動などが監視できる.
このVrefintの精度はデータシートに記載あり
可変抵抗,分圧抵抗などを使って電圧の計算をすることは多々あると思うが,基準電圧の変動がどれほどに実際使用するであろうアプリケーションに対しての精度の変化につながるのか,一度計算の必要がありそう.(多分許容できる範囲だと思うけど)
電源の電圧をマイコン内蔵A-Dコンバーターで測定する裏技
ADCのDMA転送モードはそこそこ複雑。マルチじゃなくても1つずつ転送するモードもある? → F4にはあったけどG4には無さそう
stm32F4はトリプルモードというのがあったりする。3つのADCを同期して動かし、それぞれの結果をDMAで転送する。
STM32: Triple Interleaved ADC - Example Code By ST