intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bộ điều khiển MCU

Chia sẻ: Thevan36 Thevan36 | Ngày: | Loại File: PDF | Số trang:24

204
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong phần này mình sẽ trình bày về các vấn đề sau : 1. Bootloader : Chế độ đọc trong lúc nạp 2. Sleep - Power down : Chế độ ngủ và chế độ giảm công suất ......... 3. Chế độ hoạt động - trạng thái làm việc của ALU, con trỏ SP. 4. Chế độ hoạt động đặc biệt của Timer/Counter 2 qua thanh ghi điều khiển ASSR 5. Chế độ Reset cả 2 bộ Timer/Counter 0 và Timer/Counter 1 qua thanh ghi điều khiển SFIOR

Chủ đề:
Lưu

Nội dung Text: Bộ điều khiển MCU

  1. Bộ điều khiển MCU Trong phần này mình sẽ trình bày về các vấn đề sau : 1. Bootloader : Chế độ đọc trong lúc nạp 2. Sleep - Power down : Chế độ ngủ và chế độ giảm công suất ......... 3. Chế độ hoạt động - trạng thái làm việc của ALU, con trỏ SP. 4. Chế độ hoạt động đặc biệt của Timer/Counter 2 qua thanh ghi điều khiển ASSR 5. Chế độ Reset cả 2 bộ Timer/Counter 0 và Timer/Counter 1 qua thanh ghi điều khiển SFIOR 6. Chế độ kiểm tra lỗi trên chip On-chip Debug 7. Chế độ ngắt ngoài của MCU 8. Chế độ trên thanh ghi SPMCR http://www.ebook.edu.vn
  2. Bộ điều khiển MCU 1.3.1 ALU – Arithmetic Logic Unit - Đơn vị xử lý số học và logic AVR ALU hiệu năng cao tác động trựuc tiếp tới 32 thanh ghi đa năng. Trong vòng 1 chu kỳ, các toán hạng số học thực hiện giữa các thanh ghi đa năng hoặc giữa một thanh ghi và một toán hạng tức thời. Các toán tử của ALU được chia làm 3 loại chính: Số học, logic, và xử lý bit. Một số phép xử lý của kiến trúc này cũng cung cấp bộ nhân số có dấu và không có dấu và dạng phân số. 1.3.2 Status Register – Thanh ghi trạng thái Thanh ghi trạng thái chứa thông tin về kết quả thưc hiện của hầu hết các lệnh số học. Các thông tin này có thể được sử dụng để điều khiển chương trình. Chú ý rằng các thanh ghi trạng thái được cập nhật sau tất cả các hoạt động của ALU. Trong nhiều trường hợp, điều này sẽ bỏ đi những cần thiết khi sử dụng câu lệnh so sánh chuyên dụng, kết quả nhanh hơn và đoạn chương trình ngắn gọn hơn. Thanh ghi trạng thái không tự động lưu trữ khi đang nhập vào môt thường trình ngắt và lưu trữ khi trở về tự một ngắt. Điều này phải được quản lý bằng phần mềm. Thanh ghi trạng thái AVR – SREG - được định nghĩa như sau: • Bit 7 – I: Global Interrupt Enable- bit cho phép ngắt toàn cục Bit cho phép ngắt toàn cục phải được đặt để cho các ngắt có thể hoạt động. Điều khiển hoạt động của các ngắt riêng biệt được thực hiện trong các thanh ghi điều khiển riêng biệt. Nếu thanh ghi cho phép ngắt toàn cục được xóa, không có một ngắt riêng biệt nào được hoạt động. Bit I được xóa bởi phần cứng sau khi một ngắt xảy ra và được đặt bởi lệnh RETI để cho các phép các ngắt tiếp theo hoạt động. Bit I cũng có thể được đặt và xóa bởi câu lệnh SEI và CLI trong các ứng dụng. • Bit 6 – T: Bit Copy Storage Các câu lệnh copy bit BLD (Bit LoaD) và BST (Bit STore) sử dụng bit T như là đích hoặc nguồn cho bit hoạt động. 1 bit từ một thanh ghi trong tệp thanh ghi có thể được copy vào bit T bằng lệnh BST và một bit trong T có thể được copy vào 1 bit trong thanh ghi trong tệp thanh ghi bằng lệng BLD. http://www.ebook.edu.vn
  3. Bộ điều khiển MCU • Bit 5 – H: Half Carry Flag Cờ nhớ một nửa dùng cho các toàn hạng hạng một nửa byte trong các phép toán số học. Cờ H sử dụng phép toán số học với số BDC . • Bit 4 – S: Sign Bit, S = N ⊕ V – bit dấu Bit S là phép XOR giữa cờ âm và cờ tràn V . • Bit 3 – V: Two’s Complement Overflow Flag – cờ tràn mã bù 2 Cờ tràn V hỗ trợ phép toán số bù 2. • Bit 2 – N: Negative Flag – cờ âm Cờ âm N hiển thị kết quả âm của phép toán logic hoặc số học. • Bit 1 – Z: Zero Flag Cờ Zero Z hiển thị kết quả bằng 0 của phép toán logic hoặc số học. • Bit 0 – C: Carry Flag Cờ nhớ C hiển thị số nhớ trong phép toán logic hoặc số học. http://www.ebook.edu.vn
  4. Bộ điều khiển MCU 1.3.4 Stack Pointer – ngăn xếp Stack thường được sử dụng để chứa dữ liệu tạm thời, cho việc lưu trữ các biến địa phương và cho việc lưu trữ địa chỉ trở về sau khi gọi các thường trình và các ngắt. Thanh ghi con trỏ thường trỏ tới đỉnh của stack. Chú ý rằng stack được thực hiện khi tăng thêm từ địa chỉ cao đến địa chỉ thấp, điều này nói lên rằng khi thực hiện lệnh PUSH thì con trỏ sẽ tự động giảm. Con trỏ trỏ đến vùng ngăn xếp dữ liệu SRAM . Không gian ngăn xếp trong SRAM phải được định nghĩa bằng chương trình trước khi bất cứ thường trình hoặc ngắt được thực hiện. Con trỏ ngăn xếp phải được set để trỏ tới địa chỉ trên $0100. Con trỏ ngăn xếp được giảm đi 1 khi dữ liệu được cất vào ngăn xếp và được giảm đi 2 khi cất địa chỉ trở về của thường trình hoặc ngắt. SP được tăng lên khi dữ liệu được lấy ra. AVR SP được thực hiện với 2 thanh ghi 8 bit trong không gian I/O. Số các bit thực tế sử dụng là tuỳ thuộc. Chú ý rằng không gian dữ liệu trong một số thực thi của kiến trúc AVR rất nhỏ, chỉ SPL là cần. Trong trường hợp này SPH không sử dụng. Hình 1.6 Sơ đồ các thanh ghi của con trỏ 1.3.5 Reset and Interrupt Handling - điều khiển ngắt và reset AVR cung cấp 1 vài nguồn ngắt khác nhau. Các ngắt này và vector reset riêng biệt có vector chương trình riêng biệt nằm trong không gian nhớ chương trình. Tất cả các ngắt được chỉ định bởi các bit cho phép riêng biệt mà các bit này phải được ghi mức logic 1 cùng với bit cho phép ngắt toàn cục trong thanh ghi trạng thái để cho phép ngắt. Phụ thuộc vào giá trị PC, các ngắt này phải được tự động loại bỏ khi các bit Boot Lock - BLB02 or BLB12 - được lập trình. Yếu tố này cải thiện độ an toàn phần mềm. Địa chỉ thấp nhất trong không gian bộ nhớ chương trình được mặc định là Reset và Interrupt Vectors. Bảng vector ngắt – bảng 3.1. http://www.ebook.edu.vn
  5. Bộ điều khiển MCU Bảng 1.1 Bảng vector ngắt và reset Khi địa chỉ càng nhỏ thì thứ tự ưu tiên càng cao. Các vector ngắt có thể được chuyển sang đầu của vùng Boot Flash bằng cách đặt bit IVSEL trong thanh ghi điều khiển ngắt (MCUCR). Reset Vector có thể được chuyển sang đầu của vùng Boot Flash bằng cách lập trình BOOTRST fuse. Khi một ngắt xảy ra, bit I (bit cho phép ngắt toàn cục) được xóa và tất cả các ngắt được loại bỏ. Phần mềm sử dụng có thể ghi mức logic 1 vào bit I để cho phép các ngắt tiếp theo. Tất cả các ngắt được kích hoạt có thể ngắt những thường trình ngắt hiện tại. Bit I được đặt tự động khi trở về từ lệnh RETI của ngắt. http://www.ebook.edu.vn
  6. Bộ điều khiển MCU Có 2 loại ngắt cơ bản. + Loại thứ nhất được gây ra bởi sự kiện mà đặt cờ ngắt. Đối với loại ngắt này, PC được hướng tới Interrupt Vector tương ứng để thực hiện thường trình phục vụ ngắt và phần cứng xoá cờ ngắt tương ứng. Các cờ ngắt cũng có thể được ghi mức logic 1 vào vị trí bit cờ để được xoá. Nếu một điều kiện ngắt xảy ra trong khi bit cho phép ngắt tương ứng bị xoá, thì cờ ngắt sẽ được đặt và được nhớ cho đến khi ngắt được thực hiện, hoặc là cờ ngắt được xoá bởi phần mềm. Tương tự nếu 1 hoặc nhiều điều kiện ngắt xảy ra trong khi cờ cho phép ngắt toàn cục bị xoá thì các cờ ngắt tương ứng sẽ được đặt và nhớ cho đến khi cờ cho phép ngắt toàn cục được đặt và nó sẽ được thực hiện theo thứ tự ưu tiên. + Loại ngắt thứ 2 sẽ kích hoạt kéo dài trong thời gian điều kiện ngắt tồn tại. Các ngắt này không cần thiết phải có cờ ngắt. Nếu điều kiện ngắt mất đi trước khi ngắt được cho phép, thì ngắt sẽ không xảy ra. Khi AVR thoát khỏi từ một ngắt, nó sẽ luôn trở về chương trình chính và thực hiện một hoặc nhiều lệnh trước khi một ngắt nào đó còn đợi đó được phục vụ. Chú ý rằng các thanh ghi trạng thái không tự động lưu trữ khi nhập vào một thường trình ngắt, và cũng không lưu trữ lại khi trở về từ một thường trình ngắt. Điều này phải được thực hiện bởi phần mềm. Khi sử dụng câu lệnh CLI để cấm ngắt, các ngắt sẽ không được tác động ngay lập tức. Không có ngắt nào được thực hiện sau khi thực hiện lệnh CLI, thậm chí nó xảy ra cùng lúc với lệnh CLI. Thời gian đáp ứng của 1 ngắt Việc thực hiện ngắt trong ít nhất 4 chu kỳ đồng hồ với tất cả các ngắt. Sau 4 chu kỳ đồng hồ, địa chỉ vector chương trình tương ứng với thường trình điều khiển ngắt thực sự được khởi tạo. Trong thời gian 4 chu kỳ này, PC được cất vào trong ngăn xếp. Vector thường là lệnh nhảy đến thường trình ngắt và lệnh nhảy này mất 3 chu kỳ đồng hồ. Nếu một ngắt xảy ra trong khi thực hiện một lệnh nhiều chu kỳ thì lệnh được hoàn thành trước khi ngắt được phục vụ. Nếu một ngắt xảy ra khi MCU đang trong chế độ ngủ thì thời gian đáp ứng ngắt sẽ tăng thêm 4 chu kỳ. Thời gian tăng thêm này là thời gian để khởi động lại từ chế độ ngủ. Sự trở về từ một thường trình điều khiển ngắt mất 4 chu kỳ xung nhịp. Trong thời gian 4 chu kỳ này, PC (2 bytes) được lấy ra từ ngăn xếp, SP được tăng lên 2, và bit I trong SREG được đặt. http://www.ebook.edu.vn
  7. Bộ điều khiển MCU Chế độ hoạt động và trạng thái làm việc của ALU và con trỏ SP 1.Status Register (SREG) Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và logic. C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập) Z: Zero Flag ;Cờ zero (Nếu kết quả phép toán bằng 0) N: Negative Flag (Nếu kết quả của phép toán là âm) V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2) V, For signed tests (S=N XOR V) S: N H: Half Carry Flag (Được sử dụng trong một số toán hạng sẽ được chỉ rõ sau) T: Transfer bit used by BLD and BST instructions(Được sử dụng làm nơi chung gian trong các lệnh BLD,BST). I: Global Interrupt Enable/Disable Flag (Đây là bit cho phép toàn cục ngắt.Nếu bit này ở trang thái logic 0 thì không có một ngắt nào được phục vụ.) 2.SP Là một thanh ghi 16 bit nhưng cũng có thể được xem như hai thanh ghi chức năng đặc biệt 8 bit. Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (Trong bộ nhớ RAM là $5E). Có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp. Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí. Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị ngăn xếp ít nhất cũng phải lơn hơn hợc bằng 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi. http://www.ebook.edu.vn
  8. Bộ điều khiển MCU 3.Ngắt và lập trình ngắt. ( con trỏ SP - bộ đếm chương trình PC - ngắt ) Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn xàng cho đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART nhận được một byte nó sẽ báo cho CPU biết thông qua cờ RXC,hợc khi nó đã truyền được một byte thì cờ TX được thiết lập… Phục vụ ngắt: Nếu như ngắt đó được cho phép thực hiện thì: Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu vị trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà trước khi có ngăt nó đang thực hiện. Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần lượt các ngắt theo mức ưu tiên.Trong khi đang thực hiện ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp.Trường hớp ngắt này có mức ưu tiên cao hơn thì nó sẽ được phục vụ. Còn nó mà có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua. Trong tài liệu của hãng sản xuất không thấy nói tới bộ nhớ ngăn xếp?vâng nó là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để truy nhập vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập vào SRAM theo kiểu ngăn xếp thì ta dùng con trỏ SP.Con trỏ này là một thanh ghi 16 bit và được truy nhập như hai thanh ghi 8 bit chung có địa chỉ :SPL :0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E. Khi chương trình phục vu ngắt hoặc chương trình con thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăng xếp giảm hai vị trí.Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh push. Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ.Và giá trị ngăn xếp ít nhất cũng phải lơn hơn 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi. Để thay đổi giá trị của SP ta có hai cách: ;Su dung dia chi truc tiep trong cac thanh I/O Ldi R17,0x00 OUT SPH,R17 ;nap gia tri 0x00 vao thanh ghi SPH Ldi R17,0xff OUT SPL ;nap gia tri 0xff vao thanh ghi SPL ;end ;su dung dia chi cua chung gian tiep qua SRAM Ldi R17,0x00 STS 0x5E,R17 Ldi R17,0xFF STS 0x5D,R17 http://www.ebook.edu.vn
  9. Bộ điều khiển MCU ;end 1. Xung nhịp hệ thống và các lựa chọn xung nhịp. http://www.ebook.edu.vn
  10. Bộ điều khiển MCU 1.1 Hệ thống xung nhịp và sử dụng chúng. Tất cả các xung nhịp cần phải không được kích hoạt tại một thời điểm. Để giảm tiêu thụ năng lượng, các xung nhịp dùng cho các modul không được sử dụng có thể bị treo bởi các chế độ ngủ khác nhau. Hình 1.9 Sơ đồ phân phối xung nhịp Xung nhịp cho CPU – clkCPU Xung nhịp CPU được gửi đến các vùng các nhau của hệ thống có liên quan tới các hoạt động của các bộ phận chính của AVR. Ví dụ như tệp thanh ghi, thanh ghi trạng thái và các vùng nhớ để chứa con trỏ stack. Xung nhịp I/O – clkI/O http://www.ebook.edu.vn
  11. Bộ điều khiển MCU Xung nhịp I/O được sử dụng cho đa số các module I/O, như là các bộ đếm / bộ định thời, SPI, và USART. xung nhịp I/O cũng được sử dụng cho module ngắt ngoài, nhưng chú ý rằng một số ngắt ngoài được tìm thấy bằng logic đồng bộ, cho phép các ngắt này được tìm thấy ngay cả khi đồng hồ I/O bị treo. Cũng phải chú ý rằng việc tìm ra điều kiện khởi động trong modul úI được thực hiện không đồng bộ khi clkI/O bị treo, địa chỉ TWI cũng được nhận ra trong tất cả các chế độ ngủ. Xung nhịp Flash – clkFLASH clkFLASH điều khiển hoạt động giao diện Flash. clkFLASH thường xuyên đồng thời với xung nhịp CPU. Asynchronous Timer Clock – clkASY Asynchronous Timer clock cho phép Asynchronous Timer/Counter được chạy trực tiếp từ xung nhịp bên ngoài hoặc thạch anh tạo xung 32 kHz bên ngoài. Xung nhịp cho phép sử dụng Timer/Counter như là bộ đếm thời gian thực, thậm chí khi thiết bị trong chế độ ngủ. Xung nhịp ADC – clkADC Bộ chuyển đổi ADC được cung cấp với xung nhịp khác. Điều này cho phép treo xung nhịp CPU và xung nhịp I/O để giảm nhiễu gây ra bởi mạch số. Điều này cho kết quả chuyển đổi ADC chính xác hơn. 1.2 Các nguồn tạo xung nhịp Bộ vi điều khiển có các nguồn đồng hồ tuỳ chọn sau đây, được lựa chọn bằng các bit Flash Fuse như chỉ ra trong bảng 3.2.Tín hiệu xung nhịp từ các nguồn được chọn được lấy từ các bộ phát xung nhịp của AVR, và đi đến các module thích hợp. http://www.ebook.edu.vn
  12. Bộ điều khiển MCU Bảng 1.2 Các nguồn tạo xung nhịp và cách lựa chọn Nguồn xung nhịp mặc định Bộ tạo dao động RC bên trong với tần số 8.0MHz cùng với cầu chì CKDIV8 đã được đặt cho ta xung nhịp 1.0MHz. Thời gian khởi động được đặt tối đa và chu kỳ time-out được kích hoạt (CKSEL = “0010”, SUT = “10” và CKDIV8=”0”). Sự cài đặt mặc định này đảm bảo rằng tất cả các sử dụng có thể tạo nên nguồn đồng hồ mong muốn khi sử dụng bất cứ giao diện lập trình hiện có nào. 2. Quản lý năng lượng và các chế độ ngủ Các chế độ ngủ kích họat ứng dụng để tắt những module không sử dụng trong MCU, do đó năng lượng được tiết kiệm. AVR cung cấp các chế độ ngủ khác nhau cho phép sử dụng hợp lý tiêu thụ năng lượng ứng với các yêu cầu ứng dụng. Để nhập vào 1 trong 6 chế độ ngủ, bit SE trong MCUCR phải được ghi là 1 và câu lệnh SLEEP phải được chạy. Các bit SM2, SM1, và SM0 trong thanh ghi MCUCR lựa chọn chế độ ngủ (nhàn rỗi, giảm nhiễu http://www.ebook.edu.vn
  13. Bộ điều khiển MCU ADC, giảm năng lượng, tiết kiệm năng lượng, chờ). Xem tổng kết ở bảng 3.3. Bảng 1.3 Lựa chọn chế độ ngủ Nếu xảy ra ngắt trong khi MCU đang ngủ thì MCU thức dậy. MCU treo thêm trong vòng 4 chu kỳ để khởi động, nó thực hiện thường trình ngắt, và dành lại việc thực hiện lệnh SLEEP tiếp theo. Nội dung của tệp thanh ghi và SRAM là còn nguyên khi thiết bị tỉnh dậy từ trạng thái ngủ. Nếu Reset xảy ra trong khi ngủ, thì MCU tỉnh dậy và thực hiện từ vector reset. Thanh ghi điều khiển MCU –MCUCR http://www.ebook.edu.vn
  14. Bộ điều khiển MCU Thanh ghi trạng thái điều khiển MCU chứa các bit điều khiển để quản lý năng lượng. • Bit 7..4 – Res: Dự phòng • Bits 6...4 – SM2..0: Lựa chọn chế độ ngủ 3.Điều khiển hê thống và Reset 3.1 Resetting AVR Trong khi reset, tất cả các thanh ghi I/O được đặt giá trị khởi tạo của nó, và chương trình bắt đầu hoạt động từ vectơ reset. Câu lệnh được đặt trong vectơ reset phải là RJMP – nhảy liên quan - tới thường trình kiểm soát reset. Nếu chương trình không bao giờ kích hoạt 1 nguồn ngắt, vectơ ngắt không được sử dụng, mã chương trình bình thường có thể được đặt tại các vị trí này. Điều này cũng là trường hợp nếu vector reset nằm trong vùng ứng dụng trong khi các vector ngắt nằm trong vùng boot hoặc vice versa. S Hình 3.10 chỉ ra ligic reset. Bảng 3.4 mô tả thông số về điện của http://www.ebook.edu.vn
  15. Bộ điều khiển MCU mạch reset. Bảng 1.4 Đặc tính của Reset Các nguồn Reset ATmega88 có 4 nguồn Reset: * Power-on Reset: MCU được reset khi nguồn điện áp cung cấp ở dưới mức ngưỡng Power-on Reset. * Reset bên ngoài: MCU được reset khi 1 mức thấp hiện diện tại chân RESET trong thời gian dài hơn xung nhỏ nhất. * Watchdog Reset: MCU được reset khi giai đoạn Watchdog Timer kết thúc và chế độ Watchdog system reset được cho phép. * Brown-out Reset: MCU được reset khi nguồn điện áp VCC ở mức dưới ngưỡng Brown-out Reset (VBOT) và đầu dò Brown-out được cho phép. http://www.ebook.edu.vn
  16. Bộ điều khiển MCU Hình 1.10 Logic reset Thanh ghi trạng thái và điều khiển MCU – MCUCSR Thanh ghi trạng thái và điều khiển MCU cung cấp thông tin mà dựa vào nó nguồn reset gây ra 1 reset MCU. • Bit 7..4 – Res: Dự phòng • Bit 3 – WDRF: Cờ reset hệ thống Watchdog • Bit 2 – BORF: Cờ reset Brown-out • Bit 1 – EXTRF: Cờ reset từ bên ngoài • Bit 0 – PORF: Cờ reset Power-on http://www.ebook.edu.vn
  17. Bộ điều khiển MCU 3.2 Internal Voltage Reference- tham chiếu điện áp bên trong Sự tham chiếu được sử dụng cho việc thăm dò Brown-out, và nó có thể được sử dụng như là một đầu vào của bộ so sánh tương tự hoặc ADC. 3.3 Watchdog Timer Có những đặc điểm chính như sau: • Được cung cấp xung nhịp từ một bộ tạo dao động trên chip. • Có 3 chế độ hoạt động. Ngắt Reset hệ thống Ngắt và reset hệ thống • Chu kỳ time-out được lựa chon từ 6ms đến 8s. • Cầu chì phần cứng Watchdog luôn được bật. Hình 1.11 Watchdog Timer Thanh ghi điều khiển Watchdog Timer http://www.ebook.edu.vn
  18. Bộ điều khiển MCU • Bits 7-WDIF: Cờ ngắt Watchdog • Bit 6 – WDIE: Kích hoạt Watchdog • Bit 4 – WDCE: Kích hoạt thay đổi Watchdog • Bits 5,2..0 – WDP3..0, WDP1, WDP0: Chọn Watchdog Timer với tỷ lệ 2, 1 và 0 4. Interrupt Vectors trong ATmega88 Địa chỉ vector ngắt và Reset – bảng 3.6 Bảng vector ngắt – bảng 3.7 Bảng 1.6 Địa chỉ của vector ngắt và Reset Di chuyển các ngắt giữa vùng chương trình ưng dụng và Boot Thanh ghi điều khiển MCU điều khiển vị trí của bảng vector ngắt. Thanh ghi điều khiển ngắt – MCUCR • Bit 1 – IVSEL: Lựa chọn vector ngắt • Bit 0 – IVCE: Cho phép thay đổi vector ngắt http://www.ebook.edu.vn
  19. Bộ điều khiển MCU Bảng 1.7 Các vector ngắt và Reset 4.1 Các ngắt ngoài Các ngắt ngoài được kích hoạt bởi chân INT0 và INT1 hoặc bởi các chân PCINT23..0 . Cần phải chú ý rằng, khi được cho phép, các ngắt này sẽ kích hoạt thậm chí nếu các chân INT0, INT1 và INT23..0 được cấu hình như các chân ra. Yếu tố này cung cấp cho chúng ta một cách để sinh ra ngắt phần mềm. Ngắt PC12 sẽ kích hoạt nếu một trong số các chân được phép PCINT23..16 chốt. Ngắt PC11 sẽ kích hoạt nếu một trong số các chân được phép PCINT14..8 chốt. Ngắt PC10 sẽ được kích hoạt nếu một trong số các chân được phép PCINT7..0 chốt. Các thanh ghi PCMSK0, PCMSK1 PCMSK3 điều khiển các chân góp phần tạo nên các ngắt thay đổi chân. Các ngắt thay đổi chân từ PCINT23..0 được nhận ra một cách đồng bộ. Điều này gợi ý rằng các ngắt cũng có thể được sử dụng cho việc đánh thức các phần đang trong chế độ ngủ sâu hơn chế độ nhàn dỗi. Các ngắt INT1, INT0 có thể được kích hoạt bằng xườn lên hoặc xườn xuống hoặc mức thấp. Điều này được điều khiển trong thanh ghi A-EICRA. Khi các ngắt này được http://www.ebook.edu.vn
  20. Bộ điều khiển MCU phép hoàt động và được cấu hình để kích hoạt theo mức, thì các ngắt này sé kích trong thời gian chừng nào chân còn giữ ở mức thấp. 4.1.1 Sơ đồ thời gian ngắt do thay đổi trên chân. Hình 1.12 Giản đồ thời gian của các ngắt do thay đổi trên chân 4.1.2 Thanh ghi điều khiển ngắt ngoài A - EICRA 4.1.3 Thanh ghi mặt nạ ngắt ngoài - EIMSK 4.1.4 Thanh ghi cờ ngắt ngoài - EIFR http://www.ebook.edu.vn
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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