1 điểm bởi GN⁺ 2025-10-16 | 1 bình luận | Chia sẻ qua WhatsApp
  • Mô-đun ADS1115 ADC giá rẻ cung cấp tính năng gần như tương đương thông số chính thức
  • Tính năng bộ khuếch đại độ lợi lập trình được cho phép đạt độ chính xác đo cao ngay cả trong các dải điện áp rất nhỏ
  • Đã xác nhận một số bo mạch giá rẻ có sai lệch về tốc độ đođộ chính xác
  • Khi áp dụng thuật toán hiệu chuẩn đơn giản, có thể thu được kết quả khá chính xác
  • Linh kiện giá rẻ có thể là hàng lỗi hoặc hàng nhái trong quá trình sản xuất, nhưng nhìn chung vẫn dùng ổn cho nhu cầu cơ bản

Thử nghiệm hiệu năng thực tế của ADS1115 ADC giá rẻ

Tổng quan

  • Trong các công việc nhúng, thông thường người ta dùng ADC (bộ chuyển đổi tương tự-số) tích hợp trong vi điều khiển
  • ADC tích hợp rẻ và nhanh, nhưng số bit đo thực tế (ENOB) chỉ ở mức 8~9 bit
  • Gần đây đã tiến hành thử nghiệm mô-đun ADS1115 của Texas Instruments(TI)
  • ADS1115 là ADC rời cung cấp độ chính xác tối đa 16 bit

Các đặc điểm chính của ADS1115

  • Nhờ khả năng mở rộng dynamic range, khi đo điện áp nhỏ có thể đo chi tiết hơn tối đa 20 lần
  • Thông qua programmable gain amplifier (PGA), có thể điều chỉnh toàn dải đo từ ±6.144 V xuống ±0.256 V
    • LSB nhỏ nhất khoảng 7.8 μV (0.256 V ÷ 32768), nên có thể nhận ra cả những thay đổi rất nhỏ
    • So với một bước khoảng 6mV của ADC tích hợp trong vi điều khiển thông thường (mốc 3.3V, 9 ENOB), độ phân giải vượt trội hơn hẳn
  • Việc sử dụng điện áp tham chiếu nội bộ là một lợi thế so với các MCU như RP2040 vốn cần tham chiếu analog bên ngoài

Vấn đề giá cả và môi trường thử nghiệm

  • ADS1115 có chênh lệch giá lớn: với số lượng 1.000 chiếc, Digikey khoảng $4 còn LCSC khoảng $0.60
  • Đã mua bo breakout ADS1115 giá $2.97/chiếc trên Amazon (nhiều khả năng dùng linh kiện loại $0.60)
  • Cũng dự định mua thêm bo giá cao (hàng chính hãng) của Adafruit để so sánh

Quá trình thử nghiệm thực tế

  • Đã thử bo giá rẻ bằng I²CMini và nguồn điện áp DC chính xác

  • Các điểm kiểm tra chính:

    • Có hoạt động đúng như thông số hay không
    • Hoặc có phải một linh kiện rẻ tiền khác đang bị bán nhầm thành ADS1115 hay không
  • Kết quả thử nghiệm

    • Hoạt động cơ bản, đầu ra 16 bit, programmable gain amplifier, nhiều tốc độ lấy mẫu v.v. nhìn chung đều phù hợp với datasheet của TI
    • Khi nối đầu vào ở differential mode thì luôn đo ra 0, khi đưa vào 2.5V thì đo chính xác, khi đảo cực thì xuất giá trị đối nghịch, nên không có vấn đề ở hoạt động cơ bản

Độ chính xác đo và sai số

  • Data Rate (tốc độ lấy mẫu): theo thông số TI cho phép sai lệch trong khoảng ±10%
    • Ở chế độ 8 SPS, ba bo chạy ở mức 6.5~7 SPS, hơi chậm hơn một chút
    • Một bo chạy sai hoàn toàn ở mức 300 SPS, nên bị loại khỏi các thử nghiệm sau đó
  • Khi đo điện áp chính xác (2.50067V) thì xuất ra 2.4883V, phát sinh sai số khoảng 12mV/0.5% (lớn hơn thông số chính thức của TI)
  • Khi áp dụng thuật toán hiệu chuẩn tuyến tính đơn giản trên vi điều khiển, sai số được cải thiện xuống dưới 10 μV

Kết luận

  • Nhiều khả năng đây là linh kiện lỗi hoặc linh kiện không đạt thông số so với hàng chính hãng đã lọt vào kênh phân phối hobby giá rẻ
  • Về cơ bản vẫn có thể đo khá chính xác, và nếu hiệu chuẩn bằng phần mềm thì không có vấn đề lớn trong sử dụng thực tế
  • Dự định sẽ lấy thêm bo chính hãng giá cao để thử lại trong cùng điều kiện

Kết lại

  • ADS1115 giá rẻ mang lại hiệu quả chi phí khá nổi bật
  • Nếu chỉ bổ sung hiệu chuẩn đơn giản ở mức phần cứng/firmware thì vẫn có thể đảm bảo độ chính xác thực dụng
  • Cần lưu ý nơi mua và quản lý chất lượng để kiểm tra các vấn đề như hàng lỗi

1 bình luận

 
GN⁺ 2025-10-16
Ý kiến Hacker News
  • Nếu mài cả linh kiện giá rẻ lẫn linh kiện chính hãng bằng giấy nhám mịn rồi làm sạch bằng isopropyl và đặt dưới kính hiển vi quang học thì rất dễ so sánh; không cần phải đi tới mức lộ ra các dấu khắc nhận dạng hay lớp kim loại cũng có thể nhanh chóng thấy được điểm giống và khác nhau về mặt cấu trúc của die chip; linh kiện clone thường khác biệt lớn về node công nghệ, kiến trúc, kích thước chip, v.v., vì phần lớn chỉ bắt chước chức năng; tôi khuyên dùng phương pháp bóc tách kiểu low-tech bằng giấy nhám và cũng chia sẻ hình ảnh liên quan (ảnh 1 / ảnh 2)

    • Tôi đã làm kiểu này nhiều lần, chủ yếu để giải quyết tranh chấp về nguồn gốc linh kiện; đa số package epoxy có thể bị loại bỏ rất nhanh bằng cách hòa tan trong axit sulfuric/nitric đang sôi; theo kinh nghiệm của tôi, phần lớn chỉ là dán nhãn lại đơn thuần, đổi bin, hoặc ngụy trang những sản phẩm rõ ràng trượt QC, và các mẫu như vậy khá thường gặp; cũng có một video ví dụ từ vài năm trước (liên kết video)

    • Chưa chắc đó là clone; như tác giả gốc nói, cũng có nhiều trường hợp sản phẩm bị đánh giá không đạt chuẩn trong quy trình sản xuất được đóng gói lại rồi tung vào kênh phân phối phổ thông

    • Nếu ở đây có chức năng gắn thẻ thì đây đúng là chủ đề mà Ken Shirriff sẽ rất thích; khuyên nên xem blog của ông ấy (righto.com)

  • Tôi không đồng ý với nhận định rằng "nó rẻ, tương đối nhanh nhưng chất lượng không mấy tốt; dù đầu ra ghi 12/16 bit thì ENOB thực chỉ khoảng 8~9"; với MCU hiện đại, chỉ cần chú ý như cung cấp điện áp tham chiếu ngoài ổn định và tắt các subsystem không cần thiết trong chip thì hoàn toàn có thể đạt ENOB trên 10 bit; dĩ nhiên một ADC tích hợp đơn lẻ sẽ không tốt bằng ADC rời chuyên dụng, nhưng trên thực tế vẫn đủ dùng cho 90% nhu cầu ADC; nếu cần số bit cao hơn thì thiết kế sẽ đòi hỏi nhiều công sức hơn, nhưng trong bài không thấy tác giả nói gì về bộ nguồn đang dùng, nhiễu từ MCU hay việc kiểm soát RFI; vì vậy khó kết luận đây thực sự là IC nhái có thông số kém hay chỉ là môi trường thí nghiệm quá nhiều nhiễu

    • Nếu cấu hình hai GPIO theo topology sigma-delta bậc một với hai điện trở ngoài, một tụ điện và tắt hysteresis thì có thể thu được kết quả khá thú vị; dùng RP2040 với nguồn LDO và đo vi sai (một kênh chỉ theo dõi nhiễu ngưỡng) tôi đã đạt 16 ENOB ở 1kHz và còn cao hơn với DC; điều rất quan trọng là không để chip có hoạt động tuần hoàn, ví dụ nên dùng sleep theo khoảng ngẫu nhiên để làm trải phổ; USB cũng có thể dùng với mức nhiễu dưới -100dB; tôi chưa thử độ chính xác DC, nhưng khi dùng các kênh GPIO tương tự thì nó vẫn đủ ổn cho các mục đích không quan trọng, độ chính xác thấp như cảm biến đường CC hay joystick analog

    • Cả hai ý kiến đều có thể đúng; tác giả gốc có thể đang nói đại diện cho nhóm MCU giá rẻ, còn người bình luận thì có vẻ đang nghĩ tới MCU phân khúc cao hơn; ADC 12 bit của RP2350 theo spec là 9.2 ENOB; có thể cao hơn nếu decimate từ nhiều mẫu, nhưng datasheet chính là căn cứ cho nhận định của tác giả (liên kết tài liệu chính thức Raspberry Pi); MCU rẻ hơn nữa như CH32V003 còn có hiệu năng ADC tệ hơn; ngược lại cũng có MCU như dòng STM32H7 ghi nhận 13+ ENOB với ADC 16 bit; tuy nhiên H7 đắt hơn RP2350 hơn 10 lần nên người làm thí nghiệm không hay dùng (ghi chú ứng dụng ADC STM32H7)

    • Tôi đã thử vài board phát triển STM32F103 bằng đồng hồ vạn năng Siglent SDM3055 và nguồn Siglent SPD330X; ADC SAR 12 bit của chip bị ảnh hưởng khá nhiều bởi layout và thiết kế board; mẫu tệ nhất cũng cho hiệu quả cỡ 10 bit, còn mẫu tốt nhất gần đạt hiệu quả 12 bit; mức này có được mà không cần tinh chỉnh phần mềm đặc biệt nào; hiệu năng đôi khi giảm khi giao tiếp đang hoạt động, ngoài ra không thấy ảnh hưởng nhiễu nào đặc biệt

    • Tôi từng định dùng ADS1115 (hàng thật) cho một dự án nhưng cuối cùng chọn STM32g071; rẻ hơn, lúc đó dễ mua hơn và linh hoạt hơn; ADC trên các dòng STM32g/h gần đây rõ ràng đã giảm đáng kể các rủi ro về phần cứng/phần mềm so với dòng f103 cũ

    • Tôi muốn chỉ ra rằng đoạn đó nói "ADC của vi điều khiển có dải cố định 3.3V nên 9 ENOB tương đương chênh lệch khoảng 6mV", nghe như thể mọi MCU đều không có điện áp tham chiếu độc lập; nhưng thực tế có khá nhiều MCU, bao gồm cả NXP, hỗ trợ điện áp tham chiếu lập trình được tích hợp

  • Về ý kiến rằng "linh kiện giá rẻ phần lớn là bản sao cực tốt hoặc hàng lỗi không qua QC bị tuồn vào kênh phân phối", đa số chip giả mà tôi từng thấy thường là hàng làm trong ghost shift hơn là như vậy, nhưng TI sản xuất toàn bộ sản phẩm analog trong nội bộ nên tôi cho rằng khả năng là ghost shift hoặc hàng trượt QC là thấp; cá nhân tôi thấy khả năng cao hơn là ADS1015 bị relabel thành ADS1115

    • Những hàng giả từng gây thiệt hại cho tôi (FDTI, clone STM32, v.v.) phần lớn là hàng nhái sao chép trực tiếp; so với hàng tồn kho dư, ghost shift hay hàng lỗi được đóng gói lại thì tôi gặp kiểu này thường xuyên hơn trong mảng số và mixed-signal; nói thêm là chip clone STM32 có flash die xếp chồng, vì họ không làm được quy trình flash nên phải làm riêng rồi chồng lên, thành ra khi mài package sẽ thấy thêm một bộ bonding wire; cũng có thể dùng bus này để vượt qua cơ chế bảo vệ đọc

    • Tôi là tác giả bài viết, và tôi cũng biết đã có báo cáo về trường hợp ADS1015 bị dán nhãn thành ADS1115; nếu đúng là ADS1015 thì đầu ra đã phải bị cắt ở 12 bit, nhưng các linh kiện tôi thử rõ ràng đều cho readout 16 bit

  • Tôi quan tâm tới các câu chuyện và bối cảnh trong lĩnh vực ADC; thực tế tôi mới chỉ dùng ở tốc độ chậm; tôi bắt đầu với MCP3208 (SPI), dùng 8 kênh ở 100K mẫu/giây, nhưng thấy chậm nên cần ADC nhanh hơn và chuyển sang ADS7953; nó có 16 kênh và nhanh hơn 10 lần nên hiệu năng rõ ràng tốt hơn hẳn; bù lại lập trình khó hơn, và để đạt tốc độ tối đa thì phải quét đầu vào theo thứ tự cố định; với tôi những con chip này giống như xe hơi: ADS7953 như siêu xe còn MCP3208 như một chiếc Toyota đơn giản; tôi cũng tò mò về lịch sử công nghiệp của các chip ADC này, chúng đã định vị trên thị trường như thế nào và được dùng rộng rãi đến đâu

    • Tôi từng thấy một dự án ở CERN nơi ADC 12 bit đạt tốc độ lấy mẫu hàng chục GHz; bí quyết chính là xử lý song song; họ nhân bản nhiều khối SAR 12 bit chạy ở mức MHz rồi dùng một analog multiplexer cỡ lớn để phân phối tín hiệu theo kiểu round-robin; cách này tốn diện tích chip khủng khiếp nhưng đạt được tốc độ rất cao; ngoài những biện pháp cực đoan như vậy còn có flash ADC (wiki flash ADC) hoặc multislop ADC để ưu tiên độ chính xác (hướng dẫn multislop ADC); tôi cũng muốn biết thêm về lịch sử và các câu chuyện hậu trường

    • Tôi cũng muốn nhắc tới AD9226; chỉ có 1 kênh nhưng là 12 bit và có thể đạt tới 65MSa/s; tôi mua trên AliExpress khoảng $12 và dùng cho thí nghiệm giải mã phần mềm video analog; khi dùng với Raspberry Pi Zero và peripheral SMI ở mức khoảng 8 bit, 20MSa/s, điều bất ngờ là nút thắt lại nằm ở truyền dữ liệu; tham khảo thêm cách dùng SMI này (liên kết iosoft.blog)

    • Tốc độ 100K mẫu/giây trong thế giới của tôi đã là cực kỳ nhanh; với tôi việc nâng tốc độ chuẩn 2K mẫu/giây lên 10K trong chương trình PLC đã được xem là hiệu năng rất cao trong thực tế

    • ADC siêu tốc quá khó để xử lý trực tiếp bằng vi điều khiển nên đó chủ yếu là lãnh địa của FPGA; thường phải cho FPGA nhận trực tiếp dữ liệu ADC rồi chuyển đổi sang bus song song để MCU dễ xử lý hơn; vì truyền tốc độ siêu cao đòi hỏi nhiều chân, nhiều xử lý thủ công và DMA nên thực tế thấy rất khó

  • Trái với nhận định rằng "ADC 12~16 bit chỉ đạt ENOB khoảng 8~9", phương pháp chuyển đổi 1 bit dùng trong SACD (hàng triệu mẫu mỗi giây) đạt dải động 120dB và băng thông khoảng 100kHz; trong khi CD (PCM 16 bit) chỉ ở mức 96dB, 20kHz; xét từ góc độ độ phức tạp của phần cứng analog thì bộ chuyển đổi 1 bit/bitstream đơn giản hơn nhiều; việc ADC 16 bit có giá rẻ cũng là nhờ sản xuất hàng loạt; trên thực tế, cách thay thế độ sâu bit bằng tốc độ lấy mẫu là một ý tưởng khá hấp dẫn, hơi giống SSAA trong đồ họa 3D lấy mẫu nhiều pixel hơn để thu được thông tin tần số cao (wiki 1-bit DAC, wiki Direct Stream Digital)

  • ADC giá $3 không phải là rẻ; ADC thực sự giá rẻ là loại tích hợp sẵn trong MCU giá rẻ; TI cũng cố ý bán AES/ADC giá thấp bị giới hạn ở 10/12 bit, nhưng độ tuyến tính thực tế vẫn có thể vượt 16 bit; chi phí sản xuất giữa hàng lỗi và hàng đạt gần như không khác biệt; nếu cùng quy trình bán dẫn và thiết kế đủ vững thì ADC giá rẻ cũng không nhất thiết có hiệu năng kém hơn hẳn

  • LCSC có thể rẻ vì họ mua số lượng lớn trực tiếp từ TI và các hãng khác rồi bán với biên lợi nhuận thấp; tôi từng thấy chip clone trên LCSC nhưng phần lớn được bán dưới tên thương hiệu khác

    • Tôi đã đặt rất nhiều linh kiện từ LCSC nhưng chưa từng gặp vấn đề lớn nào
  • Giá thấp không nhất thiết đồng nghĩa với chất lượng kém; ADC độ chính xác cao nếu không cần tốc độ lấy mẫu cao thì nhờ kỹ thuật xử lý tín hiệu mà khá dễ thực hiện; các phương pháp delta-sigma hay ramp ADC đều có thể đo chính xác cao chỉ với mạch sample-and-hold và một bit duy nhất; đổi lại là cần thời gian; còn nếu muốn flash ADC 16 bit 100MHz thì có khi phải cầm cố cả căn nhà mới đủ tiền

  • Hầu hết các công ty đều có chính sách giá theo khu vực; ví dụ gói Spotify của tôi chỉ khoảng 60% giá tại Mỹ; ngành điện tử cũng có bảng giá riêng cho thị trường Trung Quốc; và xin lưu ý rằng giá niêm yết chính thức ở phương Tây chỉ là mức trần tối đa, trên thực tế ngay cả dự án nhỏ cũng có thể được giảm giá nếu liên hệ trực tiếp với bộ phận sales

  • Trên thực tế, ADC giá $3 không phải là linh kiện rẻ, và ở những quốc gia có chi phí sản xuất thấp thì còn mua được rẻ hơn nhiều; cuối cùng điều quan trọng là trong kiểm thử nhà máy sản phẩm hoạt động đúng, và chỉ cần vượt qua các điều kiện mà bộ jig test theo từng sản phẩm đặt ra thì thực tế như vậy đã là đủ

    • Trên một board có hàng chục hay hàng trăm linh kiện, linh kiện giá $3 thường lại là một trong những món đắt nhất; nếu bạn muốn xuất xưởng thành phẩm ở mức $20 thì chênh lệch này là rất lớn; ngoài ra, nếu có thể tin vào dữ liệu từ nhà sản xuất thì thiết bị kiểm thử cũng có thể được thiết kế đơn giản và rẻ hơn nhiều; ví dụ chỉ cần đem một số mẫu đi kiểm tra độ bền dài hạn bằng ảnh nhiệt, buồng môi trường, tín hiệu lặp lại, v.v., và nếu TI bảo đảm dải -40~+125 độ thì ta sẽ tin phần lớn các điều kiện biên theo đó; không thể kiểm thử 100% mọi board trong môi trường thực tế theo thời gian thực, nhưng ít nhất cũng cần chạy thử trên board để bật và kiểm tra từng chức năng chính một lần; dù vậy, việc đó cũng không có nghĩa là bạn tự mình xác minh toàn bộ thông số thực tế