7 EERA 6 EERA 5 EERA 4 EER A3 EERA2 EERA1 EERA EERAL A
3.8 Bộ chuyển đổi A/D bên trong ATmega32 Đặc điểm:
Đặc điểm:
− ATmega32 cĩ bộ biến đổi tương tự sang số với độ phân giải 10bit. − Thời gian biến đổi từ 65 – 256 μ s.
− Một bộ dồn kênh đa hợp 8 lối vào, mỗi kênh được dẫn riêng lẽ tới bộ hiển thị ADC.
− Cĩ thể lựa chọn chuyển đổi 1 kênh hay nhiều kênh. − Điện áp ngõ vào của ADC rộng từ 0 – VCC. − Cĩ thể lựa chọn được điện áp tham chiếu 2,56V.
− ADC cĩ thể bắt đầu chuyển đổi bởi chế độ tự động Trigger bằng cạnh lên dựa trên lựa chọn nguồn.
− Xuất hiện ngắt trong ADC khi chuyển đổi hồn thành. Sự sắp xếp các chân lối vào của bộ biến đổi A/D
ATmega32 Tín Hiệu PF7 ADC7 PF6 ADC6 PF5 ADC5 PF4 ADC4 PF3 ADC3 PF2 ADC2 PF1 ADC1
Sơ đồ khối chuyển đổi A/D 1. Giới thiệu các thanh ghi chuyển đổi ADC
ADC Multiplexer Selection Register – ADMUX
REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0
chuyển đổi này được hồn thành ( Bit ADIF trong thanh ghi ADCSRA được
đặt lên 1).
− Điện áp tham chiếu nội khơng được sử dụng nếu điện áp tham chiếu ngồi
được sử dụng tại chân AREF.
Bảng lựa chọn điện áp tham chiếu cho ADC:
REFS1 REFS0 Điện áp tham chiếu ADC
0 0 AREF ( Vref nội đã được tắt)
0 1 AVCC với tụ nối bên ngồi tại chân AREF
1 0 Chưa sử dụng
1 1 Điện áp tham chiếu nội là 2,56V với tụ nối bên ngồi tại chân AREF
Bit 5 – ADLAR:
− Bit ADLAR ảnh hưởng đến kết quả chuyển đổi ADC đặt trong thanh ghi dữ
liệu ADC.
− Nếu bit này được đặt lên 1 thì kết quảđược điều chỉnh trái, ngược lại thì kết quảđược điều chỉnh phải.
− Sự thay đổi bit ADLAR sẽ ảnh hưởng trực tiếp đến thanh ghi dữ liệu ADC bất chập sự chuyển đổi đang diễn ra.
Bits 4:0 – MUX4:0:
− Bit lựa chọn kênh ngõ vào và độ lợi (kênh nào được lựa chọn sẽ được kết nối đến ADC và các bit này lựa chọn độ lợi cho 2 kênh khác nhau).
− Nếu bit này thay đổi trong quá trình chuyển đổi ADC thì sự thay đổi này khơng làm ảnh hưởng tới quá trình và kết quả chuyển đổi ADC cho tới khi chuyển đổi này được hồn thành ( bit ADIF trong thanh ghi ADCSRA được
Bảng Lựa chọn kênh ngõ vào và độ lợi:
ADC Control and Status Register A – ADCSRA
ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0
Bit 7 – ADEN
− Khi bit này được đặt lên 1 cho phép ADC hoạt động, ngược lại sẽ cấm ADC. Trong lúc quá trình chuyển đổi đang tiến hành ta xĩa bit này về 0 thì quá trình chuyển đổi sẽ kết thúc.
Bit 6 – ADSC
Bit 4 – ADIF
− Đây là cờ ngắt ADC.
− Bit này được đặt lên 1 khi ADC chuyển đổi hồn thành và thanh ghi dữ liệu
đã được cập nhật.
Bit 3 – ADIE
− Cờ cho phép ngắt ADC.
− Khi bit ADIE và bit I trong thanh ghi SREG được đặt lên 1 thì khi chuyển
đổi hồn thành cho phép ngắt ADC được kích hoạt.
Bits 2:0 – ADPS2:0:
Đây là bit xác định hệ số chia giữa tần số thạch anh và thời gian chuyển đổi ADC:
Bảng Xác định hệ số chia giữa tần số thạch anh và thời gian chuyển đổi A/D ADPS2 ADPS1 ADPS0 Hệ số chia
0 0 0 2 0 0 1 2 0 1 0 4 0 1 1 8 1 0 0 16 1 0 1 32 1 1 0 64 1 1 1 128
ADC Data Register – ADCL and ADCH ADLAR = 0
- - - ADC9 ADC8 ADCH
ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 ADCL
ADLAR = 1
ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADCH
ADC1 ADC0 - - - ADCL
− Khi quá trình chuyển đổi ADC hồn thành, kết quả được tìm thấy trong 2 thanh ghi ADCH và ADCL.
− Khi ADCL được đọc thì thanh ghi dữ liệu khơng được cập nhật cho đến khi ADCH được đọc. Vì vậy, nếu kết quả là điều chỉnh trái và khơng hơn 8 bit thì chỉ cần đọc ở thanh ghi ADCH, cịn trường hợp khác thì ADCL được đọc
đầu tiên rồi mới tới ADCH.
− Bit ADLAR trong thanh ghi ADMUX và bit MUXn trong thanh ghi
ADMUX ảnh hưởng đến hướng đọc kết quả từ thanh ghi dữ liệu. − ADLAR được đặt lên 1 thì kết quảđược điều chỉnh trái.
ADC9:0
− Đây là bit mơ tả kết quả của quá trình chuyển đổi.
ADC Control and Status Register B – ADCSRB
- - - ADTS2 ADTS1 ADTS0
Bits 7:3
− Đây là các bit chưa được ATmega32 sử dụng.
Bit 2:0 – ADTS2:0
− Khi bit ADATE trong thanh ghi ADCSRA được đặt lên 1 thì lựa chọn giá trị
của các bit ADTS2:0 cho phép nguồn trigger nào sẽđược chọn.
− Khi bit ADATE trong thanh ghi ADCSRA được xĩa về 0 thì lựa chọn giá trị
của các bit ADTS2:0 khơng cịn tác dụng.
Lựa chọn nguồn Trigger
ADTS2 ADTS1 ADTS0 Trigger Source
0 0 0 Free Running mode
0 0 1 Analog Comparator
0 1 0 External Interrupt Request 0
0 1 1 Time/Counter 0 Compare Match
1 0 0 Time/Counter0 Overflow
1 0 1 Timer/Counter1 Compare Match B
1 1 0 Timer/Counter1 Overflow
1 1 1 Timer/Counter1 Capture Event