世界を動かす技術を、日本語で。

$2.97のADCはどれほど悪いのか?

概要

  • マイコン内蔵ADC の限界と ADS1115 の特徴比較
  • ADS1115の高精度 とプログラマブルゲインの利点
  • 価格差 と流通経路による品質の疑問
  • 実際の 精度テスト 結果とその考察
  • 安価品の正体 と今後の検証予定

マイコン内蔵ADCとADS1115の比較

  • マイコン内蔵ADC はコストが安く、速度も十分だが、 実効ビット数(ENOB)は8~9ビット程度
  • ADS1115 はTexas Instruments製の専用ADCで、 16ビットの精度 を謳う
  • ADS111xシリーズ は小振幅電圧の測定で 20倍のダイナミックレンジ を実現可能
  • プログラマブルゲインアンプ(PGA) により、 ±6.144V~±0.256V まで測定範囲を調整可能
  • 最小LSBは約7.8μV (0.256V ÷ 32768)、マイコンADC(3.3V範囲・9ビットENOB)では約6mV
  • 内部基準電圧 を持ち、RP2040のような 外部リファレンス不要

ADS1115の価格差と流通事情

  • Digikeyで1K個購入時は約$4LCSCでは$0.60 という大きな価格差
  • Amazonのブレークアウト基板 は4個まとめ買いで1枚あたり$2.97、 LCSC等の安価パーツ使用の可能性
  • Adafruit製ブレークアウト も注文、こちらは高額な正規品想定

実際のADS1115テスト結果

  • I²CMiniと高精度DC電圧源 でADS1115を検証
  • スペック通り動作 :16ビット出力、PGA機能、8~860サンプル/秒の可変レート
  • 差動モードテスト :2入力短絡でゼロ、2.5V差動入力で正確な値、極性反転も正しく動作
  • データレートのばらつき :3個はやや遅め(6.5~7サンプル/秒)、1個は異常に速い(300サンプル/秒)
    • 明らかにタイミングが壊れている個体も存在

精度の詳細と考察

  • 校正済み2.50067V入力 に対し、ADS1115は2.4883Vを出力(12mV誤差、0.5%差異)
  • TIデータシートの仕様 より大きな誤差だが、 MCU側で線形補正 すれば10μV以内の高精度実現
  • 安価品の正体 は良質なコピー品、または不合格品が流通している可能性

今後の検証とまとめ

  • Adafruitの正規品 到着後、同様のテストを実施予定
  • 価格差4倍 の価値があるか検証継続
  • 安価なADS1115 は用途によっては十分実用的
  • 高精度が必要な場合は補正や正規品選択が重要
  • 今後の報告 にも期待

Hackerたちの意見

比較するのは簡単だよ。安物とちゃんとしたやつ(同じ日付コードのやつ)を細かいサンドペーパーで削って、イソプロピルで掃除して、光学顕微鏡の下に置けば、ダイがどれだけ似てるか違うかがわかる。マークとか見なくても、同じ金属層まで削らなくても大丈夫。クローンは技術ノードやアーキテクチャ、ダイサイズが全然違うことが多いからね。基本的に機能的なクローンであって、マスククローンじゃないから。 (それと、探求作業における低技術のサンドペーパー技術に感謝を込めて、ここに削ったRP2350をクタクタのSEMの下に置いた写真を載せておくね。)

クローンじゃないかもしれないよ。著者が言ってたように、スペックの許容範囲を外れた生産ラインのアイテムがテストされて、オフラベルで再販された可能性もある。

これ、いろんな場面でやったことあるけど、主に調達のトラブル解決のためだね。沸騰した硫酸や硝酸に溶かすと、大抵のエポキシパッケージはすぐに処理できると思う。主に見てきたのは、ラベルの誤りや再梱包、明らかにQCの不合格品を流すことだね。昔の例だけど、これ見てみて: https://www.youtube.com/watch?v=e6DfBuPwAAA

ここで誰かにpingできるか分からないけど、これはケン・シリフにぴったりな話だね。 1. https://righto.com

安いパーツはどうなってるの?私の推測では、これはかなり良いコピーか、何らかの理由でホビストの供給チェーンに入ってしまった不良品だと思う。私が見た偽造チップの大半はゴーストシフトから来てたけど、確かTIはアナログ部品を自社で製造してるから、ゴーストシフトの部品や不良QCのものじゃないと思う。多分、ラベルが変わったADS1015だと思う。

面白いね、私に影響を与える偽造品(例えばFTDIやSTM32のクローン)は、余剰在庫やゴーストシフト、パッケージの不良品じゃなくて、ゼロから開発された純粋なクローンばかりだった。デジタルとミックスシグナルで分かれてて、それぞれ違う問題があるのかもね?(ちなみに、私が見たSTM32のクローンはフラッシュがスタックダイになってて、フラッシュも作れない技術で製造されてたから、パッケージを削ってボンディングワイヤーの追加セットを探せば簡単に偽造品とわかるよ。内部フラッシュバスにアクセスするのも面白いし、リードアウト保護をバイパスしたい時に便利だよ :))

ここで著者です。これについては考えたよ。他の人たちがADS1015がADS1115としてマークされてるのを報告してるからね。もしADS1015なら、読み出しは12ビットで切り捨てられるはずだ。これらの部品は確実に16ビットの読み出しを提供してる。

価格差は、LCSCがTIや似たようなところから大量に仕入れて、ボリュームが大きいから低いマージンで売ってるからだと思う。「クローン」チップはLCSCで売ってるのを見たけど、別のブランド名でリストされてた(残念ながら、記憶からは思い出せない)。

LCSCでの注文で大きな問題はなかったよ。結構いろいろ買ってるし。

これらは安くて、比較的速いけど、特に良いわけじゃない。12ビットや16ビットの読み出しができるって聞こえはいいけど、実際のビット数(ENOB)は大体8か9くらいだと思う。現代のMCUにはちょっと合わないんじゃないかな。通常は10ビット以上は引き出せるけど、非常に安定した外部基準電圧を提供したり、チップの不要なサブシステムをシャットダウンしたりする必要がある。スタンドアロンのADCにはまだ及ばないけど、ADCが必要な90%のことには実際に使えるレベルにはなってる。もっとビットが必要な場合は、設計にもっと色々入れないといけないから、この記事にはちょっと疑問を感じる。著者が使ってるPSUやMCUのノイズ、RFIの管理について何も書かれてないから、ここでの発見がスペックが悪いクローンデバイスなのか、彼のオーバーヘッドLEDランプが多くの干渉を引き起こしてるのかはわからない。

いくつかのSTM32F103開発ボードを試してみたんだけど、SiglentのSDM3055マルチメーターとSPD330X電源を使ったよ。チップは12ビットのSAR ADCを搭載してる。レイアウトとボードデザインはすごく重要だったけど、最悪のボードでも10ビット分はあったし、最高のボードはほぼ12ビットの効果があった。ソフトウェア側ではあまり手を加えてなくて、シリアル出力が一つ動いてるだけだった。悪いボードではシリアルが影響したけど、良いボードではほとんど影響がなかった。

お二人とも正しいかもしれないね。著者は、許容できるADC性能を目指した低コストのMCUを考えているかもしれないし、あなたたちはすべてのMCU、特に高コストのものを考えているかもしれない。RP2350は12ビットADCで9.2 ENOBを持ってる。確かに、複数のサンプルをデシメートしてビット数を増やすことはできるけど、スペックシートは著者の主張を支持してるよ(https://www.raspberrypi.com/documentation/pico-sdk/hardware....)。CH32V003のような、さらに性能が悪い低コストのMCUもある。一方で、STM32H7シリーズのように、16ビットADCで13ビット以上のENOBを出せるMCUも確実にある。これはすごいけど、H7のMCUはRP2350の約10倍の価格だから、著者があまりいじることはないかもね。 https://www.st.com/resource/en/application_note/dm00628458-g...

Hacker Newsで議論の続きを見る