ic 555

“Độc lạ” mạch ADC dùng IC 555

Khám phá mạch ADC tích phân mới lạ sử dụng IC 555, không cần tụ chính xác mà vẫn cho kết quả đáng tin cậy. Có ví dụ chi tiết và công thức.

Các bộ ADC tích phân cho kết quả chính xác mà không cần tụ tích phân chuẩn đã xuất hiện từ lâu. Một ví dụ kinh điển là ADC hai sườn – loại thường thấy trong các đồng hồ vạn năng. Cấu trúc kinh điển này chỉ dùng một mạch tích phân để lần lượt tích lũy cả tín hiệu đầu vào và điện áp tham chiếu đối nghịch, cùng với hằng số thời gian RC giống nhau. Nhờ đó, nó tự động triệt tiêu sai số do dung sai của hằng số thời gian. Rất tinh tế.

Ý tưởng thiết kế dưới đây sẽ mô tả một bộ chuyển đổi tích phân (có thể là mới) cũng đạt được mục tiêu chuyển đổi chính xác mà không cần tụ điện chính xác. Nhưng cách tiếp cận thì khác biệt đáng kể. Trên hành trình đó, nó còn mang theo một vài điểm cộng rất thú vị.

Như Hình 1 cho thấy, thiết kế bắt đầu với một người bạn cũ quen thuộc: mạch định thời analog 555.

555 timer
Hình 1: Op-amp A1 liên tục tích phân tín hiệu đầu vào Vin, qua đó giúp giảm nhiễu đáng kể. Quá trình chuyển đổi diễn ra theo hai pha luân phiên, T- và T+. Tỷ lệ thời gian giữa hai pha T-/T+ không phụ thuộc vào hằng số thời gian RC, do đó không bị ảnh hưởng bởi sai số của tụ C1, đồng thời chứa thông tin về cả độ lớn và cực tính của tín hiệu Vin.

Tín hiệu đầu vào Vin được cộng với điện áp tại nút X và được tích lũy bởi bộ tích phân vi sai A1. Một chu kỳ chuyển đổi bắt đầu khi đầu ra của A1 (nút Y) đạt đến 4,096 V và nâng điện áp tại chân ngưỡng (Thr) của timer U1 thông qua cầu phân áp R2/R3, đến mức tham chiếu 2,048 V cung cấp bởi nguồn điện áp chuẩn Z1. Khi đó, chân Dch của U1 được kích hoạt, kéo chân không đảo của A1 xuống mass thông qua cầu phân áp R4/R5, xuất ra mức logic 0 tại chân GPIO (nút Z) và bắt đầu pha T-, lúc này đầu ra của A1 bắt đầu giảm dần.

Thời lượng của pha T- được xác định bởi công thức:

T- = R1·C1 / (1 + Vin / Vfullscale)

Trong đó:

Vfullscale = ±2,048 V × (R1 / R6) = ±0,683 V

Pha T- kết thúc khi đầu ra của A1 chạm mức điện áp kích (Trg) của U1, được đặt ở 1,024 V nhờ Z1 và bộ chia nội tại tỉ lệ 2:1 của U1. (Bạn có thể xem chi tiết trong datasheet của LMC555.)

Sau đó, pha T+ bắt đầu: GPIO xuất mức logic 1, chân Dch được nhả ra, khiến đầu vào không đảo của A1 được đẩy lên 1,024 V, được xác lập bởi Z1 và cầu phân áp R4/R5. Pha ramp lên này tiếp tục cho đến khi đầu ra của A1 đạt lại ngưỡng 4,096 V và khởi động chu kỳ chuyển đổi kế tiếp.

Thời lượng của pha T+ được tính theo:

T+ = R1·C1 / (1 – Vin / Vfullscale)

Toàn bộ chuỗi hoạt động “nhộn nhịp” này được tóm tắt trong Hình 2.

biều đồ chuyển mạch
Hình 2 Biểu đồ tín hiệu chuyển đổi tại các nút mạch X, Y và Z.

Trong khi đó, chân GPIO được giả định là đã được nối với một ngoại vi đếm thời gian (counter/timer) phù hợp trên vi điều khiển, để đo và tích lũy thời gian của các pha T- và T+ nhằm đạt được độ phân giải và tốc độ chuyển đổi mong muốn. Một khoảng thời gian nằm trong khoảng từ 1 µs đến 100 ns sẽ phù hợp cho quá trình tính toán giá trị Vin sau đó.

Điều này dẫn đến tuyên bố về khả năng miễn nhiễm với sai số của tụ tích phân (C1) — điều mà bạn có thể đang thắc mắc.

Thời lượng của các pha tăng và giảm (T+ và T-) tỷ lệ thuận với C1, như được minh họa trong Hình 3.

biểu đồ
Hình 3: Đường màu đen biểu thị giá trị Vin, màu đỏ thể hiện thời gian pha T+ (đơn vị mili giây), còn màu xanh lam biểu diễn thời gian pha T-, với tụ C1 có giá trị 0,001 µF.

Tuy nhiên, phép toán phần mềm đã cứu nguy (và có lẽ còn cứu cả danh tiếng của tôi!), vì việc khôi phục lại giá trị Vintừ các thời gian pha đo được (T- và T+) chỉ cần một chút chia để trị:Vin = Vfullscale ((1 – (T-/T+))/(1 + (T-/T+)))

Và dĩ nhiên, khi T- chia cho T+, các thành phần R1C1 sẽ triệt tiêu lẫn nhau, đồng nghĩa với việc sai số của tụ C1 không còn ảnh hưởng gì nữa!


Một lời nhắn cuối về Vfullscale: giá trị ±0.683 V được nêu ở trên là giá trị tối thiểu, nhưng bạn hoàn toàn có thể mở rộng biên độ này một cách dễ dàng chỉ bằng cách thêm một điện trở (R8) và thay đổi một điện trở khác (R1). Dưới đây là công thức để điều chỉnh thang đo:

R1 = 1M * Vfullscale/0.683

R8 = 1/(1/1M – 1/R1)

Ví dụ, muốn có thang đo ±10 V, ta áp dụng như hình minh họa trong Hình 4.

ConstantIntegrator Figure4.png
Hình 4: Biên độ đầu vào ±10 V có thể được xử lý dễ dàng – nếu bạn tìm được một điện trở chính xác 15 MΩ!

Lưu ý rằng điện trở R1 có lẽ sẽ cần được tạo thành từ một chuỗi mắc nối tiếp để đạt giá trị 15 MΩ bằng cách sử dụng các điện trở thương mại có sẵn (OTS – off-the-shelf).

Các bài viết liên quan:

https://bachkhoadientu.com/2018/08/gioi-thieu-ve-ic-timer-555-va-chuc-nang-cua-no.html

https://bachkhoadientu.com/?s=ic+555&ct_post_type=post%3Apage

Khóa học:

https://www.bachkhoadientu.edu.vn/course/cho-thanh-chuyen-gia-kiem-dinh-linh-kien

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *