Mạch đo nhiệt độ hay áp suất chạy đúng trên bàn thử nhưng lệch vài phần trăm khi ráp vào tủ điện thực tế — nguyên nhân thường không nằm ở code hay layout, mà ở việc chưa cộng dồn sai số đã được nhà sản xuất công bố sẵn trong datasheet. Bài này dành cho kỹ sư thiết kế mạch đo và kỹ sư hiệu chỉnh (calibration) cần biết tra đúng bảng thông số cảm biến analog để tính sai số thực tế trước khi tin vào số đọc.
#1. Vì sao sai số cảm biến hay bị bỏ qua
Trên bàn thử, cảm biến thường được cấp nguồn ổn định, nhiệt độ phòng ổn định, và người làm chỉ quan tâm "ADC đọc có ra số hợp lý không". Khi lắp vào thiết bị thực tế — tủ điện ngoài trời, động cơ sinh nhiệt gần cảm biến, nguồn cấp dao động theo tải — sai số cộng dồn mới lộ ra.
Cần phân biệt hai loại sai số:
- Sai số tĩnh (static error): offset và gain error, cố định tại một điều kiện đo nhất định, có thể hiệu chỉnh một lần.
- Sai số động (dynamic error): drift theo thời gian sử dụng hoặc theo nhiệt độ môi trường, thay đổi liên tục nên không hiệu chỉnh một lần là xong.
Sơ đồ khối đường tín hiệu đơn giản:
Đại lượng vật lý → Cảm biến → (offset, gain error, drift) → Mạch khuếch đại → ADC → Giá trị số Mỗi khối trong chuỗi này đều có sai số riêng, và sai số tổng ở đầu ra số là kết quả cộng dồn của tất cả, không chỉ của cảm biến.
#2. Đọc mục "Electrical Characteristics" đúng cách
Datasheet cảm biến analog luôn có bảng "Electrical Characteristics" (hoặc "Performance Characteristics") với ba cột giá trị: Min, Typ, Max, kèm cột "Conditions" ghi rõ điều kiện đo (nhiệt độ, điện áp cấp, dòng tải...).
Nguyên tắc đọc:
- Typ (typical) là giá trị trung bình đo được trên một lô mẫu thử tại điều kiện chuẩn (thường 25°C) — chỉ dùng để tham khảo, không dùng để thiết kế dự trù sai số.
- Max là giới hạn nhà sản xuất bảo đảm trong điều kiện ghi kèm — đây là giá trị phải dùng khi tính sai số cho thiết kế an toàn.
- Nếu bảng không ghi điều kiện kèm theo (ví dụ nhiệt độ nào, điện áp cấp bao nhiêu), giá trị đó không có nghĩa để so sánh giữa hai cảm biến khác hãng.
Ví dụ cấu trúc bảng điển hình (không trích số liệu cụ thể của một cảm biến thương mại nào, chỉ minh họa cấu trúc):
| Parameter | Min | Typ | Max | Unit | Conditions |
|---|---|---|---|---|---|
| Zero offset | — | X | Y | mV | VCC = 5V, T = 25°C |
| Gain error | — | X | Y | %FSO | VCC = 5V, T = 25°C |
| Temperature coefficient of offset | — | X | Y | ppm/°C | T = -40°C...+85°C |
Khi áp dụng vào thiết kế thật, cần đối chiếu trực tiếp bảng Electrical Characteristics của datasheet cảm biến đang dùng, trích rõ mục và trang tương ứng.
#3. Offset điểm 0 (zero offset) là gì và ảnh hưởng ra sao
Offset là giá trị đầu ra đo được khi đại lượng vật lý đầu vào bằng 0 (ví dụ áp suất 0 bar, hoặc dòng điện 0 A). Đơn vị thường gặp:
- mV — đo trực tiếp tại đầu ra analog của cảm biến.
- %FSO (percent of Full Scale Output) — tỷ lệ so với toàn dải đo, dùng để so sánh giữa các cảm biến có dải đo khác nhau.
Ví dụ cách trích dẫn đúng khi lấy số từ datasheet thật:
Ví dụ: offset Max tại 25°C được công bố trong mục "Electrical Characteristics" của datasheet cảm biến đang dùng — cần ghi rõ số trang và giá trị cụ thể khi trích dẫn.
Cách bù offset:
- Bù phần cứng: dùng biến trở hoặc mạch trim zero để chỉnh điểm 0 ngay trên board, thực hiện một lần khi lắp đặt hoặc sau mỗi lần thay cảm biến.
- Bù phần mềm: đo giá trị đầu ra lúc khởi động (khi đại lượng đo biết chắc bằng 0, hoặc tại một điểm chuẩn đã biết), lưu lại, sau đó trừ offset này khỏi mọi lần đọc tiếp theo.
#4. Drift theo thời gian và theo nhiệt độ
Hai loại trôi cần phân biệt rõ:
- Long-term drift: thay đổi thông số theo thời gian sử dụng (ví dụ sau 1 năm, 10 năm), thường công bố dưới dạng %FSO/năm hoặc ppm/1000 giờ hoạt động, đo tại điều kiện nhiệt độ cố định.
- Temperature coefficient (TC): thay đổi thông số theo nhiệt độ môi trường, đơn vị thường là ppm/°C (phần triệu trên độ C) hoặc %FSO/°C.
Cách quy đổi ppm/°C sang sai số tuyệt đối:
Sai số tuyệt đối = TC (ppm/°C) × ΔT (°C) × Giá trị full-scale / 1.000.000Ví dụ minh họa cách tính (số liệu minh họa, không phải số thật của một cảm biến cụ thể — cần đối chiếu datasheet thật khi áp dụng):
| Thông số | Giá trị | Điều kiện |
|---|---|---|
| TC offset | ví dụ: 50 ppm/°C (ví dụ minh hoạ) | theo datasheet, mục Temperature Characteristics |
| Full-scale output | ví dụ: 100 mV (ví dụ minh hoạ) | theo datasheet |
| ΔT vận hành | 60°C (từ 25°C lên 85°C, ví dụ) | theo điều kiện lắp đặt thực tế |
| Sai số tuyệt đối do TC | TC × ΔT × FS / 1.000.000 | tính theo công thức trên |
#5. Sai số nhiệt tổng hợp — cách tính thực tế
Có hai cách cộng sai số khi có nhiều nguồn độc lập:
- Worst-case (cộng tuyệt đối): cộng trực tiếp các sai số Max, cho kết quả an toàn nhất nhưng thường "quá bi quan" vì giả định mọi nguồn sai số đều lệch cùng chiều cùng lúc.
- RSS (Root Sum Square): lấy căn bậc hai của tổng bình phương từng sai số — dùng khi các nguồn sai số thực sự độc lập về thống kê (ngẫu nhiên, không hệ thống).
Worst-case: E_total = E1 + E2 + E3 + ...
RSS: E_total = sqrt(E1² + E2² + E3² + ...)Ví dụ tính từng bước (số liệu minh họa, cần thay bằng số thật từ datasheet đang dùng):
- Offset error Max: ví dụ 0,5 %FSO (ví dụ minh hoạ)
- Gain error Max: ví dụ 1 %FSO (ví dụ minh hoạ)
- Drift do TC trong ΔT = 60°C: ví dụ 0,3 %FSO (ví dụ minh hoạ, tính từ bước 4)
- Worst-case:
E_total = a + b + c (%FSO) - RSS:
E_total = sqrt(a² + b² + c²) (%FSO)
Thiết kế an toàn trong thiết bị đo công nghiệp hoặc an toàn thường chọn worst-case, vì không chắc các nguồn sai số có thực sự độc lập thống kê hay không trong điều kiện vận hành thực tế.
#6. Ảnh hưởng của mạch ngoài (nguồn, ADC, dây dẫn)
Sai số không chỉ nằm ở bản thân cảm biến. Chuỗi tín hiệu đầy đủ:
Cảm biến → [offset, gain, drift của cảm biến]
→ Mạch khuếch đại → [offset, gain error của op-amp, nhiễu nguồn cấp]
→ Dây dẫn/connector → [sụt áp, điện trở tiếp xúc]
→ ADC → [sai số lượng tử hóa ±1/2 LSB, sai số INL/DNL theo datasheet ADC]- Nguồn cấp dao động làm thay đổi điểm làm việc của cảm biến kiểu cầu Wheatstone hoặc cảm biến ratiometric — nếu VCC lệch, offset và gain đều lệch theo, cần tra hệ số PSRR (Power Supply Rejection Ratio) trong datasheet nếu có.
- ADC có sai số lượng tử hóa cố định ±1/2 LSB, cộng thêm sai số phi tuyến (INL — Integral Non-Linearity) công bố riêng trong datasheet ADC, mục Electrical Characteristics.
#Lỗi thường gặp khi làm thật
- Chỉ đọc giá trị Typ trong bảng Electrical Characteristics, bỏ qua Max, dẫn đến thiết kế không đủ dự trù khi sản xuất đại trà (lô cảm biến khác nhau có thể lệch về phía Max).
- Hiệu chỉnh gain trước khi bù offset — làm sai số offset bị nhân theo hệ số gain, gây sai số nhân đôi hoặc hơn.
- So sánh thông số (offset, drift) giữa hai cảm biến khác hãng mà không đối chiếu điều kiện đo kèm theo (nhiệt độ, điện áp cấp, tải) — hai số "giống nhau" có thể đo ở điều kiện hoàn toàn khác nhau.
#Checklist khi thiết kế
- Đã xác định offset Max, drift (ppm/°C hoặc %FSO/°C), và gain error Max từ datasheet, có trích nguồn mục/trang
- Đã kiểm tra điều kiện đo kèm theo (nhiệt độ, VCC, tải) của mỗi thông số trước khi dùng để so sánh hoặc tính toán
- Đã tính sai số tổng theo worst-case cho dải nhiệt độ vận hành thực tế của thiết bị (không phải nhiệt độ phòng thử)
- Đã cộng thêm sai số của mạch khuếch đại và ADC vào sai số tổng của hệ thống, không chỉ sai số cảm biến
- Đã có phương án bù offset (phần cứng hoặc phần mềm) và thực hiện bù offset trước khi hiệu chỉnh gain
- Đã có kế hoạch hiệu chỉnh định kỳ nếu drift dài hạn vượt quá sai số cho phép của ứng dụng
#Đọc tiếp
Bài kế tiếp trong series "Phần cứng nhúng căn bản": Đo nhiệt độ bằng cảm biến NTC/PT100 — tuyến tính hóa và lọc nhiễu.