Giáo trình AVR - Chương 2: Các chức năng đặc biệt của AVR - Cao Bá Vinh
Mục đích:
• giúp cho Sinh viên tìm hiểu về các thiết bị ngoại vi của ATmega.
• Tìm hiểu về port điều khiển.
• Tìm hiểu về timer, ngắt ngoài .
• Tìm hiểu ADC, EEPROM.
• Tìm hiểu các chuẩn giao tiếp(SPI,USART,I2C…)
Yêu cầu:
• Sinh viên phải nắm được các thanh ghi xuất nhập(PORTx,DDRx,PINx)
• Phải hiểu rõ phần tính toán timer , cấu hình ngắt ngoài.
• Nắm rõ chuyển đổi ADC và lưu dữ liệu eeprom.
• Biết cách sử dụng các chuẩn giao tiếp (spi,usart,i2c)
• giúp cho Sinh viên tìm hiểu về các thiết bị ngoại vi của ATmega.
• Tìm hiểu về port điều khiển.
• Tìm hiểu về timer, ngắt ngoài .
• Tìm hiểu ADC, EEPROM.
• Tìm hiểu các chuẩn giao tiếp(SPI,USART,I2C…)
Yêu cầu:
• Sinh viên phải nắm được các thanh ghi xuất nhập(PORTx,DDRx,PINx)
• Phải hiểu rõ phần tính toán timer , cấu hình ngắt ngoài.
• Nắm rõ chuyển đổi ADC và lưu dữ liệu eeprom.
• Biết cách sử dụng các chuẩn giao tiếp (spi,usart,i2c)
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình AVR - Chương 2: Các chức năng đặc biệt của AVR - Cao Bá Vinh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- giao_trinh_avr_chuong_2_cac_chuc_nang_dac_biet_cua_avr_cao_b.pdf
Nội dung text: Giáo trình AVR - Chương 2: Các chức năng đặc biệt của AVR - Cao Bá Vinh
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng Cao bá vinh Nguyên t c ho t ñ ng c a kh i ADC: Tín hi u tương t ñưa vào các ngõ ADC0:7 ñư c l y m u và bi n ñ i thành tín hi u s tương ng. Tín hi u s ñư c lưu trong hai thanh ghi ACDH và ADCL. M t ng t có th ñư c t o ra khi hoàn thành m t chu trình bi n ñ i ADC. Th c t , b ADC c a ATmega32 ph c t p hơn nhi u, tuy nhiên cơ s v n d a vào nguyên t c trên. ð kh o sát b ADC c a ATmega32 ta c n tìm hi u các kh i ch c năng sau: ði n Th Tham Chi u : là giá tr ñi n th dùng ñ so sánh v i ñi n th c a tín hi u tương t c n bi n ñ i ngõ vào ADC. ATmega32 có 3 l a ch n ñi n th tham chi u là AVCC b ng v i VCC, ñi n th tham chi u n i 2.56v, và Vref là tùy ch n. B n ñ c c n ñ ý là AVR có 2 ngu n ñi n th tham chi u n i là internal reference = 2.56v và bandgap reference = 1.24v. ði n th bandgap reference là m t h ng s v t lý, nó luôn là 1.24v, còn ñi n th internal reference thì có th thay ñ i tùy theo các dòng chip khác nhau. Trong AVR, internal reference ñư c t o ra t bandgap reference. Trong tài li u này, tác gi ñi u d ch hai d ng ñi n th trên ñi u là ñi n th tham chi u n i, tuy v y, b n ñ c nên hi u s khác nhau gi a hai khái ni m trên. T n S Clock ADC : là t n s clock cung c p cho b bi n ñ i ADC, giá tr có th thay ñ i t vài KHz ñ n vài MHz. Tuy nhiên, t n s thích h p kho ng t 50KHz ñ n 200KHz cho ñ phân gi i 10 bit và có th cao hơn 200KHz n u ñ phân gi i th p hơn. Ngõ Vào Tương T : ATmega32 có hai l a ch n ngõ vào tương t : 10 ngõ vào ñơn hư ng (single ended): 10 ngõ vào này là ADC0:7, AGND và bandgap reference. Th c t ta thư ng dùng 8 ngõ vào ADC0:7. Vì có 8 ngõ vào ADC0:7 nên ta có th ñưa vào 8 tín hi u tương t khác nhau. Khi l a Biên so n : Ks.Cao Bá Vinh 11
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng Chuy n ñ i liên t c : là ch ñ mà sau khi kh i ñ ng thì b ADC th c hi n chuy n ñ i liên t c không ng ng. Chuy n ñ i t ng bư c : là mà b ADC sau khi hoàn thành m t chuy n ñ i thì s ng ng, m t chuy n ñ i ti p theo ch ñư c b t ñ u khi ph n m m có yêu c u chuy n ñ i ti p. 2.4.2. Các Thanh Ghi C a B ADC . a. Thanh ghi ADC Multiplexer Selection – ADMUX • Bit 7:6 – REFS1:0 : Reference Selection Bits : hai bit này dùng ñ l a ch n ñi n th tham chi u là m t trong 3 ngu n: AVCC, ði n th tham chi u n i 2.56v và VREF như b ng 97. N u ch n ñi n th VREF thì các tùy ch n còn l i không ñư c s d ng ñ tránh b ng n m ch, ñi u này có nghĩa là n u ta ch n ñi n th tham chi u là VREF r i, thì trong su t quá trình ho t ñ ng c a b ADC ta không ñư c l a ch n ñi n th tham chi u khác, vì n u không, ngu n ñi n th VREF bên ngoài do chưa ñư c tháo ñi s làm h ng chip do ng n m ch. • Bit 5 – ADLAR : ADC Left Adjust Result : Bit này l a ch n cách b trí d li u trong hai thanh ghi d li u ADCH và ADCL. Xem ph n mô t hai thanh ghi d li u ADCH và ADCL ñ bi t chi ti t. • Bits 4:0 – MUX4:0 : Analog Channel and Gain Selection Bits : Các bit này l a ch n ki u ngõ vào (ñơn hay vi sai) và ñ l i, xem b ng 98. Biên so n : Ks.Cao Bá Vinh 13
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng bit này b xóa v 0, ta ph i set l i bit này ñ b t ñ u m t bi n ñ i ti p theo. Trong ch ñ chuy n ñ i liên t c, ta ch c n set bit này m t l n. • Bit 5 – ADFR : ADC Free Running Select : Set bit này lên 1 ñ l a ch n ch ñ ho t ñ ng bi n ñ i liên t c. Bit này là 0 s cho phép ch ñ bi n ñ i t ng bư c. • Bit 4 – ADIF : ADC Interrupt Flag : Bit này s ñư c set thành 1 khi m t chu trình bi n ñ i ADC hoàn thành, bit này ñư c xóa b i ph n c ng khi trình ph c v ng t tương ng ñư c th c thi. Chú ý là khi ta ch nh s a thanh ghi ADCSRA (như dùng các l nh CBI, SBI) thì bit này s b xóa. Vì v y, ñ xóa bit này b i ph n m m, ta ch c n ghi giá tr 1 vào nó. • Bit 3 – ADIE : ADC Interrupt Enable : Bit này cho phép ng t ADC, khi bit ADIE (cho phép ng t ADC) và bit I (cho phép ng t toàn c c) trong thanh ghi SREG ñư c set lên 1 s cho phép ng t ADC ho t ñ ng. • Bits 2:0 – ADPS2 0: ADC Prescaler Select Bits : Vì t n s clock ADC ñư c l y t xung clock h th ng (hình 109), nên các bit ADPS2:0 s cho phép chia xung clock h th ng v i các h s xác ñ nh (b ng 99) trư c khi ñưa vào ngu n clock ADC. V i ñ phân gi i 10 bit, t n s clock ADC kho ng t 50 – 200 KHz, nên tùy theo t n s clock h th ng mà ta l a ch n h s chia thích h p. ð ý: Trình biên d ch AVRStudio 4 c a Atmel xem ADCSRA và ADCSR là m t, c hai ñi u ch t i thanh ghi ADCSRA. Ch n h n, l nh sbi ADCSRA, ADSC và sbi ADCSR, ADSC là tương ñương . Biên so n : Ks.Cao Bá Vinh 15
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng out ADCSRA, r16 // không dùng ng t, h s chia clock là 32, ch y t ng bư c sbi ADCSRA, ADSC // kh i ñ ng b ADC Wait: sbis ADCSRA, ADIF // ñ i ADC hoàn thành rjmp Wait in r16, ADCL // lưu k t qu ADC in r17,ADCH 2.4.3 B SO SÁNH TƯƠNG T Sơ ñ ñơn gi n c a b so sánh tương t (Analog Comparator) như hình 5.1. B so sánh có hai ngõ vào tương t là AIN0 và AIN1 và m t ngõ ra s ACO. Nguyên t c ho t ñ ng c a b so sánh tương t là : Khi ngõ vào AIN0 có ñi n th cao hơn ngõ vào AIN1 thì ngõ ra ACO s m c cao (tương ng v i logic 1), ngư c l i khi ngõ vào AIN0 có ñi n th th p hơn ngõ vào AIN1 thì ngõ ra ACO s m c th p (tương ng v i logic 0) . Thư ng thì trong hai ngõ vào, có m t ngõ vào có ñi n th ñư c gi c ñ nh ñ dùng làm ñi n th tham chi u (VRef ), ñi n th ngõ còn l i có th thay ñ i ñ tham chi u v i ngõ vào VRef. Tr ng thái c a ngõ ra ACO c a b so sánh có th ñư c dùng ñ t o ra m t ng t, k t n i t i b ñ nh th i 1 ñ s d ng ch c năng input capture c a b ñ nh th i này (xem mô t sau). C n chú ý là có s khác bi t v chi ti t b so sánh tương t ñ i v i các dòng AVR khác nhau, ch n h n b so sánh tương t c a AT90S8535 hơi khác v i b so sánh tương t ATmega128, tuy nhiên c u trúc cơ b n thì v n như nhau. Sau ñây là mô t c th v b so sánh tương t c a ATmega128. hình 5.1 ta th y hai ngõ vào AIN0 và AIN1 tương ng v i hai chân PBx và PBy (x = 2, y = 3 ñ i v i AT90S8535), ATmega128 ta có nhi u l a ch n ngõ vào hơn, các thanh ghi liên quan s giúp ta th t l p các l a ch n này. 1. Thanh ghi Special Function IO Register – SFIOR Biên so n : Ks.Cao Bá Vinh 17
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng ñ ng. Ta có th thay ñ i bit này b t c lúc nào ñ cho phép hay không cho phép b so sánh tương t ho t ñ ng. Nhưng c n chú ý là b t c s thay ñ i nào c a bit ACD cũng có th t o ra m t ng t (ng t c a b so sánh tương t ), do ñó n u không c n thi t ta nên c m ng t c a b so sánh tương t b ng cách xóa bit ACIE c a thanh ghi ACSR. • Bit 6 – ACBG : Analog Comparator Bandgap Select : Khi bit này là 1 ngõ vào dương s ñư c gi m c ñi n th c ñ nh kho ng 1,23 V ( 25 0 C và Vcc = 5 V) và ñư c dùng làm ñi n th tham chi u, g i là ñi n th tham chi u n i (Internal voltage reference). Như v y, trong trư ng h p này ngõ vào âm s thay ñ i giá tr và tham chi u t i giá tr 1,23 V. Chú ý là khi ta s d ng ñi n th tham chi u n i 1,23 V như ñã nêu trên thì ta c n thi t l p bit ACBG thành 1 trư c khi cho phép b so sánh tương t ho t ñ ng, b i vì khi ñi n th tham chi u n i ñư c cho phép nó c n m t kho ng th i gian kh i ñ ng là 40 s ñ có th n ñ nh ñi n th 1,23 V. Khi bit này là 0 chân AIN0 (tương ng v i chân s 4 c a vi ñi u khi n) tr thành ngõ vào dương. • Bit 5 – ACO : Analog Comparator Output : Bit này chính là tr ng thái ngõ ra c a b so sánh, ñ c bit này ta s bi t ñư c tr ng thái hi n th i c a ngõ vào. Khi tương quan so sánh hai ngõ vào thay ñ i, c n t 1 t i 2 chu kì máy ñ ph n ánh k t qu này ngõ ra ACO. • Bit 4 – ACI : Analog Comparator Interrupt Flag : ðây là bit c ng t c a b so sánh tương t , khi x y ra ng t b so sánh tương t bit này s ñư c set lên 1 b i ph n c ng, trình ph c v ng t ñư c th c thi n u ng t ñư c cho phép (b ng cách set bit ACIE trong ghi ACSR và bit I trong thanh ghi SREG). Véc tơ ng t c a b so sánh tương t có ñ a ch là $002E. Bit ACI s ñư c t ñ ng xóa b i ph n c ng khi trình ph c v ng t ñư c th c thi. Chú ý : Bit ACI s t ñ ng xóa khi có b t c s thay ñ i nào c a thanh ghi ACSR. Ch n h n khi ta ghi vào bit này giá tr logic 1 thì sau khi th c hi n xong l nh ghi ta v n nh n ñư c giá tr logic 0 bit này . Do ñó ta không th nào set ñư c bit này b ng ph n m m . • Bit 3 – ACIE : Analog Comparator Interrupt Enable : ðây là bit cho phép ng t c a b so sánh tương t . Khi bit này là 1 thì ng t b so sánh tương t ñư c cho phép. Ngư c l i, khi bit này là 0 thì ng t b so sánh tương t b c m. • Bit 2 – ACIC : Analog Comparator Input Capture Enable : bit này liên quan t i tính năng input capture c a b ñ nh th i 1 (xem l i b ñ nh th i 1). Khi bit này là 1 ngõ ra c a b so sánh ñư c n i tr c ti p t i l i vào c a kh i input capture c a b ñ nh th i 1, nh cách này ta có th t n d ng tính năng kh nhi u ngõ vào input capture c a b ñ nh th i 1, trong cách thi t l p này ng t input capture v n có th ho t ñ ng n u ñư c cho phép (b ng cách cho phép ng t toàn c c và set bit TICIE1 trong thanh ghi TIMSK lên 1). Khi bit này là 0 ngõ ra c a b so sánh tương t không ñư c k t n i v i ngõ vào c a kh i input capture c a b ñ nh th i 1. • Bits 1, 0 – ACIS1, ACIS0 : Analog Comparator Interrupt Mode Select : Hai bit này qui ñ nh cách th c t o ra ng t khi có s thay ñ i tr ng thái ngõ ra ACO. Ch n h n, khi ta thi t l p { ACIS1, ACIS0 } = { 0, 0 } thì khi có s thay ñ i m c (bao g m m c cao xu ng m c th p ho c m c th p lên m c cao) ngõ ra ACO s t o ra ng t. Các thi t l p khác ñư c mô t b ng 93 . Biên so n : Ks.Cao Bá Vinh 19
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng Tóm l i ñ l p trình cho b so sánh tương t ta th c hi n các bư c sau: 1. Ch n ngõ vào dương (là ñi n th tham chi u n i hay chân AIN0) b ng cách thi t l p bit ACBG. 2. Ch n ngõ vào âm (là các chân ADC hay chân AIN1) b ng cách thi t l p các bit ACME và ADEN. 3. Ch n ki u ho t ñ ng c a b so sánh tương t như: s d ng ng t, k t n i t i b ñ nh th i 1 4. Ghi bit ACD thành 0 ñ cho phép b so sánh tương t ho t ñ ng. Câu h i hi u bài ph n ADC: Câu 1: ng d ng c a ADC ñ làm gì. Câu 2: cho các ng d ng th c t liên quan t i ADC. Câu 3:ch “ADC” vi t t t t c m t nào?gi i thích? Câu 4:có bao nhiêu thanh ghi tác ñ ng t i ADC? Câu 5: trong AVR b adc có m y c p phân gi i? Câu 6: ch ñ canh l trái v i bên ph i là như th nào? Bit nào qu t ñ nh? Câu 7: chuy n ñ i Free running v i Single conversion khác nhau th nào? Câu 8: bit ADEN dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 9: bit ADSC dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 10: bit ADATE dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 11: bit ADIF dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 12: bit ADIE dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 13: chuy n ñ i ADC c n có xung clock không? Có bao nhiêu c p b chia? Câu 14: hãy vi t 1 bài chuy n ñ i 2 kênh adc0,1 ch ñ single conversion? Câu 15: hãy vi t 1 bài chuy n ñ i 8 kênh adc ch ñ Free running? Câu 16: ng d ng khuy ch ñ i vi sai ñ làm gì?ñ l i có ý nghĩa gì? Câu 17: có m y kênh adc trong mega 8,32,64? Câu 18: so sánh tương t có liên quan t i adc không? Câu 19: cho 2 ng d ng liên quan t i so sánh tương t ? Câu 20: l p trình 1 bài so sánh tương t không dùng ng t? 2.4 B nh EEPROM : ðây là b nh d li u có th ghi xóa ngay trong lúc vi ñi u khi n ñang ho t ñ ng và không b m t d li u khi ngu n ñi n cung c p b c t. Có th ví b nh d li u EEPROM gi ng như là c ng (Hard disk) c a máy vi tính. V i vi ñi u khi n ATmega128, b nh EEPROM có kích thư c là 4 Kbyte. EEPROM ñư c xem như là m t b nh vào ra ñư c ñánh ñ a ch ñ c l p v i SRAM, ñi u này có nghĩa là ta c n s d ng các l nh in, out khi mu n truy xu t t i EEPROM. ð ñi u khi n vào ra d li u v i EEPROM ta s d ng 3 thanh ghi sau : 2.4.1 Thanh Ghi EEAR (EEARH và EEARL) Biên so n : Ks.Cao Bá Vinh 21
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng Cao Bá Vinh 11 li u vào EEPROM. Trong su t quá trình ghi d li u vào EEPROM bit EEWE luôn gi là 1. vai trò c a m t bit c khi quá trình ghi d li u vào EEPROM hoàn t t, ph n c ng s t ñ ng xóa bit này v 0. Trư c khi ghi d li u vào EEPROM ta c n ph i bi t ch c là không có quá trình ghi EEPROM nào khác ñang x y ra, ñ bi t ñư c ñi u này ta c n ki m tra bit EEWE. N u bit EEWE là 1 t c là EEPROM ñang ñư c ghi, ta ph i ch cho cho quá trình ghi vào EEPROM hoàn t t thì m i ghi ti p. N u bit EEWE là 0 t c là không có quá trình ghi EEPROM nào ñang di n ra, lúc này ta có th b t ñ u ghi d li u vào EEPROM. Khi bit EEWE ñư c set lên 1 (b t ñ u ghi vào EEPROM) CPU s t m ngh trong 2 chu kì máy trư c khi th c hi n l nh k ti p. Bit 0 – EERE: EEPROM Read Enable : Khi bit này là 1, s cho phép ñ c d li u t EEPROM, d li u t EEPROM có ñ a ch lưu trong thanh ghi EEAR l p t c ñư c chuy n vào thanh ghi EEDR. Khi bit EERE là 0 thì không cho phép ñ c EEPROM. Trư c khi ñ c d li u t EEPROM ta c n bi t ch c là không di n ra quá trình ghi EEPROM b ng cách ki m tra bit EEWE. ð ý là sau khi quá trình ñ c EEPROM hoàn t t, bit EERE s ñư c t ñ ng xoá b i ph n c ng. N u EEPROM ñang ñư c ghi thì ta không th ñ c ñư c d li u t EEPROM. Khi b t ñ u quá trình ñ c d li u t EEPROM, CPU s t m ngh 4 chu kì máy trư c khi th c hi n l nh k ti p. Tóm l i ñ ghi vào EEPROM ta c n th c hi n các bư c sau: 1. Ch cho bit EEWE v 0. 2. C m t t c các ng t. 3. Ghi ñ a ch vào thanh ghi EEAR. 4. Ghi d li u mà ta c n ghi vào EEPROM vào thanh ghi EEDR. 5. Set bit EEMWE thành 1. 6. Set bit EEWE thành 1 . 7. Cho phép các ng t tr l i. N u m t ng t x y ra gi a bư c 5 và 6 s làm h ng quá trình ghi vào EEPROM b i vì bit EEMWE sau khi set lên 1 ch ñư c gi trong 4 chu kì máy, chương trình ng t s làm h t th i gian (time out) duy trì bit này m c 1. M t ng t xu t hi n cu i bư c 4 cũng có th làm cho ñ a ch và d li u c n ghi vào EEPROM tr nên không chính xác n u trong chương trình ph c v ng t có ch nh s a l i các thanh ghi EEAR và EEDR. ðó là lí do ta c n c m các ng t trư c khi th c hi n ti p các bư c 3, 4, 5, 6. Quá trình ghi d li u vào EEPROM cũng có th không an toàn n u ñi n th ngu n nuôi (Vcc) quá th p. ðo n chương trình sau th c hi n quá trình ghi d li u vào EEPROM. EEPROM_write: ; ch cho bit EEWE v 0 sbic EECR,EEWE rjmp EEPROM_write ;c m các ng t cli ; ghi ñ a ch vào thanh ghi EEAR out EEARH, r18 Biên so n : Ks.Cao Bá Vinh 23
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng B n ñ b nh ATmega128 Hình 2.5. Tóm t c b n ñ b nh ATmega128 Câu h i hi u bài ph n EEPROM: Câu 1: ng d ng c a EEPROM ñ làm gì. Câu 2: cho các ng d ng th c t liên quan t i EEPROM. Câu 3:B nh Eeprom gi ng và khác Sram. Câu 4:có bao nhiêu thanh ghi tác ñ ng t i eeprom? Câu 5: trong AVR b eeprom có bao nhiêu ô nh ñ i v i mega8 16 32 64 128? Câu 6 : nêu quy trình ghi data vào eeprom ? Câu 7: chuy n ñ i Free running v i Single conversion khác nhau th nào? Câu 8: bit EERIE dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 9: bit EEMWE dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 10: bit EEWE dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 11: bit EERE dùng làm gì? Nó có ñ a ch ñâu? Trong thanh ghi nào? Câu 15: hãy vi t 1 bài lưu giá tr 12345 vào eeprom v i ñ a ch 10 và 11 ? Câu 16: hãy vi t 1 bài ñ c eeprom t ñ a ch 0 t i 100 ? Câu 18: vi t lưu d li u eeprom b ng ng t t ñ a ch 0 t i 512? 2.5 Giao di n SPI(serial peripheral interface) Spi cho phép truy n d li u ñ ng b t c ñ cao gi a avr v i nhau ho c các thi t b ngo i vi cho ch c năng SPI như là b nh , chuy n ñ i ADC Giao di n SPI có các ch c năng sau: Full duplex(truy n song công),truy n 3 dây(mosi,miso,sck). Ch ñ ñi u khi n master/slave. Truy n d li u MSB ho c LSB. C ng t cu i c a quá trình truy n. Có ch ñ truy n t c ñ nhanh g p ñôi. Biên so n : Ks.Cao Bá Vinh 25
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng ss trên m i slave nhưng có th có nhi u ñư ng ss trên m i master, tùy thu c vào thi t k c a ngư i dùng. Ho t ñ ng: m i chip mater hay slave ñ u có m t thanh ghi data 8 bit, c m i xung nh p do mater t o ra trên ñương SCK thì có 1 bit trên thanh ghi d li u c a mater truy n ñ n slave trên ñương MOSI và ñ ng th i cũng có 1 bit c a thanh ghi data slave truy n ñ n mater trên ñư ng MISO .do 2 gói d li u c a 2 chip ñư c truy n ñ ng th i nên g i là truy n song công.hình sau mô t cách ho t ñ ng c a chu n SPI. Các thanh ghi liên quan ñ n SPI: có 3 thanh ghi nh hư ng ñ n SPI ñó là SPDR,SPCR,SPSR. SPCR(spi control register): là thanh ghi 8 bit ñi u khi n toàn b ho t ñ ng c a spi. 7 6 5 4 3 2 1 0 SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0 R/W R/W R/W R/W R/W R/W R/W R/W Biên so n : Ks.Cao Bá Vinh 27
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng SPI2X SPR1 SPR0 F=SCK 0 0 0 Fosc/4 0 0 1 Fosc/16 0 1 0 Fosc/64 0 1 1 Fosc/128 1 0 0 Fosc/2 1 0 1 Fosc/8 1 1 0 Fosc/32 1 1 1 Fosc/64 SPSR(Spi Status Register): là 1 thanh ghi tr ng thái c a modul SPI.trong thanh ghi này ch có 3 bit ñư c s d ng . Bit 7 –SPIF : là c báo c a spi khi th c hi n xong 1 cu c truy n hay nh n d li u. thì bit này t ñ ng set lên 1 , vi c xóa bit này khi có th c hi n chương ng t hay tác ñ ng ñ n thanh ghi SPDR. Bit 6 WCOL: ñây là bit báo có s xung ñ t khi nó lên 1 thì ñang có s xung ñ t trên bus , khi ta c tình ghi data vào thanh ghi spdr trong khi nó chưa truy n xong data. Bit 0 SPI2X: ñây là bit cho phép nâng t c ñ truy n nhanh g p ñôi. SPDR(Spi data Register): là 1 thanh ghi d li u c a modul SPI.ghi data vào thanh ghi này s kích ho t 1 quá trình truy n data m i. còn trên chip slave , d li u nh n ñư c t master s ñư c lưu l i trong thanh ghi này, d li u ñư c lưu s n trong thanh ghi spdr dùng ñ truy n cho master. 2.6 Truy n thông n i ti p (USART). USART là b truy n thông n i ti p có các tính năng sau. • ho t ñ ng song công. • Có kh năng làm vi c ñ ng b và không ñ ng b . • Có 3 ng t ho t ñ ng là ng t phát, ng t thu, ng t khi b ñ m r ng. • Khung truy n có th t 5 9 bit data. • T c ñ truy n r t cao. • Truy n thông ña x lý. • T c ñ truy n có th ñư c nhân ñôi. • Phát hi n khung truy n và nh n b l i. Có các thanh ghi nh hư ng ñ n b usart như sau: Biên so n : Ks.Cao Bá Vinh 29
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng Bit 6 UMSEL: bit l a ch n ch ñ ho t ñ ng ñ ng b hay không ñ ng b UMSEL=1 ñ ng b . UMSEL=0 không ñ ng b . Bit 5,4 UPM1,0 : 2 bít này cài ñ t ho t ñ ng ch ñ ch n l . Bit 3 USBS: l a ch n s bit stop trong khung truy n. USBS=0 có 1 bit stop trong khung. USBS=1 có 2 bit stop trong khung. Bit 2,1 UCSZ1,0: S bít data trong khung truy n. Bit0 UCPOL: bít c u hình c c xung nh p. Bít này ch ho t ñ ng ch ñ ñ ng b là s d ng chân XCK • Thanh ghi UBRRL UBRRH c a USART : thanh ghi t c ñ baud Biên so n : Ks.Cao Bá Vinh 31
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng Biên so n : Ks.Cao Bá Vinh 33
- Giáo trình AVR Khoa ði n ði n T Trư ng ðH L c H ng ki n Stop ñư c dò th y , và sau ñó m i sinh ra ñi u ki n start m i , bit này ph i xóa b ng ph n m m khi mà nó v a th c thi xong. Bit 4 TWSTO : bít ñi u ki n stop c a TWI. Bit 3 TWWC : C báo ghi b xung ñ t. C này ñư c set lên 1 khi ñang c g ng vi t lên thanh ghi d li u TWDR khi mà TWINT m c th p.cò này b xóa khi ghi lên thanh ghi d li u TWDR khi mà TWINT m c cao. Bit 2 TWEN : Bit kích ho t TWI. ðây là bít cho phép twi ho t ñ ng khi lên 1 , còn khi b ng 0 thì không có 1 ho t ñ ng nào x y ra n a b t ch p m i ho t ñ ng nào c a twi ñang ti n hành. BIT 1 d tr . Bit 0 TWIE: kích ho t ng t c a TWI. Khi bit =1 và bit I s sinh ra ng t ch khi bit TWINT=1. C. TWSR : thanh ghi tr ng thái c a TWI. BIT 7 3 : ñây là 5 bit ph n ánh tr ng thái ho t ñ ng tu n t c a twi. BIT 2: d tr . BIT 1,0: TWPS ñây là 2 bit nh hư ng ñ n t c ñ xung nh p c a SCL. D. TWDR : thanh ghi d li u c a TWI Biên so n : Ks.Cao Bá Vinh 35