Bộ ADC

Chia sẻ: Trần Huệ Mẫn | Ngày: | Loại File: PDF | Số trang:15

1
245
lượt xem
103
download

Bộ ADC

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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àm chuyể đổ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.

Chủ đề:
Lưu

Nội dung Text: Bộ ADC

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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 10C, 00C 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 0 5V/250= 20 mV. V y 1 giá tr ADC ng v i 2 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
  8. B ADC Kh i t o LCD. C u hình ADC. http://www.ebook.edu.vn
  9. 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
  10. 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
  11. 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 i tư ng button trong ó 8 i tư ng button Led1...Led8 là m t m ng button có tên t Command1(0) ... Command1(7). Mu n t o m t m ng button ta ch vi c l y ra 8 i tư ng button và s a tên t t c chúng thành Command 1. Hai button còn l i là Ph n h i và Exit. Có m t textbox hi n th d li u ph n h i. Ho t ng c a ph n m m như sau: Khi nh n vào button Led 1 thì truy n d li u là 0x01 xu ng c ng n i ti p c a PC, AVR nh n ư c và ưa d li u ó ra c ng c a AVR 1 led trên Kit sáng. Tương t cho b m các nút Led còn l i. ng th i AVR g i luôn giá tr v a nh n ư c lên PC. Và khi b m nút ph n h i thì d li u ó hi n ra trên Textbox. Khi nh n nút Exit thì thoát kh i ph n m m. Th c hành: Ph n m m trên VB 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
  12. 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 Then MSComm1.Output = Chr$(64) End If If Index = 7 Then MSComm1.Output = Chr$(128) End If End Sub Private Sub Command2_Click() MSComm1.PortOpen = False End End Sub Private Sub Command3_Click() If MSComm1.Input = "" Then Exit Sub Else Text1.Text = Asc(MSComm1.Input) End If End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True End Sub Firm ware: Kh i t o trong CodeVision AVR cho phép c ng n i ti p ho t ng, PORT D là out put như các bài trư c ã h c. Sau ó l p trình cho hàm main như sau: http://www.ebook.edu.vn
  13. 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
  14. B ADC Form g m có: 4 label hi n th như hình. 2 text box hi n th d li u. 2 button: Thu du lieu và Thoat kh i ph n m m. Code trên VB như sau: Private Sub Command1_Click() If MSComm1.Input = "" Then Exit Sub Else Text1.Text = Asc(MSComm1.Input) Text2.Text = Asc(MSComm1.Input) End If End Sub Private Sub Command2_Click() 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
  15. 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
Đồng bộ tài khoản