Tải bản đầy đủ (.pdf) (15 trang)

Bộ ADC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (701.17 KB, 15 trang )


Bộ ADC

1.3.18 Bộ chuyển đổi Analog sang Digital

Các đặc trưng cơ bản:
• Độ phân giải 10-bit
• Độ chình xác tuyệt đối: ±2 LSB
• Thời gian chuyển đổi 13 - 260 µs
• Lên tới 15 kSPS khi độ phân giải cao nhất
• Phạm vi điện áp đầu vào: 0 - V CC
• Điện áp tham chiếu 2.56V có thể lựa chọn
• Ngắt khi chuyển đổi hoàn thành
• Loại bỏ nhiễu trong chế độ ngủ


1.ADC (analog to digital converter)
Vi điều khiển AVR 8535 có một bộ biến đổi ADC tích hợp trong chip.
Có các đặc điểm:
Độ phân giải bit.
Sai số tuyến tính:0.5LSB.
Dộ chính xác +/-2LSB.
Thời gian chuyển đổi:65-260µs.
8 Kênh đầu vào có thể được lựa chọn.
Có hai chế độ chuyển đổi.
Có nguồn báo ngắt khi hoàn thành chuyển đổi.
Loại bỏ nhiễu trong chế độ ngủ.
Sơ đồ khối:

Bộ ADC



Từ sơ đồ khối ta có thể thấy:
Tám đầu vào của ADC là tám chân của PORTA và chúng được chọn thông qua
một MUX.
Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh
ghi:ADMUX đây là thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC. ADCSR
Đây là thanh ghi điều khiển và thanh ghi trạng thái của ADC. ADCD :Đây là thanh
ghi dữ liệu.
1.ADMUX: Multiplexer select register
Đây là thanh ghi điều khiển 8 bit:
Với 3 bit được định nghĩa là MUX2,MUX1,và MUX0.Ứng với các tổ hợp logic
ta có thể chọn kênh đầu vào.Cụ thể:
Chú ý: Nếu như ta thay đổi kênh trong thời điểm mà ADC đang chuyển đổi thì khi
quá trình chuyển đổi đã hoàn thành thì khên vào mới được thay đổi.
2.ADCSR :ADC control and status register
Đây là thanh ghi điều khiển và lưu trạng thái của ADC:
Bit 7-ADEN:ADC enable
Đây là bit điều khiển hoạt động của ADC.Khi bit này được set 1 thì ADC có thể
hoạt động và ngược lại.Nếu như ta ngừng hoạt động của ADC trong khi nó đang
chuyển đổi thì nó sẽ kết thúc quá trình chuyển đổi.Mặc dù chưa chuyển đổi xong.
Bit 6-ADSC: ADC start conversion

Bộ ADC

Trong chế độ chuyển đổi đơn thì bit này phải được set lên 1 để bắt đầu chuyển
đổi.Trong chế độ chuyển đổi tự do thì bit này cần được set lên 1 để bắt đầu lần
chuyển đổi đầu tiên.Bit này được giữ sốt trong quá trình chuyển đổi và được xóa
khi mà chuyển đổi xong.
Bit 5-ADRR :ADC Free Running select
Khi bit này được set thì ADC hoạt động theo chế độ chuyển đổi tự do. Đây là chế

độ mà ADC tự động lấy mẫu và chuyển đổi (khi nó được phép chuyển đổi)từ một
kênh đã định sẵn.Ki xóa bit này thì chế độ này lập tức ngừng hoạt động.
Bit 4-ADIF:ADC interrupt Flag
Bit này được set lên 1 bởi phần cứng khi mà quá trình chuyển đổi đã hoang thành
và thanh ghi dữ liệu đã được update.Bit này được xóa bằng phần cứng nhếu như
ngắt này được phép và được phục vụ.Hoặc nó có thể được xóa bằng cách ghi giá trị
logic “0”vào cờ này.Cụ thể khi ngắt bị cấm ta có thể sử dụng các lệnh sbi và cbi để
tác dụng lên bit này.
Bit 3-ADIE:ACD interrupt Enable
Nếu bit này set 1 và ngắt toàn cục được cho phép thì ngắt này được phép phục vụ
(Khi chuyển đổi xong dữ liệu).Và nếu bị xóa thì ngược lại.
Bit 2.1.0-ADPS2…ADPS0:Bit lựa chọn xung nhịp(Tốc độ)
Sơ qua về nguồn xung:Nguồn xung được lấy từ nguồn xung của VĐK (XTAL)và
được chia tần thông qua bộ chia tần:
Các bit ADSP có nhiệm vụ chọn số chia cho bộ chia tần theo bảng sau:
3.Thanh ghi dữ liệu ACDDR:
Đây là thanh ghi 16 bit và ta có thể truy nhập chúng như hai thanh ghi 8 bit với địa
chỉ và các bit tương ứng:
Khi khởi tạo chúng có giá trị 0.Sau khi chuyển đổi thì dữ liệu số được đưa vào
thanh ghi này.
4.Các chân đầu vào:
Các chân đầu vào của ADC là 8 chân của PORTA
Để định nghĩa một cổng là cổng vào cho ADC thì cổng đó phải được định nghĩa là
một cổng vào và loại bổ điện trở treo.
5.Nguyên tắc hoạt động và lập trình điều khiển:
ADC có nhiệm vụ chuyển đổi tín hiệu điện áp tương tự thành tín hiệu số có độ phân
giải 10 bit.Với giá trị nhỏ nhất của điện áp đặt ở chân AGND và giá trị cực đại của
điện áp tương tự được mắc vào chân AREF. Tám kênh tương tự đầu vào được chọn
lựa thông qua ADMUX và ADMUX này được điều khiển bởi thanh ghi ADMUX.
ADC này có thể hoạt động được ở hai chế độ. Đó là chuyển đổi đơn: chỉ chuyển đổi


Bộ ADC

một lần khi có lệnh chuyển đổi và chế độ tự chuyển đổi (Free mode) đây là chế độ
mà ADC tự động chuyển đổi khi được hoạt động và công việc chuyển đổi có tính
tuần hoàn (chỉ cần khởi động một lần).
ADC được phép hoạt động nhờ thiết lập bit ADEN. Quá trình chuyển đổi được bắt
đầu bằng việc ghi vào bit ADSC mức logic 1 và trong suốt quá trình chuyển đổi bit
này luôn được giữ ở mức cao. Khi quá trình chuyển đổi hoàn thành thì bit này được
xóa bằng phần cứng và cờ AIDF được bật lên.
Dữ liệu sau khi chuyển đổi được đưa ra thanh ghi dữ liệu ADCL và ADCH,
nhưng chú ý khi đọc dữ liệu từ hai thanh ghi này thì đọc ADCL trước rồi mới đọc
ADCH. Nếu đọc ADCH trước thì dữ liệu update có thể ghi đè lên ADCL (VĐK
nghĩ rằng đã đọc xong dữ liệu).
Điều khiển vào ra dữ liệu với ADC:
Các bước thực hiện:
Bước 1: Định nghĩa các cổng vào cho tín hiệu tương tự
Xóa bit tương ứng với chân đó trong thanh ghi DDAR. Sau đó loại bỏ điện trở treo
bằng chách xóa bit tương ứng ở thanh ghi PORTA.
Bước 2: Chọn kênh tương tự vào (chọn chân vào cho ADC) thông qua thanh ghi
ADMUX (có thể thay đổi trong quá trình hoạt động).
Bước2:Thiết lập các thông số cho ADC
Tốc độ chuyển đổi thông qua xung nhip chuyển đổi.
Chế độ chuyển đổi : đơn hoặc tự động.
Sử dụng ngắt hoặc không.
Bước3:Bắt đầu chuyển đổi và đọc dữ liệu.
Sau đây là hai Ví dụ sử dụng hai chế độ của ADC và dùng theo hai cách vào ra dữ
liệu: bằng ngắt và bằng chương trình.
VD: Đọc 20 byte dữ liệu (10 thông số từ ADC vào bộ nhớ RAM từ địa chỉ 0x065)
Cách 1:sử dụng vào ra bằng chương trình và chạy với chế độ chuyển đổi đơn, chọn

chân vào là chân PA0
; đoạn chương trình như sau:
.MACRO READ
;dọc 10 mẫu từ ADC
;thiết lập các thông số cho cổng
Cbi DDAR,0 ; Đăt pin PA0 thành lối vào.
Cbi PORTA,0 ;Loại điện trở treo.
;Chọn kênh vào cho ADC

Bộ ADC

ldi R16,0x00
Out ADMUX,R16 ;chọn kênh vào la ADC0
;Thiết lập ADC hoạt động không dùng ngắt chế độ chuyển đổi đơn
sbi ADCSR,7 ;cho phép hoạt động
cbi ADCSR,5
cbi ADCSR,3
cbi ADCSR,2 ;thiết lập tốc dộ
cbi ADCSR,1
cbi ADCSR,0
;Chuẩn bị chuyển đổi:
;Khởi tạo biến đếm chương trình.
Ldi R17,0x0a
;Khởi tạo con trỏ địa chỉ SRAM
Ldi XL,0x65
Ldi Xh,0x00


READ_ADC:
Cbi ADSR,4

Sbi ADSR,6 ;bat đầu chuyển đổi
Sbic ADSR,4
Rjmp READ_ADC
; đã có dữ liệu
In R18,ADCL
In R19,ACDH
Sts X+,R18
Sts X+,R19
Dec R17
Breq exit
Rjmp READ_ADC
Exit:
Nop
.ENDMACRO



Bộ ADC



























1.Yêu cầu:
Đo được nhiệt độ từ LM35 hiển thị lên LCD.
2.Lý thuyết:
Đối với ATMEGA 16L: 8 chân của PORTA sử dụng làm 8 kênh đầu vào ADC. Để sử dụng
tính năng ADC của Atmega 16L chúng ta cần phải thiết kế phần cứng của Vi điều khiển như sau :
* Chân AVCC chân này bình thường khi thiết kế mạch chúng ta đưa lên Vcc(5V) nhưng khi trong mạch
có sử dụng các kênh ADC của phần cứng thì chúng ta phải nối chân này lên Vcc qua 1 cuộn cảm nhằm
mục đích cấp nguồn ổn định cho các kênh (đầu vào) của bộ biến đổi.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×