1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bộ ADC

15 553 6
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 701,17 KB

Nội dung

http://www.ebook.edu.vn 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: http://www.ebook.edu.vn 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 http://www.ebook.edu.vn 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 http://www.ebook.edu.vn 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 http://www.ebook.edu.vn 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 http://www.ebook.edu.vn 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. http://www.ebook.edu.vn Bộ ADC * Chân AREF chân này cần cấp 1 giá trị điện áp ổn định được sử dụng làm điện áp tham chiếu, chính vì vậy điện áp cấp vào chân này cần ổn định vì khi nó thay đổi làm giá trị ADC ở các kênh thu được bị trôi (thay đổi ) không ổn định với 1 giá trị đầu vào chúng ta có công thức tính như sau: ADCx=(V_INT*1024)/ AREF chỉ dựa vào công thức chúng ta củng có thể thấy giá trị ADCx tỉ lệ thuận với điện áp vào V_INT. Giá trị ADC thu được từ các kênh được lưu vào 2 thanh ghi ADCH và ADCL khi sử dụng chúng ta phải đọc giá trị từ các thanh ghi này, khi sử dụng ở ché độ 8 bít thì chỉ lưu vào thanh ghi ADCL. 3.Mô tả: Đầu ra của LM35 và chân 2 biến trở 1K trên Kit được nối vơi 2 jump chờ. Với AMEGA16L có 8 kênh ADC là chức năng thứ 2 của PORTA. Do đó để ADC ta dung dây nối 2 chân đó với 2 bit của PORTA là bit 0 và bit 1 Theo datasheet LM35 thì cứ 10mV tương ứng với 1 0 C, ở 0 0 C điện áp ra là 0V, tương ứng với giá trị ADC là 0. Với Vref=5V, giá trị của ADC từ 0 đến 256, lấy tròn 250 mức. Mỗi giá trị ADC ứng với 5V/250= 20 mV. Vậy 1 giá trị ADC ứng với 2 0 C. Muốn tăng độ phân giải ADC ta giảm Vref. 4.Thực hành: Các bước khởi tạo code như sau: Trong tab ADC check vào ADC enable: http://www.ebook.edu.vn Bộ ADC Khởi tạo LCD. Cấu hình ADC. http://www.ebook.edu.vn Bộ ADC Ta check vào Use 8 bít, để ADC trả về giá trị 8 bít, và ta ADC dùng ngắt check vào Interrupt, về điện áp tham khảo AREF thì lấy điện áp của chân AREF của AVR được nối với 5V. Tần số ADC tùy các bạn thích nhanh hoặc chậm chọn giá trị phù hợp. Trong box Automatically Scan Inputs các bạn check vào Enabled. Vì chúng ta cần ADC 2 kênh, 1 kênh dùng biến trở để test ADC, một kênh từ LM35 đấu với 2 bit 0 và 1 của PORTA do đó chọn First 0, Last 1. Khởi tạo cho LCD vào PORTB như hình bên cạnh. Chọn Generate, Save and Exit. Đê hiển thị được một số bất kỳ lên LCD, trong thư viện hàm không có và ta phải tự viết hàm . Đầu vào là một biến unsigned char, ta phải tách lấy hàng trăm, hàng chục, hàng đơn vị và đưa lần lượt lên LCD. Code như sau: void lcd_putnum(unsigned char so,unsigned char x,unsigned char y) { unsigned char a,b,c; a=so/100; // lay fan tram b=(so-100*a)/10; // lay fan chuc c=(so-100*a-10*b); // lay hang don vi lcd_gotoxy(x,y); // ve vi tri x,y lcd_putchar(a+48); // day ra hang tram, ma ascii lcd_putchar(b+48); // day ra hang chuc, ma ascii lcd_putchar(c+48); // day ra hang don vi, ma ascii } Trong vòng while(1) trong hàm main ta viết như sau: while (1) { // Place your code here lcd_putnum(2*adc_data[1],0,0); // dua gia tri ADC tu LM35*2= nhiet do lcd_putnum(adc_data[0],0,1); // dua gia tri ADC tu bien tro delay_ms(3000); // tre 3 s, cap nhat du lieu mot lan }; http://www.ebook.edu.vn Bộ ADC Đo nhiệt độ bằng LM35 qua ADC thường có sai số và độ trôi, do đó ta cần hiệu chỉnh nhiệt độ bằng cách so sánh với nhiệt kế. [...]... http://www.ebook.edu.vn ng, PORT D là out put như các bài B ADC Trong hàm main có s d ng thêm m t bi n temp nên dĩ nhiên các b n ph i khai báo thêm bi n ó phía ngoài hàm main N p chương trình vào chip AVR K t n i dây c ng Com t KIT và c ng Com máy tính và test k t qu o ADC t bi n tr và LM35 Trên VB t o ra m t giao di n ph n m m như sau: http://www.ebook.edu.vn B ADC Form g m có: 4 label hi n th như hình 2 text...B ADC 1.Yêu c u: i u khi n led ơn trên KIT AVR 03 b ng máy tính o k t qu ADC t bi n tr và c m bi n nhi t LM35 hi n th lên máy tính • i u khi n led: T o m t Form b ng VB như sau: Trong FORM có: 1 i tư ng picturebox ch a logo c a DKS Có 10... MSComm1.PortOpen = False End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True http://www.ebook.edu.vn B ADC End Sub Firm Ware: Kh i t o b ng CodeWinzard AVR cho c ng n i ti p USART ho t ng, cho phép ADC ho t ng(interrupt) như các bài trư c sau ó vi t code cho hàm main như sau: D ch n p chương trình và test http://www.ebook.edu.vn ... Code như sau: Private Sub Command1_Click(Index As Integer) If Index = 0 Then MSComm1.Output = Chr$(1) End If If Index = 1 Then MSComm1.Output = Chr$(2) End If If Index = 2 Then http://www.ebook.edu.vn B ADC MSComm1.Output = Chr$(4) End If If Index = 3 Then MSComm1.Output = Chr$(8) End If If Index = 4 Then MSComm1.Output = Chr$(16) End If If Index = 5 Then MSComm1.Output = Chr$(32) End If If Index = 6 . 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. http://www.ebook.edu.vn 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

Ngày đăng: 08/11/2013, 18:15

Xem thêm

HÌNH ẢNH LIÊN QUAN

Cấu hình ADC. - Bộ ADC
u hình ADC (Trang 8)
4 label để hiển thị như hình. 2 text box để hiển thị dữ liệ u.  - Bộ ADC
4 label để hiển thị như hình. 2 text box để hiển thị dữ liệ u. (Trang 14)

TỪ KHÓA LIÊN QUAN

w