So sánh hiệu suất ADC của SoC Espressif

01 Tháng 10,2025

Tác giả : Kỹ sư Zhang Wei chia sẻ tại Cổng thông tin dành cho nhà phát triển của Espressif

Link bài viết gốc: Link

Bài viết này so sánh hiệu suất của bộ chuyển đổi tương tự – số (ADC) trên các SoC khác nhau của Espressif, đồng thời giới thiệu các kỹ thuật cải thiện độ chính xác của ADC thông qua hiệu chuẩn bằng phần mềm. Kết quả sẽ giúp các nhà phát triển lựa chọn SoC phù hợp nhất và tối ưu hóa nó theo yêu cầu về độ chính xác cũng như dải điện áp của ứng dụng.

Giới thiệu

Bộ chuyển đổi Tương tự – Số (ADC) đóng vai trò thiết yếu trong việc kết nối giữa thế giới tín hiệu tương tự và các hệ thống số. Nó được sử dụng rộng rãi để đưa các tín hiệu tương tự — ví dụ như nhiệt độ, âm thanh và điện áp — vào miền số để xử lý tiếp theo.

Độ chính xác của ADC phụ thuộc vào các thông số kỹ thuật của nó, bao gồm độ phân giải, dải đo và tốc độ lấy mẫu. Ngoài ra, nhiều yếu tố khác cũng có thể ảnh hưởng đến độ chính xác, chẳng hạn như sai số offset và gain, độ phi tuyến (DNL và INL), cũng như sự trôi do nhiệt độ.

Trong bài viết này, chúng ta sẽ đi sâu vào các chi tiết kỹ thuật, thảo luận về độ chính xác của các SoC Espressif khác nhau, đồng thời khám phá các kỹ thuật hiệu chuẩn và cải thiện độ chính xác của chúng. Các SoC Espressif sau sẽ được đề cập:

  • ESP32
  • ESP32-S2
  • ESP32-S3
  • ESP32-C3
  • ESP32-C2
  • ESP32-C6
  • ESP32-H2
  • ESP32-P4
  • ESP32-C5

Thông số kỹ thuật của ADC

Các SoC của Espressif được tích hợp một hoặc hai bộ ADC, có khả năng đo tín hiệu tương tự trên các chân IO chuyên dụng. Bảng dưới đây so sánh một số thông số kỹ thuật của chúng. Các thông số chi tiết có thể được tìm thấy trong datasheet tương ứng.

ADC SAR Nghị quyết Kênh Phạm vi
(mV)
DNL INL Tốc độ lấy mẫu
(Ksps)
Sự thay đổi
giữa
các mẫu
ESP32 x2 12-bit 8+10 150 ~ 2450 ±7 ±12 RTC: 200
DIG: 2000
±6%
ESP32-S2 x2 13-bit 10+10 0 ~ 2500 ±7 ±12
ESP32-S3 x2 12-bit 10+10 0 ~ 2900 ±4 ±8 100 ±100 mV
ESP32-C3 x2 12-bit 6 0 ~ 2500 ±7 ±12 100
ESP32-C2 x1 12-bit 5 0 ~ 2800 +3, -1 +8, -4 100
ESP32-C6 x1 12-bit 7 0 ~ 3300 +12, -8 ±10 100
ESP32-H2 x1 12-bit 5 0 ~ 3300 +12, -8 ±10 100
ESP32-P4 x2 12-bit 14 0 ~ 3300 +3, -1 +3, -5 100
ESP32-C5 x1 12-bit 6 0 ~ 3300 ±5 ±5 2000

Bảng 1. So sánh thông số kỹ thuật của ADC

Hiệu chuẩn ADC

Trong ESP-IDF, một driver hiệu chuẩn ADC được cung cấp để hiệu chuẩn giá trị ADC thô trong quá trình chuyển đổi. Driver hiệu chuẩn này giúp cải thiện độ chính xác bằng cách giảm thiểu phần lớn sai số.

Driver hiệu chuẩn ADC cung cấp các phương thức hiệu chuẩn ADC. Các SoC của Espressif hỗ trợ hai phương thức: Line Fitting hoặc Curve Fitting.

  • Line Fitting: áp dụng phép biến đổi tuyến tính trong quá trình hiệu chuẩn.

  • Curve Fitting: áp dụng phép biến đổi phi tuyến.

Các phương thức hiệu chuẩn bao gồm thuật toán và các hệ số tích hợp sẵn để chuyển đổi giá trị thô đầu vào thành kết quả điện áp đầu ra cuối cùng. Những hệ số này đã được tinh chỉnh cẩn thận trong dây chuyền sản xuất để đảm bảo hoạt động ổn định trên tất cả các chip sản xuất hàng loạt.

Driver hiệu chuẩn cũng cung cấp API cho phép triển khai các phương thức hiệu chuẩn ADC tùy chỉnh. Tuy nhiên, các phương thức tùy chỉnh này có thể không hoạt động tốt trên mọi chip, do đó không được khuyến nghị sử dụng trong sản xuất hàng loạt.

Danh sách dưới đây cho thấy các phương thức hiệu chuẩn được hỗ trợ cho từng dòng SoC của Espressif.

  • ESP32: Line Fitting
  • ESP32-S2: Line Fitting
  • ESP32-S3: Curve Fitting
  • ESP32-C3: Curve Fitting
  • ESP32-C2: Line Fitting
  • ESP32-C6: Curve Fitting
  • ESP32-H2: Curve Fitting
  • ESP32-P4: Curve Fitting
  • ESP32-C5: Curve Fitting

Hiệu suất chính xác của ADC

Ở đây, chúng ta tiến hành đo đạc và trình bày minh họa trực quan về hiệu suất tổng thể của ADC trên các SoC của Espressif. Trong quá trình đo, điện áp đầu vào được điều chỉnh với bước nhảy 10 mV theo thời gian, sau đó giá trị thô đọc từ ADC được ghi lại. Từ các giá trị thô này, ta tính toán điện áp đã hiệu chuẩn.

Hiệu suất ADC đo được của mỗi SoC được thể hiện theo hai cách:

1. Biểu đồ theo thời gian (Time Graph):
Biểu đồ này thể hiện giá trị điện áp đầu vào/đầu ra theo thời gian, cho phép kiểm chứng xem độ tuyến tính của ADC có đúng như mong đợi không. Biểu đồ gồm 3 đường:

  • Raw value: Giá trị đọc thô dựa trên độ rộng bit. Với độ phân giải 12-bit, giá trị nằm trong khoảng từ 0 đến 4095.

  • Smooth value: Điện áp đầu ra đã hiệu chuẩn.

  • Base line: Điện áp đầu vào của ADC.

2. Biểu đồ sai số (Error Graph):
Biểu đồ này thể hiện sự phân bố sai số theo mức điện áp, giúp quan sát phạm vi sai số trên toàn bộ dải điện áp được hỗ trợ.

Lưu ý rằng kết quả đo trên từng chip riêng lẻ có thể hơi khác so với hiệu suất tổng thể của cả dòng SoC. Để tham khảo các thông số chính thức, vui lòng xem trong datasheet của từng SoC.

ESP32

Biểu đồ này hiển thị điện áp đầu vào/đầu ra theo thời gian cho ESP32.

Hình 1. Đồ thị thời gian ESP32

Hình 1. Đồ thị thời gian ESP32

Trong Hình 1, ta thấy giá trị đọc thô của ESP32 thể hiện rõ sai số offset. Ngoài ra, ở dải điện áp cao còn xuất hiện sai số phi tuyến. Tuy nhiên, sau khi được hiệu chuẩn, cả sai số offset lẫn sai số phi tuyến đều được cải thiện đáng kể. Dù vậy, dải đo vẫn còn bị giới hạn ở phần đầu và cuối của toàn dải điện áp, chủ yếu do ảnh hưởng của sai số offset.

Độ lệch sau khi hiệu chuẩn không thể quan sát rõ ràng trên biểu đồ điện áp theo thời gian. Thay vào đó, ta có thể xem xét trên biểu đồ sai số theo điện áp:

Hình 2. Biểu đồ lỗi ESP32

Hình 2. Biểu đồ lỗi ESP32

Từ biểu đồ có thể thấy rằng, ngoài việc mất dữ liệu đọc ở phần đầu và cuối dải đo, sai số sau khi hiệu chuẩn nhìn chung nhỏ hơn 30 mV trong phép đo này. Điều thú vị là quá trình hiệu chuẩn hoạt động tốt hơn ở vùng mà giá trị thô thể hiện vấn đề phi tuyến; trong vùng này, sai số dần giảm về gần 0.

ESP32-S2

Biểu đồ theo thời gian cho thấy ESP32-S2 gặp phải sai số khuếch đại (gain error) nhưng lại có độ tuyến tính tốt hơn so với ESP32. Quá trình hiệu chuẩn có thể khắc phục được sai số khuếch đại này, tuy nhiên dải đo khả dụng ở cuối vẫn bị mất do ảnh hưởng của sai số nói trên.

Hình 3. Đồ thị thời gian ESP32-S2

Hình 3. Đồ thị thời gian ESP32-S2

Từ biểu đồ sai số có thể thấy rằng ESP32-S2 sau khi hiệu chuẩn hoạt động tốt hơn nhiều so với ESP32 ở dải điện áp thấp. Tuy nhiên, sai số bắt đầu tăng dần khi điện áp đầu vào vượt quá 2200 mV.

ESP32-S2 phù hợp nhất cho các ứng dụng yêu cầu độ chính xác cao trong dải điện áp thấp.

Hình 4. Biểu đồ lỗi ESP32-S2

Hình 4. Biểu đồ lỗi ESP32-S2

ESP32-S3

Từ biểu đồ theo thời gian có thể thấy ESP32-S3 có độ tuyến tính tốt, với sai số offset và sai số khuếch đại rất nhỏ trong dải điện áp thấp. Tuy nhiên, ở mức khoảng 2750 mV, nó bắt đầu xuất hiện hiện tượng phi tuyến. Quá trình hiệu chuẩn đã hiệu chỉnh được đường cong này, nhưng lại dẫn đến việc mất dữ liệu đo ở dải điện áp cao.

Hình 5. Đồ thị thời gian ESP32-S3

Hình 5. Đồ thị thời gian ESP32-S3

Sai số dao động trong khoảng từ -30 mV đến 0 mV cho đến khi tín hiệu đầu ra bị cắt.

Hình 6. Biểu đồ lỗi ESP32-S3

Hình 6. Biểu đồ lỗi ESP32-S3

ESP32-C3

Các giá trị đọc thô cho thấy ESP32-C3 gặp phải sai số khuếch đại (gain error) và xuất hiện một mức độ phi tuyến nhẹ ở dải điện áp cao. Phương pháp hiệu chuẩn đã hiệu chỉnh được sai số khuếch đại, tuy nhiên vẫn còn tồn tại sai số tương đối lớn ở vùng điện áp cao. Trong phép đo này, dải điện áp đạt tới 2890 mV, và sai số tăng lên khoảng 50 mV tại mức điện áp cao. Lưu ý rằng theo thông số kỹ thuật, dải điện áp chỉ lên tới 2500 mV.

Khuyến nghị các nhà thiết kế nên tránh sử dụng ADC trên ESP32-C3 ở dải điện áp cao.

Hình 7. Đồ thị thời gian ESP32-C3

Hình 7. Đồ thị thời gian ESP32-C3

Hình 8. Biểu đồ lỗi ESP32-C3

Hình 8. Biểu đồ lỗi ESP32-C3

ESP32-C2

Từ biểu đồ có thể thấy các giá trị đọc thô của ESP32-C2 thể hiện sai số khuếch đại âm (negative gain error), nhưng đã được hiệu chuẩn khắc phục khá tốt. Sau khi hiệu chuẩn, phạm vi sai số chỉ còn khoảng ±10 mV.

ESP32-C2 được khuyến nghị cho những ứng dụng yêu cầu độ chính xác ADC cao. Tuy nhiên, theo thông số kỹ thuật, dải điện áp bị giới hạn ở mức 2800 mV. Do đó, nên tránh vận hành ở mức điện áp cao hơn trong sản xuất hàng loạt.

Hình 9. Đồ thị thời gian ESP32-C2

Hình 9. Đồ thị thời gian ESP32-C2

Hình 10. Biểu đồ lỗi ESP32-C2

Hình 10. Biểu đồ lỗi ESP32-C2

ESP32-C6

ESP32-C6 có khả năng thực hiện chuyển đổi trên toàn dải điện áp. Các giá trị đọc thô cho thấy tồn tại sai số khuếch đại âm, nhưng đã được hiệu chuẩn hiệu quả, giúp giới hạn sai số khoảng ±10 mV. Khi điện áp tăng, dải sai số dịch chuyển nhẹ lên trên, vào khoảng từ +20 đến 0 mV. Nhìn chung, theo thông số kỹ thuật, phạm vi sai số là ±40 mV.

ADC của ESP32-C6 có thể được sử dụng cho các ứng dụng yêu cầu độ chính xác trung bình trên toàn dải điện áp.

Hình 11. Đồ thị thời gian ESP32-C6

Hình 11. Đồ thị thời gian ESP32-C6

Hình 12. Biểu đồ lỗi ESP32-C6

Hình 12. Biểu đồ lỗi ESP32-C6

ESP32-H2

Tương tự như ESP32-C6, ESP32-H2 có khả năng thực hiện chuyển đổi trên toàn dải điện áp, với các giá trị đọc thô thể hiện sai số khuếch đại âm. Quá trình hiệu chuẩn đã giới hạn sai số hiệu quả trong phạm vi khoảng ±23 mV theo thông số kỹ thuật.

ADC của ESP32-H2 phù hợp cho các ứng dụng toàn dải điện áp, yêu cầu độ chính xác cao hơn so với ESP32-C6.

Hình 13. Đồ thị thời gian ESP32-H2

Hình 13. Đồ thị thời gian ESP32-H2

Hình 14. Đồ thị lỗi ESP32-H2

Hình 14. Đồ thị lỗi ESP32-H2

ESP32-P4

ESP32-P4 cũng có khả năng thực hiện chuyển đổi trên toàn dải điện áp, mặc dù có xuất hiện sai số khuếch đại âm. Sau khi hiệu chuẩn, sai số duy trì ổn định trong phạm vi ±15 mV trên toàn dải.

Độ chính xác của nó gần tương đương với ESP32-C2, nhưng có thêm lợi thế là khả năng đo toàn dải điện áp. Vì vậy, ESP32-P4 được khuyến nghị cho các ứng dụng toàn dải, yêu cầu độ chính xác cao

Hình 15. Đồ thị thời gian ESP32-P4

Hình 15. Đồ thị thời gian ESP32-P4

Hình 16. Đồ thị lỗi ESP32-P4

Hình 16. Đồ thị lỗi ESP32-P4

ESP32-C5

ESP32-C5 có hiệu suất tương tự như ESP32-P4, nhưng đạt độ chính xác cao hơn một chút ở dải điện áp thấp. Nó cũng được khuyến nghị cho các ứng dụng yêu cầu độ chính xác cao.

Hình 17. Đồ thị thời gian ESP32-C5

Hình 17. Đồ thị thời gian ESP32-C5

Hình 18. Biểu đồ lỗi ESP32-C5

Hình 18. Biểu đồ lỗi ESP32-C5

Mở rộng phạm vi ADC

Như có thể thấy từ các biểu đồ ở trên, một số SoC không hỗ trợ đo trên toàn dải (0–3300 mV). Tuy nhiên, trong một số ứng dụng, việc đo toàn dải là cần thiết.

Để giải quyết vấn đề này, chúng tôi cung cấp giải pháp mở rộng dải đo ADC cho ESP32-S2 và ESP32-S3. Giải pháp này có sẵn dưới dạng bản vá (patch) cho ESP-IDF v4.x và v5.x tương ứng.

Tác động tiếng ồn

Nhiễu có thể ảnh hưởng đến phép đo ADC, gây ra sự biến thiên giữa các giá trị đọc tại cùng một mức điện áp đầu vào. Tài liệu khuyến nghị nên kết nối một tụ bypass (ví dụ: tụ gốm 100 nF) vào chân đầu vào ADC để giảm thiểu nhiễu.

Ngoài ra, kỹ thuật lấy mẫu nhiều lần (multisampling) cũng có thể được áp dụng để giảm thêm tác động của nhiễu.

Sự trôi dạt nhiệt độ

Sự trôi do nhiệt độ (temperature drift) có thể ảnh hưởng đến độ chính xác của ADC khi nhiệt độ hoạt động lệch đáng kể so với điều kiện bình thường. Hiện nay, một thuật toán bù nhiệt độ đang được phát triển cho các SoC của Espressif có hỗ trợ phương pháp hiệu chuẩn curve-fitting.

Ảnh hưởng của sự trôi nhiệt độ được nghiên cứu kỹ lưỡng trên từng SoC và được biểu diễn dưới dạng công thức cùng các hệ số. Các công thức và hệ số này sẽ được áp dụng trong quá trình tính toán hiệu chuẩn, dựa trên dữ liệu đọc từ cảm biến nhiệt độ tích hợp trên chip.

Tính năng này dự kiến sẽ có mặt trong ESP-IDF vào cuối năm nay.

So sánh hiệu suất ADC giữa các SoC

Biểu đồ dưới đây cung cấp cái nhìn tổng quan, giúp các nhà thiết kế lựa chọn SoC của Espressif phù hợp cho các ứng dụng với những yêu cầu khác nhau. Lưu ý rằng biểu đồ này được xây dựng dựa trên các thông số trong trường hợp xấu nhất (worst-case) theo tài liệu kỹ thuật.

Bằng cách sử dụng thiết lập suy hao (attenuation) thấp hơn và áp dụng các kỹ thuật tối ưu hóa, hoàn toàn có thể đạt được hiệu suất tốt hơn so với số liệu trong biểu đồ.

Hình 17. Ma trận lựa chọn ADC

Hình 17. Ma trận lựa chọn ADC

Các dòng ESP32-C2, ESP32-C5, ESP32-P4, ESP32-C6 và ESP32-H2 có khả năng thực hiện đo toàn dải. Trong đó, ESP32-H2, ESP32-P4 và ESP32-C5 có hiệu suất tương đương nhau và hoạt động tốt trong các ứng dụng yêu cầu hiệu suất ADC có độ chính xác cao.

Các SoC khác chỉ hỗ trợ dải đo ngắn hơn. Tuy nhiên, vẫn có giải pháp mở rộng dải đo ADC cho ESP32-S2 và ESP32-S3.

ESP32 và ESP32-S3 có hiệu suất sai số kém hơn tương đối, do đó cần xem xét cẩn thận đặc tính sai số và dải điện áp trước khi sử dụng trong các ứng dụng ADC.

Ngoài ra, tốc độ lấy mẫu (sampling rate) cũng là một yếu tố quan trọng cần cân nhắc. Cả ESP32 và ESP32-C5 đều có thể đạt tốc độ lấy mẫu cao hơn so với các dòng khác, lên tới 2000 ksps.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về các thông số kỹ thuật của ADC trên các SoC của Espressif và thảo luận về độ chính xác sau khi hiệu chuẩn. Đồng thời, bài viết cũng giới thiệu những nỗ lực đang được triển khai nhằm cải thiện dải đo, khả năng chống nhiễu và ảnh hưởng của sự trôi nhiệt độ.

Với những thông tin này, các nhà thiết kế có thể đưa ra quyết định sáng suốt hơn khi lựa chọn SoC phù hợp cho nhu cầu ứng dụng ADC cụ thể của mình.


🔗 Tại Sunrich, chúng tôi luôn cập nhật và chia sẻ những kiến thức kỹ thuật mới nhất từ Espressif nhằm hỗ trợ khách hàng lựa chọn được SoC phù hợp nhất cho ứng dụng ADC của mình. Với kinh nghiệm trong việc phân phối và tư vấn các dòng sản phẩm ESP32, Sunrich sẵn sàng đồng hành cùng bạn từ giai đoạn phát triển đến triển khai thực tế.

👉 Liên hệ với Sunrich để được tư vấn chi tiết và nhận giải pháp tối ưu cho dự án IoT và nhúng của bạn.

0 0 votes
Đánh giá bài viếtĐánh giá bài viết
Subscribe
Notify of
guest
0 Góp ý
Inline Feedbacks
View all comments
Bài viết liên quan
0
Would love your thoughts, please comment.x
()
x