intTypePromotion=1

Giáo trình lý thuyết điều khiển AVR Atmega 128

Chia sẻ: Le Van Tien | Ngày: | Loại File: PDF | Số trang:377

0
530
lượt xem
269
download

Giáo trình lý thuyết điều khiển AVR Atmega 128

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

Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng để điều khiển các thiết bị điện tử. Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các mô đun vào/ra, các mô đun biến đổi số sang tương tự và tương tự sang số,... Ở máy tính thì các mô đun thường được...

Chủ đề:
Lưu

Nội dung Text: Giáo trình lý thuyết điều khiển AVR Atmega 128

  1. Vi điều khiển AVR Atmega 128
  2. Hanoi University of Industry Datasheet ATMEGA 128 B n d ch Datasheet c a vi i u khi n AVR Atmega 128 Created by Le Duy Khanh Date : 16/02/2010 I. c i m , tính năng ( Features ) : + Hi u su t cao , ti t ki m i n + Hoàn thi n c u trúc RISC - 133 l nh hi u qu - th c thi t t c các chu kì ng h ơn - 32 *8 thanh ghi chung a năng + các thanh ghi i u khi n ngo i vi - y các quá trình i u khi n tĩnh - Nâng lên 16 MIPS d li u t i 16 MHz - Chip 2 nhân + b n , s c ch u ng cao , không thay i phân vùng nh - 128 K Bytes b nh Flash có th l p trình ư c trong h th ng - 4K Bytes EEPROM - 4K Bytes b nh SRAM bên trong - Chu kì ghi/xóa : 10000 Flash / 100000 EEPROM - b n d li u 20 năm 85 / 100 năm 25 - o n mã l a ch n ch kh i ng v i các bít khóa c l p trong chương trình h th ng b i chương trình kh i ng c th t trong khi quá trình ghi di n ra - T i a 64K Bytes không gian nh bên ngoài l a ch n - L p trình khóa cho ph n m m b o m t - Giao di n SPI cho l p trình trong h th ng + giao di n JTAG ( phù h p v i tiêu chu n IEEE 1149.1 - Kh năng quét biên theo tiêu chu n JTAG - H tr ch s a t m ( debug ) trên chip - L p trình c a Flash , EEPROM , b b o v ( FUSE) và Bit khóa ( Lock Bits) thông qua giao di n JTAG + c i m ngo i vi - 2 b Timer /counter 8 bit v i b m g p trư c riêng bi t và ch so sánh m u - 2 b timer /counter 16 bit m r ng v i b m g p trư c ch so sánh m u và ch thu th p ( b t d li u ) - B counter th i gian th c v i b dao ng ( oscillator ) riêng bi t - 2 kênh PWM 8 bit - 6 kênh PWM v i kh năng l p trình chính xác t 2 n 16 bit - B i u ch so sánh tín hi u ra Duykhanh8x1311@gmail.com 1
  3. Hanoi University of Industry Datasheet ATMEGA 128 - 8 kênh , 10 bit ADC : 8 kênh u cu i ơn , 7 kênh khác nhau ( vi phân ) , 2 kênh khác nhau v i b khuyêch i l p trình ư c t i 1x , 10x ,200x - Bit nh hư ng v i 2 dây giao di n n i ti p - L p trình kép các USARTs n i ti p - Giao di n n i ti p SPI ch t - L p trình timer Watchdog v i b dao ng trên chip - B so sánh tương t trên chip + các tính năng c bi t c a b vi x lí - thi t l p b t l i ngu n và l p trình l i khi phát hi n ngu n y u (brown-out) - hi u ch nh b dao ng RC bên trong - Ng t ngu n trong và ngoài - 6 ch ch ( sleep ) : Idle ngh , gi m n ADC , ti t ki m i n ( power – saver) , ng t i n , ch ch ( standby ) , ch ch m r ng - Ph n m m l a ch n t n s xung nh p - L a ch n ch so sánh Atmega 103 b i b c u chì Fuse - Vô hi u hóa d ng l i toàn b + c ng vào ra và d ng óng gói - 53 ư ng vào ra l p trình ư c - 64 chân TQFP và 64 kh i QFN/MLF + i n áp ho t ng - 2,7 – 5,5 V Atmega 128L - 4,5 – 5,5 V Atmega 128 + M c t c xung nh p - 0 – 8 MHz Atmega 128L - 0 – 16 Mhz Atmega 128 Duykhanh8x1311@gmail.com 2
  4. Hanoi University of Industry Datasheet ATMEGA 128 II . C u hình chân ( pin configurations ) Hình 1 : chân ra c a Atmega 128 Atmega 128 là m t b vi x lý CMOS i n áp th p d a trên n n ki n trúc AVR RISC nâng cao . B ng cách thi hành các l nh m t cách m nh m trong m t chu kì ng h duy nh t , Atmega128 có th cho phép t c t u c là 1 MPIS trên 1 MHz t ó nó giúp ngư i thi t k h th ng có kh năng t i ưu hoá i n năng s d ng so v i t c s lý. Duykhanh8x1311@gmail.com 3
  5. Hanoi University of Industry Datasheet ATMEGA 128 Sơ kh i ( Block Diagram) Duykhanh8x1311@gmail.com 4
  6. Hanoi University of Industry Datasheet ATMEGA 128 Lõi AVR bao g m 1 t p h p các l nh cài t v i 32 thanh ghi chung a năng . T t c 32 thanh ghi thì ư c n i tr c ti p v i kh i s h c và logic (ALU ) nó cho phép 2 thanh ghi c l p ư c truy c p trong 1 l nh th c thi trong m t chu kì quét xung ng h . k t qu c a c u trúc này là có nhi u ki u ch hi u qu hơn trong khi v n t ư c t c t i a nhanh hơn 10 l n các b vi s lý CISC thông thư ng . Atmega 128 cũng cung c p các tính năng sau ây : 128K bytes c a b nh l p trình Flash trong h th ng v i kh năng c trong khi ang ghi , 4 K bytes EEPROM , 4 K bytes SRAM , 53 ư ng vào ra a năng , 32 thanh ghi chung a năng , b m th i gian th c , 4 b timer /counter ti n d ng v i ki u so sánh và PWM , 2 USART , 1 bit nh hư ng 2 dây giao di n n i ti p , 8 kênh , 10 bit ADC v i các l a ch n các c ng vào riêng bi t v i kh năng l p trình khuyêch i , l p trình timer Watchdog v i b t o dao ng bên trong , 1 c ng SPI n i ti p , phù h p v i chu n IEEE 1149.1 , giao di n ki m tra JTAG , cũng s d ng truy c p vào ch s a t m h th ng trên chip và h tr l p trình , và 6 ph n m m có th l a ch n ch ti t ki m i n . Ch r i IDLE d ng CPU trong khi cho phép SRAM , Timer/counter , c ng SPI , và các ng t h th ng ti p t c v n hành . Ch t t ngu n ti t ki m dung lư ng c a thanh ghi nhưng nó làm óng băng b t o dao ng (oscillator ) bên trong , vô hi u hóa t t c các ch c năng c a chip cho n khi có ng t k ti p ho c là reset l i ph n c ng (reset hardware ) . Trong ch ti t ki m i n timer d b v n ti p t c ch y , i u này cho phép ngư i s d ng b o dư ng trong m t th i gian trong khi ph n còn l i c a thi t b ang trong quá trình ngh ( ng ) sleeping. Ki u gi m nhi u ADC d ng CPU và t t c các modul vào ra tr các timer d b và ADC , làm c c ti u nhi u chuy n m ch trong su t quá trình chuy n i ADC . Trong ch ch Standby b t o dao ng th ch anh và c ng hư ng ang ch y trong khi ph n còn l i c a thi t b ang trong tr ng thái ng . i u này cho phép r t nhi u các kh i t o nhanh ư c ng th i tiêu th i n th p . Trong ch ch m r ng , c hai b t o dao ng chính và các timer d b v n ti p t c ch y Thi t b này ư c s n xu t d a trên công ngh chíp nh c cao c a ATMEL . B nh flash ISP trên chip cho phép b nh chương trình ư c l p trình l i trong h th ng thông qua 1 giao di n ISP n i ti p , b ng m t chương trình l p trình b nh c nh thông thư ng ho c b ng m t chương trình kh i ng ang ch y trong lõi c a AVR . Chương trình kh i ng có th s d ng b t c giao di n nào t i các chương trình ng d ng vào trong b nh các chương trình ng d ng ( Flash ) . Ph n m m trong ph n vùng kh i ng c a b nh Flash s ti p t c ch y trong khi các ng d ng trong phân vùng này ư c c p nh t , cung c p ho t ng c trong khi ghi . B ng vi c k t h p 1 CPU- c u trúc 8 bit RISC v i b nh flash l p trình h th ng trên 1 chip ơn , Atmega 128 là m t vi s lý m nh , nó cung c p 1 s linh ho t cao và môi trư ng làm vi c có ích cho r t nhi u các úng d ng i u khi n nhúng . Atmega 128 ư c h tr v i 1 s thích h p y c a chương trình và các công c phát tri n h th ng bao g m : trình biên d ch C , các macro Asemmbler , các chương Duykhanh8x1311@gmail.com 5
  7. Hanoi University of Industry Datasheet ATMEGA 128 trình ch y th và mô ph ng , 1 b mô ph ng m ch i n , và các công c ánh giá so sánh S tương thích v i Atmega 103 và Atmega 128 Atmega 128 là m t vi x lý có ph c t p cao mà ós u vào ra ư c tích h p r t nhi u lên n 64 a ch vào ra ư c d tr s n trong các l nh cài t . m b o tương thích v i Atmega 103 thì t t c các a ch vào ra hi n nay trong Atmega 103 u gi ng a ch c a Atmega 128 . T t c các a ch I/O thêm vào thì ư c thêm vào trong m t không gian a ch I/O m r ng b t u t $60 n $FF ( trong Atmega 103 thì ch a trong không gian c a RAM trong ) . Nh ng a ch này có th ư c g i b ng vi c ch s d ng các l nh LD/LDS/LDD và ST/STS/STD , không ph i s d ng các l nh IN ho c OUT . Vi c t l i các a ch trong RAM c a Atmega 103 có th v n là m t v n cho ngư i s d ng . Ngoài ra , s gia tăng v s lư ng các vecto ng t có th là m t v n n u các mã s d ng là a ch tuy t i . gi i quy t v n này , m t s tương thích c a Atmega 103 có th ư c l a ch n b i vi c l p trình cho Fuse M103C . Trong ch này , không có ch c năng nào trong không gian I/O m r ng ư c s d ng , vì v y RAM trong ư c t a ch như c a Atmega 103 . Ngoài ra , các vecto ng t m r ng ư c g b . Atmega 128 thì thích h p 100 % v i Atmega 103 , và c th thay th cho Atmega 103 trên cùng m t bo m ch in hi n hành . chú ý ng d ng ” s thay th Atmega 103 b ng Atmega 128 ” mô t cái mà ngư i s d ng nên nh n bi t s thay th c a Atmega 103 b ng Atmega 128 . Ch tương thích c a Atmega 103 B ng vi c l p trình M130C , Atmega 128 s tương thích v i Atmega 103 ý RAM , chân I/O và các vecto ng t ư c miêu t như dư i ây . Tuy nhiên , m t vài c i m Atmega 128 thì không có ích trong ch tương thích này , nh ng c i m ó ư c li t kê dư i ây . - M t USART thay vì 2 , ch trong ch d b . Ch có 8 bít có nghĩa nh nh t c a thanh ghi Baud Rate là có ích . - Giao di n 2 dây n i ti p thì không ư c h tr . - C ng C ch là c ng ra - C ng G ch ph c v ch c năng xoay chi u ( luân phiên ) - C ng F ph c v ch như là m t u vào kĩ thu t s thêm vào u vào tương t t i b chuy n i ADC - B t i kh i ng ( Boot Loader ) không ư c h tr - Không th i u ch nh t n s c a b hi u ch nh dao ng k RC ( oscillator ) bên trong . Duykhanh8x1311@gmail.com 6
  8. Hanoi University of Industry Datasheet ATMEGA 128 - Giao di n b nh bên ngoài có th không gi i phóng b t c chân a ch cho c ng I/O chung , không ph i c u hình các ch ch khác nhau n các khu v c a ch nh bên ngoài . Thêm vào ó , có m t vài i m khác bi t nh làm nên kh năng tương thích v i Atmega 103 - ch EXTRF và PORF ra trong MCUCSR - k t qu th i gian thì không c n thi t cho timer vWatch dog chuy n i th i gian ch - chân ng t ngoài 3 – 0 ph c v ch các m c ng t - USART không có b m FIFO , nhưng d li u v n vư t qua n s m h ơn - Nh ng bít I/O không s d ng trong Atmega 103 nên ư c vi t là O b o m r ng ho t ng gi ng như Atmega 128 Mô t ý nghĩa các chân ( Pin descipsions ) - VCC : chân c p ngu n - GND : Chân n i t - Port A (PA7...PA0) : C ng A là m t c ng vào ra hai hưóng 8 bit v i i n tr hãm bên trong ( ư c l a ch n cho m i bit ). B m u ra c a c ng A có c tính i x ng v i c 2 t n nhi t ngu n c p . - Port B (PB7...PB0) : c ng B là m t c ng vào ra 2 hư ng v i i n tr hãm ( l a ch n cho m i bit ). B m c ng B có tính i x ng v i 2 t n nhi t và ngu n c p . - Port C (PC7...PC0) : c ng C là m t c ng vào ra 2 hưóng . B m u ra c a c ng C có tính i x ng - Port D (PD7...PD0) : c ng D tương t như c ng D - Port E tương t như c ng E - Port F : tr giúp giông như nh ng c ng vào tưong t analog cho b chuy n i A/D . c ng F cũng là m t c ng vào ra 2 hư ng n u như b chuy n i A/D không ơc s d ng . Các chân c a c ng này có các tr kháng hãm oc l a ch n cho m i bit. Chân TDO là chân có 3 ch tr khi ch TAP xu t tín hi u ra ư c b t. . C ng F cũng tr giúp ch c năng c a giao di n JTAG - Port G (PG4...PGO) : c ng G là m t c ng vào ra 5 bit 2 hư ng v i i n tr hãm ( ư c l a ch n cho t ng bit ). B m c ng G có tính i x ng v i t n nhi t và ngu n c p . C ng G cũng cung c p nh ng tính năng c bi t . Các chân c a c ng G là các c ng có 3 ch khi mà i u ki n reset ư c kích ho t dù là ng h không ch y - RESET : u ra reset . c p cho phép trên chân này thì dài hơn dài xung t i thi u s phát ra tín hi u reset , cho dù ng h không ch y . - XTAL1 : u vào b khuy ch i dao ng và u vào cho các ng h m bên trong m ch i n i u khi n Duykhanh8x1311@gmail.com 7
  9. Hanoi University of Industry Datasheet ATMEGA 128 - XTAL2 u ra cho b khuy ch i dao ng - AVCC : là chân ngu n áp c p cho c ng F và các b chuy n i A/D . Nó nên là chân n i v i VCC , dù là ADC không ư c s d ng . N u ADC ư c s d ng , nó nên ư c n i v i chân VCC thông qua 1 b l c th p t n - AREF : là chân tham kh ơ cho b chuy n i A/D - PEN : là chân ư c kích ho t trình cho ki u l p trình n i ti p SPI , và các tín hi u vào ư c kéo lên cao . B ng vi c gi chân này m c th p trong su t quá trình kh i ng l i ngu n ( Power – on Reset ) , thi t b này s nh p vào c ng l p trình n i ti p SPI . PEN không có ch c năng gì trong quá trình i u khi n . S duy trì d li u K t qu c a s th m nh b n ch ra r ng t c h ng d li u thì nh hơn 1 PPM trên 20 năm nhi t 85 C ho c 100 năm 25 C V các ví d m u : datasheet này bao g m các vĩ d code m u theo m t cách ng n g n ch ra cách s d ng các ph n khác nhau c a thi t b này. Các o n code m u này gi thi t r ng các ph n xác nh tiêu c a file thì ư c cài t s n trư c khi ư c biên d ch . nh n bi t r ng không ph i t t c các trình biên d ch C ư c cung c p bao g m các bit ư c xác nh tiêu c a file và các quá trình ng t trong C thì ph thu c vào trình biên d ch .xem thêm trong tài li u c a trình biên d ch C bi t thêm chi ti t. S xác nh các v trí c a các thanh ghi vào ra trong b n I/O , IN , OUT , SBIC , CBI, và SBI các l nh ph i ư c thay th v i các l nh ư c cho ph p truy c p trong ph n I/O m r ng . Thông thư ng , LDS và STS ư c k t h p v i SBRS , SBRC, SBR , CBR. Duykhanh8x1311@gmail.com 8
  10. Hanoi University of Industry Datasheet ATMEGA 128 III .AVR CPU core : Lõi CPU c a AVR Gi i thi u : Ph n này gi i thi u v c u trúc chung c a lõi AVR . Ch c năng chính c a lõi CPU là m b o th c hi n úng chương trình . CPU vì v y ph i có th truy c p , qu n lí b nh , ti n hành tính toán , i u khi n ngo i vi và x lí các ng t T ng quan c u trúc : hình 3 là sơ kh i c u trúc c a AVR có ư c hi u năng cao nh t và kh năng làm vi c song song , AVR s d ng c u trúc Harvard – v i s phân chia b nh và các bus cho chương trình và d li u . Các l nh trong b nh chương trình thì ư c th c thi v i 1 c p s lí liên l nh ơn . Trong khi l nh ư c ang ư c x lí thì l nh ti p theo ư c n p ti p t b nh chương trình . Khái ni m này kích ho t l nh th c thi trong m i chu kì xung nh p ng h . B nh chương trình là b nh flash có th l p trình l i ư c trong h th ng . S truy c p nhanh vào file c a thanh ghi thì bao g m 32*8 bít thanh ghi a năng v i 1 chu kì xung nh p qu n lí th i gian . i u này cho phép i u khi n trong m t chu kì ơn c a ơn v s lí s h c ALU . Thông thư ng trong ho t ng c a ALU , 2 toán h ng a ch ư c xu t ra t file thanh ghi , quá trình i u khi n ư c th c thi và k t qu ư c lưu tr l i trong thanh ghi file – trong m i chu kì xung nh p . 6 trong 32 thanh ghi có th ư c s d ng như là 3 a ch 16 bit gián ti p cho vùng d li u a ch - kích ho t a ch có hi u l c trong tính toán . 1 trong nh ng con tr a ch này có th ư c s d ng như là m t con tr a ch cho vi c tìm ki m các b ng trong b nh chương trình Flash . Các thanh ghi ch c năng ư c thêm vào là thanh ghi 16 bit thanh ghi X , Y , Z s ư c miêu t sau trong ph n này . Duykhanh8x1311@gmail.com 9
  11. Hanoi University of Industry Datasheet ATMEGA 128 ơn v s lý s h c và logic ALU h tr quá trình i u khi n s h c và logic gi a các thanh ghi ho c gi a các i lư ng không i và các thanh ghi . Các thanh ghi i u khi n quá trình ơn có th cũng ư c thi hành trong ALU . Sau m t quá trình i u khi n s h c , tr ng thái c a các thanh ghi ư c c p nh t ph n ánh thông tin v k t qu c a quá trình i u khi n . Dòng chương trình thì ư c cung c p b i các l nh nh y có i u ki n và không có i u ki n và các l nh g i (call instructions ) , có th là các a ch tr c ti p trong toàn b không gian a ch . H u h t các l nh c a AVR u có nh d ng là 16 bit t ơn . M i b nh a ch chương trình thì bao g m 16 ho c 32 bit l nh Không gian nh Flash ư c chia ra làm 2 ph n ., ph n chương trình kh i ng và ph n chương trình ng d ng . C 2 ph n này u có các bit khóa riêng cho s b o v ghi và c/ghi . L nh SPM ư c vi t vào trong b nh ng d ng Flash ph i ư c thư ng chú trong khu v c kh i ng chương trình . Trong su t quá trình ng t và g i các chương trình con, s hoàn tr a ch c a b m chương trình ư c lưu trong ngăn x p (Stack ) . Ngăn x p ( stack ) ư c cách gán hi u qu trong SRAM d li u chung , và hi u qu c a ngăn x p ( stack ) thì ch b gi i h n b i l n c a SRAM và s s d ng c a SRAM . T t c các chương trình s d ng ph i ư c kh i t o SP trong chương trình con reset ( trư c khi chương trình con ho c các ng t ư c th c thi ) . Con tr ngăn x p ( SP- stack pointer ) là quá trình truy c p c/ghi trong không gian a ch I/O. SRAM d li u có th d dàng ư c truy c p n thông qua 5 kiêu a ch khác nhau ư c h tr trong c u trúc c a AVR . Không gian nh trong c u trúc c a AVR thì u tuy n tính và u là các vùng nh thông thư ng . M t module ng t linh ho t có các thanh ghi i u khi n c a nó trong không gian I/O v i 1 bit ng t kích ho t chung ư c thêm vào trong thanh ghi tr ng thái . T t c các ng t u có m t véc tơ phân chia ng t trong các b ng vecto ng t . Các ng t thì có quy n ưu tiên phù h p v i v trí các vecto ng t c a chúng . các vecto ng t m c th p , các vecto ngăt m c cao ư c ưu tiên hơn . Vùng không gian a ch nh I/O bao g m 64 a ch cái mà có th ư c truy c p tr c ti p ,ho c các v trí lưu d li u theo các thanh ghi t $20- $5F ,. Thêm vào ó Atmega 128 còn có thêm không gian a ch I/O m r ng t $60 - $FF trong SRAM nơi mà ch có các l nh như ST/STS/STD ho c LD/LDS/LDD có th ư c s d ng . ALU – ơn v s lí s h c và logic Hi u su t cao c a ơn v s lí logic c a AVR i u khi n m t cách tr c ti p vi c k t n i v i t t c 32 thanh ghi a năng chung . Trong vòng m t chu kì xung nh p ng h , quá trình i u khi n s h c gi a các thanh ghi a năng t ng h p ho c gi a các thanh ghi và 1 s ki n ang ư c th c thi ngay lúc ó . Quá trình i u khi n ALU thì ư c chia ra làm 3 nhóm – s h c , logic , và bit ch c năng ( bit functions ) . Vài cài t c a c u trúc cũng cung c p nh ng s tr giúp a nhi m m nh m cho c 2 lo i tín Duykhanh8x1311@gmail.com 10
  12. Hanoi University of Industry Datasheet ATMEGA 128 hi u/không tín hi u phép nhân và nh d ng phân s . xem thêm ph n cài t l nh ư c miêu t chi ti t hơn . Thanh ghi tr ng thái – status registers Thanh ghi tr ng thái bao g m nh ng thông tin v k t qu c a t t c các l nh s h c ư c th c thi g n nh t . Thông tin này có th ư c s d ng cho s thay i các dòng chương trình mà th c hi n các i u ki n c a quá trình i u khi n . Chú ý r ng thanh ghi tr ng thái ư c c p nh t sau quá trình i u khi n ALU như là ư c xác nh trong ph n tham kh o cài t l nh . i u này s ư c g b trong nhi u trư ng h p khi c n thi t ph i s d ng các l nh so sánh riêng , k t qu c a vi c này là ta có các o n mã nhanh hơn và ch t ch hơn . Thanh ghi tr ng thái không t ng lưu khi nh p vào 1 chương trình con ng t và s khôi ph c khi ph n h i t 1 ng t . i u này ph i ư c i u khi n b i ph n m m Thanh ghi tr ng thái – SREG- ư c xác nh như là : - Bit 7- I Bit ng t kích ho t chung: ph i ư c cài t cho các ng t ư c kích ho t . S i u khi n kích ho t các ng t riêng l sau ó ư c s d ng trong 1 thanh ghi i u khi n s phân chia . N u toàn b thanh ghi kích ho t ng t b xóa , thì không có b t c ng t nào ư c kích ho t c l p trong s các ng t riêng r ư c cài t kích ho t . Bít I b xóa b ng ph n c ng sau khi 1 ng t g p s c , và ư c cài t b ng l nh RETI kích ho t l i các chương trình con ph c v ng t . Bit I cũng có th ư c cài t ho c b xóa trong ph n m m v i l nh SEI và CLI như là ư c mô t trong ph n tham kh o l nh cài t - Bít 6 – T : bit sao chép kho d li u Bít l nh copy BLD (bit LoaD ) và BST ( bit STore) s d ng Bit T như là ngu n ho c ích n c a bit i u khi n . M t bit t m t thanh ghi trong file thanh ghi có th ư c sao chép vào trong Bit T b ng l nh BST , và m t bit trong T có th ư c sao chép vào trong m t bit trong thanh ghi c a thanh ghi file b ng l nh BLD - Bit 5 – H : c báo 1 n a ( half carry flag ) Bít c báo 1 n a H hi n th 1 n a s nh trong vài quá trình tính toán sô h c . bit này thì r t là h u d ng trong i s BCD ( xem ph n mô t cài t l nh bi t thêm chi ti t ) - Bit 4 – S : bít báo hiêu ( sign bit ) , S = N+V Bit S thì luôn luôn là riêng bi t ho c gi a 2 c âm N và dòng tràn b sung c a c V . xem ph n mô t l nh cài t bi t thêm chi ti t . - Bit 3 – V : c báo tràn b sung c a 2 Duykhanh8x1311@gmail.com 11
  13. Hanoi University of Industry Datasheet ATMEGA 128 C báo tràn b sung 2 V h tr ph n bù s h c c a 2 . xem ph n mô t l nh bi t thêm chi ti t - Bit 2 – N : c báo âm C báo âm N hi n th 1 k t qu âm trong m t quá trình tính toán s h c ho c logic . xem thêm ph n mô t l nh bi t thêm chi ti t . - Bit 1 – Z : c không ( zero ) C không Z hi n th m t k t qu zêro trong m t quá trình tính toán logic ho c s h c . xem ph n mô t cài t l nh bi t thêm chi ti t - Bit 0 – C c mang : C mang C hi n th m t s mang trong 1 quá trình tính toán logic và s h c File ăng kí a năng dùng chung ( general purpose register file ) File ăng kí ư c t i ưu hóa cho AVR ư c tăng cư ng nh vi c cài t l nh RISC. t ư c hi u su t và linh ho t c n thi t , các gi n u vào ra (input/output ) sau ây dùng h tr file ăng kí : - 1 toán h ng u ra 8 bit và 1 k t qu u vào 8 bit - 2 toán h ng u ra 8 bit và 1 k t qu u vào 8 bit - 2 toán h ng u ra 8 bit và 1 k t qu u vào 16 bit - 1 toán h ng u ra 16 bit và 1 k t qu u vào 16bit Hình 4 ch ra c u trúc c a 32 thanh ghi a năng dùng chung trong CPU H u h t các l nh i u khi n trong file ăng kí u có th truy c p tr c ti p vào t t c thanh ghi và h u h t các l nh trong chúng u th c hi n trong m t chu kì xung nh p. Như là ư c ch ra trong hình 4 m i thanh ghi cũng ư c gán a ch vùng nh d li u , s s p x p tr c ti p vào trong 32 v trí u tiên c a không gian d li u ngư i dùng . M c dù thi t b v t lí như là ư c nh v trong SRAM , s t ch c vùng nh này cung c p s linh ho t trong truy c p vào các thanh ghi , Như là các con tr thanh ghi X, Y ,Z có th ư c cài t trong b ng c a b t c thanh ghi nào trong file Duykhanh8x1311@gmail.com 12
  14. Hanoi University of Industry Datasheet ATMEGA 128 Thanh ghi X , thanh ghi Y , thanh ghi Z Thanh ghi R26...R31 có m t vài ch c năng ư c thêm vào các vùng nh a năng c a chúng . Các thanh ghi là các con tr a ch 16 bit cho vi c t a ch m t cách gián ti p trong vùng d li u . Có 3 thanh ghi a ch gián ti p X, Y , Z thì ư c miêu t trong hinh 5 Trong các ki u t a ch khác nhau có nhi u thanh ghi a ch có các ch c năng như là s thay th c nh , t ng gia tăng ,và t ng gi m ( xem thêm ph n tham kh o cài t l nh bi t thêm chi ti t ) Stack pointer : con tr ngăn x p Ngăn x p thì ư c s d ng chính cho vi c lưu tr d li u t m th i , cho vi c lưu tr các bi n a phương và vi c lưu tr các a ch ph n h i sau khi g i các chương trình ng t và các chương trình con. Thanh ghi con tr ngăn x p luôn luôn ghi trên nh c a ngăn x p (Stack ). Chú ý r ng Ngăn x p ư c cài t như là phát tri n t nh ng v trí nh cao hơn n các v trí nh th p hơn . i u này g i ý r ng Ngăn x p y các l nh ã ư c rút ng n xu ng con tr ngăn x p Con tr ngăn x p ch vào ngăn x p d li u SRAM nơi mà các chương trình con và các ngăn x p ng t ư c t . Không gian ngăn x p trong SRAM ph i ư c xác nh b ng chương trình trư c khi b t c l nh g i chương trình con nào ư c th c thi ho c là các ng t ư c kích ho t . Con tr ngăn x p ph i ư c cài t i m trên $60 . Con tr ngăn x p b suy gi m b ng 1 khi d li u b y lên ngăn x p khi dùng l nh PUSH , và suy gi m b ng 2 khi s ph n h i a ch b y vào trong ngăn x p v i s g i các chương trình con ho c các ng t. Con tr ngăn x p tăng lên b ng 1 khi d li u b tràn ra kh i ngăn x p v i l nh POP , và nó tăng lên 2 khi d li u b tràn kh i ngăn x p v i s ph n h i t chương trình con RET ho c ph n h i t ng t RETI Con tr ngăn x p c a AVR ư c cài t như là 2 thanh ghi 8 bit trong không gian vào ra I/O . S các bit th c s ư c dùng thì ph thu c vào s cài t trư c . Chú ý Duykhanh8x1311@gmail.com 13
  15. Hanoi University of Industry Datasheet ATMEGA 128 r ng không gian d li u trong m t vài s cài t trư c c a c u trúc c a AVR thì nh n n i mà ch c n SPL. Trong trư ng h p này , thanh ghi SPH s không ư c trình bày Thanh ghi l a ch n RAM page Z - RAMPZ - Bit 7...1 – RES : bit d tr ( Reserved Bits ) Có các bít d tr và s luôn luôn ư c c là 0 . Khi vi t vào các v trí a ch này vi t nh ng bit ó là không cho s tương thích v i các thi t b trong tương lai. - Bit 0 – RAM PZ0 : extended RAM page Z – pointer Thanh ghi RAMPZ thư ng ư c s d ng ch n l a cái mà 64K RAM page ư c truy c p b ng con tr Z . Vì Atmega 128 không h tr nhi u hơn 64K c a b nh SRAM , thanh ghi này ch ư c s d ng l a ch n cái trang mà trong b nh chương trình ư c truy c p vào khi mà l nh ELMP/SPM ư c s d ng. S cài t khác nhau c a Bit RAMPZ0 cho ta các hi u ng dư i ây : RAMPZ0 = 0 a ch nh chương trình là t $0000 - $7FFF ( th p hơn 64K bytes ) ư c truy c p b i ELPM/SPM RAMPZ0 = 1 a ch nh chương trình t $8000 - $FFFF ( cao hơn 64K bytes) thì ư c truy c p b iELPM/SPM Chú ý r ng LPM thì không có nh hư ng b ng vi c cài t RAMPZ L nh th c thi nh th i (instruction execution timing) Ph n này miêu t khái ni m v s qu n lý truy c p b nh th i cho s th c thi các l nh . CPU c a AVR ư c i u khi n b ng b nh th i trong CPU , nó ư c sinh ra tr c ti p t ngu n phát xung ng h ã ư c ch n n chip . Không có s chia b m th i gian bên trong nào ư c s d ng . Hình 6 ch ra các l nh truy c p ng th i và các l nh th c thi ư c kích ho t b ng c u trúc Havard và khái ni m file ăng kí truy c p nhanh . ây là khái ni m x lí liên l nh cơ b n thu ư c trên 1 MIPS trên MHz v i k t qu duy nh t tương thích v i Duykhanh8x1311@gmail.com 14
  16. Hanoi University of Industry Datasheet ATMEGA 128 cho ch c năng trên giá thành , ch c năng trên 1 xung nh p và ch c năng trên ơn v ngu n i n Hình 6 : l nh truy c p ng th i và l nh th c thi Hình 7 ch ra khái ni m b nh th i bên trong cho file ăng kí . Trong m t chu kì xung nh p ơn c a 1qua trình tính toán ALU thì có 2 thanh ghi ư c th c thi , và k t qu ư c lưu l i trong thanh ghi ích n Quá trình i u khi n ALU trong m t chu kì ơn Kh i ng l i và i u khi n ng t AVR cung c p a d ng các ngu n ng t khác nhau . Các ng t này và m i vecto phân chia ng t có m t vecto chương trình ng t trong vùng nh chương trình . T t c các vecto ng t u ư c gán v i các bit riêng r cái mà ph i ư c vi t là m c logic 1 cùng v i các bit kích ho t ng t chung trong thanh ghi tr ng thái mà kích ho t các ng t . Ph thu c vào giá tr c a b m chương trình , các ng t có th t ng vô hi u hóa khi mà bít khóa kh i ng BLB02 ho c BLB12 ư c l p trình . c i m c i thi n tính b o m t c a ph n m m . xem thêm ph n b nh chương trình trang 286 bi t thêm chi ti t . M c a ch th p nh t trong vùng nh chương trình thì ư c t là m c nh như là RESET và các vecto ng t . M t danh sách y c a các vecto ng t ư c ch ra trang 60 . Danh sách cũng xác nh rõ các c p ưu tiên c a các ng t khác nhau. Các a ch th p hơn các a ch cao thì là các c p ưu tiên . RESET có m c ưu tiên cao nh t và ti p theo là INT0 – truy v n ng t ngoài . Các vec to ng t có th ư c di chuy n b t u cho vùng Flash kh i ng b ng vi c cài t bit IVSEL trong thanh ghi i u khi n MCU (MCUCR) . Tham kh o ph n ng t trang 60 bi t thêm thông tin . Vecto reset có th cũng ư c di chuy n b t u vùng Flash kh i ng b ng cách l p trình BOOTRST fuse , xem thêm ph n h tr t i quá trình kh i ng trang 273 Duykhanh8x1311@gmail.com 15
  17. Hanoi University of Industry Datasheet ATMEGA 128 Khi m t ng t xu t hi n , Bit I kích ho t ng t chung b xóa và t t c các ng t b vô hi u hóa . Ph n m m ngư i s d ng có th vi t m c logic 1 vào bit I kích ho t kh i ng t . T t c các ng t ã kích ho t có th ng t chương trình con ph c v ng t hi n hành . Bít I t ng cài t khi có m t ph n h i t l nh ng t RETI ư c th c thi . ây là cơ s c a 2 lo i ng t . Lo i th nh t thì ư c kh i ng b ng m t s ki n cái mà cài t c báo ng t . V i nh ng ng t này , b m chương trình ư c vecto hóa n các vecto ng t th c s mà th c thi vi c i u khi n các chương trình con ph c v ng t , và ph n c ng xóa các c ng t tương ng . C ng t cũng có th ư c xóa b ng vi c vi t m c logic 1 lên bit v trí c ng t b xóa . N u 1 i u ki n ng t xu t hi n trong khi bit kích ho t ng t tương ng b xóa ,c ngăt s cài t và ư c ghi nh cho n khi quá trình ng t ư c kích ho t , ho c c ng t b xóa b ng ph n m m . Tương t , n u m t ho c nhi u i u ki n ng t xu t hi n trong khi bit kích ho t ng t chung b xóa, c báo ng t tương ng s ư c cài t và ghi nh cho n khi bít kích ho t ng t chung ư c cài t và s th c thi sau ó b ng th t ưu tiên . Lo i th 2 c a các ng t s kh i ng ch c n i u ki n ng t ư c ưa ra . Nh ng ng t này không c n thi t ph i có c báo ng t . N u i u ki n ng t bi n m t trư c khi các ng t này ư c kích ho t các ng t này s không kh i ng . Khi AVR thoát ra t m t ng t , nó s luôn luôn ph n h i t chương trình chính và th c hi n 1 ho c nhi u l nh trư c khi b t c ng t ang trì hoãn nào ư c x lý . Chú ý r ng thanh ghi tr ng thái thì không t ng lưu tr khi nh p vào m t chương trình con ph c v ng t ho c ư c khôi ph c l i khi s ph n h i t m t chương trình con ph c v ng t . i u này ph i ư c i u khi n b ng ph n m m . Khi s d ng l nh CLI làm bi n m t các ng t , các ng t s bi n m t ngay l p t c . không có ng t nào s ư c th c thi sau khi có l nh CLI , dù là nó xu t hi n ng th i v i l nh CLI . Ví d dư i ây ch ra cách này có th s d ng tránh các ng t trong su t dãy ghi th i gian c a EEPROM Duykhanh8x1311@gmail.com 16
  18. Hanoi University of Industry Datasheet ATMEGA 128 Khi vi c s d ng l nh SEI kích ho t các ng t , các l nh SEI dư i ây s th c thi trư c khi b t c ng t b trì hoãn như là ư c ch trong ví d này Th i gian áp ng các ng t áp ng các ng t th c thi cho t t c các ng t c a AVR t i thi u trong 4 chu kì xung nh p ng h . Sau 4 xung nh p ng h , vec to a ch chương trình c a các chương trình con ph c v ng t ư c th c thi . Trong su t 4 chu kì xung nh p này , b m chương trình b y vào trong ngăn x p . Vecto này thư ng ư c nh y trong các chương trình con ph c v ng t , và các l nh nh y này t o ra 3 chu kì xung nh p. N u 1 ng t xu t hi n trong su t quá trình th c thi c a m t l nh nhi u chu kì , l nh này s hoàn thành sau trư c khi ng t ư c x lí . N u 1 ng t xu t hi n khi MCU trong ch ng Sleep mode , th i gian áp ng th c thi ng t thì ư c gia tăng b ng 4 chu kì xung nh p . S gia tăng này d n n thêm vào th i gian kh i ng t quá trình ng l a ch n Sleep mode M t s ph n h i t vi c i u khi n chương trình con ph c v ng t t o ra 4 chu kì xung nh p . Trong su t 4 chu kì xung nh p, b m chương trình ( 2 Bytes) ư c tràn ra t ngăn x p , con tr ngăn x p ư c gia tăng b ng 2 ,và Bit I trong SREG ư c cài t. Duykhanh8x1311@gmail.com 17
  19. Hanoi University of Industry Datasheet ATMEGA 128 IV . Các b nh c a AVR Atmega 128 Ph n này miêu t các b nh khác nhau trong Atmega 128. C u trúc AVR có 2 không gian nh chính , b nh d li u và b nh chương trình . Thêm vào ó , c i m c a Atmega 128 là m t b nh EEPROM cho kho lưu tr d li u . T t c 3 vùng nh thì u dài và n nh B nh chương trình flash co th l p trình l i trong h th ng Atmega 128 bao g m 128K bytes b nh chương trình có th l p trình l i trên chip dùng lưu tr chương trình . T khi t t c các l nh c a AVR có r ng là 16 và 32 bit , b nh Flash ư c t ch c như là 64K*16 . b o m t ph n m m , không gian b nh chương trình Flash ư c chia thành 2 ph n , là ph n chương trình kh i ng và ph n chương trình ng d ng B nh Flash có m t b n lâu là trên 10000 chu kì ghi xóa . B m chương trình (PC )c a Atmega 128 là 16 bit dài , vi c t a ch này cho 64K ư c nh v trong b nh chương trình . Ho t ng c a khu v c chương trình kh i ng còn ư c k t h p v i các bit khóa quá trình kh i ng vì s b o v ph n m m ư c mô t m t cách chi ti t trong ph n h tr t i quá trình kh i ng trang 273 và l p trình b nh trang 286. ó b o g m nh ng mô t chi ti t v l p trình cho b nh Flash trong SPI , JTAG , ho c ki u l p trình song song. B ng h ng s có th ư c gán bên trong không gian a ch b nh chương trình( xem thêm LPM – load program memory và ELPM – Extended load program Memory instruction description ) Gi n th i gian cho vi c cài t l nh và th c thi l nh ư c gi i thi u trong ph n l nh th c thi th i gian trang 14 . Hình 8 : b n b nh chương trình Duykhanh8x1311@gmail.com 18
  20. Hanoi University of Industry Datasheet ATMEGA 128 B nh d li u SRAM : SRAM Data Memory Atmega 128 h tr 2 c u hình khác nhau cho b nh d li u SRAM như ư c li t kê trong b ng 1 Hình 9 : ch ra cách mà b nh SRAM c a Atmega 128 ư c t ch c Atmega 128 là 1 vi x lý linh ho t v i r t nhi u ơn v ngo i vi hơn nên có th h tr 64 v trí d tr trong mã ho t ng c a các l nh IN và OUT . Vì không gian a ch I/O m r ng t $60 n $FF trong SRAM , ch các l nh ST/STS/STD và LD/LDS/LDD m i có th ư c s d ng . Không gian a ch I/O không th xu t ra khi mà Atmega 128 trong tr ng thái tương thích v i Atmega 103 Trong ch thông thư ng a ch v trí d li u u tiên 4352 c hai file ăng kí , b nh u vào ra I/O và d li u trong SRAM . 32 v trí a ch u tiên c a thanh ghi file , ti p theo là 64 v trí b nh I/O tiêu chu n , sau ó là 160 v trí c a các vùng nh I/O m r ng và ti p theo là 4096 v trí a ch c a SRAM d li u . Trong ch tương thích v i Atmega 103 , u tiên là 4096 v trí a ch vùng d li u c hai file ăng kí , vùng nh I/O và SRAM d li u bên trong . u tiên là 32 v trí a ch c a file ăng kí , ti p theo là 64 v trí c a vùng nh I/O chu n , và ti p theo là 4000 v trí a ch c a SRAM bên trong . M t tùy ch n SRAM d li u bên ngoài n a có th ư c s d ng v i Atmega 128 . SRAM này s chi m m t vùng trong vung a ch còn l i c a không gian a ch 64K. Vùng này b t u a ch bên dư i trong SRAM . Thanh ghi file , I/O , I/O m r ng và SRAM trong chi m các bit th p nh t 4352 bytes ch bình thư ng , và chi m 4096bytes th p nh t trong ch tương thích v i Atmega 103 (I/O m r ng không ưc cp ây ) , vì v y khi s d ng 64KB(65536 Bytes ) c a b nh ngoài , 61184 Bytes c a b nh ngoài s dư trong ch bình thư ng , và 61440 Bytes trong ch tương thích v i Atmega 103. xem ph n giao di n b nh bên ngoài trang 26 thêm chi ti t Khi s truy c p a ch trong b nh SRAM vư t quá v trí b nh d li u bên trong , SRAM d li u bên ngoài ư c truy c p s d ng các l nh gi ng nhau v ph n truy c p b nh d li u bên trong . Khi các b nh d li u bên trong ư c truy c p , các chân phân tích quá trình c và ghi (PG0 và PG1) thì không ho t ng trong khi t t c truy c p 1 chu kì . Quá trình i u khi n SRAM ngoài thì ư c kích ho t b ng vi c cài t các bit SRE trong thanh ghi MCUCR S truy c p SRAM ngoài t o ra 1chu kì xung nh p thêm vào trên 1byte ư c so sánh v i s truy c p vào SRAM trong . Có nghĩa là các l nh LD , ST , LDS , STS , LDD , STD , PUSH, và POP t o thêm 1 chu kì xung nh p n a . N u ngăn x p ư c t Duykhanh8x1311@gmail.com 19
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2