Bộ biến ựổi ADC của AVR ATMEA

Một phần của tài liệu Luận văn thiết kế, chế tạo RƠLE tự động hoà đồng bộ chính xác dùng vi điều khiển (Trang 55 - 59)

d. Nhóm lệnh chuyền ựiều khiển:

3.3.10.Bộ biến ựổi ADC của AVR ATMEA

Các ựặc trưng của ADC này là: - độ phân giải 10 bit.

- độ phi tuyến 0.5 LSB

- Sai số tuyệt ựối là xấp xỉ 2 LSB. - Thời gian biến ựổi là 65 Ờ 260 ộS. - 8 kênh vào.

- Chế ựộ chạy tự do hoặc biến ựổi ựơn. - Khi biến ựổi xong sẽ gây ra ngắt. - Chống nhiễu và không gây ra nhiễu.

ATMEGA8535 gồm ADC 10 sử dụng phương pháp biến ựổi xấp xỉ liên tiếp. 8 kênh vào của ADC ựược nối qua cổng A tới một bộ dồn kênh. Phải ựảm bảo rằng mức ựiện áp trên kênh không thay ựổi trong quá trình biến ựổi. ADC có hai nguồn ựiện áp tương tự riêng ựó là AVCC và AGND. AGND phi ựược nối với GND và AVCC= Vccổ0.3V. điện áp chuẩn bên ngoài nối qua chân AREF. điện áp này phải nằm trong dải 2V tới AVCC.

ADC biến ựổi ựiện áp tương tự vào thành giá trị số 10 bit qua phương pháp xấp xỉ liên tiếp. Giá trị nhỏ nhất là AGND và giá trị lớn nhất là ựiện áp trên AREF Ờ 1LSB. Các kênh ựược lựa chọn nhờ MUX bit trong thanh ghi ADMUX. ADC có hai chế ựộ hoạt ựộnglà Free running và Single conversion. Ở chế ựộ Single conversion mỗi lần biến ựổi phải ựược khởi tạo bởi người dùng. Còn ở chế ựộ Free running ADC lấy mẫu liên tục và ghi vào thanh ghi dữ liệu ADC. Bit ADFR trong thanh ghi ADCSRA chọn chế ựộ hoạt ựộng cho ADC. Việc set bit ADEN trong ADCSRA cho phép ADC hoạt ựộng. Kênh ựược chọn vào sẽ chưa ựược biến ựổi ngay nếu chưa set bit này. ADC sẽ không tiêu thụ công suất nếu bit ADEN bị xóa do ựó cần phải tắt ADC trước khi chuyển sang chế ựộ ngủ tiết kiệm công suất. Việc biến ựổi bắt ựầu bằng việc viết giá trị 1 vào bit khởi ựộng ADC (ADSC). Bit này giữ giá trị

Trường đại học Nông nghiệp Hà Nội Ờ Luận văn thạc sĩ nông nghiệp ...48

cao trong suốt quá trình biến ựổi và bị xóa bởi phần cứng khi quá trình biến ựổi hoàn thành. Nếu có kênh dữ liệu khác ựược lựa chọn trong khi ựang thực hiện biến ựổi thì ADC sẽ thực hiện nốt quá trình ựang làm và sau ựó mới thực hiện sự thay ựổi. Vì dữ liệu ra của ADC là 10 bit nên phải sử dụng hai thanh ghi ADCH và ADCL ựể cất kết quả. Khi ựọc dữ liệu ta ựọc ADCL trước rồi mới tới ADCH. Khi ADCL ựược ựọc thì sự truy nhập vào thanh ghi bị ựóng lại, có nghĩa là nếu thanh ghi ADCL ựược ựọc và quá trình biến ựổi xong trước khi ADCH ựược ựọc thì kết qu bị sai. Sau ựó ADCH ựược ựọc thì sự truy nhập các thanh ghi ADC lại ựược cho phép. ADC có nguồn ngắt riêng sinh ra khi quá trình biến ựổi hoàn thành hay khi truy nhập dữ liệu bị cấm trong lúc ựang ựọc ADCH và ADCL ngắt sinh ra khi bị mất dữ liệu. Mạch xấp xỉ liên tiếp cần xung vào có tần số từ 50kHz tới 200kHz ựể ựạt ựược ựộ phân giải lớn nhất. Nếu ựộ phân giải nhỏ hơn 10 bit thì cần xung với tần số cao hn 200 kHz ựể có tần số lấy mẫu lớn hơn. Các bit ADPS2..0 trong thanh ghi ADCSRA dùng ựể tạo ra tần số phù hợp từ tần số của ựồng hồ hệ thống ựến trên 100kHz. Bộ chia tần của ADC bắt ựầu ựếm từ thời ựiểm ADC bật lên và bit ADEN trong ADCSRA ựặt bằng 1. Bộ chia tần chạy cho tới khi ADEN trở về thấp thì ựược Reset. Khi set bit ADSC trong ADCSR ựể bắt ựầu quá trình biến ựổi thì quá trình biến ựổi ựược bắt ựầu tại sườn lên của chu kỳ ựồng hồ ADC. Bình thường quá trình biến ựổi hết 13 chu kỳ ựồng hồ. Quá trình trắch và giữ mẫu hết 1.5 chu kỳ, và quá trình biến ựổi hết 13.5 chu kỳ. Khi quá trình biến ựổi hoàn thành dữ liệu ựược ghi vào thanh ghi dữ liệu ADC và cờ ADIF ựược set. Trong chế ựộ single thì bit ADSC bị xóa khi thực hiện xong quá trình biến ựổi và các chương trình phần mềm có thể set lại ADSC ựể bắt ựầu quá trình biến ựổi khác. Còn ở chế ựộ Free running quá trình biến ựổi mới ựược thực hiện ngay sau khi sự biến ựổi trước kết thúc, trong khi ựó ADSC vẫn ở mức cao. Trong chế ựộ Free running với tần số 200kHz thì thời gian biến ựổi là ngắn nhất (65ộS) và ựộ phân giải cao nhất. ADC có kh năng loại bớt nhiễu trong quá trình nghỉ của CPU. để thực hiện chức năng này ta phải theo thủ tục sau:

Trường đại học Nông nghiệp Hà Nội Ờ Luận văn thạc sĩ nông nghiệp ...49

ADC ựược cho phép và không biến ựổi. Chế ựộ của ADC là Single và ngắt ựược cho phép. ADEN=1, ADSC=0, ADFR=0, ADIE=1.

Vào chế ựộ nghỉ. ADC bắt ựầu biến ựổi 1 lần khi CPU ựược dừng. Nếu không có ngắt khác xảy ra trước khi quá trình biến ựổi hoàn thành, ngắt ADC sẽ ựánh thức MCU và thực hiện chương trình phục vụ ngắt.

Thanh ghi ADMUX cho phép lựa chọn kênh ựầu vào.

Thanh ghi trạng thái và ựiều khiển ADC Ờ ADCSR

Bit 7 Ờ ADEN : ADC enable. Bit này set bằng 1 thì cho phép ADC. Xóa bit này là tắt ADC. Việc tắt ADC khi ựang trong quá trình biến ựổi sẽ kết thúc ngay quá trình biến ựổi ựó.

Bit 6 Ờ ADSC : ADC start conversion. bit này bằng 1 bắt ựầu quá trình biến ựổi. Khi quá trình biến ựổi hoàn thành bit này bị xóa bởi phần cứng, việc viết 0 vào bit này sẽ không có tác dụng.

Bit 5 Ờ ADFR :ADC Free running select. Bit này bằng 1 ADC hoạt ựộng ở chế ựộ free running . xóa bit này sẽ kết thúc chế ựộ này.

Bit 4 Ờ ADIF : ADC interupt flag. Set 1 khi quá trình biến ựổi kết thúc và dữ liệu ựược ghi vào thanh ghi dữ liệu. Bit này ựược set khi bit ADIE =1 và bit I trong SREG bằng 1. ADIF bị xóa bởi phần cứng khi thực hiện xong chưng trình phục vụ ngắt.

Bit 3 Ờ ADIE : ADC interupt enable. Cùng với bắt I trong SREG sẽ cho phép ngắt khi biến ựổi xong.

Bit 2..0 Ờ ADPS2..ADPS0: bit lựa chọn số chia cho bộ chia tần của ADC. Với các số chia 2, 2, 4, 8, 16, 32, 64, 128.

Trường đại học Nông nghiệp Hà Nội Ờ Luận văn thạc sĩ nông nghiệp ...50

Trường đại học Nông nghiệp Hà Nội Ờ Luận văn thạc sĩ nông nghiệp ...51

Chương 4

Một phần của tài liệu Luận văn thiết kế, chế tạo RƠLE tự động hoà đồng bộ chính xác dùng vi điều khiển (Trang 55 - 59)