XIAO-ESP32C3のアナログ入力についての覚書

SeeedStudio XIAO ESP32C3表面 マイコン/Arduino

ESP32C3を搭載したSeeed XIAO ESP32C3のアナログ入力について、データシート等資料の確認と手元で実測を行った結果をまとめておきます。

忙しい人のためのまとめ

  • A0,A1,A2の中から選べ。A3は極力使うな。
  • 分解能はスペック上12bitだがフルでは使えない。
  • 外付けADCがおすすめ。

ピンアサインの確認

アナログ入力として使用できるのは、下図左側の列の上から4つ。A0,A1,A2,A3と書かれているピンです。

Seeed XIAO ESP32C3

https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/ より引用

ピンの割り当ては以下のようになっています。

XIAO-ESP32C3 A0 : ADC1_CH2
XIAO-ESP32C3 A1 : ADC1_CH3
XIAO-ESP32C3 A2 : ADC1_CH4
XIAO-ESP32C3 A3 : ADC2_CH0

データシートによれば、ADC1については工場出荷時にキャリブレーション済みですが、ADC2はキャリブレーション無とのことです。
また、ADC2は無線機能との同時利用ができませんので、ADC1に接続されているA0,A1,A2から選ぶのが無難です。実際に試しましたが、WiFi機能を有効にした状態でA3のanalogReadをするとエラーが表示されます。

一番簡単なスケッチ例

接続されているピンの電圧を読み取り、シリアルに出力するスケッチは以下のようになります。

void setup() {
 Serial.begin(9600);
 pinMode(A1,ANALOG);//A0 A1 A2 A3から選べる
 analogSetAttenuation(ADC_0db);
 //analogSetAttenuation(ADC_2_5db);
 //analogSetAttenuation(ADC_6db);
 //analogSetAttenuation(ADC_11db); //default
}

void loop() {
 int v =analogRead(A1);//A0 A1 A2 A3から選べる
 Serial.println(v);
 delay(500);
}

アッテネーターの設定

analogSetAttenuation(~);

でアッテネーターを利用することができます。選べるのは、ADC_0db,ADC_2_5db,ADC_6db,ADC_11dbの3つです。いずれの場合も出力は0~4095の12bit整数です。

数字が大きくなるほど、大きな入力に対応できますが分解能が悪くなりますので、用途に応じて選んでください。

ちなみに、データシートによると、それぞれの設定による最大値は以下のようになっています。

  • ATTEN0(ADC_0db):750mV
  • ATTEN1(ADC_2_5db):1050mV
  • ATTEN2(ADC_6db):1300mV
  • ATTEN3(ADC_11db):2500mV
ちなみに、明示的に設定しない場合はADC_11dbとなるようです。

実測結果

各アッテネーターの設定で入力/出力を実測してみた結果は次の通りです。

メーカーのいう上限値付近までは直線性もそんなに悪くないように見えます。ただ入力電圧が0でも一定の出力があることと、フルに12bit(4096段階)使えるわけではないことには注意が必要です。

ADC_0db

ESP32C3アナログ入力ATT0db設定

ADC_2_5db

ESP32C3アナログ入力ATT2.5db設定

ADC_6db

ESP32C3アナログ入力ATT6db設定

ADC_11db

ESP32C3アナログ入力ATT11db設定

補足

12bitというのは多いようで、意外と少ないので厳密な測定が必要な用途にはI2Cなどで外付の専用ADCを使った方が良いです(ADS1115など)。実際、今回の測定中も値がかなりぶれていましたので目分量で中央値を読み取っています。

参考リンク先

〇ESP32C3とXIAO-ESP32C3のピン割り当ての一覧表です。

https://files.seeedstudio.com/wiki/XIAO_WiFi/Resources/XIAO-ESP32C3-pinout_sheet.xlsx

〇ESP32C3のデータシートです。XIAO ESP32C3ではピン数の制限などからESP32C3のすべての機能が利用できるわけではないので注意してください。

https://files.seeedstudio.com/wiki/Seeed-Studio-XIAO-ESP32/esp32-c3_datasheet.pdf

以上です。

コメント