1 पॉइंट द्वारा GN⁺ 2025-10-16 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • कम कीमत वाला ADS1115 ADC मॉड्यूल आधिकारिक स्पेक्स के लगभग समान फीचर देता है
  • Programmable Gain Amplifier फीचर की मदद से बहुत छोटे voltage range में भी उच्च measurement precision मिलती है
  • कुछ सस्ते बोर्डों में measurement speed और accuracy में विचलन के मामले पाए गए
  • एक सरल calibration algorithm लागू करने पर काफी सटीक परिणाम निकाले जा सकते हैं
  • सस्ते पार्ट्स में निर्माण-स्तर के defect या copy part होने की संभावना है, लेकिन सामान्य उपयोग में बड़ी दिक्कत नहीं है

कम कीमत वाले ADS1115 ADC का वास्तविक प्रदर्शन परीक्षण

अवलोकन

  • embedded कामों में आमतौर पर microcontroller में built-in ADC (analog-to-digital converter) का उपयोग किया जाता है
  • built-in ADC सस्ता और तेज़ होता है, लेकिन वास्तविक measurement bit count (ENOB) आमतौर पर 8~9 bit स्तर का होता है
  • हाल ही में Texas Instruments(TI) के ADS1115 मॉड्यूल का परीक्षण किया गया
  • ADS1115 अधिकतम 16-bit accuracy देने वाला एक external ADC है

ADS1115 की मुख्य विशेषताएँ

  • dynamic range बढ़ाने की क्षमता के कारण छोटे voltage को मापते समय अधिकतम 20 गुना अधिक बारीकी से मापा जा सकता है
  • Programmable Gain Amplifier(PGA) के जरिए पूरे measurement range को ±6.144 V से ±0.256 V तक समायोजित किया जा सकता है
    • न्यूनतम LSB लगभग 7.8 μV (0.256 V ÷ 32768) है, इसलिए बहुत सूक्ष्म बदलाव भी पहचाने जा सकते हैं
    • पारंपरिक microcontroller built-in ADC (3.3V मानक, 9 ENOB) में एक step लगभग 6mV होने की तुलना में इसकी resolution कहीं बेहतर है
  • internal voltage reference के उपयोग से RP2040 जैसे बाहरी analog reference की ज़रूरत वाले MCU की तुलना में यह लाभ देता है

कीमत से जुड़ा मुद्दा और टेस्ट वातावरण

  • ADS1115 की कीमत 1,000 यूनिट के आधार पर Digikey पर लगभग $4 और LCSC पर $0.60 है, यानी कीमत में बड़ा अंतर है
  • Amazon से प्रति यूनिट $2.97 वाला ADS1115 breakout board खरीदा गया (संभावना है कि उसमें $0.60 वाला पार्ट इस्तेमाल हुआ हो)
  • तुलना परीक्षण के लिए Adafruit का महंगा (असली) बोर्ड भी अलग से खरीदा जाना है

वास्तविक परीक्षण प्रक्रिया

  • I²CMini और एक precision DC voltage source की मदद से सस्ते बोर्ड का परीक्षण किया गया

  • मुख्य जाँच बिंदु:

    • क्या यह स्पेक के अनुसार काम करता है
    • या फिर कोई और सस्ता पार्ट ADS1115 के रूप में बेचा जा रहा है
  • परीक्षण परिणाम

    • बुनियादी व्यवहार, 16-bit output, Programmable Gain Amplifier, विभिन्न sampling speed आदि कुल मिलाकर TI datasheet से मेल खाते हैं
    • differential mode में input जोड़ने पर हमेशा 0 मापना, 2.5V input पर सही measurement देना, polarity उलटने पर उलटा मान दिखाना—इन बुनियादी व्यवहारों में कोई समस्या नहीं मिली

measurement accuracy और त्रुटि

  • Data Rate(sampling speed) : TI स्पेक के अनुसार ±10% के भीतर विचलन स्वीकार्य है
    • 8 SPS मोड में तीन बोर्ड 6.5~7 SPS पर थोड़ा धीमे चले
    • एक बोर्ड 300 SPS पर पूरी तरह गलत timing के साथ चला, इसलिए उसे आगे के परीक्षण से हटा दिया गया
  • precision voltage(2.50067V) मापने पर 2.4883V output, यानी लगभग 12mV/0.5% की त्रुटि मिली (TI के आधिकारिक स्पेक से अधिक)
  • microcontroller पर एक सरल linear calibration algorithm लागू करने से त्रुटि 10 μV के भीतर सुधर गई

निष्कर्ष

  • अनुमान है कि कम कीमत वाले hobbyist distribution चैनल में defect वाले या असली उत्पाद की तुलना में कम स्पेक वाले पार्ट्स आ गए हैं
  • मूल रूप से यह काफ़ी सटीक measurement करने में सक्षम है, और software calibration कर देने पर वास्तविक उपयोग में बड़ी समस्या नहीं होती
  • महंगे असली बोर्ड को बाद में प्राप्त कर समान परिस्थितियों में दोबारा परीक्षण किया जाएगा

समापन

  • कम कीमत वाला ADS1115 कीमत के मुकाबले काफ़ी अच्छा value देता है
  • hardware/firmware स्तर पर सरल calibration जोड़ दी जाए तो व्यावहारिक accuracy हासिल की जा सकती है
  • defect जैसी समस्याओं की पुष्टि के लिए खरीद स्रोत और quality control पर ध्यान देना ज़रूरी है

1 टिप्पणियां

 
GN⁺ 2025-10-16
Hacker News राय
  • सस्ते और असली दोनों पार्ट्स को बारीक sandpaper से घिसकर isopropyl से साफ करने के बाद optical microscope के नीचे रखें तो तुलना आसान हो जाती है; पहचानने योग्य markings या metal layer तक जाने की ज़रूरत नहीं पड़ती, chip die की संरचनात्मक समानताएँ और अंतर तुरंत समझ में आ जाते हैं; clone पार्ट्स में आम तौर पर process node, architecture, chip size आदि में बड़े अंतर दिखते हैं, क्योंकि वे प्रायः सिर्फ functionality की नकल करते हैं; sandpaper से low-tech teardown तरीका सुझाया गया है और संबंधित images भी साझा की गई हैं (image 1 / image 2)

    • मैंने ऐसा काम कई बार किया है, ज़्यादातर component sourcing disputes सुलझाने के लिए; ज़्यादातर epoxy packages को उबलते sulfuric/nitric acid में डालने पर जल्दी हटाया जा सकता है; मेरे अनुभव में अधिकांश मामले सिर्फ relabeling, bin change, या साफ़ तौर पर QC fail parts को छिपाने के होते हैं, और अक्सर sample pieces ही मिलते हैं; कुछ साल पुराना एक example video भी है (video link)

    • यह ज़रूरी नहीं कि clone ही हो; मूल लेखक ने जैसा कहा, manufacturing process में standard से नीचे पाए गए products को repack करके सामान्य distribution channel में भेजने के मामले भी काफ़ी होते हैं

    • अगर यहाँ tag feature होता, तो यह Ken Shirriff के लिए बिल्कुल उपयुक्त विषय होता; उनका blog (righto.com) देखने लायक है

  • मैं इस दावे से सहमत नहीं हूँ कि "यह सस्ता और अपेक्षाकृत तेज़ है, लेकिन गुणवत्ता बहुत अच्छी नहीं है; 12/16-bit output spec होने पर भी effective bits (ENOB) लगभग 8~9 ही हैं"; अगर आधुनिक MCU हो, तो external reference voltage को स्थिर रखना और chip के भीतर अनावश्यक subsystems को बंद करना जैसी सावधानियाँ रखकर 10-bit से अधिक ENOB आराम से निकाला जा सकता है; बेशक, एक single ADC standalone ADC जितना अच्छा नहीं होगा, लेकिन 90% ADC जरूरतों के लिए यह व्यवहारिक रूप से पर्याप्त है; अगर और अधिक bits चाहिएँ, तो design में अधिक मेहनत लगती है, लेकिन लेख के लेखक ने अपने power supply, MCU noise, या RFI management के बारे में कुछ नहीं बताया; इसलिए यह तय करना कठिन है कि सच में spec से कमज़ोर नकली IC था या test setup में noise ज़्यादा था

    • अगर दो GPIO को first-order sigma-delta topology में, दो external resistors, एक capacitor, और hysteresis disabled स्थिति के साथ configure किया जाए, तो दिलचस्प परिणाम मिल सकते हैं; RP2040 और LDO power supply के साथ differential measurement में (एक channel सिर्फ threshold noise track करने के लिए) मैंने 1kHz पर 16 ENOB और DC पर इससे भी अधिक ENOB पाया; chip में periodic activity न होना बहुत महत्वपूर्ण है; उदाहरण के लिए, spectrum फैलाने के लिए random interval पर sleep का उपयोग करना चाहिए, और USB को -100dB से नीचे noise के साथ इस्तेमाल किया जा सका; DC accuracy अभी नहीं परखी, लेकिन समान GPIO channels के साथ CC line sensing या analog joystick जैसे non-critical, low-precision उपयोगों के लिए यह उपयोगी हो सकता है

    • दोनों लोगों की बात सही हो सकती है; मूल लेखक शायद सिर्फ low-end MCU की बात कर रहा था, जबकि commenter के मन में higher-end MCU रहे होंगे; RP2350 का 12-bit ADC spec के अनुसार 9.2 ENOB है; multi-sample decimation से यह और बढ़ सकता है, लेकिन datasheet लेखक के दावे का आधार है (Raspberry Pi official docs link); इससे भी सस्ता MCU CH32V003 इससे खराब ADC performance देता है; दूसरी ओर STM32H7 series जैसे MCU भी हैं जो 16-bit ADC में 13+ ENOB दर्ज करते हैं; लेकिन H7, RP2350 से 10 गुना से भी अधिक महँगा है, इसलिए hobbyists उसे अक्सर नहीं छेड़ते (STM32H7 ADC application note)

    • कुछ STM32F103 development boards को Siglent SDM3055 multimeter और Siglent SPD330X power supply के साथ test किया गया; chip के 12-bit SAR ADC पर layout और board design का असर बड़ा था; सबसे खराब sample में भी 10-bit, और सबसे अच्छे में लगभग 12-bit के बराबर प्रभावी परिणाम दिखे; बिना किसी खास software tuning के भी इतना मिला, हालाँकि communication active होने पर performance गिरती थी, लेकिन उसके अलावा कोई विशेष noise impact नहीं दिखा

    • मैं अपने project में (असली) ADS1115 इस्तेमाल करने वाला था, लेकिन अंततः STM32g071 चुना; यह सस्ता था, उस समय आसानी से उपलब्ध था, और flexibility भी बेहतर थी; हाल के STM32g/h series ADC में पुराने f103 परिवार की तुलना में hardware/software risk factors स्पष्ट रूप से कम हुए हैं

    • मैं सिर्फ यह बताना चाहता था कि "उस paragraph में कहा गया है कि microcontroller के ADC का fixed 3.3V range होने पर 9 ENOB लगभग 6mV step देता है" — इससे ऐसा लगता है मानो सभी MCU में independent reference voltage नहीं होता; लेकिन NXP सहित कई MCU में built-in programmable reference voltage का support होता है

  • "सस्ते components अधिकतर या तो बेहतरीन copies होते हैं, या QC fail parts जो distribution chain में घुस गए" — इस राय पर, मैंने जितने counterfeit chips देखे हैं उनमें से अधिकतर ghost shift (औपचारिक ड्यूटी समय के बाहर गुप्त production) वाले cases थे; लेकिन TI अपने सभी analog products in-house बनाता है, इसलिए ghost shift या QC reject part होने की संभावना कम लगती है; व्यक्तिगत रूप से मुझे यह relabeled ADS1015 होने की संभावना अधिक लगती है

    • जिन counterfeits से मुझे नुकसान हुआ (FDTI, STM32 clones आदि), उनमें अधिकांश सीधे copied नकली थे; excess inventory, ghost shift, या bad-part repackaging की तुलना में यह digital और mixed-signal क्षेत्र में अधिक देखने को मिलता है; उदाहरण के लिए STM32 clone chips में stacked-die flash होती है, क्योंकि वे flash process नहीं कर सकते, इसलिए उसे अलग से stack किया जाता है; package sanding करने पर bonding wires का एक अतिरिक्त set दिखता है; इसी bus के जरिए read protection bypass भी किया जा सकता है

    • मैं इस पोस्ट का लेखक हूँ, और मुझे भी पता है कि ADS1015 को ADS1115 के रूप में relabel करने के मामले रिपोर्ट हुए हैं; अगर यह ADS1015 होता, तो output 12-bit पर ही रुक जाता, लेकिन जिन parts को मैंने test किया उनमें साफ़ तौर पर 16-bit readout आया

  • मुझे ADC क्षेत्र की कहानियों और पृष्ठभूमि में दिलचस्पी है; वास्तव में मैंने इन्हें अब तक सिर्फ धीमी गति पर ही इस्तेमाल किया है; शुरुआत MCP3208 (SPI) से की थी, 8 channels और 100Ksample/s के साथ, लेकिन वह धीमा लगा तो ADS7953 पर गया; उसमें 16 channels थे और speed भी 10 गुना अधिक थी, इसलिए performance स्पष्ट रूप से बेहतर थी; हालाँकि programming अधिक कठिन थी, और top speed पाने के लिए inputs को तय क्रम में scan करना पड़ता था; मुझे ये chips कारों जैसे लगते हैं — ADS7953 सुपरकार जैसा है और MCP3208 एक simple Toyota जैसा; मैं यह भी जानना चाहता हूँ कि अलग-अलग ADC chips ने बाज़ार में अपनी जगह कैसे बनाई और उनका industrial history क्या है

    • मैंने CERN में एक project देखा था जहाँ 12-bit ADC दर्जनों GHz sampling speed तक पहुँचा; इसका रहस्य parallelism था; MHz-class पर चलने वाले कई 12-bit SAR units को replicate करके एक बड़े analog multiplexer से round-robin तरीके से signal बाँटा गया; इसमें chip area बहुत अधिक लगता है, लेकिन speed मिल जाती है; ऐसे extreme तरीकों के अलावा flash ADC (flash ADC wiki) और precision के लिए multislope ADC (multislope ADC tutorial) भी इस्तेमाल होते हैं; इनके इतिहास और पीछे की कहानियाँ भी जानने की इच्छा है

    • AD9226 का भी ज़िक्र करना चाहूँगा; यह single-channel है, लेकिन 12-bit और अधिकतम 65MSa/s तक जा सकता है; मैंने इसे AliExpress से लगभग $12 में लेकर analog video software decoding experiments में इस्तेमाल किया; जब मैं इसे Raspberry Pi Zero और SMI peripheral के साथ लगभग 8-bit, 20MSa/s पर चला रहा था, तो आश्चर्यजनक रूप से bottleneck data transfer ही था; संदर्भ के लिए SMI के इस उपयोग का तरीका (iosoft.blog link)

    • 100Ksample/s की speed मेरी दुनिया में बेहद तेज़ मानी जाती है; PLC programs में standard 2Ksample/s को 10K तक बढ़ाना भी व्यावहारिक रूप से बहुत high performance माना जाता है

    • ultra-high-speed ADC को microcontroller से सीधे संभालना बहुत मुश्किल होता है, इसलिए यह ज़्यादातर FPGA का क्षेत्र है; FPGA को ADC data सीधे लेकर उसे parallel bus में बदलना पड़ता है ताकि MCU उसे आसानी से संभाल सके; और high-speed transfer में बहुत सारे pins, manual handling, और DMA की ज़रूरत होती है, इसलिए व्यवहारिक रूप से यह कठिन लगता है

  • "12~16-bit ADC का ENOB लगभग 8~9 होता है" इस दावे के विपरीत, SACD में इस्तेमाल हुई 1-bit conversion scheme (प्रति सेकंड लाखों samples) 120dB dynamic range और लगभग 100kHz bandwidth हासिल करती है; CD (16-bit PCM) 96dB और 20kHz range देता है; analog hardware complexity के लिहाज़ से 1-bit/bitstream converter बहुत सरल होता है; 16-bit ADC का सस्ता होना बड़े पैमाने पर production का भी नतीजा है; वास्तव में bit depth की जगह sampling speed का उपयोग करना काफ़ी आकर्षक तरीका है, कुछ वैसा ही जैसे 3D graphics में SSAA अधिक pixels sample करके high-frequency जानकारी पकड़ता है (1-bit DAC wiki, Direct Stream Digital wiki)

  • $3 का ADC सस्ता नहीं है; असली low-cost ADC तो वही है जो low-cost MCU के भीतर built-in आता है; TI भी जानबूझकर 10/12-bit तक सीमित AES/ADC कम दाम में बेचता है, जबकि वास्तविक linearity 16-bit से अधिक भी हो सकती है; defective और good parts की production cost में लगभग कोई अंतर नहीं होता; अगर semiconductor process समान हो और design मज़बूत हो, तो low-cost ADC की performance अपने आप खराब नहीं होती

  • LCSC, TI जैसी कंपनियों से सीधे bulk में खरीदकर कम margin पर बेचता है, इसलिए दाम कम हो सकते हैं; मैंने LCSC पर clone chips देखे हैं, लेकिन ज़्यादातर वे अलग brand name से बेचे जाते हैं

    • मैंने LCSC से बहुत से components मँगाए हैं, लेकिन कभी कोई बड़ी समस्या नहीं हुई
  • कम कीमत का मतलब यह नहीं कि गुणवत्ता ज़रूर खराब होगी; high-precision ADC, अगर high sample rate न चाहिए, तो signal processing techniques की मदद से काफ़ी आसानी से बनाए जा सकते हैं; delta-sigma या ramp-type ADC में pattern hold circuit और single bit के सहारे भी high-precision measurement संभव है; बस समय लगता है; लेकिन अगर आपको 16-bit 100MHz flash ADC चाहिए, तो वह घर गिरवी रखने जितना महँगा पड़ सकता है

  • अधिकांश कंपनियों की region-wise pricing policy होती है; उदाहरण के लिए मेरा Spotify subscription, अमेरिका की तुलना में लगभग 60% कीमत पर है; electronics industry में भी China-only price lists होती हैं; और पश्चिमी देशों की official listing price अक्सर सिर्फ upper ceiling होती है; वास्तव में छोटे projects के लिए भी sales team से सीधे संपर्क करें तो discount मिल सकता है

  • व्यवहार में $3 का ADC इतना सस्ता component नहीं है, और जिन देशों में manufacturing cost कम है वहाँ इसे और भी सस्ते में खरीदा जा सकता है; आखिरकार महत्वपूर्ण यह है कि factory test के समय product सही तरह काम करे, और product-specific test jig द्वारा तय की गई conditions को pass कर ले — व्यवहार में अक्सर इतना ही काफ़ी होता है

    • दर्जनों या सैकड़ों parts वाले board में $3 का component उल्टा सबसे महँगे items में से एक हो सकता है; अगर आप complete product को $20 में ship करना चाहते हैं, तो यह अंतर बहुत मायने रखता है; और अगर आप manufacturer data पर भरोसा कर सकते हैं, तो test equipment भी कहीं अधिक simple और सस्ता डिज़ाइन किया जा सकता है; उदाहरण के लिए कुछ samples पर ही long-term durability tests (thermal imaging, environmental chamber, repeated input आदि) किए जाएँ, और अगर TI -40~+125°C तक guarantee देता है, तो ज़्यादातर boundary conditions पर उसी पर भरोसा किया जा सकता है; हर board का 100% real-time environment test संभव नहीं, लेकिन in-circuit test के ज़रिए कम से कम सभी प्रमुख functions को एक बार चालू करके देखना महत्वपूर्ण है; हालाँकि उससे भी वास्तविक specifications का पूरा direct verification नहीं हो जाता