Atmel

Bộ vi điều khiển AVR 8-bit của Atmel với Flash có thể lập trình trong hệ thống 2/4/8K bytecon chip

 

Đặc trưng

  • Bộ vi điều khiển 8 bit AVR® hiệu suất cao, công suất thấp
  • Kiến trúc RISC nâng cao
  • 120 hướng dẫn mạnh mẽ - Thực hiện hầu hết các chu kỳ đồng hồ duy nhất
  • 32 x 8 thanh ghi làm việc cho mục đích chung
  • Hoạt động hoàn toàn tĩnh
  • Bộ nhớ dữ liệu và chương trình không thay đổi
  • 2/4 / 8K byte Bộ nhớ chương trình lập trình trong hệ thống Flash
  • Sức bền: 10,000 chu kỳ ghi/xóa
  • 128/256/512 byte EEPROM có thể lập trình trong hệ thống
  • Sức bền: 100,000 chu kỳ ghi/xóa
  • 128/256/512 byte SRAM nội bộ
  • Khóa lập trình cho chương trình Flash tự lập trình và bảo mật dữ liệu EEPROM

Tính năng ngoại vi

  • Bộ định thời / Bộ đếm 8 bit với Bộ định mức và Hai kênh PWM
  • Bộ hẹn giờ / bộ đếm tốc độ cao 8 bit với bộ định mức riêng biệt
  • 2 đầu ra PWM tần số cao với thanh ghi so sánh đầu ra riêng biệt
  • Trình tạo thời gian chết có thể lập trình
  • USI - Giao diện nối tiếp đa năng với máy dò tình trạng khởi động
  • Bộ chuyển đổi ADC 10 bit

4 kênh kết thúc đơn

2 cặp kênh ADC vi sai với độ lợi có thể lập trình (1x, 20x)

Đo nhiệt độ

Bộ định thời gian giám sát có thể lập trình với Bộ dao động trên chip riêng biệt

Bộ so sánh tương tự trên chip

Các tính năng đặc biệt của vi điều khiển

debugWIRE Hệ thống gỡ lỗi trên chip

Trong hệ thống có thể lập trình qua cổng SPI

Nguồn ngắt bên ngoài và bên trong

Chế độ Chờ nguồn thấp, Giảm nhiễu ADC và Chế độ ngắt nguồn

Mạch khởi động lại nguồn nâng cao

Mạch phát hiện màu nâu có thể lập trình

Bộ dao động hiệu chỉnh nội bộ

I / O và các gói

Sáu dòng I / O có thể lập trình

PDIP 8 chân, SOIC 8 chân, QFN / MLF 20-pad và TSSOP 8-pin (chỉ ATtiny45 / V)

Hoạt động Voltage
- 1.8 - 5.5V cho ATtiny25V / 45V / 85V
- 2.7 - 5.5V cho ATtiny25/45/85

Cấp tốc độ
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny25/45/85: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V

Phạm vi nhiệt độ công nghiệp

Tiêu thụ điện năng thấp

Chế độ hoạt động:

1 MHz, 1.8V: 300 µA

Chế độ tắt nguồn:

Cấu hình ghim

Sơ đồ chân ATtiny25/45/85 Cấu hình

Mô tả Pin

VCC: Nguồn cungtage.
GND: Mặt đất.
Cổng B (PB5:PB0): Cổng B là cổng I/O hai chiều 6 bit với các điện trở kéo lên bên trong (được chọn cho mỗi bit). Bộ đệm đầu ra của Cổng B có các đặc tính điều khiển đối xứng với cả khả năng nguồn và độ chìm cao. Là đầu vào, các chân của Cổng B được kéo xuống thấp bên ngoài sẽ cấp nguồn nếu các điện trở kéo lên được kích hoạt. Các chân của Cổng B ở trạng thái ba trạng thái khi điều kiện đặt lại hoạt động, ngay cả khi đồng hồ không chạy.

Cổng B cũng phục vụ các chức năng của các tính năng đặc biệt khác nhau của ATtiny25 / 45/85 như được liệt kê
Trên ATtiny25, các cổng I / O có thể lập trình PB3 và PB4 (chân 2 và 3) được trao đổi trong Chế độ Tương thích ATtiny15 để hỗ trợ khả năng tương thích ngược với ATtiny15.

RESET: Đặt lại đầu vào. Mức thấp trên chân này lâu hơn độ dài xung tối thiểu sẽ tạo ra quá trình đặt lại, ngay cả khi đồng hồ không chạy và với điều kiện là chân đặt lại chưa bị vô hiệu hóa. Độ dài xung tối thiểu được đưa ra trong Bảng 21-4 trên trang 165. Các xung ngắn hơn không được đảm bảo để tạo ra một thiết lập lại.

Chân đặt lại cũng có thể được sử dụng như một chân I / O (yếu).

Quaview

ATtiny25 / 45/85 là vi điều khiển CMOS 8-bit công suất thấp dựa trên kiến ​​trúc RISC nâng cao của AVR. Bằng cách thực hiện các lệnh mạnh mẽ trong một chu kỳ xung nhịp, ATtiny25 / 45/85 đạt được thông lượng gần 1 MIPS trên mỗi MHz cho phép nhà thiết kế hệ thống tối ưu hóa mức tiêu thụ điện năng so với tốc độ xử lý.

Sơ đồ khối Sơ đồ khối

Lõi AVR kết hợp một tập lệnh phong phú với 32 thanh ghi làm việc cho mục đích chung. Tất cả 32 thanh ghi được kết nối trực tiếp với Đơn vị Logic Số học (ALU), cho phép hai thanh ghi độc lập được truy cập trong một lệnh duy nhất được thực hiện trong một chu kỳ đồng hồ. Kiến trúc kết quả là mã hiệu quả hơn trong khi đạt được thông lượng nhanh hơn đến mười lần so với vi điều khiển CISC thông thường.

ATtiny25 / 45/85 cung cấp các tính năng sau: 2/4 / 8K byte Flash lập trình trong hệ thống, 128/256/512 byte EEPROM, 128/256/256 byte SRAM, 6 dòng I / O mục đích chung, 32 dòng chung các thanh ghi làm việc mục đích, một Bộ định thời / Bộ đếm 8 bit với các chế độ so sánh, một Bộ định thời / Bộ đếm tốc độ cao 8 bit, Giao diện nối tiếp đa năng, Ngắt bên trong và bên ngoài, Bộ định thời giám sát 4 kênh, 10 bit, Bộ định thời giám sát có thể lập trình với bên trong Bộ tạo dao động và ba chế độ tiết kiệm năng lượng có thể lựa chọn phần mềm. Chế độ không hoạt động dừng CPU trong khi cho phép hệ thống SRAM, Bộ hẹn giờ / Bộ đếm, ADC, Bộ so sánh tương tự và Ngắt tiếp tục hoạt động. Chế độ tắt nguồn sẽ lưu các thanh ghi, vô hiệu hóa tất cả các chức năng của chip cho đến lần Ngắt hoặc Thiết lập lại phần cứng tiếp theo. Chế độ Giảm nhiễu ADC dừng CPU và tất cả các mô-đun I / O ngoại trừ ADC, để giảm thiểu nhiễu chuyển mạch trong quá trình chuyển đổi ADC.

Thiết bị được sản xuất bằng công nghệ bộ nhớ không bay hơi mật độ cao của Atmel. ISP Flash 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 giao diện nối tiếp SPI, bởi bộ lập trình bộ nhớ không bay hơi thông thường hoặc bằng mã khởi động trên chip chạy trên lõi AVR.

ATtiny25 / 45/85 AVR được hỗ trợ với bộ công cụ phát triển hệ thống và chương trình đầy đủ bao gồm: C Com- pilers, Macro Assemblers, Program Debugger / Simulators và Assess kit.

Về tài nguyên

Một bộ công cụ phát triển toàn diện, ghi chú ứng dụng và bảng dữ liệu có sẵn để tải xuống trên http://www.atmel.com/avr.

Mã Examptập

Tài liệu này chứa mã đơn giản, ví dụ:amples trình bày ngắn gọn cách sử dụng các bộ phận khác nhau của thiết bị. Những mã này cũamples giả định rằng phần tiêu đề cụ thể file được đưa vào trước khi biên dịch. Lưu ý rằng không phải tất cả các nhà cung cấp trình biên dịch C đều bao gồm các định nghĩa bit trong tiêu đề files và xử lý ngắt trong C phụ thuộc vào trình biên dịch. Vui lòng xác nhận với tài liệu trình biên dịch C để biết thêm chi tiết.

Đối với các Thanh ghi I / O nằm trong bản đồ I / O mở rộng, các hướng dẫn “IN”, “OUT”, “SBIS”, “SBIC”, “CBI” và “SBI” phải được thay thế bằng các hướng dẫn cho phép truy cập vào I mở rộng / O. Thông thường, điều này có nghĩa là “LDS” và “STS” được kết hợp với “SBRS”, “SBRC”, “SBR” và “CBR”. Lưu ý rằng không phải tất cả các thiết bị AVR đều có bản đồ I / O mở rộng.

Cảm ứng điện dung

Thư viện Atmel QTouch cung cấp một giải pháp đơn giản để sử dụng cho các giao diện cảm ứng trên bộ vi điều khiển Atmel AVR. Thư viện QTouch bao gồm hỗ trợ cho các phương pháp thu nhận QTouch® và QMatrix®.

Cảm biến chạm dễ dàng được thêm vào bất kỳ ứng dụng nào bằng cách liên kết Thư viện QTouch và sử dụng Giao diện lập trình ứng dụng (API) của thư viện để xác định các kênh cảm ứng và cảm biến. Sau đó, ứng dụng sẽ gọi API để lấy thông tin kênh và xác định trạng thái của cảm biến cảm ứng.

Thư viện QTouch miễn phí và có thể tải xuống từ Atmel webĐịa điểm. Để biết thêm thông tin và chi tiết về việc triển khai, hãy tham khảo Hướng dẫn sử dụng Thư viện QTouch - cũng có sẵn từ Atmel webđịa điểm.

Lưu giữ dữ liệu

Độ tin cậy Kết quả đánh giá cho thấy tỷ lệ thất bại trong việc lưu giữ dữ liệu dự kiến ​​thấp hơn nhiều so với 1 PPM trong 20 năm ở 85 ° C hoặc 100 năm ở 25 ° C.

Lõi CPU AVR

Giới thiệu

Phần này thảo luận về kiến ​​trúc lõi AVR nói chung. Chức năng chính của lõi CPU là đảm bảo thực thi chương trình trực tiếp. Do đó, CPU phải có khả năng truy cập bộ nhớ, thực hiện tính toán, điều khiển thiết bị ngoại vi và xử lý ngắt.

Kết thúc kiến ​​trúcview Ngành kiến ​​​​trúc

Để tối đa hóa hiệu suất và tính song song, AVR sử dụng kiến ​​trúc Harvard - với các bộ nhớ và bus riêng biệt cho chương trình và dữ liệu. Các lệnh trong bộ nhớ chương trình được thực thi với một đường dẫn cấp duy nhất. Trong khi một lệnh đang được thực thi, lệnh tiếp theo được tìm nạp trước từ bộ nhớ Chương trình. Khái niệm này cho phép thực hiện các lệnh trong mọi chu kỳ đồng hồ. Bộ nhớ chương trình là bộ nhớ Flash có thể lập trình lại trong hệ thống.

Đăng ký truy cập nhanh File chứa các thanh ghi làm việc cho mục đích chung 32 x 8 bit với thời gian truy cập một chu kỳ đồng hồ. Điều này cho phép vận hành Đơn vị logic số học (ALU) một chu kỳ. Trong một hoạt động ALU điển hình, hai toán hạng được xuất ra từ Thanh ghi File, hoạt động được thực hiện và kết quả được lưu trữ trở lại trong sổ đăng ký File- trong một chu kỳ đồng hồ.

Sáu trong số 32 thanh ghi có thể được sử dụng như ba con trỏ thanh ghi địa chỉ gián tiếp 16 bit để định địa chỉ Không gian dữ liệu - cho phép tính toán địa chỉ hiệu quả. Một trong những con trỏ địa chỉ này cũng có thể được sử dụng như một con trỏ địa chỉ để tra cứu 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 này là thanh ghi X-, Y- và Z 16-bit, được mô tả sau trong phần này.

ALU hỗ trợ các phép toán số học và logic giữa các thanh ghi hoặc giữa một hằng số và một thanh ghi. Các hoạt động thanh ghi đơn cũng có thể được thực hiện trong ALU. Sau một phép toán số học, Sổ đăng ký Trạng thái được cập nhật để phản ánh thông tin về kết quả của phép toán.

Luồng chương trình được cung cấp bởi các lệnh gọi và nhảy có điều kiện và không điều kiện, có thể giải quyết trực tiếp toàn bộ không gian địa chỉ. Hầu hết các hướng dẫn AVR có một định dạng từ 16 bit duy nhất, nhưng cũng có các hướng dẫn 32 bit.

Trong các lần ngắt và lệnh gọi chương trình con, địa chỉ trả về Bộ đếm chương trình (PC) được lưu trữ trên Ngăn xếp. Ngăn xếp được phân bổ hiệu quả trong SRAM dữ liệu chung, và do đó kích thước Ngăn xếp chỉ bị giới hạn bởi tổng kích thước SRAM và việc sử dụng SRAM. Tất cả các chương trình người dùng phải khởi tạo SP trong quy trình Đặt lại (trước khi các quy trình con hoặc ngắt được thực thi). Con trỏ ngăn xếp (SP) có thể đọc / ghi trong không gian I / O. SRAM dữ liệu có thể dễ dàng được truy cập thông qua năm chế độ địa chỉ khác nhau được hỗ trợ trong kiến ​​trúc AVR.

Các không gian bộ nhớ trong kiến ​​trúc AVR đều là bản đồ bộ nhớ tuyến tính và thông thường.

Mô-đun 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 một bit Kích hoạt ngắt toàn cục bổ sung trong Thanh ghi Trạng thái. Tất cả các ngắt đều có một Vectơ Ngắt riêng trong bảng Vectơ Ngắt. Các ngắt có mức ưu tiên phù hợp với vị trí Véc tơ ngắt của chúng. Địa chỉ Vectơ ngắt càng thấp, mức độ ưu tiên càng cao.

Không gian bộ nhớ I / O chứa 64 địa chỉ cho các chức năng ngoại vi của CPU như Thanh ghi điều khiển, SPI và các chức năng I / O khác. Bộ nhớ I / O có thể được truy cập trực tiếp hoặc như các vị trí của Không gian dữ liệu sau các vị trí của Bộ đăng ký File, 0x20 - 0x5F.

ALU - Đơn vị logic số học

AVR ALU hiệu suất cao hoạt động kết nối trực tiếp với tất cả 32 thanh ghi làm việc đa năng. Trong một chu kỳ đồng hồ duy nhất, các phép toán số học giữa các thanh ghi mục đích chung hoặc giữa thanh ghi và thanh ghi tức thời được thực hiện. Các phép toán ALU được chia thành ba loại chính - hàm số học, logic và hàm bit. Một số triển khai của kiến ​​trúc cũng cung cấp một hệ số nhân mạnh mẽ hỗ trợ cả phép nhân có dấu / không dấu và định dạng phân số. Xem phần “Bộ hướng dẫn” để biết mô tả chi tiết.

Đăng kí trạng thái

Thanh ghi Trạng thái chứa thông tin về kết quả của lệnh số học được thực hiện gần đây nhất. Thông tin này có thể được sử dụng để thay đổi luồng chương trình nhằm thực hiện các hoạt động có điều kiện. Lưu ý rằng Thanh ghi Trạng thái được cập nhật sau tất cả các hoạt động ALU, như được chỉ định trong Tham chiếu Tập lệnh. Điều này trong nhiều trường hợp sẽ loại bỏ nhu cầu sử dụng các hướng dẫn so sánh chuyên dụng, dẫn đến mã nhanh hơn và nhỏ gọn hơn.

Thanh ghi trạng thái không tự động được lưu trữ khi nhập một quy trình ngắt và được khôi phục khi trở lại từ một ngắt. Điều này phải được xử lý bằng phần mềm.

SREG - Đăng ký trạng thái AVR

Thanh ghi trạng thái AVR - SREG - được định nghĩa là:

Chút 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
Đọc/Ghi Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

Bit 7 - I: Kích hoạt ngắt toàn cục

Bit Kích hoạt ngắt toàn cục phải được đặt cho các ngắt được kích hoạt. Điều khiển cho phép ngắt riêng lẻ sau đó đượ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 bị xóa, không có ngắt nào được bật độc lập với các cài đặt cho phép ngắt riêng lẻ. I-bit bị xóa bởi phần cứng sau khi xảy ra ngắt và được đặt bởi lệnh RETI để cho phép ngắt tiếp theo. I-bit cũng có thể được thiết lập và xóa bởi ứng dụng với các hướng dẫn SEI và CLI, như được mô tả trong tham chiếu tập lệnh.

Bit 6 - T: Bộ nhớ sao chép bit

Hướng dẫn Copy Bit BLD (Bit LoaD) và BST (Bit STore) sử dụng T-bit làm nguồn hoặc đích cho bit được vận hành. Một chút từ một thanh ghi trong Sổ đăng ký File có thể được sao chép vào T bằng lệnh BST, và một bit trong T có thể được sao chép vào một bit trong thanh ghi trong Thanh ghi File theo hướng dẫn của BLĐ.

Bit 5 - H: Cờ Half Carry

Cờ Half Carry H cho biết Half Carry trong một số phép toán số học. Half Carry rất hữu ích trong số học BCD. Xem “Mô tả Bộ Hướng dẫn” để biết thông tin chi tiết.

Bit 4 – S: Bit dấu, S = N ⊕ V

S-bit luôn là một độc quyền hoặc giữa Cờ Phủ định N và Cờ Tràn bổ sung của Hai V. Xem “Mô tả Bộ Hướng dẫn” để biết thông tin chi tiết.

Bit 3 - V: Cờ tràn bổ sung của Two

Cờ tràn phần bù của hai V hỗ trợ số học phần bù của hai. Xem “Mô tả Bộ Hướng dẫn” để biết thông tin chi tiết.

Bit 2 - N: Cờ phủ định

Cờ phủ định N cho biết kết quả âm trong phép toán số học hoặc logic. Xem “Mô tả Bộ Hướng dẫn” để biết thông tin chi tiết.

Bit 1 - Z: Cờ Zero

Cờ Zero Z cho biết kết quả bằng XNUMX trong một phép toán số học hoặc logic. Xem “Mô tả Bộ Hướng dẫn” để biết thông tin chi tiết.

Bit 0 - C: Cờ Carry

Cờ Carry C biểu thị một thực hiện trong một phép toán số học hoặc logic. Xem “Mô tả Bộ Hướng dẫn” để biết thông tin chi tiết.

Sổ đăng ký mục đích chung File

Sổ đăng ký File được tối ưu hóa cho tập lệnh RISC Nâng cao AVR. Để đạt được hiệu quả và tính linh hoạt cần thiết, các sơ đồ đầu vào / đầu ra sau đây được Đăng kiểm hỗ trợ File:

Một toán hạng đầu ra 8 bit và một đầu vào kết quả 8 bit

Hai toán hạng đầu ra 8 bit và một đầu vào kết quả 8 bit

Hai toán hạng đầu ra 8 bit và một đầu vào kết quả 16 bit

Một toán hạng đầu ra 16 bit và một đầu vào kết quả 16 bit

Hình 4-2 cho thấy cấu trúc của 32 thanh ghi làm việc mục đích chung trong CPU. Mục đích chung

Như thể hiện trong Hình 4-2, mỗi thanh ghi cũng được gán một địa chỉ Bộ nhớ dữ liệu, ánh xạ chúng trực tiếp vào 32 vị trí đầu tiên của Không gian dữ liệu người dùng. Mặc dù không được thực hiện vật lý như các vị trí SRAM, tổ chức bộ nhớ này cung cấp tính linh hoạt cao trong việc truy cập các thanh ghi, vì các thanh ghi con trỏ X-, Y- và Z có thể được thiết lập để lập chỉ mục bất kỳ thanh ghi nào trong file.Hầu hết các hướng dẫn hoạt động trên Đăng ký File có quyền truy cập trực tiếp vào tất cả các thanh ghi, và hầu hết chúng đều là các lệnh chu trình.

Thanh ghi X, thanh ghi Y và thanh ghi Z

Thanh ghi R26..R31 có một số chức năng được bổ sung cho mục đích sử dụng chung của chúng. Các thanh ghi này là các con trỏ địa chỉ 16 bit để định địa chỉ gián tiếp cho không gian dữ liệu. Ba thanh ghi địa chỉ gián tiếp X, Y và Z được định nghĩa như mô tả trong Hình 4-3.

Đăng ký

Trong các chế độ định địa chỉ khác nhau, các thanh ghi địa chỉ này có các chức năng như dịch chuyển cố định, tăng tự động và giảm tự động (xem phần tham khảo tập lệnh để biết thêm chi tiết).

Con trỏ ngăn xếp

Ngăn xếp chủ yếu được sử dụng để lưu trữ dữ liệu tạm thời, lưu trữ các biến cục bộ và lưu trữ địa chỉ trả về sau khi ngắt và các lệnh gọi chương trình con. Thanh ghi con trỏ ngăn xếp luôn trỏ đến đầu ngăn xếp. Lưu ý rằng Ngăn xếp được triển khai khi phát triển từ các vị trí bộ nhớ cao hơn đến các vị trí bộ nhớ thấp hơn. Điều này ngụ ý rằng lệnh Stack PUSH làm giảm con trỏ ngăn xếp.

Con trỏ ngăn xếp trỏ đến vùng ngăn xếp SRAM dữ liệu nơi chứa chương trình con và ngăn xếp ngắt. Không gian ngăn xếp này trong SRAM dữ liệu phải được xác định bởi chương trình trước khi bất kỳ lệnh gọi chương trình con nào được thực hiện hoặc kích hoạt liên kết. Con trỏ ngăn xếp phải được đặt thành điểm trên 0x60. Con trỏ ngăn xếp giảm đi một khi dữ liệu được đẩy vào ngăn xếp bằng lệnh PUSH và giảm đi hai khi địa chỉ trả về được đẩy vào ngăn xếp với lệnh gọi hoặc ngắt chương trình con. Con trỏ ngăn xếp được tăng lên một khi dữ liệu được bật ra từ Ngăn xếp với lệnh POP và nó được tăng lên hai khi dữ liệu được bật từ Ngăn xếp với trả về từ chương trình con RET hoặc trả về từ ngắt RETI.

Con trỏ ngăn xếp AVR được thực hiện dưới dạng hai thanh ghi 8-bit trong không gian I / O. Số lượng bit thực sự được sử dụng phụ thuộc vào việc triển khai. Lưu ý rằng không gian dữ liệu trong một số triển khai của kiến ​​trúc AVR rất nhỏ nên chỉ cần SPL. Trong trường hợp này, Sổ đăng ký SPH sẽ không có mặt.

SPH và SPL - Thanh ghi con trỏ ngăn xếp

Chút 15 14 13 12 11 10 9 8
0x3E SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8 SPH
0x3D SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0 SPL
7 6 5 4 3 2 1 0
Đọc/Ghi Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Đọc/Ghi Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND
Giá trị ban đầu RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND

Thời gian thực hiện lệnh

Phần này mô tả các khái niệm thời gian truy cập chung để thực hiện lệnh. CPU AVR được điều khiển bởi xung nhịp CPU clkCPU, được tạo trực tiếp từ nguồn xung nhịp đã chọn cho chip. Không có phân chia đồng hồ nội bộ được sử dụng.

Hình 4.4

Hình 4-4 hiển thị các lần tìm nạp lệnh song song và thực thi lệnh được kích hoạt bởi kiến ​​trúc Harvard và Đăng ký truy cập nhanh File ý tưởng. Đây là khái niệm pipelining cơ bản để thu được tối đa 1 MIPS trên mỗi MHz với các kết quả duy nhất tương ứng cho các chức năng trên mỗi chi phí, chức năng trên mỗi đồng hồ và chức năng trên mỗi đơn vị công suất.

Hình 4-5. Vận hành ALU một chu kỳ

Hình 4.5

Đặt lại và xử lý ngắt

AVR cung cấp một số nguồn ngắt khác nhau. Các ngắt này và Vectơ đặt lại riêng biệt, mỗi ngắt có một Vectơ chương trình riêng trong vùng bộ nhớ chương trình. Tất cả các ngắt đều được gán các bit cho phép riêng lẻ, bit này phải được viết logic một cùng với bit Bật ngắt toàn cục trong Thanh ghi trạng thái để cho phép ngắt.

Các địa chỉ thấp nhất trong không gian bộ nhớ Chương trình được định nghĩa theo mặc định là các Vectơ Đặt lại và Ngắt. Danh sách đầy đủ các vectơ được hiển thị trong “Gián đoạn” trên trang 48. Danh sách cũng xác định mức độ ưu tiên của các ngắt khác nhau. Địa chỉ càng thấp thì mức độ ưu tiên càng cao. RESET có mức ưu tiên cao nhất và tiếp theo là INT0 - Yêu cầu ngắt bên ngoài 0.

Khi xảy ra ngắt, I-bit cho phép ngắt toàn cục sẽ bị xóa và tất cả các ngắt đều bị vô hiệu hóa. Phần mềm người dùng có thể ghi logic một vào I-bit để kích hoạt các ngắt lồng nhau. Tất cả các ngắt được kích hoạt sau đó có thể làm gián đoạn quy trình ngắt hiện tại. I-bit được đặt tự động khi lệnh Return from Interrupt - RETI - được thực thi.

Về cơ bản có hai loại ngắt. Loại đầu tiên được kích hoạt bởi một sự kiện đặt Cờ ngắt. Đối với những ngắt này, Bộ đếm chương trình được vectơ vectơ ngắt thực tế để thực hiện quy trình xử lý ngắt và phần cứng sẽ xóa Cờ ngắt tương ứng. Các cờ ngắt cũng có thể được xóa bằng cách ghi một logic vào (các) vị trí bit cờ cần xóa. Nếu điều kiện ngắt xảy ra trong khi bit kích hoạt ngắt tương ứng bị xóa, Cờ ngắt sẽ được thiết lập và ghi nhớ cho đến khi ngắt được bật hoặc cờ được 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 xảy ra trong khi bit Kích hoạt ngắt toàn cục bị xóa, (các) Cờ ngắt tương ứng sẽ được đặt và ghi nhớ cho đến khi đặt bit Kích hoạt ngắt toàn cầu và sau đó sẽ được thực thi theo thứ tự ưu tiên.

Loại ngắt thứ hai sẽ kích hoạt miễn là có điều kiện ngắt. Các ngắt này nhất thiết không có Cờ ngắt. Nếu điều kiện ngắt biến mất trước khi ngắt được kích hoạt, ngắt sẽ không được kích hoạt.

Khi AVR thoát khỏi một ngắt, nó sẽ luôn quay trở lại chương trình chính và thực hiện thêm một lệnh nữa trước khi bất kỳ ngắt đang chờ xử lý nào được phục vụ.

Lưu ý rằng thanh ghi trạng thái không được tự động lưu trữ khi nhập một quy trình ngắt, cũng như không được khôi phục khi trở lại từ một quy trình ngắt. Điều này phải được xử lý bằng phần mềm.

Khi sử dụng lệnh CLI để vô hiệu hóa ngắt, ngắt sẽ bị vô hiệu hóa ngay lập tức. Không có ngắt nào được thực hiện sau lệnh CLI, ngay cả khi nó xảy ra đồng thời với lệnh CLI. Người yêu cũ sau đâyample chỉ ra cách điều này có thể được sử dụng để tránh bị gián đoạn trong trình tự ghi EEPROM được định thời gian.

Mã hội Example
trong r16, SREG ; lưu trữ giá trị SREG

cli ; vô hiệu hóa các ngắt trong chuỗi thời gian

sbi EECR, EEMPE ; bắt đầu ghi EEPROM

sbi EECR, EEPE

ra SREG, r16 ; khôi phục giá trị SREG (I-bit)

Mã C Example
ký tự cSREG;

cSREG = SREG; /* lưu trữ giá trị SREG */

/* vô hiệu hóa các ngắt trong chuỗi thời gian */

_CLI ();

EECR |= (1<

EECR | = (1 <

SREG = cSREG; /* khôi phục giá trị SREG (I-bit) */

Khi sử dụng lệnh SEI để kích hoạt ngắt, lệnh sau SEI sẽ được thực thi trước khi có bất kỳ ngắt liên tục nào, như thể hiện trong ví dụ nàyamplà.

Mã hội Example
sei ; đặt Cho phép ngắt toàn cầu

ngủ; vào giấc ngủ, chờ ngắt

; lưu ý: sẽ vào chế độ ngủ trước khi có bất kỳ sự cố nào đang chờ xử lý

; làm gián đoạn

Mã C Example
_SEI(); /* đặt Cho phép ngắt toàn cầu */

_NGỦ(); /* vào trạng thái ngủ, chờ ngắt */

/ * lưu ý: sẽ chuyển sang chế độ ngủ trước bất kỳ (các) ngắt đang chờ xử lý nào * /

Thời gian đáp ứng ngắt

Đáp ứng thực thi ngắt cho tất cả các ngắt AVR được kích hoạt là tối thiểu bốn chu kỳ đồng hồ. Sau bốn chu kỳ đồng hồ, địa chỉ Vectơ Chương trình cho quy trình xử lý ngắt thực tế được thực thi. Trong khoảng thời gian bốn chu kỳ đồng hồ này, Bộ đếm chương trình được đẩy vào Ngăn xếp. Vectơ thường là một bước nhảy đến quy trình ngắt và bước nhảy này mất ba 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 này sẽ được hoàn thành trước khi ngắt được phục vụ. Nếu ngắt xảy ra khi MCU ở chế độ nghỉ, thời gian đáp ứng thực hiện ngắt sẽ tăng lên bốn chu kỳ đồng hồ. Sự gia tăng này thêm vào thời gian khởi động từ chế độ ngủ đã chọn.

Một lần trả về từ một quy trình xử lý ngắt mất bốn chu kỳ đồng hồ. Trong bốn chu kỳ xung nhịp này, Bộ đếm chương trình (hai byte) được bật trở lại từ Ngăn xếp, Con trỏ ngăn xếp được tăng thêm hai và I-bit trong SREG được đặt.

Ký ức AVR

Phần này mô tả các ký ức khác nhau trong ATtiny25 / 45/85. Kiến trúc AVR có hai không gian bộ nhớ chính, không gian bộ nhớ Dữ liệu và không gian bộ nhớ Chương trình. Ngoài ra, ATtiny25 / 45/85 có Bộ nhớ EEPROM để lưu trữ dữ liệu. Cả ba không gian bộ nhớ đều tuyến tính và chính quy.

Bộ nhớ chương trình Flash có thể lập trình lại trong hệ thống

ATtiny25 / 45/85 chứa 2/4 / 8K byte Bộ nhớ Flash có thể lập trình lại trong hệ thống trên chip cho phù hợp với chương trình. Vì tất cả các lệnh AVR đều có chiều rộng 16 hoặc 32 bit, nên Flash được tổ chức dưới dạng 1024/2048/4096 x 16.

Bộ nhớ Flash có độ bền ít nhất 10,000 chu kỳ ghi / xóa. Bộ đếm chương trình ATtiny25 / 45/85 (PC) rộng 10/11/12 bit, do đó giải quyết các vị trí bộ nhớ chương trình 1024/2048/4096. “Chương trình bộ nhớ- ming ”trên trang 147 chứa mô tả chi tiết về tải xuống nối tiếp dữ liệu Flash bằng cách sử dụng các chân SPI.

Các bảng hằng số có thể được cấp phát trong toàn bộ không gian địa chỉ bộ nhớ chương trình (xem mô tả lệnh LPM - Nạp chương trình bộ nhớ).

Hình 5-1. Bản đồ bộ nhớ chương trình Bản đồ bộ nhớ

Bộ nhớ dữ liệu SRAM

Hình 5-2 cho biết cách tổ chức Bộ nhớ SRAM ATtiny25 / 45/85.

224/352/607 Vị trí bộ nhớ dữ liệu thấp hơn giải quyết cả Thanh ghi File, bộ nhớ I / O và SRAM dữ liệu bên trong. 32 vị trí đầu tiên địa chỉ Đăng ký File, 64 vị trí tiếp theo đặt bộ nhớ I / O tiêu chuẩn và 128/256/512 vị trí cuối cùng địa chỉ SRAM dữ liệu nội bộ.

Năm chế độ định địa chỉ khác nhau cho vỏ Bộ nhớ dữ liệu: Trực tiếp, Gián tiếp với Chuyển vị, Gián tiếp, Trực tiếp với Giảm trước và Gián tiếp với Tăng sau. Trong sổ đăng ký File, các thanh ghi R26 đến R31 có đặc điểm là các thanh ghi con trỏ định địa chỉ gián tiếp.

Việc định địa chỉ trực tiếp đạt đến toàn bộ không gian dữ liệu.

Chế độ Gián tiếp với Dịch chuyển đạt tới 63 vị trí địa chỉ từ địa chỉ cơ sở được cung cấp bởi thanh ghi Y- hoặc Z-.

Khi sử dụng các chế độ định địa chỉ gián tiếp thanh ghi với tự động giảm trước và tăng sau, các thanh ghi địa chỉ X, Y và Z được giảm hoặc tăng.

32 thanh ghi làm việc cho mục đích chung, 64 thanh ghi I / O và 128/256/512 byte dữ liệu nội bộ SRAM trong ATtiny25 / 45/85 đều có thể truy cập được thông qua tất cả các chế độ định địa chỉ này. Đăng ký File được mô tả trong “Gen- Đăng ký Mục đích eral File”Trên trang 10.

Hình 5-2. Bản đồ bộ nhớ dữ liệu Bản đồ bộ nhớ 2

Truy cập bộ nhớ dữ liệu Thời gian

Phần này mô tả các khái niệm thời gian truy cập chung cho truy cập bộ nhớ trong. Việc truy cập SRAM dữ liệu nội bộ được thực hiện trong hai chu kỳ clkCPU như được mô tả trong Hình 5-3.

Hình 5-3. Chu kỳ truy cập SRAM dữ liệu trên chip Trên dữ liệu chip Bộ nhớ dữ liệu EEPROM

ATtiny25 / 45/85 chứa 128/256/512 byte bộ nhớ EEPROM dữ liệu. Nó được tổ chức như một không gian dữ liệu riêng biệt, trong đó các byte đơn lẻ có thể được đọc và ghi. EEPROM có độ bền ít nhất 100,000 chu kỳ ghi / xóa. Việc truy cập giữa EEPROM và CPU được mô tả như sau, chỉ định các thanh ghi địa chỉ EEPROM, thanh ghi dữ liệu EEPROM và thanh ghi điều khiển EEPROM. Để biết chi tiết xem “Tải xuống nối tiếp” trên trang 151.

Quyền truy cập đọc / ghi EEPROM

Thanh ghi truy cập EEPROM có thể truy cập được trong không gian I / O.

Thời gian truy cập ghi cho EEPROM được cung cấp trong Bảng 5-1 nơi trang 21. Tuy nhiên, chức năng tự định thời cho phép phần mềm người dùng phát hiện khi nào byte tiếp theo có thể được ghi. Nếu mã người dùng chứa các hướng dẫn ghi EEPROM, thì phải thực hiện một số biện pháp phòng ngừa. Trong các bộ nguồn được lọc nhiều, VCC có khả năng tăng hoặc giảm chậm trên

Tăng / giảm nguồn. Điều này khiến thiết bị trong một khoảng thời gian chạy ở mức voltage thấp hơn quy định là tối thiểu cho tần số đồng hồ được sử dụng. Nhìn thấy “Ngăn ngừa Tham nhũng EEPROM” trên trang 19 để biết chi tiết về cách tránh sự cố trong những tình huống này.

Để ngăn chặn việc ghi EEPROM không chủ ý, phải tuân theo một quy trình ghi cụ thể. Tham khảo “Nguyên tử Lập trình Byte ”trên trang 17 Và “Lập trình Split Byte” trên trang 17 để biết chi tiết về điều này.

Khi EEPROM được đọc, CPU sẽ tạm dừng trong bốn chu kỳ xung nhịp trước khi lệnh tiếp theo được thực thi. Khi EEPROM được ghi, CPU sẽ tạm dừng trong hai chu kỳ xung nhịp trước khi lệnh tiếp theo được thực thi.

Lập trình Byte nguyên tử

Sử dụng Lập trình Byte nguyên tử là chế độ đơn giản nhất. Khi ghi một byte vào EEPROM, người dùng phải ghi địa chỉ vào Thanh ghi EEAR và dữ liệu vào Thanh ghi EEDR. Nếu các bit EEPMn bằng XNUMX, việc ghi EEPE (trong vòng bốn chu kỳ sau khi EEMPE được ghi) sẽ kích hoạt thao tác xóa / ghi. Cả chu trình xóa và ghi đều được thực hiện trong một thao tác và tổng thời gian lập trình được đưa ra trong Bảng 5-1 nơi trang 21. Bit EEPE vẫn được đặt cho đến khi hoàn tất các thao tác xóa và ghi. Trong khi thiết bị đang bận lập trình, không thể thực hiện bất kỳ thao tác EEPROM nào khác.

Lập trình Split Byte

Có thể chia chu kỳ xóa và ghi thành hai thao tác khác nhau. Điều này có thể hữu ích nếu hệ thống yêu cầu thời gian truy cập ngắn trong một khoảng thời gian giới hạn nào đó (thường là nếu nguồn điệntage ngã). Để lấy advan- tage của phương pháp này, yêu cầu các vị trí cần ghi phải được xóa trước khi thực hiện thao tác ghi. Nhưng vì các thao tác xóa và ghi được phân chia, nên có thể thực hiện các thao tác xóa khi hệ thống cho phép thực hiện các thao tác quan trọng về thời gian (thường là sau khi Power-up).

Xóa bỏ

Để xóa một byte, địa chỉ phải được ghi vào EEAR. Nếu các bit EEPMn là 0b01, việc ghi EEPE (trong vòng bốn chu kỳ sau khi EEMPE được ghi) sẽ chỉ kích hoạt thao tác xóa (thời gian lập trình được cung cấp trong Bảng 5-1 trên trang 21). Bit EEPE vẫn được đặt cho đến khi thao tác xóa hoàn tất. Trong khi thiết bị đang bận lập trình, không thể thực hiện bất kỳ thao tác EEPROM nào khác.

Viết

Để ghi vị trí, người dùng phải ghi địa chỉ vào EEAR và dữ liệu vào EEDR. Nếu các bit EEPMn là 0b10, việc ghi EEPE (trong vòng bốn chu kỳ sau khi EEMPE được ghi) sẽ chỉ kích hoạt hoạt động ghi (thời gian lập trình được cung cấp trong Bảng 5-1 nơi trang 21). Bit EEPE vẫn được đặt cho đến khi hoàn thành thao tác ghi. Nếu vị trí cần ghi chưa được xóa trước khi ghi thì dữ liệu được lưu trữ coi như bị mất. Trong khi thiết bị đang bận lập trình, không thể thực hiện bất kỳ thao tác EEPROM nào khác.

Bộ tạo dao động đã hiệu chỉnh được sử dụng để định thời gian truy cập EEPROM. Đảm bảo tần số Bộ tạo dao động nằm trong các yêu cầu được mô tả trong “OSCCAL - Đăng ký Hiệu chuẩn Bộ tạo dao động” trên trang 31.

Đoạn mã sau đâyamples hiển thị một hợp ngữ và một hàm C để xóa, ghi hoặc ghi nguyên tử của EEPROM. Người cũamples giả định rằng các ngắt được kiểm soát (ví dụ: bằng cách vô hiệu hóa các ngắt trên toàn cục) để không xảy ra ngắt trong quá trình thực thi các chức năng này.

Mã hội Example
EEPROM_write:

; Chờ hoàn thành bài viết trước đó

sbic EECR,EEPE

rjmp EEPROM_write

; Đặt chế độ lập trình

ldi        r16, (0<<EEPM1)|(0<<EEPM0)

ra EECR, r16

; Thiết lập địa chỉ (r18: r17) trong thanh ghi địa chỉ

ra EEARH, r18

ra EEARL, r17

; Ghi dữ liệu (r19) vào thanh ghi dữ liệu

ra EEDR, r19

; Viết một logic vào EEMPE

sbi EECR, EEMPE

; Bắt đầu ghi eeprom bằng cách thiết lập EEPE

sbi EECR,EEPE

trở về

Mã C Example
void EEPROM_write(unsigned char ucAddress, unsigned char ucData)

{

/* Chờ hoàn thành ghi trước đó */ while(EECR & (1<

;

/* Đặt chế độ lập trình */

EECR = (0 <

/ * Thiết lập thanh ghi địa chỉ và dữ liệu * / EEAR = ucAddress;

EEDR = ucData;

/* Ghi một logic vào EEMPE */

EECR | = (1 <

/ * Bắt đầu ghi eeprom bằng cách cài đặt EEPE * /

EECR | = (1 <

}

Mã tiếp theo cũamples hiển thị các chức năng lắp ráp và C để đọc EEPROM. Người cũamples giả định rằng ngắt được kiểm soát để không xảy ra ngắt trong quá trình thực thi các chức năng này.

Mã hội Example
EEPROM_đọc:

; Chờ hoàn thành bài viết trước đó

sbic EECR,EEPE

rjmp EEPROM_read

; Thiết lập địa chỉ (r18: r17) trong thanh ghi địa chỉ

ra EEARH, r18

ra EEARL, r17

; Bắt đầu đọc eeprom bằng cách viết EERE

sbi EECR,EERE

; Đọc dữ liệu từ thanh ghi dữ liệu

trong r16,EEDR

trở về

Mã C Example
ký tự không dấu EEPROM_read(unsign char ucAddress)

{

/ * Chờ hoàn thành ghi trước * /

trong khi (EECR & (1 <

;

/ * Thiết lập thanh ghi địa chỉ * / EEAR = ucAddress;

/* Bắt đầu đọc eeprom bằng cách viết EERE */

EECR | = (1 <

/ * Trả lại dữ liệu từ thanh ghi dữ liệu * /

trả lại EEDR;

}

Ngăn ngừa Tham nhũng EEPROM

Trong thời gian VCC thấp, dữ liệu EEPROM có thể bị hỏng do điện áp cung cấptage là quá thấp để CPU và EEPROM hoạt động bình thường. Các vấn đề này cũng giống như đối với các hệ thống cấp bo mạch sử dụng EEPROM và nên áp dụng các giải pháp thiết kế tương tự.

Lỗi dữ liệu EEPROM có thể do hai tình huống khi voltage thấp quá. Đầu tiên, một trình tự ghi thông thường vào EEPROM yêu cầu vol tối thiểutage để hoạt động chính xác. Thứ hai, bản thân CPU có thể thực hiện các lệnh không chính xác, nếu nguồn cung cấptage quá thấp.

Có thể dễ dàng tránh được việc hỏng dữ liệu EEPROM bằng cách làm theo khuyến nghị thiết kế sau:

Giữ cho AVR RESET hoạt động (ở mức thấp) trong thời gian nguồn điện cung cấp không đủ voltage. Điều này có thể được thực hiện bằng cách bật Bộ phát hiện màu nâu bên trong (BOD). Nếu mức độ phát hiện của HĐQT nội bộ không phù hợp với

mức phát hiện cần thiết, có thể sử dụng mạch bảo vệ đặt lại VCC thấp bên ngoài. Nếu thiết lập lại xảy ra trong khi thao tác ghi đang diễn ra, thao tác ghi sẽ được hoàn thành với điều kiện là nguồn điệntage là đủ.

Bộ nhớ I / O

Định nghĩa không gian I / O của ATtiny25 / 45/85 được hiển thị trong “Đăng ký Tóm tắt” trên trang 200.

Tất cả ATtiny25 / 45/85 I / Os và thiết bị ngoại vi được đặt trong không gian I / O. Tất cả các vị trí I / O có thể được truy cập bằng các lệnh LD / LDS / LDD và ST / STS / STD, truyền dữ liệu giữa 32 thanh ghi làm việc mục đích chung và không gian I / O. Thanh ghi I / O trong dải địa chỉ 0x00 - 0x1F có thể truy cập trực tiếp theo bit bằng cách sử dụng hướng dẫn SBI và CBI. Trong các thanh ghi này, giá trị của các bit đơn có thể được kiểm tra bằng cách sử dụng các lệnh SBIS và SBIC. Tham khảo phần tập hợp hướng dẫn để biết thêm chi tiết. Khi sử dụng các lệnh I / O cụ thể IN và OUT, các địa chỉ I / O 0x00 - 0x3F phải được sử dụng. Khi định địa chỉ Thanh ghi I / O dưới dạng không gian dữ liệu bằng cách sử dụng lệnh LD và ST, 0x20 phải được thêm vào các địa chỉ này.

Để tương thích với các thiết bị trong tương lai, các bit dành riêng phải được ghi bằng XNUMX nếu được truy cập. Địa chỉ bộ nhớ I / O dành riêng không bao giờ được ghi.

Một số Cờ Trạng thái được xóa bằng cách viết một lôgic vào chúng. Lưu ý rằng các lệnh CBI và SBI sẽ chỉ hoạt động trên bit được chỉ định và do đó có thể được sử dụng trên các thanh ghi có chứa các Cờ trạng thái như vậy. Các lệnh CBI và SBI chỉ hoạt động với các thanh ghi 0x00 đến 0x1F.

Thanh ghi điều khiển I / O và thiết bị ngoại vi được giải thích trong các phần sau.

Đăng ký Mô tả

EEARH - Đăng ký địa chỉ EEPROM

Chút 7 6 5 4 3 2 1 0
0x1F EEAR8 EEARH
Đọc/Ghi R R R R R R R Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 X/0

Bit 7: 1 - Res: Số bit dành riêng

Các bit này được dành riêng để sử dụng trong tương lai và sẽ luôn được đọc là XNUMX.

Bit 0 - EEAR8: Địa chỉ EEPROM

Đây là bit địa chỉ EEPROM quan trọng nhất của ATtiny85. Trong các thiết bị có ít EEPROM hơn, tức là ATtiny25 / ATtiny45, bit này được dành riêng và sẽ luôn đọc bằng không. Giá trị ban đầu của Cơ quan đăng ký địa chỉ EEPROM (EEAR) là không xác định và do đó giá trị thích hợp phải được ghi trước khi EEPROM được truy cập.

EEARL - Đăng ký địa chỉ EEPROM

Chút

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 con yêu tinh
Phía sau / Viết Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu X X X X X X X X

Bit 7 - EEAR7: Địa chỉ EEPROM

Đây là bit địa chỉ EEPROM quan trọng nhất của ATtiny45. Trong các thiết bị có ít EEPROM hơn, tức là ATtiny25, bit này được dành riêng và sẽ luôn đọc bằng không. Giá trị ban đầu của thanh ghi địa chỉ EEPROM (EEAR) là không xác định và do đó giá trị thích hợp phải được ghi trước khi EEPROM được truy cập.

Bit 6: 0 - EEAR [6: 0]: Địa chỉ EEPROM

Đây là các bit (thấp) của thanh ghi địa chỉ EEPROM. Các byte dữ liệu EEPROM được đánh địa chỉ tuyến tính trong phạm vi 0… (128/256 / 512-1). Giá trị ban đầu của EEAR là không xác định và do đó giá trị thích hợp phải được ghi trước khi EEPROM có thể được truy cập.

EEDR - Đăng ký dữ liệu EEPROM

Chút 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
Đọc/Ghi Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

Đối với hoạt động ghi EEPROM, Thanh ghi EEDR chứa dữ liệu được ghi vào EEPROM theo địa chỉ do Thanh ghi EEAR cung cấp. Đối với hoạt động đọc EEPROM, EEDR chứa dữ liệu được đọc ra từ

EEPROM tại địa chỉ do EEAR cung cấp.

 

5.5.4 EECR - Thanh ghi điều khiển EEPROM

Bit 7 6 5 4 3 2 1 0
0x1C        – EEPM1 EEPM0 RỢN RỢN EEMPE EEPE ĐÓ EECR
Đọc / Ghi R R R / W Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 X X 0 0 X 0

Bit 7 - Res: Bit dự trữ

Bit này được dành riêng để sử dụng trong tương lai và sẽ luôn được đọc là 0 trong ATtiny25 / 45/85. Để tương thích với các thiết bị AVR trong tương lai, hãy luôn ghi bit này bằng XNUMX. Sau khi đọc, hãy che giấu điều này.

Bit 6 - Res: Bit dự trữ

Bit này được dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bit 5: 4 - EEPM [1: 0]: Bit chế độ lập trình EEPROM

Cài đặt bit chế độ lập trình EEPROM xác định hành động lập trình nào sẽ được kích hoạt khi ghi EEPE. Có thể lập trình dữ liệu trong một thao tác nguyên tử (xóa giá trị cũ và lập trình giá trị mới) hoặc tách các thao tác Xóa và Ghi thành hai thao tác khác nhau. Thời gian lập trình cho các chế độ khác nhau được hiển thị trong Bảng 5-1. Trong khi EEPE được đặt, mọi ghi vào EEPMn sẽ bị bỏ qua. Trong khi đặt lại, các bit EEPMn sẽ được đặt lại về 0b00 trừ khi EEPROM đang bận lập trình.

Bảng 5-1. Bit chế độ EEPROM

EEPM1 EEPM0 Thời gian lập trình Hoạt động
0 0 3.4 mili giây Xóa và ghi trong một thao tác (Hoạt động nguyên tử)
0 1 1.8 mili giây Chỉ xóa
1 0 1.8 mili giây Chỉ viết
1 1 Dành riêng cho mục đích sử dụng trong tương lai

Bit 3 - EERIE: Bật ngắt sẵn sàng EEPROM

Việc ghi EERIE vào một sẽ kích hoạt Ngắt sẵn sàng EEPROM nếu I-bit trong SREG được đặt. Ghi EERIE về XNUMX sẽ làm gián đoạn. Ngắt sẵn sàng EEPROM tạo ra một ngắt liên tục khi Bộ nhớ không bay hơi đã sẵn sàng để lập trình.

Bit 2 - EEMPE: Bật Chương trình Chính EEPROM

Bit EEMPE xác định việc ghi EEPE vào một sẽ có hiệu lực hay không.

Khi EEMPE được đặt, cài đặt EEPE trong vòng bốn chu kỳ đồng hồ sẽ lập trình EEPROM tại địa chỉ đã chọn. Nếu EEMPE bằng XNUMX, cài đặt EEPE sẽ không có hiệu lực. Khi EEMPE đã được ghi vào một bằng phần mềm, phần cứng sẽ xóa bit về XNUMX sau bốn chu kỳ đồng hồ.

Bit 1 - EEPE: Bật chương trình EEPROM

Tín hiệu kích hoạt chương trình EEPROM EEPE là tín hiệu cho phép lập trình tới EEPROM. Khi EEPE được ghi, EEPROM sẽ được lập trình theo cài đặt bit EEPMn. Bit EEMPE phải được ghi vào một bit trước khi một lôgic được ghi vào EEPE, nếu không thì không có quá trình ghi EEPROM nào diễn ra. Khi thời gian truy cập ghi đã trôi qua, bit EEPE sẽ bị xóa bởi phần cứng. Khi EEPE đã được thiết lập, CPU sẽ tạm dừng trong hai chu kỳ trước khi lệnh tiếp theo được thực thi.

Bit 0 - EERE: Bật đọc EEPROM

Tín hiệu cho phép đọc EEPROM - EERE - là tín hiệu đọc tới EEPROM. Khi địa chỉ chính xác được thiết lập trong Thanh ghi EEAR, bit EERE phải được ghi vào một địa chỉ để kích hoạt đọc EEPROM. Truy cập đọc EEPROM thực hiện một lệnh và dữ liệu được yêu cầu có sẵn ngay lập tức. Khi EEPROM được đọc, CPU sẽ tạm dừng trong bốn chu kỳ trước khi lệnh tiếp theo được thực thi. Người dùng nên thăm dò bit EEPE trước khi bắt đầu thao tác đọc. Nếu một thao tác ghi đang diễn ra, không thể đọc EEPROM, cũng như không thể thay đổi Thanh ghi EEAR.

Đồng hồ hệ thống và tùy chọn đồng hồ

Hệ thống đồng hồ và phân phối của chúng

Phân phối đồng hồ

Đồng hồ CPU

Xung nhịp CPU được chuyển đến các bộ phận của hệ thống liên quan đến hoạt động của lõi AVR. Bán tạiampcác phương thức như vậy là Sổ đăng ký Mục đích Chung File, thanh ghi trạng thái và bộ nhớ dữ liệu giữ con trỏ ngăn xếp. Việc dừng xung nhịp CPU sẽ ngăn lõi thực hiện các hoạt động và tính toán chung.

Đồng hồ I / O - clkI / O

Đồng hồ I / O được sử dụng bởi phần lớn các mô-đun I / O, như Timer / Counter. Đồng hồ I / O cũng được sử dụng bởi mô-đun Ngắt ngoài, nhưng lưu ý rằng một số ngắt bên ngoài được phát hiện bằng logic không đồng bộ, cho phép phát hiện các ngắt như vậy ngay cả khi đồng hồ I / O bị tạm dừng.

Đồng hồ nhấp nháy - clkFLASH

Đồng hồ Flash điều khiển hoạt động của giao diện Flash. Đồng hồ Flash thường hoạt động đồng thời với đồng hồ CPU.

Đồng hồ ADC - clkADC

ADC được cung cấp một miền đồng hồ chuyên dụng. Điều này cho phép tạm dừng CPU và xung nhịp I / O để giảm nhiễu do mạch kỹ thuật số tạo ra. Điều này cho kết quả chuyển đổi ADC chính xác hơn.

PLL nội bộ để tạo xung nhịp ngoại vi nhanh - clkPCK

PLL bên trong ATtiny25 / 45/85 tạo ra tần số xung nhịp nhân 8x từ đầu vào nguồn. Theo mặc định, PLL sử dụng đầu ra của bộ dao động RC nội bộ, 8.0 MHz làm nguồn. Ngoài ra, nếu bit LSM của PLLCSR được đặt thì PLL sẽ sử dụng đầu ra của bộ dao động RC chia cho hai. Do đó đầu ra của PLL, xung nhịp ngoại vi nhanh là 64 MHz. Đồng hồ ngoại vi nhanh, hoặc đồng hồ được cài đặt sẵn từ đó, có thể được chọn làm nguồn đồng hồ cho Bộ định thời / Bộ đếm1 hoặc làm đồng hồ hệ thống. Xem Hình 6-2. Tần số của xung nhịp ngoại vi nhanh được chia cho hai khi LSM của PLLCSR được đặt, dẫn đến tần số xung nhịp là 32 MHz. Lưu ý rằng không thể đặt LSM nếu PLLCLK được sử dụng làm đồng hồ hệ thống.

Hình 6-2. Hệ thống đồng hồ PCK. Đồng hồ PCK

PLL bị khóa trên bộ dao động RC và việc điều chỉnh bộ dao động RC thông qua thanh ghi OSCCAL sẽ đồng thời điều chỉnh xung nhịp ngoại vi nhanh. Tuy nhiên, ngay cả khi bộ dao động RC được đưa đến tần số cao hơn 8 MHz, tần số xung nhịp ngoại vi nhanh bão hòa ở 85 MHz (trường hợp xấu nhất) và vẫn dao động ở tần số tự do tối đa. Cần lưu ý rằng PLL trong trường hợp này không bị khóa nữa với đồng hồ dao động RC. Do đó, không nên điều chỉnh OSCCAL ở tần số cao hơn 8 MHz để giữ PLL trong phạm vi hoạt động chính xác.

PLL nội bộ được bật khi:

Bit PLLE trong thanh ghi PLLCSR được thiết lập.

Cầu chì CKSEL được lập trình thành '0001'.

Cầu chì CKSEL được lập trình thành '0011'.

PLLCSR bit PLOCK được thiết lập khi PLL bị khóa. Cả bộ tạo dao động RC bên trong và PLL đều được tắt ở chế độ tắt nguồn và chế độ ngủ chờ.

PLL nội bộ trong chế độ tương thích ATtiny15

Vì ATtiny25 / 45/85 là thiết bị di chuyển dành cho người dùng ATtiny15 nên có chế độ tương thích ATtiny15 để tương thích back-ward. Chế độ tương thích ATtiny15 được chọn bằng cách lập trình cầu chì CKSEL thành '0011'.

Trong chế độ tương thích ATtiny15, tần số của bộ dao động RC bên trong được hiệu chỉnh xuống 6.4 MHz và hệ số nhân của PLL được đặt thành 4x. Xem Hình 6-3. Với những điều chỉnh này, hệ thống đồng hồ tương thích với ATtiny15 và kết quả là đồng hồ ngoại vi nhanh có tần số 25.6 MHz (giống như trong ATtiny15).

Hình 6-3. Hệ thống đồng hồ PCK ở Chế độ tương thích ATtiny15. Hệ thống đồng hồ

Nguồn đồng hồ

Thiết bị có các tùy chọn nguồn xung nhịp sau, có thể lựa chọn bằng các bit Flash Fuse như hình bên dưới. Đồng hồ từ nguồn đã chọn được đưa vào bộ tạo xung nhịp AVR và được chuyển đến các mô-đun thích hợp.

Bảng 6-1. Tùy chọn Đồng hồ Thiết bị Chọn

Tùy chọn Đồng hồ Thiết bị CKSEL[3:0](1)
Đồng hồ ngoài (nhìn thấy trang 26) 0000
Đồng hồ PLL tần số cao (nhìn thấy trang 26) 0001
Bộ dao động bên trong đã hiệu chỉnh (nhìn thấy trang 27) 0010(2)
Bộ dao động bên trong đã hiệu chỉnh (nhìn thấy trang 27) 0011(3)
Bộ dao động 128 kHz bên trong (nhìn thấy trang 28) 0100
Bộ dao động tinh thể tần số thấp (nhìn thấy trang 29) 0110
Bộ dao động tinh thể / Bộ cộng hưởng bằng gốm (nhìn thấy trang 29) 1000 – 1111
Kín đáo 0101, 0111

Đối với tất cả các cầu chì “1” có nghĩa là chưa được lập trình trong khi “0” có nghĩa là được lập trình.

Thiết bị được xuất xưởng khi đã chọn tùy chọn này.

Thao tác này sẽ chọn Chế độ tương thích ATtiny15, trong đó xung nhịp hệ thống được chia cho bốn, dẫn đến tần số xung nhịp 1.6 MHz. Để biết thêm nhiệt độ, hãy xem “Bộ dao động bên trong được hiệu chỉnh” trên trang 27.

Các lựa chọn khác nhau cho mỗi tùy chọn đồng hồ được đưa ra trong các phần sau. Khi CPU thức dậy từ Power-down, nguồn xung nhịp đã chọn được sử dụng để định thời gian khởi động, đảm bảo hoạt động của Bộ dao động ổn định trước khi bắt đầu thực thi lệnh. Khi CPU bắt đầu từ thiết lập lại, có thêm một khoảng thời gian trễ cho phép nguồn đạt mức ổn định trước khi bắt đầu hoạt động bình thường. Bộ dao động cơ quan giám sát được sử dụng để định thời phần thời gian thực này của thời gian khởi động. Số chu kỳ Bộ tạo dao động WDT được sử dụng cho mỗi khoảng thời gian chờ được hiển thị trong Bảng 6-2.

Bảng 6-2. Số chu kỳ của Watchdog Oscillator

Hết thời gian gõ Số chu kỳ
4 mili giây 512
64 mili giây 8K (8,192)

Đồng hồ ngoài

Để điều khiển thiết bị từ nguồn xung nhịp bên ngoài, CLKI phải được điều khiển như được hiển thị trong Hình 6-4. Để chạy thiết bị trên đồng hồ bên ngoài, Cầu chì CKSEL phải được lập trình thành “00”.

Hình 6-4. Cấu hình ổ đĩa đồng hồ bên ngoài

Hình 6.4

Khi nguồn xung nhịp này được chọn, thời gian khởi động được xác định bởi Cầu chì SUT như minh họa trong Bảng 6-3.

Bảng 6-3. Thời gian khởi động cho lựa chọn đồng hồ bên ngoài

SUT[1:0] Thời gian khởi động từ khi tắt nguồn Trì hoãn bổ sung từ việc đặt lại Cách sử dụng được khuyến nghị
00 Xuất khẩu CK 14CK BOD được kích hoạt
01 Xuất khẩu CK 14CK + 4 mili giây Sức mạnh tăng nhanh
10 Xuất khẩu CK 14CK + 64 mili giây Tăng sức mạnh từ từ
11 Kín đáo

Khi áp dụng đồng hồ bên ngoài, phải tránh thay đổi đột ngột tần số đồng hồ áp dụng để đảm bảo MCU hoạt động ổn định. Sự thay đổi tần số hơn 2% từ chu kỳ đồng hồ này sang chu kỳ đồng hồ tiếp theo có thể dẫn đến hành vi không thể đoán trước. Cần phải đảm bảo rằng MCU được giữ ở trạng thái Đặt lại trong những thay đổi như vậy về tần số đồng hồ.

Lưu ý rằng System Clock Presale có thể được sử dụng để thực hiện các thay đổi thời gian chạy của tần số đồng hồ bên trong mà vẫn đảm bảo hoạt động ổn định. Tham khảo “Bộ định mức đồng hồ hệ thống” trên trang 31 để biết thêm chi tiết.

Đồng hồ PLL tần số cao

Có một PLL bên trong cung cấp tốc độ xung nhịp danh định 64 MHz được khóa cho Bộ tạo dao động RC để sử dụng Bộ hẹn giờ / Bộ đếm ngoại vi1 và cho nguồn xung nhịp hệ thống. Khi được chọn làm nguồn xung nhịp hệ thống, bằng cách lập trình CKSEL hợp nhất thành '0001', nó được chia cho bốn như được hiển thị trong Bảng 6-4.

Bảng 6-4. Chế độ hoạt động của đồng hồ PLL tần số cao

CKSEL[3:0] Tần số danh nghĩa
0001 16MHz

Khi nguồn xung nhịp này được chọn, thời gian khởi động được xác định bởi các cầu chì SUT như minh họa trong Bảng 6-5.

Bảng 6-5. Thời gian khởi động cho Đồng hồ PLL tần số cao

SUT[1:0] Thời gian khởi động từ khi tắt nguồn Độ trễ bổ sung từ Đặt lại khi bật nguồn (VCC = 5.0V) Sử dụng được khuyến nghị
00 14CK + 1K (1024) CK + 4 mili giây 4 mili giây BOD được kích hoạt

Bảng 6-5. Thời gian khởi động cho Đồng hồ PLL tần số cao

SUT[1:0] Thời gian khởi động từ khi tắt nguồn Độ trễ bổ sung từ Đặt lại khi bật nguồn (VCC = 5.0V) Sử dụng được khuyến nghị
01 14CK + 16K (16384) CK + 4 mili giây 4 mili giây Sức mạnh tăng nhanh
10 14CK + 1K (1024) CK + 64 mili giây 4 mili giây Tăng sức mạnh từ từ
11 14CK + 16K (16384) CK + 64 mili giây 4 mili giây Tăng sức mạnh từ từ

Bộ dao động bên trong đã hiệu chỉnh

Theo mặc định, Bộ tạo dao động RC bên trong cung cấp xung nhịp xấp xỉ 8.0 MHz. Mặc dù voltage và nhiệt độ phụ thuộc, đồng hồ này có thể được hiệu chỉnh rất chính xác bởi người dùng. Nhìn thấy “Bộ tạo dao động RC bên trong đã hiệu chỉnh Accu- racy ”trên trang 164 Và “Tốc độ dao động bên trong” trên trang 192 để biết thêm chi tiết. Thiết bị được vận chuyển với Cầu chì CKDIV8 được lập trình. Xem “Bộ định mức đồng hồ hệ thống” trên trang 31 để biết thêm chi tiết.

Đồng hồ này có thể được chọn làm đồng hồ hệ thống bằng cách lập trình Cầu chì CKSEL như được hiển thị trong Bảng 6-6 trên trang

27. Nếu được chọn, nó sẽ hoạt động mà không có thành phần bên ngoài. Trong quá trình thiết lập lại, phần cứng tải giá trị hiệu chuẩn được lập trình trước vào Thanh ghi OSCCAL và do đó tự động hiệu chỉnh Bộ tạo dao động RC. Độ chính xác của hiệu chuẩn này được thể hiện như Hiệu chuẩn nhà máy trong Bảng 21-2 nơi trang 164.

Bằng cách thay đổi đăng ký OSCCAL từ SW, hãy xem “OSCCAL - Đăng ký Hiệu chuẩn Bộ tạo dao động” trên trang 31, có thể đạt được độ chính xác hiệu chuẩn cao hơn so với việc sử dụng hiệu chuẩn của nhà máy. Độ chính xác của hiệu chuẩn này được hiển thị dưới dạng Hiệu chuẩn của người dùng trong Bảng 21-2 nơi trang 164.

Khi Bộ tạo dao động này được sử dụng làm đồng hồ chip, Bộ tạo dao động cơ quan giám sát sẽ vẫn được sử dụng cho Bộ định thời gian cơ quan giám sát và cho Thời gian chờ đặt lại. Để biết thêm thông tin về giá trị hiệu chuẩn được lập trình trước, hãy xem phần “Cali- bration Byte ”trên trang 150.

Bộ dao động bên trong cũng có thể được đặt để cung cấp xung nhịp 6.4 MHz bằng cách ghi cầu chì CKSEL thành “0011”, như được hiển thị trong Bảng 6-6 phía dưới. Cài đặt này được gọi là Chế độ tương thích ATtiny15 và nhằm cung cấp nguồn xung nhịp đã hiệu chỉnh ở 6.4 MHz, như trong ATtiny15. Trong Chế độ tương thích ATtiny15, PLL sử dụng bộ dao động bên trong chạy ở 6.4 MHz để tạo ra tín hiệu xung nhịp ngoại vi 25.6 MHz cho Bộ định thời / Bộ đếm1 (xem “Bộ định thời / Bộ đếm 8 bit 1 trong ATtiny15 Mode ”trên trang 95). Lưu ý rằng trong chế độ hoạt động này, tín hiệu đồng hồ 6.4 MHz luôn được chia cho bốn, cung cấp đồng hồ hệ thống 1.6 MHz.

Bảng 6-6. Các chế độ hoạt động của Bộ tạo dao động RC được hiệu chỉnh bên trong

CKSEL[3:0] Tần số danh nghĩa
0010(1) 8.0MHz
0011(2) 6.4MHz

Thiết bị được xuất xưởng khi đã chọn tùy chọn này.

Cài đặt này sẽ chọn Chế độ tương thích ATtiny15, trong đó xung nhịp hệ thống được chia cho bốn, dẫn đến tần số xung nhịp 1.6 MHz.

Khi bộ dao động nội bộ 8 MHz đã hiệu chuẩn được chọn làm nguồn xung nhịp, thời gian khởi động được xác định bởi Cầu chì SUT như được hiển thị trong Bảng 6-7 dưới.

Bảng 6-7. Thời gian khởi động cho Đồng hồ dao động RC được hiệu chỉnh bên trong

SUT[1:0] Thời gian khởi động từ khi tắt nguồn Độ trễ bổ sung khi đặt lại (VCC = 5.0V) Cách sử dụng được khuyến nghị
00 Xuất khẩu CK 14CK(1) BOD được kích hoạt
01 Xuất khẩu CK 14CK + 4 mili giây Sức mạnh tăng nhanh
10(2) Xuất khẩu CK 14CK + 64 mili giây Tăng sức mạnh từ từ
11 Kín đáo

1. Nếu cầu chì RSTDISBL được lập trình, thời gian khởi động này sẽ được tăng lên 14CK + 4 ms để đảm bảo có thể vào chế độ lập trình.
2. Thiết bị được xuất xưởng khi đã chọn tùy chọn này.

Trong ATtiny15 Chế độ tương thích, thời gian khởi động được xác định bằng cầu chì SUT như minh họa trong Bảng 6-8 dưới.

Bảng 6-8. Thời gian khởi động cho Đồng hồ dao động RC được hiệu chỉnh bên trong (ở Chế độ ATtiny15)

SUT[1:0] Thời gian khởi động từ khi tắt nguồn Độ trễ bổ sung khi đặt lại (VCC = 5.0V) Cách sử dụng được khuyến nghị
00 Xuất khẩu CK 14CK + 64 mili giây
01 Xuất khẩu CK 14CK + 64 mili giây
10 Xuất khẩu CK 14CK + 4 mili giây
11 Xuất khẩu CK 14CK(1)

Lưu ý: Nếu cầu chì RSTDISBL được lập trình, thời gian khởi động này sẽ tăng lên 14CK + 4 ms để đảm bảo có thể vào chế độ lập trình.

Tóm lại, bạn có thể tìm thêm thông tin về Chế độ tương thích ATtiny15 trong phần “Cổng B (PB5: PB0)” đang bật trang 2“PLL nội bộ trong chế độ tương thích ATtiny15” trên trang 24“Bộ hẹn giờ / Bộ đếm 8 bit 1 ở Chế độ ATtiny15” đang bật trang 95“Hạn chế của debugWIRE” trên trang 140“Số byte hiệu chuẩn” trên trang 150 và trong bảng “Đồng hồ Prescaler Chọn ”trên trang 33.

Bộ dao động 128 kHz bên trong

Bộ tạo dao động bên trong 128 kHz là Bộ tạo dao động công suất thấp cung cấp xung nhịp 128 kHz. Tần số là danh nghĩa ở 3V và 25°C. Đồng hồ này có thể được chọn làm đồng hồ hệ thống bằng cách lập trình Cầu chì CKSEL thành “0100”.

Khi nguồn xung nhịp này được chọn, thời gian khởi động được xác định bởi Cầu chì SUT như minh họa trong Bảng 6-9.

Bảng 6-9. Thời gian khởi động cho Bộ tạo dao động bên trong 128 kHz

SUT[1:0] Thời gian khởi động từ khi tắt nguồn Trì hoãn bổ sung từ việc đặt lại Cách sử dụng được khuyến nghị
00 Xuất khẩu CK 14CK(1) BOD được kích hoạt
01 Xuất khẩu CK 14CK + 4 mili giây Sức mạnh tăng nhanh
10 Xuất khẩu CK 14CK + 64 mili giây Tăng sức mạnh từ từ
11 Kín đáo

Lưu ý: Nếu cầu chì RSTDISBL được lập trình, thời gian khởi động này sẽ tăng lên 14CK + 4 ms để đảm bảo có thể vào chế độ lập trình.

Bộ dao động tinh thể tần số thấp

Để sử dụng tinh thể đồng hồ 32.768 kHz làm nguồn đồng hồ cho thiết bị, Bộ dao động pha lê tần số thấp phải được chọn bằng cách đặt cầu chì CKSEL thành '0110'. Tinh thể phải được kết nối như trong Hình 6-5. Để tìm điện dung tải phù hợp cho crysal 32.768 kHz, vui lòng tham khảo biểu dữ liệu của nhà sản xuất.

Khi bộ dao động này được chọn, thời gian khởi động được xác định bởi các cầu chì SUT như được hiển thị trong Bảng 6-10.

Bảng 6-10. Thời gian khởi động để lựa chọn đồng hồ dao động tinh thể tần số thấp

SUT[1:0] Thời gian khởi động từ khi tắt nguồn Độ trễ bổ sung khi đặt lại (VCC = 5.0V) Sử dụng được khuyến nghị
00 1 nghìn (1024) CK(1) 4 mili giây Công suất tăng nhanh hoặc BOD được kích hoạt
01 1 nghìn (1024) CK(1) 64 mili giây Tăng sức mạnh từ từ
10 32 nghìn (32768) CK 64 mili giây Tần suất ổn định khi khởi động
11 Kín đáo

Lưu ý: Chỉ nên sử dụng các tùy chọn này nếu độ ổn định tần số khi khởi động không quan trọng.

Bộ dao động tinh thể tần số thấp cung cấp điện dung tải bên trong, xem Bảng 6-11 tại mỗi chân TOSC.

Bảng 6-11. Điện dung của bộ tạo dao động tinh thể tần số thấp

Thiết bị 32 kHz Osc. Kiểu Nắp (Xtal1 / Tosc1) Nắp (Xtal2 / Tosc2)
ATtiny25/45/85 Hệ thống Osc. 16pF 6pF

Bộ dao động tinh thể / Bộ cộng hưởng bằng gốm

XTAL1 và XTAL2 tương ứng là đầu vào và đầu ra của một đảo ngược ampbộ điều chỉnh có thể được định cấu hình để sử dụng như một Bộ tạo dao động trên chip, như được hiển thị trong Hình 6-5. Có thể sử dụng tinh thể thạch anh hoặc bộ cộng hưởng bằng gốm.

C1 và C2 phải luôn bằng nhau đối với cả tinh thể và bộ cộng hưởng. Giá trị tối ưu của các tụ điện phụ thuộc vào tinh thể hoặc bộ cộng hưởng được sử dụng, lượng điện dung đi lạc và nhiễu điện từ của môi trường. Một số hướng dẫn ban đầu để chọn tụ điện sử dụng với tinh thể được đưa ra trong Bảng 6-12 phía dưới. Đối với bộ cộng hưởng bằng gốm, nên sử dụng các giá trị tụ điện do nhà sản xuất đưa ra.

Bảng 6-12. Các chế độ hoạt động của Crystal Oscillator

CKSEL[3:1] Dải tần số (MHz) Phạm vi đề xuất cho tụ điện C1 và C2 để sử dụng với tinh thể (pF)
100(1) 0.4 – 0.9
101 0.9 – 3.0 12 – 22
110 3.0 – 8.0 12 – 22
111 8.0 – 12 – 22

Lưu ý: Không nên sử dụng tùy chọn này với tinh thể, chỉ với bộ cộng hưởng gốm.

Bộ tạo dao động có thể hoạt động ở ba chế độ khác nhau, mỗi chế độ được tối ưu hóa cho một dải tần số cụ thể. Chế độ hoạt động được chọn bởi cầu chì CKSEL [3: 1] như được hiển thị trong Bảng 6-12.

Cầu chì CKSEL0 cùng với cầu chì SUT [1: 0] chọn thời gian khởi động như minh họa trong Bảng 6-13.

Bảng 6-13. Thời gian khởi động cho lựa chọn đồng hồ dao động tinh thể

CKSEL0 SUT[1:0] Thời gian khởi động từ khi tắt nguồn Trì hoãn bổ sung từ việc đặt lại Cách sử dụng được khuyến nghị
0 00 Xuất khẩu CK(1) 14CK + 4 mili giây Bộ cộng hưởng bằng gốm, công suất tăng nhanh
0 01 Xuất khẩu CK(1) 14CK + 64 mili giây Bộ cộng hưởng bằng gốm, công suất tăng từ từ
0 10 1 nghìn (1024) CK(2) 14CK Bộ cộng hưởng bằng gốm, kích hoạt BOD
0 11 1 nghìn (1024) CK(2) 14CK + 4 mili giây Bộ cộng hưởng bằng gốm, công suất tăng nhanh
1 00 1 nghìn (1024) CK(2) 14CK + 64 mili giây Bộ cộng hưởng bằng gốm, công suất tăng từ từ
1 01 16 nghìn (16384) CK 14CK Crystal Oscillator, BOD được kích hoạt
1 10 16 nghìn (16384) CK 14CK + 4 mili giây Bộ dao động tinh thể, công suất tăng nhanh
1 11 16 nghìn (16384) CK 14CK + 64 mili giây Crystal Oscillator, tăng dần sức mạnh

Ghi chú

Các tùy chọn này chỉ nên được sử dụng khi không hoạt động gần với tần số tối đa của thiết bị và chỉ khi độ ổn định tần số khi khởi động không quan trọng đối với ứng dụng. Các tùy chọn này không phù hợp với tinh thể.

Các tùy chọn này được thiết kế để sử dụng với bộ cộng hưởng gốm và sẽ đảm bảo ổn định tần số khi khởi động. Chúng cũng có thể được sử dụng với tinh thể khi không hoạt động gần với tần số tối đa của thiết bị và nếu tần số ổn định khi khởi động không quan trọng đối với ứng dụng.

Nguồn đồng hồ mặc định

Thiết bị được vận chuyển với CKSEL = “0010”, SUT = “10” và CKDIV8 được lập trình. Do đó, nguồn xung nhịp mặc định được thiết lập là Bộ dao động RC bên trong chạy ở 8 MHz với thời gian khởi động dài nhất và đồng hồ hệ thống ban đầu được đặt trước là 8, dẫn đến xung nhịp hệ thống là 1.0 MHz. Cài đặt mặc định này đảm bảo rằng tất cả người dùng có thể thực hiện cài đặt nguồn đồng hồ mong muốn của họ bằng cách sử dụng Trong hệ thống hoặc High-voltage Lập trình viên.

Bộ định mức đồng hồ hệ thống

Đồng hồ hệ thống ATtiny25 / 45/85 có thể được chia bằng cách cài đặt “CLKPR - Đăng ký tỷ lệ đồng hồ” trên trang 32. Tính năng này có thể được sử dụng để giảm mức tiêu thụ điện năng khi yêu cầu về sức mạnh xử lý thấp. Điều này có thể được sử dụng với tất cả các tùy chọn nguồn xung nhịp và nó sẽ ảnh hưởng đến tần số xung nhịp của CPU và tất cả các thiết bị ngoại vi đồng bộ. clkI/O, clkADC, clkCPU và clkFLASH được chia cho một hệ số như trong Bảng 6-15 nơi trang 33.

Thời gian chuyển đổi

Khi chuyển đổi giữa các cài đặt cài đặt sẵn, Bộ định mức đồng hồ hệ thống đảm bảo rằng không có trục trặc nào xảy ra trong hệ thống đồng hồ và không có tần số trung gian nào cao hơn tần số đồng hồ tương ứng với cài đặt trước đó cũng như tần số đồng hồ tương ứng với cài đặt mới.

Bộ đếm gợn sóng triển khai bộ định tỷ lệ chạy ở tần số của đồng hồ không chia, có thể nhanh hơn tần số đồng hồ của CPU. Do đó, không thể xác định trạng thái của bộ định mức - ngay cả khi nó có thể đọc được và không thể dự đoán chính xác thời gian cần thiết để chuyển từ bộ phận đồng hồ này sang bộ phận đồng hồ khác.

Kể từ thời điểm các giá trị CLKPS được ghi, phải mất từ ​​T1 + T2 đến T1 + 2 * T2 trước khi tần số xung nhịp mới được kích hoạt. Trong khoảng thời gian này, 2 cạnh đồng hồ hoạt động được tạo ra. Ở đây, T1 là khoảng thời gian đồng hồ trước đó và T2 là khoảng thời gian tương ứng với cài đặt bộ đếm trước mới.

Bộ đệm đầu ra xung nhịp

Thiết bị có thể xuất xung nhịp hệ thống trên chân CLKO (khi không được sử dụng như chân XTAL2). Để kích hoạt đầu ra, cầu chì CKOUT phải được lập trình. Chế độ này phù hợp khi xung nhịp chip được sử dụng để điều khiển các mạch khác trên hệ thống. Lưu ý rằng đồng hồ sẽ không được xuất ra trong khi đặt lại và hoạt động bình thường của chân I / O sẽ bị ghi đè khi cầu chì được lập trình. Bộ dao động RC bên trong, Bộ tạo dao động WDT, PLL và xung nhịp bên ngoài (CLKI) có thể được chọn khi xung nhịp được xuất trên CLKO. Không thể sử dụng bộ dao động tinh thể (XTAL1, XTAL2) cho đầu ra xung nhịp trên CLKO. Nếu sử dụng System Clock Prescaler, thì nó sẽ là đầu ra của đồng hồ hệ thống đã chia.

Đăng ký Mô tả

OSCCAL - Đăng ký Hiệu chuẩn Bộ dao động

Chút 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL
Đọc/Ghi Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T

Bit 7: 0 - CAL [7: 0]: Giá trị hiệu chỉnh bộ dao động

Thanh ghi Hiệu chuẩn Bộ dao động được sử dụng để cắt Bộ dao động RC Bên trong đã Hiệu chỉnh để loại bỏ các biến thể của quá trình khỏi tần số bộ dao động. Giá trị hiệu chuẩn được lập trình trước sẽ tự động được ghi vào thanh ghi này trong quá trình thiết lập lại chip, tạo ra tần số hiệu chuẩn ban đầu như được chỉ định Bảng 21-2 nơi trang 164. Phần mềm ứng dụng có thể ghi thanh ghi này để thay đổi tần số dao động. Bộ dao động có thể được hiệu chỉnh thành các tần số như được chỉ định trong Bảng 21-2 nơi trang 164. Hiệu chuẩn ngoài phạm vi đó không được đảm bảo.

Lưu ý rằng bộ dao động này được sử dụng để định thời gian truy cập ghi EEPROM và Flash, và thời gian ghi này sẽ bị ảnh hưởng tương ứng. Nếu EEPROM hoặc Flash được ghi, không hiệu chỉnh lên hơn 8.8 MHz. Nếu không, ghi EEPROM hoặc Flash có thể không thành công.

Bit CAL7 xác định phạm vi hoạt động của bộ dao động. Đặt bit này thành 0 sẽ cho dải tần thấp nhất, đặt bit này thành 1 sẽ cho dải tần cao nhất. Hai dải tần số chồng lên nhau, nói cách khác, cài đặt OSCCAL = 0x7F cho tần số cao hơn OSCCAL = 0x80.

Các bit CAL [6: 0] được sử dụng để điều chỉnh tần số trong phạm vi đã chọn. Cài đặt 0x00 cho tần số thấp nhất trong dải đó và cài đặt 0x7F cho tần số cao nhất trong dải.

Để đảm bảo MCU hoạt động ổn định, giá trị hiệu chuẩn nên được thay đổi nhỏ. Sự thay đổi tần suất hơn 2% từ chu kỳ này sang chu kỳ tiếp theo có thể dẫn đến hành vi không thể phát hiện được. Các thay đổi trong OSCCAL không được vượt quá 0x20 cho mỗi lần hiệu chuẩn. Cần phải đảm bảo rằng MCU được giữ ở trạng thái Đặt lại trong những thay đổi như vậy về tần số đồng hồ

Bảng 6-14. Phạm vi tần số dao động RC bên trong

Giá trị OSCCAL Tần suất thấp nhất điển hình so với tần suất danh nghĩa Tần suất cao nhất điển hình so với tần số danh nghĩa
0x00 50% 100%
0x3F 75% 150%
0x7F 100% 200%

CLKPR - Đăng ký tỷ lệ đồng hồ

Chút 7 6 5 4 3 2 1 0
0x26 CLKPE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR
Đọc/Ghi Đ/T R R R Đ/T Đ/T Đ/T Đ/T

Giá trị ban đầu 0 0 0 0 Xem mô tả bit

Bit 7 - CLKPCE: Bật thay đổi bộ định mức đồng hồ

Bit CLKPCE phải được ghi vào logic một để cho phép thay đổi các bit CLKPS. Bit CLKPCE chỉ được cập nhật khi các bit khác trong CLKPR được ghi ngẫu nhiên bằng XNUMX. CLKPCE được phần cứng xóa bốn chu kỳ sau khi nó được ghi hoặc khi các bit CLKPS được ghi. Việc viết lại bit CLKPCE trong khoảng thời gian chờ này không kéo dài khoảng thời gian chờ, cũng như xóa bit CLKPCE.

Bit 6: 4 - Res: Số bit dành riêng

Các bit này là các bit dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bits 3: 0 - CLKPS [3: 0]: Clock Prescaler Chọn bit 3 - 0

Các bit này xác định hệ số phân chia giữa nguồn đồng hồ đã chọn và đồng hồ hệ thống bên trong. Các bit này có thể được viết thời gian chạy để thay đổi tần số xung nhịp cho phù hợp với các yêu cầu ứng dụng. Khi bộ chia phân chia đầu vào xung nhịp chủ cho MCU, tốc độ của tất cả các thiết bị ngoại vi đồng bộ bị giảm khi sử dụng hệ số phân chia. Các yếu tố phân chia được đưa ra trong Bảng 6-15.

Để tránh những thay đổi không chủ ý của tần số xung nhịp, một quy trình ghi đặc biệt phải được tuân theo để thay đổi các bit CLKPS:

Ghi bit Kích hoạt Thay đổi Định mức Đồng hồ (CLKPCE) thành một và tất cả các bit khác trong CLKPR về không.

Trong vòng bốn chu kỳ, ghi giá trị mong muốn vào CLKPS trong khi ghi số XNUMX vào CLKPCE.

Ngắt phải được vô hiệu hóa khi thay đổi cài đặt bộ định hạng trước để đảm bảo quy trình ghi không bị gián đoạn.

Cầu chì CKDIV8 xác định giá trị ban đầu của các bit CLKPS. Nếu CKDIV8 không được lập trình, các bit CLKPS sẽ được đặt lại thành “0000”. Nếu CKDIV8 được lập trình, các bit CLKPS được đặt lại thành “0011”, tạo ra hệ số chia là 8 khi khởi động. Tính năng này nên được sử dụng nếu nguồn đồng hồ đã chọn có tần số cao hơn tần số tối đa của thiết bị ở điều kiện hoạt động hiện tại. Lưu ý rằng bất kỳ giá trị nào cũng có thể được ghi vào các bit CLKPS bất kể cài đặt Cầu chì CKDIVXNUMX. Phần mềm ứng dụng phải đảm bảo đủ hệ số chia

được chọn nếu nguồn xung nhịp đã chọn có tần số cao hơn tần số tối đa của thiết bị ở điều kiện hoạt động hiện tại. Thiết bị được vận chuyển với Cầu chì CKDIV8 được lập trình.

Bảng 6-15. Đồng hồ Prescaler Chọn

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Yếu tố phân chia đồng hồ
0 0 0 0 1
0 0 0 1 2
0 0 1 0 4
0 0 1 1 8
0 1 0 0 16
0 1 0 1 32
0 1 1 0 64
0 1 1 1 128
1 0 0 0 256
1 0 0 1 Kín đáo
1 0 1 0 Kín đáo
1 0 1 1 Kín đáo
1 1 0 0 Kín đáo
1 1 0 1 Kín đáo
1 1 1 0 Kín đáo
1 1 1 1 Kín đáo

Lưu ý: Bộ chia tỷ lệ trước bị tắt trong chế độ tương thích ATtiny15 và việc ghi vào CLKPR cũng như việc lập trình cầu chì CKDIV8 không có bất kỳ ảnh hưởng nào đến đồng hồ hệ thống (sẽ luôn là 1.6 MHz).

Quản lý nguồn và Chế độ ngủ

Hiệu suất cao và hiệu quả mã hàng đầu trong ngành làm cho vi điều khiển AVR trở thành lựa chọn lý tưởng cho các ứng dụng công suất thấp. Ngoài ra, chế độ ngủ cho phép ứng dụng tắt các mô-đun không sử dụng trong MCU, do đó tiết kiệm điện năng. AVR cung cấp các chế độ ngủ khác nhau cho phép người dùng điều chỉnh mức tiêu thụ điện năng theo yêu cầu của ứng dụng.

Chế độ ngủ

Hình 6-1 nơi trang 23 trình bày các hệ thống đồng hồ khác nhau và sự phân bố của chúng trong ATtiny25 / 45/85. Hình này rất hữu ích trong việc chọn một chế độ ngủ thích hợp. Bảng 7-1 hiển thị các chế độ ngủ khác nhau và nguồn đánh thức của chúng.

Bảng 7-1. Miền đồng hồ hoạt động và nguồn đánh thức trong các chế độ ngủ khác nhau

Miền đồng hồ hoạt động Bộ dao động Nguồn đánh thức
Chế độ ngủ clkCPU clkFLASH clkIO clkADC clkPCK Đã bật nguồn đồng hồ chính INT0 và thay đổi mã pin SPM / EEPROM

Sẵn sàng

 

Điều kiện bắt đầu USI

ADC I/O khác Chó canh gác Ngắt
Nhàn rỗi X X X X X X X X X X
Giảm nhiễu ADC X X X(1) X X X X
Tắt nguồn X(1) X X

Lưu ý: Đối với INT0, chỉ ngắt mức.

Để vào bất kỳ chế độ ngủ nào trong ba chế độ nghỉ, bit SE trong MCUCR phải được ghi vào logic một và lệnh SLEEP phải được thực thi. Các bit SM [1: 0] trong Thanh ghi MCUCR chọn chế độ nghỉ (Chờ, Giảm nhiễu ADC hoặc Tắt nguồn) sẽ được kích hoạt bằng lệnh SLEEP. Xem Bảng 7-2 để có một bản tóm tắt.

Nếu một ngắt đã kích hoạt xảy ra trong khi MCU ở chế độ ngủ, MCU sẽ thức dậy. MCU sau đó được tạm dừng trong bốn chu kỳ ngoài thời gian khởi động, thực hiện quy trình ngắt và tiếp tục thực thi từ lệnh sau SLEEP. Nội dung của sổ đăng ký File và SRAM không thay đổi khi thiết bị thức dậy từ chế độ ngủ. Nếu đặt lại xảy ra trong chế độ ngủ, MCU sẽ thức dậy và thực thi từ Véc tơ đặt lại.

Lưu ý: rằng nếu một mức ngắt được kích hoạt được sử dụng để đánh thức thì mức đã thay đổi phải được giữ trong một thời gian để đánh thức MCU (và để MCU vào quy trình phục vụ ngắt). Nhìn thấy “Ngắt bên ngoài” trên trang 49 để biết thêm chi tiết.

Chế độ nhàn rỗi

Khi các bit SM[1:0] được ghi thành 00, lệnh SLEEP đưa MCU vào chế độ Chờ, dừng CPU nhưng cho phép Bộ so sánh tương tự, ADC, USI, Bộ định thời/Bộ đếm, Cơ quan giám sát và hệ thống ngắt tiếp tục hoạt động. ăn uống. Về cơ bản, chế độ ngủ này tạm dừng clkCPU và clkFLASH, đồng thời cho phép các đồng hồ khác chạy.

Chế độ không hoạt động cho phép MCU đánh thức từ các ngắt được kích hoạt bên ngoài cũng như các ngắt bên trong như Tràn bộ hẹn giờ. Nếu không cần đánh thức từ ngắt Bộ so sánh tương tự, Bộ so sánh tương tự có thể bị tắt bằng cách đặt bit ACD trong “ACSR - Đăng ký trạng thái và điều khiển so sánh tương tự” trên trang 120. Điều này sẽ giảm tiêu thụ điện năng ở chế độ Chờ. Nếu ADC được bật, quá trình chuyển đổi sẽ tự động bắt đầu khi chế độ này được nhập.

Chế độ giảm tiếng ồn ADC

Khi các bit SM[1:0] được ghi vào 01, lệnh SLEEP đưa MCU vào chế độ Giảm nhiễu ADC, dừng CPU nhưng cho phép ADC, các ngắt bên ngoài và Watchdog tiếp tục hoạt động (nếu được bật). Chế độ ngủ này tạm dừng clkI/O, clkCPU và clkFLASH, đồng thời cho phép các đồng hồ khác chạy.

Điều này cải thiện môi trường nhiễu cho ADC, cho phép các phép đo có độ phân giải cao hơn. Nếu ADC được bật, quá trình chuyển đổi sẽ tự động bắt đầu khi chế độ này được nhập. Ngoài hình thức ngắt Hoàn thành chuyển đổi ADC, chỉ có Thiết lập lại bên ngoài, Thiết lập lại cơ quan giám sát, Thiết lập lại màu nâu, ngắt sẵn sàng SPM / EEPROM, ngắt mức bên ngoài trên INT0 hoặc ngắt thay đổi chân có thể đánh thức MCU khỏi ADC Noise Reduction chế độ.

Chế độ tắt nguồn

Khi các bit SM [1: 0] được ghi thành 10, lệnh SLEEP làm cho MCU chuyển sang chế độ Power-down. Trong chế độ này, Bộ tạo dao động bị dừng, trong khi bộ phận bên ngoài ngắt, phát hiện điều kiện khởi động USI và Cơ quan giám sát tiếp tục hoạt động (nếu được bật). Chỉ có Thiết lập lại bên ngoài, Thiết lập lại Cơ quan giám sát, Thiết lập lại Brown-out, ngắt điều kiện khởi động USI, ngắt mức bên ngoài trên INT0 hoặc ngắt thay đổi chân có thể đánh thức MCU. Chế độ ngủ này tạm dừng tất cả các đồng hồ đã tạo, chỉ cho phép hoạt động của các mô-đun không đồng bộ.

Vô hiệu hóa BOD phần mềm

Khi Bộ phát hiện màu nâu (BOD) được kích hoạt bằng cầu chì BODLEVEL (xem Bảng 20-4 nơi trang 148), HĐQT đang tích cực theo dõi nguồn cungtage trong thời gian ngủ. Trong một số thiết bị, có thể tiết kiệm điện bằng cách tắt BOD bằng phần mềm ở chế độ nghỉ Power-Down. Khi đó, mức tiêu thụ điện năng ở chế độ ngủ sẽ ở cùng mức như khi BOD bị vô hiệu hóa trên toàn cầu bởi cầu chì.

Nếu BOD bị vô hiệu hóa bằng phần mềm, chức năng BOD sẽ bị tắt ngay sau khi vào chế độ ngủ. Khi thức dậy sau khi ngủ, BOD sẽ tự động được bật lại. Điều này đảm bảo hoạt động an toàn trong trường hợp mức VCC giảm trong thời gian ngủ.

Khi BOD đã bị vô hiệu hóa, thời gian đánh thức từ chế độ ngủ sẽ giống như thời gian thức dậy từ ĐẶT LẠI. Người dùng phải định cấu hình thủ công thời gian đánh thức để tham chiếu bandgap có thời gian bắt đầu và BOD hoạt động chính xác trước khi MCU tiếp tục thực thi mã. Xem các bit cầu chì SUT [1: 0] và CKSEL [3: 0] trong bảng “Fuse Low Byte” trên trang 149

BOD vô hiệu được kiểm soát bởi bit BODS (BOD Sleep) của MCU Control Register, xem “MCUCR - Điều khiển MCU Đăng ký ”trên trang 37. Ghi bit này vào một sẽ tắt BOD trong Power-Down, trong khi viết số XNUMX giữ cho BOD hoạt động. Cài đặt mặc định là XNUMX, tức là BOD đang hoạt động.

Việc ghi vào bit BODS được điều khiển bởi một chuỗi định thời và một bit cho phép, xem “MCUCR - Cơ quan điều khiển MCU- ter ”trên trang 37.

Hạn chế

Chức năng vô hiệu hóa BOD đã được triển khai trong các thiết bị sau, chỉ:

ATtiny25, bản sửa đổi E và mới hơn

ATtiny45, bản sửa đổi D và mới hơn

ATtiny85, bản sửa đổi C và mới hơn

Các bản sửa đổi được đánh dấu trên gói thiết bị và có thể được định vị như sau:

Mặt dưới cùng của gói 8P3 và 8S2

Mặt trên của gói 20M1

Đăng ký giảm năng lượng

Đăng ký giảm năng lượng (PRR), xem “PRR - Đăng ký giảm năng lượng” trên trang 38, cung cấp một phương pháp để giảm tiêu thụ điện năng bằng cách dừng đồng hồ đối với các thiết bị ngoại vi riêng lẻ. Trạng thái hiện tại của thiết bị ngoại vi bị đóng băng và không thể đọc hoặc ghi các thanh ghi I / O. Các tài nguyên được sử dụng bởi thiết bị ngoại vi khi dừng đồng hồ sẽ vẫn bị chiếm dụng, do đó, trong hầu hết các trường hợp, thiết bị ngoại vi phải được tắt trước khi dừng đồng hồ. Đánh thức mô-đun, được thực hiện bằng cách xóa bit trong PRR, đặt mô-đun ở trạng thái giống như trước khi tắt.

Chế độ tắt mô-đun có thể được sử dụng ở chế độ Chờ và chế độ Hoạt động để giảm đáng kể mức tiêu thụ điện năng tổng thể. Trong tất cả các chế độ ngủ khác, đồng hồ đã dừng. Xem “Dòng điện cung cấp của các mô-đun I / O” trên trang 177 ví dụampđồng nghiệp.

Giảm thiểu mức tiêu thụ điện năng

Có một số vấn đề cần xem xét khi cố gắng giảm thiểu mức tiêu thụ điện năng trong hệ thống điều khiển AVR. Nói chung, chế độ ngủ nên được sử dụng càng nhiều càng tốt và chế độ ngủ nên được chọn sao cho càng ít chức năng của thiết bị hoạt động càng tốt. Tất cả các chức năng không cần thiết nên được tắt. Đặc biệt, các mô-đun sau có thể cần được xem xét đặc biệt khi cố gắng đạt được mức tiêu thụ điện năng thấp nhất có thể.

Bộ chuyển đổi Analog sang Digital

Nếu được bật, ADC sẽ được bật ở tất cả các chế độ ngủ. Để tiết kiệm điện, nên tắt ADC trước khi vào bất kỳ chế độ nghỉ nào. Khi ADC được tắt và bật lại, chuyển đổi tiếp theo sẽ là chuyển đổi mở rộng. Tham khảo “Bộ chuyển đổi tương tự sang kỹ thuật số” trên trang 122 để biết chi tiết về hoạt động của ADC.

Bộ so sánh tương tự

Khi vào chế độ Chờ, Bộ so sánh Analog sẽ bị tắt nếu không được sử dụng. Khi vào chế độ Giảm nhiễu ADC, Bộ so sánh Analog sẽ bị tắt. Trong các chế độ ngủ khác, Bộ so sánh Analog sẽ tự động bị tắt. Tuy nhiên, nếu Bộ so sánh tương tự được thiết lập để sử dụng Khối lượng bên trongtage Tham chiếu làm đầu vào, Bộ so sánh tương tự nên được tắt ở tất cả các chế độ ngủ. Nếu không, Vol nội bộtage Tham chiếu sẽ được bật, độc lập với chế độ ngủ. Tham khảo “Bộ so sánh tương tự” trên trang 119 để biết chi tiết về cách cấu hình Bộ so sánh tương tự.

Máy dò màu nâu

Nếu không cần đến Bộ phát hiện màu nâu trong ứng dụng, mô-đun này nên được tắt. Nếu Máy dò màu nâu được kích hoạt bởi Cầu chì BODLEVEL, nó sẽ được bật ở tất cả các chế độ ngủ và do đó, luôn tiêu thụ điện năng. Ở chế độ ngủ sâu hơn, điều này sẽ đóng góp đáng kể vào tổng mức tiêu thụ hiện tại. Xem “Phát hiện màu nâu- tion ”trên trang 41 Và “Software BOD Disable” trên trang 35 để biết chi tiết về cách định cấu hình Bộ phát hiện màu nâu.

Vol nội bộtage Tham khảo

Vol nội bộtage Tham chiếu sẽ được kích hoạt khi cần bằng Phát hiện màu nâu, Bộ so sánh tương tự hoặc ADC. Nếu các mô-đun này bị vô hiệu hóa như được mô tả trong các phần ở trên, vol nội bộtagTham chiếu e sẽ bị vô hiệu hóa và nó sẽ không được tiêu thụ điện năng. Khi bật lại, người dùng phải cho phép tham chiếu khởi động trước khi sử dụng đầu ra. Nếu tham chiếu được giữ ở chế độ nghỉ, đầu ra có thể được sử dụng ngay lập tức. Tham khảo “Tập nội bộtage Tham khảo ”trên trang 42 để biết chi tiết về thời gian khởi động.

Đồng hồ bấm giờ giám sát

Nếu không cần đến Watchdog Timer trong ứng dụng, mô-đun này nên được tắt. Nếu bật Watchdog Timer, nó sẽ được bật ở tất cả các chế độ ngủ và do đó, luôn tiêu thụ điện năng. Ở chế độ ngủ sâu hơn, điều này sẽ đóng góp đáng kể vào tổng mức tiêu thụ hiện tại. Tham khảo “Bộ hẹn giờ cho cơ quan giám sát” trên trang 42 để biết chi tiết về cách cấu hình Bộ định thời gian giám sát.

Chân cổng

Khi vào chế độ ngủ, tất cả các chân cổng phải được cấu hình để sử dụng nguồn điện tối thiểu. Điều quan trọng nhất sau đó là đảm bảo rằng không có chân nào điều khiển tải điện trở. Ở chế độ ngủ khi cả đồng hồ I/O (clkI/O) và đồng hồ ADC (clkADC) đều bị dừng, bộ đệm đầu vào của thiết bị sẽ bị vô hiệu hóa. Điều này đảm bảo rằng không có điện năng được tiêu thụ

bằng logic đầu vào khi không cần thiết. Trong một số trường hợp, logic đầu vào là cần thiết để phát hiện các điều kiện đánh thức và

sau đó nó sẽ được kích hoạt. Tham khảo phần “Chế độ Ngủ và Bật đầu vào Kỹ thuật số” trên trang 57 để biết chi tiết về những chân nào được bật. Nếu bộ đệm đầu vào được bật và tín hiệu đầu vào được thả nổi hoặc có mức tín hiệu tương tự gần với VCC/2, thì bộ đệm đầu vào sẽ sử dụng quá nhiều năng lượng.

Đối với các chân đầu vào tương tự, bộ đệm đầu vào kỹ thuật số phải luôn được tắt. Mức tín hiệu tương tự gần với VCC/2 trên chân đầu vào có thể gây ra dòng điện đáng kể ngay cả ở chế độ hoạt động. Bộ đệm đầu vào kỹ thuật số có thể bị vô hiệu hóa bằng cách ghi vào Thanh ghi vô hiệu hóa đầu vào kỹ thuật số (DIDR0). tham khảo “DIDR0 - Thanh ghi vô hiệu hóa đầu vào kỹ thuật số 0” trên trang 121 để biết thêm chi tiết.

Đăng ký Mô tả

MCUCR - Đăng ký điều khiển MCU

Thanh ghi điều khiển MCU chứa các bit điều khiển để quản lý nguồn.

Chút 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 CƠ THỂ ISC01 ISC00 MCUCR
Đọc/Ghi R Đ/T Đ/T Đ/T Đ/T R Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

Bit 7 - BODS: BOD Sleep

Chức năng vô hiệu hóa BOD chỉ có sẵn trong một số thiết bị. Xem “Giới hạn” trên trang 36.

Để vô hiệu hóa BOD trong khi ngủ (xem Bảng 7-1 nơi trang 34) bit BODS phải được ghi vào logic một. Điều này được điều khiển bởi một chuỗi định thời và bit cho phép, BODSE trong MCUCR. Đầu tiên, cả hai BODS và BODSE phải được đặt thành một. Thứ hai, trong vòng bốn chu kỳ đồng hồ, BODS phải được đặt thành một và BODSE phải được đặt bằng không. Bit BODS hoạt động ba chu kỳ đồng hồ sau khi nó được thiết lập. Lệnh ngủ phải được thực hiện trong khi BODS đang hoạt động để tắt BOD cho chế độ ngủ thực tế. Bit BODS sẽ tự động bị xóa sau ba chu kỳ đồng hồ.

Trong các thiết bị mà Sleeping BOD chưa được triển khai, bit này không được sử dụng và sẽ luôn đọc bằng không.

Bit 5 - SE: Bật chế độ ngủ

Bit SE phải được ghi vào logic một để đưa MCU vào chế độ ngủ khi lệnh SLEEP được thực thi. Để tránh MCU đi vào chế độ ngủ trừ khi đó là mục đích của lập trình viên, nên ghi bit Kích hoạt chế độ ngủ (SE) cho một ngay trước khi thực hiện lệnh SLEEP và xóa nó ngay sau khi thức dậy.

Bit 4: 3 - SM [1: 0]: Chế độ ngủ Chọn Bit 1 và 0

Các bit này chọn giữa ba chế độ ngủ có sẵn như được hiển thị trong Bảng 7-2.

Bảng 7-2. Chọn chế độ ngủ

SM1 SM0 Chế độ ngủ
0 0 Nhàn rỗi
0 1 Giảm nhiễu ADC
1 0 Tắt nguồn
1 1 Kín đáo

Bit 2 - BODSE: Kích hoạt chế độ ngủ BOD

Chức năng vô hiệu hóa BOD chỉ có sẵn trong một số thiết bị. Xem “Giới hạn” trên trang 36.

Bit BODSE cho phép thiết lập bit điều khiển BODS, như được giải thích trên mô tả bit BODS. Sự vô hiệu hóa BOD được thực hiện theo một trình tự có thời gian.

Bit này không được sử dụng trong các thiết bị chưa thực hiện vô hiệu hóa BOD phần mềm và sẽ đọc là XNUMX trong các thiết bị đó.

PRR - Đăng ký giảm năng lượng

Thanh ghi giảm công suất cung cấp một phương pháp để giảm tiêu thụ điện năng bằng cách cho phép tắt tín hiệu xung nhịp ngoại vi.

Chút 7 6 5 4 3 2 1 0
0x20 PRTIM1 PRTIM0 PRUSI PRADC PRR
Đọc/Ghi R R R R Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

Bit 7: 4 - Res: Số bit dành riêng

Các bit này là các bit dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bit 3 - PRTIM1: Bộ hẹn giờ / Bộ đếm giảm năng lượng1

Việc ghi logic một vào bit này sẽ tắt mô-đun Timer / Counter1. Khi Timer / Counter1 được bật, hoạt động sẽ tiếp tục như trước khi tắt máy.

Bit 2 - PRTIM0: Bộ hẹn giờ / Bộ đếm giảm năng lượng0

Việc ghi logic một vào bit này sẽ tắt mô-đun Timer / Counter0. Khi Timer / Counter0 được bật, hoạt động sẽ tiếp tục như trước khi tắt máy.

Bit 1 - PRUSI: USI giảm năng lượng

Viết logic một vào bit này sẽ tắt USI bằng cách dừng đồng hồ ở mô-đun. Khi đánh thức USI một lần nữa, USI nên được khởi tạo lại để đảm bảo hoạt động bình thường.

Bit 0 - PRADC: ADC giảm năng lượng

Viết logic một vào bit này sẽ tắt ADC. ADC phải được tắt trước khi tắt. Lưu ý rằng đồng hồ ADC cũng được sử dụng bởi một số bộ phận của bộ so sánh tương tự, có nghĩa là bộ so sánh tương tự không thể được sử dụng khi bit này ở mức cao.

Kiểm soát và thiết lập lại hệ thống

Đặt lại AVR

Trong quá trình thiết lập lại, tất cả các Thanh ghi I / O được đặt thành giá trị ban đầu của chúng và chương trình bắt đầu thực hiện từ Vec- tor Đặt lại. Lệnh được đặt tại Vector Reset phải là lệnh RJMP - Relative Jump - đối với quy trình xử lý reset. Nếu chương trình không bao giờ bật nguồn ngắt, các Vectơ ngắt sẽ không được sử dụng và mã chương trình thông thường có thể được đặt tại các vị trí này. Sơ đồ mạch trong Hình 8-1 hiển thị logic đặt lại. Các tham số điện của mạch đặt lại được đưa ra trong “Đặc điểm Hệ thống và Đặt lại” trên trang 165.

Hình 8-1 Đặt lại logic Đặt lại-lôgic

Các cổng I / O của AVR ngay lập tức được đặt lại về trạng thái ban đầu khi nguồn đặt lại hoạt động. Điều này không yêu cầu bất kỳ nguồn đồng hồ nào đang chạy.

Sau khi tất cả các nguồn đặt lại không hoạt động, bộ đếm độ trễ sẽ được gọi, kéo dài quá trình đặt lại bên trong. Điều này cho phép nguồn điện đạt mức ổn định trước khi bắt đầu hoạt động bình thường. Khoảng thời gian chờ của bộ đếm trễ được xác định bởi người dùng thông qua các cầu chì SUT và CKSEL. Các lựa chọn khác nhau cho khoảng thời gian trì hoãn được trình bày trong "Đồng hồ Nguồn ”trên trang 25.

Đặt lại nguồn

ATtiny25 / 45/85 có bốn nguồn thiết lập lại:

Đặt lại khi bật nguồn. MCU được đặt lại khi nguồn cung cấptage ở dưới ngưỡng Đặt lại khi bật nguồn (VPOT).

Đặt lại bên ngoài. MCU được đặt lại khi có mức thấp trên chân ĐẶT LẠI lâu hơn độ dài xung tối thiểu.

Thiết lập lại cơ quan giám sát. MCU được đặt lại khi hết thời gian Watchdog Timer và Watchdog được bật.

Thiết lập lại màu nâu. MCU được đặt lại khi nguồn cung cấptage VCC nằm dưới ngưỡng Đặt lại mất điện (VBOT) và Bộ phát hiện mất điện được bật.

Đặt lại khi bật nguồn

Xung Khởi động lại nguồn (POR) được tạo ra bởi một mạch phát hiện trên chip. Mức độ phát hiện được xác định trong “Sy- tem và Đặt lại Đặc điểm ”trên trang 165. POR được kích hoạt bất cứ khi nào VCC ở dưới mức phát hiện. Mạch POR có thể được sử dụng để kích hoạt Khởi động lại, cũng như để phát hiện lỗi cung cấp điện áp.tage.

Mạch Khởi động lại nguồn (POR) đảm bảo rằng thiết bị được đặt lại từ Bật nguồn. Đạt đến ngưỡng Bật nguồn Đặt lại voltage gọi bộ đếm trễ, bộ đếm này xác định khoảng thời gian thiết bị được giữ ở trạng thái ĐẶT LẠI sau khi VCC tăng. Tín hiệu CÀI ĐẶT LẠI được kích hoạt lại, không có bất kỳ độ trễ nào, khi VCC giảm xuống dưới mức phát hiện.

Hình 8-2. Khởi động MCU, THIẾT LẬP LẠI gắn liền với VCC

THIẾT LẬP LẠI NỘI BỘ

Hình 8-3. Khởi động MCU, THIẾT LẬP LẠI Mở rộng ra bên ngoài

Đặt lại bên ngoài

Đặt lại bên ngoài được tạo bởi mức thấp trên chân ĐẶT LẠI nếu được bật. Đặt lại xung dài hơn độ rộng xung tối thiểu (xem “Đặc điểm Hệ thống và Đặt lại” trên trang 165) sẽ tạo ra một thiết lập lại, ngay cả khi đồng hồ không chạy. Các xung ngắn hơn không được đảm bảo để tạo ra một thiết lập lại. Khi tín hiệu được áp dụng đạt đến Ngưỡng đặt lại Voltage – VRST – ở cạnh dương của nó, bộ đếm độ trễ khởi động MCU sau khi Hết thời gian chờ.

Hình 8-4. Đặt lại bên ngoài trong khi vận hành Hình 8.4

Phát hiện màu nâu

ATtiny25/45/85 có mạch Phát hiện mất điện áp (BOD) trên chip để theo dõi mức VCC trong quá trình hoạt động bằng cách so sánh nó với mức kích hoạt cố định. Mức kích hoạt cho BOD có thể được chọn bởi Cầu chì BODLEVEL. Mức kích hoạt có độ trễ để đảm bảo Phát hiện Brown-out không tăng đột biến. Độ trễ ở mức phát hiện nên được hiểu là VBOT+ = VBOT + VHYST/2 và VBOT- = VBOT – VHYST/2.

Khi BOD được bật và VCC giảm xuống giá trị dưới mức kích hoạt (VBOT- trong Hình 8-5), Thiết lập lại mất điện ngay lập tức được kích hoạt. Khi VCC tăng trên mức kích hoạt (VBOT+ trong Hình 8-5), bộ đếm độ trễ khởi động MCU sau khi hết thời gian chờ tTOUT.

Mạch BOD sẽ chỉ phát hiện sự sụt giảm VCC nếu voltage ở dưới mức kích hoạt lâu hơn tBOD được đưa ra trong “Đặc điểm Hệ thống và Đặt lại” trên trang 165. Hình 8.5

Đặt lại cơ quan giám sát

Khi Watchdog hết thời gian chờ, nó sẽ tạo ra một xung đặt lại ngắn có thời lượng một chu kỳ CK. Trên sườn xuống của xung này, bộ đếm thời gian trễ bắt đầu đếm Khoảng thời gian chờ tTOUT. tham khảo “Bộ hẹn giờ cho cơ quan giám sát” trên trang 42 để biết chi tiết về hoạt động của Watchdog Timer.

Tậptage Tham chiếu cho phép tín hiệu và thời gian khởi động

VoltagTài liệu tham khảo e có thời gian khởi động có thể ảnh hưởng đến cách sử dụng. Thời gian khởi động được đưa ra trong “Đặc điểm Hệ thống và Đặt lại” trên trang 165. Để tiết kiệm điện, tham chiếu không phải lúc nào cũng được bật. Sự phản xạ được bật trong các trường hợp sau:

Khi BOD được kích hoạt (bằng cách lập trình BODLEVEL [2: 0] Fuse Bits).

Khi tham chiếu băng tần được kết nối với Bộ so sánh tương tự (bằng cách đặt bit ACBG trong ACSR).

Khi ADC được bật.

Do đó, khi BOD không được kích hoạt, sau khi thiết lập bit ACBG hoặc bật ADC, người dùng phải luôn cho phép tham chiếu khởi động trước khi đầu ra từ Bộ so sánh tương tự hoặc ADC được sử dụng. Để giảm tiêu thụ điện năng ở chế độ Tắt nguồn, người dùng có thể tránh ba điều kiện trên để đảm bảo rằng tham chiếu đã được tắt trước khi vào chế độ Tắt nguồn.

Đồng hồ bấm giờ giám sát

Watchdog Timer được tạo xung nhịp từ Bộ tạo dao động trên chip chạy ở 128 kHz. Bằng cách điều khiển bộ đếm trước Bộ định thời gian giám sát, khoảng thời gian Đặt lại cơ quan giám sát có thể được điều chỉnh như trong Bảng 8-3 nơi trang 46. Lệnh WDR - Watchdog Reset - đặt lại Watchdog Timer. Watchdog Timer cũng được đặt lại khi nó bị vô hiệu hóa và khi xảy ra Đặt lại chip. Có thể chọn mười khoảng thời gian chu kỳ đồng hồ khác nhau để xác định khoảng thời gian đặt lại. Nếu hết thời gian đặt lại mà không có Thiết lập lại Cơ quan giám sát khác, ATtiny25 / 45/85 sẽ đặt lại và thực thi từ Véc tơ Đặt lại. Để biết thông tin chi tiết về thời gian trên Watchdog Reset, hãy tham khảo Bảng 8-3 nơi trang 46.

Watchdog Timer cũng có thể được cấu hình để tạo ngắt thay vì đặt lại. Điều này có thể rất hữu ích khi sử dụng Watchdog để đánh thức từ Power-down.

Để ngăn chặn việc vô hiệu hóa Cơ quan giám sát hoặc thay đổi khoảng thời gian chờ ngoài ý muốn, hai mức độ an toàn khác nhau được chọn bởi cầu chì WDTON như được hiển thị trong Bảng 8-1 Tham khảo “Trình tự theo thời gian để thay đổi nghĩa bóng của Watchdog Timer ”trên trang 43 để biết thêm chi tiết.

Bảng 8-1. Cấu hình WDT như một chức năng của cài đặt cầu chì của WDTON

WDTON Mức độ an toàn Trạng thái ban đầu của WDT Cách tắt WDT Cách thay đổi thời gian chờ
Không được lập trình 1 Tàn tật Trình tự thời gian Không có giới hạn
Đã lập trình 2 Đã bật Luôn được bật Trình tự thời gian

Hình 8-7. Đồng hồ bấm giờ Chó canh gác

Trình tự định thời để thay đổi cấu hình của bộ định giờ cơ quan giám sát

Trình tự thay đổi cấu hình hơi khác nhau giữa hai mức độ an toàn. Các thủ tục riêng biệt được mô tả cho từng cấp độ.

Mức độ an toàn 1: Trong chế độ này, Watchdog Timer ban đầu bị vô hiệu hóa, nhưng có thể được kích hoạt bằng cách ghi bit WDE vào một mà không có bất kỳ hạn chế nào. Một chuỗi thời gian là cần thiết khi tắt Bộ hẹn giờ Watchdog đã bật. Để tắt Bộ hẹn giờ Watchdog đã bật, phải tuân theo quy trình sau:

Trong cùng một thao tác, hãy ghi một logic vào WDCE và WDE. Một logic phải được ghi vào WDE - ít hơn giá trị trước đó của bit WDE.

Trong vòng bốn chu kỳ xung nhịp tiếp theo, trong cùng một thao tác, ghi các bit WDE và WDP như mong muốn, nhưng với bit WDCE bị xóa.

Mức độ an toàn 2: Trong chế độ này, Watchdog Timer luôn được bật và bit WDE sẽ luôn đọc là một. Một chuỗi thời gian là cần thiết khi thay đổi khoảng thời gian Hết thời gian giám sát. Để thay đổi Thời gian chờ của cơ quan giám sát, phải tuân theo quy trình sau:

Trong cùng một thao tác, hãy ghi một phép logic vào WDCE và WDE. Mặc dù WDE luôn được đặt, WDE phải được ghi vào một để bắt đầu trình tự định giờ.

Trong vòng bốn chu kỳ đồng hồ tiếp theo, trong cùng một thao tác, ghi các bit WDP như mong muốn, nhưng xóa bit WDCE. Giá trị được ghi vào bit WDE là không liên quan.

Mã Example

Đoạn mã sau đâyample hiển thị một assembly và một hàm C để tắt WDT. Người cũample giả định rằng các ngắt được kiểm soát (ví dụ: bằng cách vô hiệu hóa các ngắt trên toàn cục) để không xảy ra ngắt trong quá trình thực thi các chức năng này.

Mã hội Example(1)
WDT_tắt:

wdr

; Xóa WDRF trong MCUSR

ldi r16, (0<

ra MCUSR, r16

; Viết một logic vào WDCE và WDE

; Giữ cài đặt cài đặt trước cũ để ngăn việc Đặt lại Cơ quan giám sát không chủ ý

trong r16, WDTCR

ori r16, (1<

ra WDTCR, r16

; Tắt WDT

ldi r16, (0<

ra WDTCR, r16

trở về

Mã C Example(1)
khoảng trống WDT_off(khoảng trống)

{

_WDR ();

/* Xóa WDRF trong MCUSR */ MCUSR = 0x00

/* Viết một logic vào WDCE và WDE */ WDTCR |= (1<

/ * Tắt WDT * / WDTCR = 0x00;

}

Lưu ý: 1. Xem “Mã Examples ”trên trang 6.

Đăng ký Mô tả

MCUSR - Đăng ký trạng thái MCU

Thanh ghi Trạng thái MCU cung cấp thông tin về nguồn thiết lập lại nào đã gây ra Thiết lập lại MCU.

Chút 7 6 5 4 3 2 1 0
0x34 WDRF SINH RA EXTRF PORF MCUSR
Đọc/Ghi R R R R Đ/T Đ/T Đ/T Đ/T

Giá trị ban đầu 0 0 0 0 Xem mô tả bit

Bit 7: 4 - Res: Số bit dành riêng

Các bit này là các bit dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bit 3 - WDRF: Cờ đặt lại cơ quan giám sát

Bit này được đặt nếu một Thiết lập lại Cơ quan giám sát xảy ra. Bit được đặt lại bằng Thiết lập lại khi bật nguồn hoặc bằng cách ghi số XNUMX logic vào cờ.

Bit 2 - BORF: Cờ đặt lại màu nâu

Bit này được đặt nếu xảy ra Thiết lập lại màu nâu. Bit được đặt lại bằng Thiết lập lại khi bật nguồn hoặc bằng cách ghi số XNUMX logic vào cờ.

Bit 1 - EXTRF: Cờ đặt lại bên ngoài

Bit này được đặt nếu một Thiết lập lại Bên ngoài xảy ra. Bit được đặt lại bằng Thiết lập lại khi bật nguồn hoặc bằng cách ghi số XNUMX logic vào cờ.

Bit 0 - PORF: Cờ khởi động lại nguồn

Bit này được đặt nếu xảy ra Đặt lại khi bật nguồn. Bit chỉ được đặt lại bằng cách ghi số XNUMX logic vào cờ.

Để sử dụng Cờ đặt lại để xác định điều kiện đặt lại, người dùng nên đọc và sau đó đặt lại MCUSR càng sớm càng tốt trong chương trình. Nếu thanh ghi bị xóa trước khi một lần đặt lại khác xảy ra, có thể tìm thấy nguồn của việc đặt lại bằng cách kiểm tra các Cờ đặt lại.

WDTCR - Đăng ký kiểm soát bộ định thời gian giám sát

Chút 7 6 5 4 3 2 1 0
0x21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
Đọc/Ghi Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 X 0 0 0

Bit 7 - WDIF: Cờ ngắt thời gian chờ của cơ quan giám sát

Bit này được thiết lập khi hết thời gian chờ xảy ra trong Bộ định thời gian cơ quan giám sát và Bộ định thời gian cơ quan giám sát được cấu hình để ngắt. WDIF bị xóa bởi phần cứng khi thực thi vectơ xử lý ngắt tương ứng. Ngoài ra, WDIF được xóa bằng cách ghi một logic vào cờ. Khi I-bit trong SREG và WDIE được đặt, Ngắt hết thời gian của cơ quan giám sát được thực thi.

Bit 6 - WDIE: Kích hoạt tính năng ngắt thời gian chờ của cơ quan giám sát

Khi bit này được ghi vào một, WDE bị xóa và I-bit trong Thanh ghi trạng thái được thiết lập, Ngắt thời gian chờ của cơ quan giám sát được kích hoạt. Trong chế độ này, ngắt tương ứng được thực hiện thay vì đặt lại nếu xảy ra thời gian chờ trong Bộ định thời gian giám sát.

Nếu WDE được đặt, WDIE sẽ tự động bị phần cứng xóa khi hết thời gian chờ xảy ra. Điều này hữu ích để giữ bảo mật Đặt lại cơ quan giám sát trong khi sử dụng ngắt. Sau khi bit WDIE bị xóa, thời gian chờ tiếp theo sẽ tạo ra một thiết lập lại. Để tránh Thiết lập lại cơ quan giám sát, WDIE phải được thiết lập sau mỗi lần ngắt.

Bảng 8-2. Cấu hình Watchdog Timer

WDE WDIE Trạng thái hẹn giờ của cơ quan giám sát Hành động khi hết giờ
0 0 Đã dừng lại Không có
0 1 Đang chạy Ngắt
1 0 Đang chạy Cài lại
1 1 Đang chạy Ngắt

Bit 4 - WDCE: Bật tính năng thay đổi cơ quan giám sát

Bit này phải được đặt khi bit WDE được ghi ở mức logic XNUMX. Nếu không, Cơ quan giám sát sẽ không bị vô hiệu hóa. Sau khi được ghi vào một, phần cứng sẽ xóa bit này sau bốn chu kỳ đồng hồ. Tham khảo mô tả của bit WDE để biết quy trình vô hiệu hóa Cơ quan giám sát. Bit này cũng phải được thiết lập khi thay đổi các bit của bộ định mức. Xem “Trình tự theo thời gian để thay đổi cấu hình của bộ định giờ cơ quan giám sát ”trên trang 43.

Bit 3 - WDE: Kích hoạt cơ quan giám sát

Khi WDE được ghi vào logic một, Bộ định thời cơ quan giám sát được bật và nếu WDE được ghi ở mức logic XNUMX, thì chức năng Bộ hẹn giờ cơ quan giám sát sẽ bị vô hiệu hóa. WDE chỉ có thể được xóa nếu bit WDCE có mức logic một. Để vô hiệu hóa Bộ hẹn giờ cơ quan giám sát đã bật, quy trình sau phải được tuân theo:

Trong cùng một thao tác, hãy ghi một logic vào WDCE và WDE. Một logic phải được ghi vào WDE mặc dù nó được đặt thành một logic trước khi bắt đầu hoạt động vô hiệu hóa.

Trong vòng bốn chu kỳ đồng hồ tiếp theo, ghi logic 0 vào WDE. Điều này vô hiệu hóa Cơ quan giám sát.

Ở mức độ an toàn 2, không thể vô hiệu hóa Watchdog Timer, ngay cả với thuật toán được mô tả ở trên. Xem “Trình tự định thời để thay đổi cấu hình của bộ định giờ cơ quan giám sát” trên trang 43.

Ở mức an toàn 1, WDE bị WDRF ghi đè trong MCUSR. Xem “MCUSR - Đăng ký trạng thái MCU” trên trang 44 để biết mô tả về WDRF. Điều này có nghĩa là WDE luôn được đặt khi WDRF được đặt. Để xóa WDE, WDRF phải được xóa trước khi vô hiệu hóa Cơ quan giám sát bằng quy trình được mô tả ở trên. Tính năng này đảm bảo nhiều lần đặt lại trong các điều kiện gây ra lỗi và khởi động an toàn sau lỗi.

Lưu ý: Nếu bộ đếm thời gian giám sát sẽ không được sử dụng trong ứng dụng, điều quan trọng là phải thực hiện quy trình vô hiệu hóa cơ quan giám sát trong quá trình khởi tạo thiết bị. Nếu Watchdog vô tình được kích hoạt, chẳng hạn nhưample bởi một con trỏ chạy trốn hoặc tình trạng màu nâu, thiết bị sẽ được đặt lại, do đó sẽ dẫn đến thiết lập lại cơ quan giám sát mới. Để tránh tình huống này, phần mềm ứng dụng phải luôn xóa cờ WDRF và bit điều khiển WDE trong quy trình khởi tạo.

Bit 5, 2: 0 - WDP [3: 0]: Watchdog Timer Prescaler 3, 2, 1 và 0

Các bit WDP [3: 0] xác định việc định vị trước Bộ định thời gian giám sát khi Bộ định giờ cơ quan giám sát được bật. Các giá trị đặt trước khác nhau và Khoảng thời gian chờ tương ứng của chúng được hiển thị trong Bảng 8-3.

Bảng 8-3. Watchdog Timer Prescale Chọn

WDP3 WDP2 WDP1 WDP0 Số chu kỳ dao động WDT Thời gian chờ điển hình tại VCC = 5.0V
0 0 0 0 2K (2048) chu kỳ 16 mili giây
0 0 0 1 4K (4096) chu kỳ 32 mili giây
0 0 1 0 8K (8192) chu kỳ 64 mili giây
0 0 1 1 16K (16384) chu kỳ 0.125 giây
0 1 0 0 32K (32764) chu kỳ 0.25 giây
0 1 0 1 64K (65536) chu kỳ 0.5 giây
0 1 1 0 128K (131072) chu kỳ 1.0 giây
0 1 1 1 256K (262144) chu kỳ 2.0 giây
1 0 0 0 512K (524288) chu kỳ 4.0 giây
1 0 0 1 1024K (1048576) chu kỳ 8.0 giây

Bảng 8-3. Watchdog Timer Prescale Select (Tiếp theo)

WDP3 WDP2 WDP1 WDP0 Số chu kỳ dao động WDT Thời gian chờ điển hình tại VCC = 5.0V
1 0 1 0 Kín đáo(1)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Lưu ý: 1. Nếu được chọn, một trong các cài đặt hợp lệ bên dưới 0b1010 sẽ được sử dụng.

Ngắt

Phần này mô tả các chi tiết cụ thể của việc xử lý ngắt như được thực hiện trong ATtiny25 / 45/85. Để biết giải thích chung về xử lý ngắt AVR, hãy tham khảo “Đặt lại và xử lý ngắt” trên trang 12.

Vectơ ngắt trong ATtiny25 / 45/85

Các vectơ ngắt của ATtiny25 / 45/85 được mô tả trong Bảng 9-1dưới.

Bảng 9-1. Đặt lại và ngắt vectơ

Số vectơ Địa chỉ chương trình Nguồn Định nghĩa ngắt
1 0x0000 CÀI LẠI Pin bên ngoài, Đặt lại khi bật nguồn, Đặt lại màu nâu, Đặt lại cơ quan giám sát
2 0x0001 INT0 Yêu cầu ngắt bên ngoài 0
3 0x0002 PCINT0 Yêu cầu ngắt thay đổi mã pin 0
4 0x0003 TIMER1_COMPA Hẹn giờ / Bộ đếm 1 So sánh Trận đấu A
5 0x0004 TIMER1_OVF Hẹn giờ / Bộ đếm 1 Tràn
6 0x0005 TIMER0_OVF Hẹn giờ / Bộ đếm 0 Tràn
7 0x0006 EE_RDY Sẵn sàng cho EEPROM
8 0x0007 ANA_COMP Bộ so sánh tương tự
9 0x0008 ADC Chuyển đổi ADC hoàn thành
10 0x0009 TIMER1_COMPB Hẹn giờ / Bộ đếm 1 So sánh Trận đấu B
11 0x000A TIMER0_COMPA Hẹn giờ / Bộ đếm 0 So sánh Trận đấu A
12 0x000B TIMER0_COMPB Hẹn giờ / Bộ đếm 0 So sánh Trận đấu B
13 0x000C WDT Cơ quan giám sát hết thời gian
14 0x000D USI_START CHÚNG TÔI BẮT ĐẦU
15 0x000E USI_OVF Tràn USI

Nếu chương trình không bao giờ bật nguồn ngắt, các Vectơ ngắt sẽ không được sử dụng và mã chương trình thông thường có thể được đặt tại các vị trí này.

Một thiết lập điển hình và chung cho các địa chỉ vectơ ngắt trong ATtiny25 / 45/85 được hiển thị trong chương trình exampbên dưới.

Mã hội Example
.org 0x0000 ; Đặt địa chỉ của tiếp theo tuyên bố
rjmp ĐẶT LẠI ; Địa chỉ 0x0000
rjmp INT0_ISR ; Địa chỉ 0x0001
rjmp PCINT0_ISR ; Địa chỉ 0x0002
rjmp TIM1_COMPA_ISR ; Địa chỉ 0x0003
rjmp TIM1_OVF_ISR ; Địa chỉ 0x0004
rjmp TIM0_OVF_ISR ; Địa chỉ 0x0005
rjmp EE_RDY_ISR ; Địa chỉ 0x0006
rjmp ANA_COMP_ISR ; Địa chỉ 0x0007
rjmp ADC_ISR ; Địa chỉ 0x0008
rjmp TIM1_COMPB_ISR ; Địa chỉ 0x0009
rjmp TIM0_COMPA_ISR ; Địa chỉ 0x000A
rjmp TIM0_COMPB_ISR ; Địa chỉ 0x000B
rjmp WDT_ISR ; Địa chỉ 0x000C
rjmp USI_START_ISR ; Địa chỉ 0x000D
rjmp USI_OVF_ISR ; Địa chỉ 0x000E
Đặt lại: ; Chương trình chính bắt đầu
; Địa chỉ 0x000F

Lưu ý: Xem “Mã Examples ”trên trang 6.

Ngắt ngoài

Ngắt ngoài được kích hoạt bởi chân INT0 hoặc bất kỳ chân nào trong số các chân PCINT [5: 0]. Quan sát rằng, nếu được kích hoạt, các ngắt sẽ kích hoạt ngay cả khi các chân INT0 hoặc PCINT [5: 0] được định cấu hình làm đầu ra. Tính năng này cung cấp một cách tạo ra một ngắt phần mềm. Ngắt thay đổi chân cắm PCI sẽ kích hoạt nếu có bất kỳ PCINT [5: 0] nào được bật chuyển đổi chân cắm. Thanh ghi PCMSK điều khiển các chân nào đóng góp vào các ngắt thay đổi chân. Ngắt thay đổi mã pin trên PCINT [5: 0] được phát hiện không đồng bộ. Điều này ngụ ý rằng những ngắt này có thể được sử dụng để đánh thức bộ phận cũng từ các chế độ ngủ khác với chế độ Chờ.

Ngắt INT0 có thể được kích hoạt bởi một cạnh giảm hoặc tăng hoặc mức thấp. Điều này được thiết lập như được chỉ ra trong thông số kỹ thuật cho Thanh ghi điều khiển MCU - MCUCR. Khi ngắt INT0 được kích hoạt và được cấu hình như mức được kích hoạt, ngắt sẽ kích hoạt miễn là chân được giữ ở mức thấp. Lưu ý rằng việc nhận biết ngắt cạnh xuống hoặc cạnh lên trên INT0 yêu cầu sự hiện diện của đồng hồ I / O, được mô tả trong "Hệ thống đồng hồ và phân phối của chúng" trên trang 23.

Ngắt mức thấp

Một ngắt mức thấp trên INT0 được phát hiện không đồng bộ. Điều này ngụ ý rằng ngắt này có thể được sử dụng để đánh thức bộ phận cũng từ các chế độ ngủ khác với chế độ Chờ. Đồng hồ I / O tạm dừng ở tất cả các chế độ ngủ ngoại trừ chế độ Chờ.

Lưu ý rằng nếu một ngắt được kích hoạt ở mức được sử dụng để đánh thức từ Tắt nguồn, thì mức yêu cầu phải được giữ đủ lâu để MCU hoàn thành quá trình đánh thức để kích hoạt ngắt ở mức. Nếu mức độ biến mất trước khi kết thúc Thời gian khởi động, thì MCU vẫn sẽ hoạt động trở lại, nhưng sẽ không có ngắt nào được tạo ra. Thời gian khởi động được xác định bởi Cầu chì SUT và CKSEL như được mô tả trong “Đồng hồ hệ thống và tùy chọn đồng hồ” trên trang 23.

Nếu mức thấp trên chân ngắt được loại bỏ trước khi thiết bị thức dậy thì việc thực thi chương trình sẽ không được chuyển hướng sang quy trình phục vụ ngắt mà tiếp tục từ hướng dẫn sau lệnh SLEEP.

Thời gian ngắt thay đổi mã pin

Một người yêu cũampthời gian của một ngắt thay đổi pin được hiển thị trong Hình 9-1.

Đăng ký Mô tả

MCUCR - Đăng ký điều khiển MCU

Thanh ghi điều khiển ngắt ngoài A chứa các bit điều khiển để điều khiển cảm giác ngắt.

Chút 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 CƠ THỂ ISC01 ISC00 MCUCR
Đọc/Ghi R Đ/T Đ/T Đ/T Đ/T R Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

Bit 1: 0 - ISC0 [1: 0]: Điều khiển ngắt cảm giác 0 Bit 1 và Bit 0

Ngắt ngoài 0 được kích hoạt bởi chân ngoài INT0 nếu cờ I-SREG và mặt nạ ngắt tương ứng được thiết lập. Mức và các cạnh trên chân INT0 bên ngoài kích hoạt ngắt được xác định trong Bảng 9-2. Giá trị trên chân INT0 là sampdẫn trước khi dò các cạnh. Nếu ngắt cạnh hoặc ngắt chuyển đổi được chọn, các xung kéo dài hơn một chu kỳ đồng hồ sẽ tạo ra ngắt. Các xung ngắn hơn không được đảm bảo để tạo ra một ngắt. Nếu ngắt mức thấp được chọn, mức thấp phải được giữ cho đến khi hoàn thành lệnh đang thực hiện để tạo ngắt.

Bảng 9-2. Ngắt 0 Điều khiển cảm giác

ISC01 ISC00 Sự miêu tả
0 0 Mức thấp của INT0 tạo ra một yêu cầu ngắt.
0 1 Bất kỳ thay đổi logic nào trên INT0 đều tạo ra một yêu cầu ngắt.
1 0 Cạnh rơi của INT0 tạo ra một yêu cầu ngắt.
1 1 Cạnh lên của INT0 tạo ra một yêu cầu ngắt.

GIMSK - Thanh ghi mặt nạ ngắt chung

Chút 7 6 5 4 3 2 1 0
0x3B INT0 PCIE GIMSK
Đọc/Ghi R Đ/T Đ/T R R R R R
Giá trị ban đầu 0 0 0 0 0 0 0 0

Bit 7, 4: 0 - Res: Bit dành riêng

Các bit này là các bit dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bit 6 - INT0: Yêu cầu ngắt bên ngoài 0 Kích hoạt

Khi bit INT0 được đặt (một) và bit I trong Thanh ghi trạng thái (SREG) được đặt (một), ngắt chân bên ngoài được kích hoạt. Điều khiển cảm nhận ngắt 0 bit 1/0 (ISC01 và ISC00) trong Thanh ghi điều khiển MCU (MCUCR) xác định xem ngắt bên ngoài có được kích hoạt trên cạnh lên và / hoặc xuống của chân INT0 hoặc mức được cảm nhận hay không. Hoạt động trên chân sẽ gây ra yêu cầu ngắt ngay cả khi INT0 được cấu hình như một đầu ra. Ngắt tương ứng của Yêu cầu ngắt Exter- nal 0 được thực hiện từ Véc tơ ngắt INT0.

Bit 5 - PCIE: Bật ngắt thay đổi mã pin

Khi bit PCIE được đặt (một) và bit I trong Thanh ghi trạng thái (SREG) được đặt (một), ngắt thay đổi chân được bật. Bất kỳ thay đổi nào trên bất kỳ chân PCINT [5: 0] nào được bật sẽ gây ra gián đoạn. Ngắt tương ứng của Yêu cầu ngắt thay đổi chân được thực thi từ Vectơ ngắt PCI. Các chân PCINT [5: 0] được bật riêng lẻ bởi Thanh ghi PCMSK0.

GIFR - Đăng ký cờ ngắt chung

Chút 7 6 5 4 3 2 1 0
0x3A INTF0 PCIF GIFR
Đọc/Ghi R Đ/T Đ/T R R R R R
Giá trị ban đầu 0 0 0 0 0 0 0 0

Bit 7, 4: 0 - Res: Bit dành riêng

Các bit này là các bit dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bit 6 - INTF0: Cờ ngắt ngoài 0

Khi một cạnh hoặc thay đổi logic trên chân INT0 kích hoạt yêu cầu ngắt, INTF0 sẽ trở thành set (một). Nếu bit I trong SREG và bit INT0 trong GIMSK được đặt (một), MCU sẽ nhảy đến Vectơ ngắt tương ứng. Cờ bị xóa khi quy trình ngắt được thực hiện. Ngoài ra, cờ có thể được xóa bằng cách viết một lôgic vào nó. Cờ này luôn bị xóa khi INT0 được cấu hình như một ngắt mức.

Bit 5 - PCIF: Cờ ngắt thay đổi chân

Khi một thay đổi logic trên bất kỳ chân PCINT [5: 0] nào kích hoạt yêu cầu ngắt, PCIF sẽ được đặt (một). Nếu bit I trong SREG và bit PCIE trong GIMSK được đặt (một), MCU sẽ nhảy đến Vectơ ngắt tương ứng. Cờ bị xóa khi quy trình ngắt được thực hiện. Ngoài ra, cờ có thể được xóa bằng cách viết một lôgic vào nó.

PCMSK - Đăng ký mặt nạ thay đổi mã pin

Chút 7 6 5 4 3 2 1 0
0x15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
Đọc/Ghi R R Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

Bit 7: 6 - Res: Số bit dành riêng

Các bit này là các bit dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bit 5: 0 - PCINT [5: 0]: Pin Change Enable Mask 5: 0

Mỗi bit PCINT [5: 0] chọn xem có bật ngắt thay đổi chân trên chân I / O tương ứng hay không. Nếu PCINT [5: 0] được đặt và bit PCIE trong GIMSK được đặt, thì ngắt thay đổi chân được bật trên chân I / O tương ứng. Nếu PCINT [5: 0] bị xóa, ngắt thay đổi chân trên chân I / O tương ứng sẽ bị vô hiệu hóa.

Cổng I/O

Giới thiệu

Tất cả các cổng AVR đều có chức năng Đọc-Sửa-Ghi thực sự khi được sử dụng làm cổng I / O kỹ thuật số chung. Điều này có nghĩa là hướng của một chân cổng có thể được thay đổi mà không vô tình thay đổi hướng của bất kỳ chân nào khác bằng các lệnh SBI và CBI. Điều tương tự cũng áp dụng khi thay đổi giá trị biến tần (nếu được định cấu hình là đầu ra) hoặc bật / tắt điện trở kéo lên (nếu được định cấu hình là đầu vào). Mỗi bộ đệm đầu ra có đặc tính ổ đĩa đối xứng với cả khả năng chìm và nguồn cao. Trình điều khiển pin đủ mạnh để điều khiển màn hình LED trực tiếp. Tất cả các chân cổng đều có điện trở kéo lên có thể lựa chọn riêng với nguồn cung cấptagđiện trở bất biến. Tất cả các chân I/O đều có điốt bảo vệ cho cả VCC và Ground như được chỉ ra trong Hình 10-1. Tham khảo “Đặc tính điện” trên trang 161 để có danh sách đầy đủ các tham số.

Hình 10-1. Sơ đồ tương đương chân I/O

Hình 10

Tất cả các thanh ghi và tham chiếu bit trong phần này được viết ở dạng chung. Chữ cái viết thường “x” đại diện cho ký tự đánh số của cổng và chữ cái viết thường “n” đại diện cho số bit. Tuy nhiên, khi sử dụng thanh ghi hoặc định nghĩa bit trong một chương trình, phải sử dụng dạng chính xác. Cho người yêu cũample, PORTB3 cho bit không. 3 ở Cổng B, ở đây được đề cập chung là PORTxn. Thanh ghi I / O vật lý và vị trí bit được liệt kê trong "Đăng ký Mô tả" trên trang 64.

Ba vị trí địa chỉ bộ nhớ I / O được cấp phát cho mỗi cổng, mỗi vị trí cho Thanh ghi dữ liệu - PORTx, Thanh ghi hướng dữ liệu - DDRx và các chân đầu vào cổng - PINx. Vị trí I / O của các chân đầu vào cổng chỉ được đọc, trong khi thanh ghi dữ liệu và thanh ghi hướng dữ liệu được đọc / ghi. Tuy nhiên, việc ghi logic một thành một bit trong Bộ đăng ký PINx, sẽ dẫn đến việc chuyển đổi bit tương ứng trong Thanh ghi dữ liệu. Ngoài ra, bit Pull-up Disable - PUD trong MCUCR vô hiệu hóa chức năng pull-up cho tất cả các chân trong tất cả các cổng khi được thiết lập.

Sử dụng cổng I / O làm I / O Kỹ thuật số Chung được mô tả trong “Cổng dưới dạng I / O kỹ thuật số chung” trên trang 53. Hầu hết các chân cổng được ghép với các chức năng thay thế cho các tính năng ngoại vi trên thiết bị. Cách mỗi chức năng thay thế tương tác với chân cổng được mô tả trong “Chức năng cổng thay thế” trên trang 57. Tham khảo các phần mô-đun riêng lẻ để có mô tả đầy đủ về các chức năng thay thế.

Lưu ý rằng việc bật chức năng thay thế của một số chân cổng không ảnh hưởng đến việc sử dụng các chân khác trong cổng làm I / O kỹ thuật số chung.

Cổng làm I / O kỹ thuật số chung

Các cổng là cổng I / O hai chiều với các thanh kéo bên trong tùy chọn. Hình 10-2 hiển thị mô tả chức năng của một chân I / O-port, ở đây thường được gọi là Pxn.

Hình 10-2. I/O kỹ thuật số chung(1)

Hình 10

Định cấu hình mã pin

Mỗi chân cổng bao gồm ba bit thanh ghi: DDxn, PORTxn và PINxn. Như được hiển thị trong "Đăng ký Mô tả" trên trang 64, các bit DDxn được truy cập tại địa chỉ DDRx I / O, các bit PORTxn tại địa chỉ PORTx I / O và các bit PINxn tại địa chỉ PINx I / O.

Bit DDxn trong thanh ghi DDRx chọn hướng của chân này. Nếu DDxn được viết logic một, Pxn được cấu hình như một chân đầu ra. Nếu DDxn được ghi logic XNUMX, Pxn được cấu hình như một chân đầu vào.

Nếu PORTxn được ghi logic một khi chân được cấu hình làm chân đầu vào, thì điện trở kéo lên được kích hoạt. Để tắt điện trở kéo lên, PORTxn phải được viết logic bằng XNUMX hoặc chân phải được cấu hình như một chân đầu ra. Các chân cổng được chỉ định ba khi điều kiện đặt lại hoạt động, ngay cả khi không có đồng hồ nào đang chạy.

Nếu PORTxn được ghi logic một khi chân được cấu hình như một chân đầu ra, thì chân cổng được điều khiển ở mức cao (một). Nếu PORTxn được ghi logic XNUMX khi chân được cấu hình làm chân đầu ra, thì chân cổng được điều khiển ở mức thấp (không).

Chuyển đổi Ghim

Viết một logic một vào PINxn để chuyển đổi giá trị của PORTxn, độc lập với giá trị của DDRxn. Lưu ý rằng lệnh SBI có thể được sử dụng để chuyển đổi một bit trong một cổng.

Chuyển đổi giữa đầu vào và đầu ra

Khi chuyển đổi giữa ba trạng thái ({DDxn, PORTxn} = 0b00) và đầu ra cao ({DDxn, PORTxn} = 0b11), trạng thái trung gian với {DDxn, PORTxn} = 0b01) được kích hoạt kéo lên hoặc đầu ra thấp ({DDxn, PORTxn} = 0b10) phải xảy ra. Thông thường, trạng thái kích hoạt kéo lên hoàn toàn có thể chấp nhận được, vì môi trường có trở kháng cao sẽ không nhận thấy sự khác biệt giữa trình điều khiển cao mạnh và kéo lên. Nếu đây không phải là trường hợp, bit PUD trong Thanh ghi MCUCR có thể được đặt để vô hiệu hóa tất cả các pull-up trong tất cả các cổng.

Việc chuyển đổi giữa đầu vào với mức kéo lên và đầu ra ở mức thấp tạo ra cùng một vấn đề. Người dùng phải sử dụng trạng thái ba ({DDxn, PORTxn} = 0b00) hoặc trạng thái đầu ra cao ({DDxn, PORTxn} = 0b10) làm bước trung gian.

Bảng 10-1 tóm tắt các tín hiệu điều khiển cho giá trị chân.

Bảng 10-1. Cấu hình chân cổng

DDxn PORTxn PUD

(trong MCUCR)

Đầu vào/Đầu ra Kéo lên Bình luận
0 0 X Đầu vào KHÔNG Ba trạng thái (Hi-Z)
0 1 0 Đầu vào Đúng Pxn sẽ tạo nguồn hiện tại nếu ext. kéo xuống thấp.
0 1 1 Đầu vào KHÔNG Ba trạng thái (Hi-Z)
1 0 X Đầu ra KHÔNG Đầu ra thấp (Chìm)
1 1 X Đầu ra KHÔNG Đầu ra cao (Nguồn)

Đọc giá trị mã pin

Không phụ thuộc vào cài đặt DDxn của bit Hướng dữ liệu, chân cổng có thể được đọc thông qua bit Thanh ghi PINxn. Như được hiển thị trong Hình 10-2, bit Đăng ký PINxn và chốt trước tạo thành bộ đồng bộ hóa. Điều này là cần thiết để tránh di căn nếu chân vật lý thay đổi giá trị gần mép của đồng hồ bên trong, nhưng nó cũng tạo ra độ trễ. Hình 10-3 hiển thị sơ đồ thời gian của quá trình đồng bộ hóa khi đọc giá trị chân được áp dụng bên ngoài. Độ trễ lan truyền tối đa và tối thiểu lần lượt được ký hiệu là tpd,max và tpd,min.

Xem xét khoảng thời gian đồng hồ bắt đầu ngay sau khi cạnh rơi đầu tiên của đồng hồ hệ thống. Chốt được đóng khi đồng hồ ở mức thấp và chuyển sang trong suốt khi đồng hồ ở mức cao, như được chỉ ra bởi vùng bóng mờ của tín hiệu “ĐỒNG BỘ LATCH”. Giá trị tín hiệu được chốt khi đồng hồ hệ thống xuống thấp. Nó được đưa vào Thanh ghi PINxn ở cạnh đồng hồ dương tiếp theo. Như được chỉ ra bởi hai mũi tên tpd, max và tpd, min, một quá trình chuyển đổi tín hiệu đơn lẻ trên chân sẽ bị trễ trong khoảng ½ đến 1½ chu kỳ đồng hồ hệ thống tùy thuộc vào thời điểm xác nhận.

Khi đọc lại giá trị pin được chỉ định của phần mềm, một lệnh nop phải được chèn như được chỉ ra trong Hình 10-4. Lệnh out đặt tín hiệu “SYNC LATCH” ở cạnh dương của đồng hồ. Trong trường hợp này, độ trễ tpd qua bộ đồng bộ hóa là một chu kỳ đồng hồ hệ thống.

Đoạn mã sau đâyample trình bày cách đặt các chân 0 và 1 ở mức cao, 2 và 3 ở mức thấp, đồng thời xác định các chân của cổng từ 4 đến 5 làm đầu vào với một pull-up được gán cho chân của cổng 4. Các giá trị chân kết quả được đọc lại, nhưng như đã thảo luận trước đây, một lệnh nop được bao gồm để có thể đọc lại giá trị được gán gần đây cho một số chân.

Mã hội Example(1)

; Xác định pull-up và đặt đầu ra cao

; Xác định hướng cho các chân cổng

ldi        r16,(1<<PB4)|(1<<PB1)|(1<<PB0)

ldi        r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)

ra PORTB,r16

ra DDRB,r17

; Chèn nop để đồng bộ hóa

không

; Đọc chân cổng

trong r16,PINB

Lưu ý: Đối với chương trình hợp ngữ, hai thanh ghi tạm thời được sử dụng để giảm thiểu thời gian từ khi kéo lên được đặt trên các chân 0, 1 và 4, cho đến khi các bit hướng được đặt chính xác, xác định bit 2 và 3 là thấp và xác định lại các bit 0 và 1 là trình điều khiển cao mạnh mẽ.

Mã C Example
ký tự không dấu i;

/* Xác định pull-up và đặt đầu ra ở mức cao */

/* Xác định hướng cho các chân cổng */ PORTB = (1<

DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);

/*Chèn nop để đồng bộ*/

_NOP ();

/* Đọc các chân cổng */ i = PINB;

Chế độ ngủ và kích hoạt đầu vào kỹ thuật số

Như thể hiện trong Hình 10-2, tín hiệu đầu vào kỹ thuật số có thể được clamped xuống đất ở đầu vào của bộ kích hoạt schmitt. Tín hiệu được ký hiệu là SLEEP trong hình, được Bộ điều khiển giấc ngủ MCU đặt ở chế độ Tắt nguồn để tránh tiêu thụ nhiều điện năng nếu một số tín hiệu đầu vào được thả nổi hoặc có mức tín hiệu tương tự gần với VCC/2.

SLEEP được ghi đè đối với các chân cổng được kích hoạt làm chân ngắt bên ngoài. Nếu yêu cầu ngắt bên ngoài không được kích hoạt, SLEEP cũng hoạt động cho các chân này. SLEEP cũng được ghi đè bởi nhiều chức năng thay thế khác như được mô tả trong “Chức năng cổng thay thế” trên trang 57.

Nếu mức logic cao (“một”) xuất hiện trên chân ngắt ngoài không đồng bộ được định cấu hình là “Ngắt trên Cạnh Lên, Cạnh Xuống, hoặc Bất kỳ Thay đổi Logic nào trên Chân” trong khi ngắt ngoài không được bật, Cờ Ngắt Ngoài tương ứng sẽ được đặt khi tiếp tục từ chế độ Ngủ đã đề cập ở trên, vì clamptrong chế độ ngủ này tạo ra thay đổi logic được yêu cầu.

Ghim không kết nối

Nếu một số chân không được sử dụng, nên đảm bảo rằng các chân này có mức xác định. Mặc dù hầu hết các đầu vào kỹ thuật số bị vô hiệu hóa ở các chế độ ngủ sâu như mô tả ở trên, nên tránh các đầu vào nổi để giảm mức tiêu thụ hiện tại ở tất cả các chế độ khác khi các đầu vào kỹ thuật số được bật (Đặt lại, Chế độ hoạt động và Chế độ Chờ).

Phương pháp đơn giản nhất để đảm bảo mức xác định của chân không sử dụng là kích hoạt tính năng kéo lên bên trong. Trong trường hợp này, tính năng kéo lên sẽ bị tắt trong quá trình đặt lại. Nếu mức tiêu thụ điện năng thấp trong quá trình thiết lập lại là quan trọng, thì nên sử dụng kéo lên hoặc kéo xuống bên ngoài. Không nên kết nối trực tiếp các chân không sử dụng với VCC hoặc GND, vì điều này có thể gây ra dòng điện quá mức nếu chân vô tình được định cấu hình làm đầu ra.

Chức năng cổng thay thế

Hầu hết các chân cổng có các chức năng thay thế ngoài chức năng là I / Os kỹ thuật số chung. Hình 10-5 hiển thị cách tín hiệu điều khiển chân cổng từ đơn giản hóa Hình 10-2 có thể bị ghi đè bởi các chức năng thay thế. Các tín hiệu ghi đè có thể không có ở tất cả các chân cổng, nhưng hình này dùng như một mô tả chung áp dụng cho tất cả các chân cổng trong họ vi điều khiển AVR.

Bảng 10-2. Mô tả chung về các tín hiệu ghi đè cho các chức năng thay thế

Tên tín hiệu Họ và tên đầy đủ Sự miêu tả
PUOE Kích hoạt tính năng ghi đè kéo lên Nếu tín hiệu này được đặt, khả năng kéo lên được điều khiển bởi tín hiệu PUOV. Nếu tín hiệu này bị xóa, kéo lên được bật khi

{DDxn, PORTxn, PUD} = 0b010.

PUOV Giá trị ghi đè kéo lên Nếu PUOE được đặt, phần kéo lên sẽ được bật / tắt khi PUOV được đặt / xóa, bất kể cài đặt của các bit Thanh ghi DDxn, PORTxn và PUD.
DOE Bật ghi đè hướng dữ liệu Nếu tín hiệu này được đặt, Kích hoạt trình điều khiển đầu ra được điều khiển bởi tín hiệu DDOV. Nếu tín hiệu này bị xóa, trình điều khiển Đầu ra được kích hoạt bởi bit Thanh ghi DDxn.
DDOV Giá trị ghi đè hướng dữ liệu Nếu DDOE được đặt, Trình điều khiển đầu ra sẽ được bật / tắt khi DDOV được đặt / xóa, bất kể cài đặt của bit Thanh ghi DDxn.
PVOE Bật ghi đè giá trị cổng Nếu tín hiệu này được đặt và Trình điều khiển đầu ra được bật, giá trị cổng được điều khiển bởi tín hiệu PVOV. Nếu PVOE bị xóa, và Trình điều khiển đầu ra được bật, Giá trị cổng được điều khiển bởi bit Thanh ghi PORTxn.
PVV Giá trị ghi đè giá trị cổng Nếu PVOE được đặt, giá trị cổng được đặt thành PVOV, bất kể cài đặt của bit Thanh ghi PORTxn.
PTOE Bật ghi đè chuyển đổi cổng Nếu PTOE được đặt, bit Thanh ghi PORTxn sẽ được đảo ngược.
DIOE Nhập kỹ thuật số Bật tính năng Ghi đè Bật Nếu bit này được đặt, Kích hoạt đầu vào kỹ thuật số được điều khiển bởi tín hiệu DIEOV. Nếu tín hiệu này bị xóa, Kích hoạt đầu vào kỹ thuật số được xác định bởi trạng thái MCU (Chế độ bình thường, chế độ ngủ).
DIEOV Nhập kỹ thuật số cho phép ghi đè giá trị Nếu DIEOE được đặt, Đầu vào kỹ thuật số sẽ được bật / tắt khi DIEOV được đặt / xóa, bất kể trạng thái MCU (Chế độ bình thường, chế độ ngủ).
DI Đầu vào kỹ thuật số Đây là Đầu vào kỹ thuật số cho các chức năng thay thế. Trong hình, tín hiệu được kết nối với đầu ra của bộ kích hoạt schmitt nhưng trước bộ đồng bộ hóa. Trừ khi Đầu vào kỹ thuật số được sử dụng làm nguồn xung nhịp, mô-đun có chức năng thay thế sẽ sử dụng bộ đồng bộ hóa của riêng nó.
Toàn cầu Đầu vào / đầu ra tương tự Đây là đầu vào / đầu ra tương tự đến / từ các chức năng thay thế. Tín hiệu được kết nối trực tiếp với pad và có thể được sử dụng theo hai hướng.

Các phần phụ sau đây mô tả ngắn gọn các chức năng thay thế cho mỗi cổng và liên hệ các tín hiệu ghi đè với chức năng thay thế. Tham khảo mô tả chức năng thay thế để biết thêm chi tiết.

Các chức năng thay thế của cổng B

Các chân Cổng B với chức năng thay thế được hiển thị trong Bảng 10-3.

Bảng 10-3. Chân cổng B Chức năng thay thế

Pin cổng Chức năng thay thế
PB5

ĐẶT LẠI: Đặt lại mã pin

dW: gỡ lỗiWIRE I / O ADC0: Kênh đầu vào ADC 0

PCINT5: Ngắt thay đổi chân, Nguồn 5

PB4 XTAL2: Đầu ra bộ dao động tinh thể CLKO: Đầu ra xung nhịp hệ thống ADC2: Kênh đầu vào ADC 2

OC1B: Bộ định thời / Bộ đếm1 So sánh Khớp B Ngõ ra PCINT4: Ngắt thay đổi chân 0, Nguồn 4

PB3 XTAL1: Đầu vào bộ tạo dao động tinh thể CLKI: Đầu vào đồng hồ ngoài ADC3: Kênh đầu vào ADC 3

OC1B: Bộ hẹn giờ / Bộ đếm bổ sung 1 So sánh Khớp B Ngõ ra PCINT3: Ngắt thay đổi chân 0, Nguồn 3

PB2 SCK: Ngõ vào đồng hồ nối tiếp ADC1: Ngõ vào ADC Kênh 1

T0: Bộ định thời / Bộ đếm 0 Nguồn đồng hồ USCK: Đồng hồ USI (Chế độ ba dây) SCL: Đồng hồ USI (Chế độ hai dây) INT0: Ngắt ngoài 0 Ngõ vào PCINT2: Ngắt thay đổi chân 0, Nguồn 2

PB1 MISO: Ngõ vào dữ liệu chính SPI / Ngõ ra dữ liệu nô lệ AIN1: Bộ so sánh tương tự, Ngõ vào âm OC0B: Bộ hẹn giờ / Bộ đếm0 So sánh Khớp B Ngõ ra OC1A: Bộ hẹn giờ / Bộ đếm1 So sánh Khớp A Ngõ ra DO: Ngõ ra dữ liệu USI (Chế độ ba dây) PCINT1: Ngắt thay đổi chân 0, Nguồn 1
PB0 MOSI :: SPI Đầu ra dữ liệu chính / Đầu vào dữ liệu nô lệ AIN0: Bộ so sánh tương tự, Đầu vào tích cực

OC0A: Đầu ra so sánh Timer/Counter0 Match A

OC1A: Bộ hẹn giờ / Bộ đếm bổ sung 1 So sánh khớp A Đầu ra DI: Đầu vào dữ liệu USI (Chế độ ba dây)

SDA: Đầu vào dữ liệu USI (Chế độ hai dây) AREF: Tham chiếu tương tự bên ngoài PCINT0: Ngắt thay đổi chân 0, Nguồn 0

Cổng B, Bit 5 - ĐẶT LẠI / dW / ADC0 / PCINT5

ĐẶT LẠI: Ngõ vào Đặt lại bên ngoài hoạt động ở mức thấp và được kích hoạt bằng cách hủy lập trình (“1”) Cầu chì RSTDISBL. Pullup được kích hoạt và trình điều khiển đầu ra và đầu vào kỹ thuật số bị vô hiệu hóa khi chân được sử dụng làm chân ĐẶT LẠI.

dW: Khi cầu chì debugWIRE Enable (DWEN) được lập trình và các bit Khóa không được lập trình, hệ thống debugWIRE trong thiết bị đích sẽ được kích hoạt. Chân cổng RESET được định cấu hình là chân I / O hai chiều có dây VÀ (mở cống) có kích hoạt tính năng kéo lên và trở thành cổng giao tiếp giữa mục tiêu và trình mô phỏng.

ADC0: Bộ chuyển đổi tương tự sang kỹ thuật số, Kênh 0.

PCINT5: Nguồn ngắt thay đổi chân 5.

Cổng B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4

XTAL2: Chân bộ dao động đồng hồ chip 2. Được sử dụng làm chân đồng hồ cho tất cả các nguồn xung nhịp chip ngoại trừ Bộ tạo dao động RC có thể hiệu chỉnh bên trong và đồng hồ bên ngoài. Khi được sử dụng làm chân đồng hồ, chân này không thể được sử dụng làm chân I / O. Khi sử dụng Bộ tạo dao động RC có thể hiệu chỉnh bên trong hoặc Đồng hồ bên ngoài làm nguồn xung nhịp chip, PB4 đóng vai trò như một chân I / O thông thường.

CLKO: Đồng hồ hệ thống chia nhỏ có thể được xuất ra trên chân PB4. Đồng hồ hệ thống đã chia sẽ được xuất ra nếu Cầu chì CKOUT được lập trình, bất kể cài đặt PORTB4 và DDB4. Nó cũng sẽ được xuất ra trong quá trình thiết lập lại.

ADC2: Bộ chuyển đổi tương tự sang kỹ thuật số, Kênh 2.

OC1B: Ngõ ra So sánh Ngõ ra: Chân PB4 có thể dùng như một ngõ ra bên ngoài cho Khớp So sánh Bộ hẹn giờ / Bộ đếm1 B khi được định cấu hình làm ngõ ra (bộ DDB4). Chân OC1B cũng là chân đầu ra cho chức năng hẹn giờ chế độ PWM.

PCINT4: Nguồn ngắt thay đổi chân 4.

Cổng B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3

XTAL1: Chân bộ dao động đồng hồ chip 1. Được sử dụng cho tất cả các nguồn xung nhịp chip ngoại trừ bộ dao động RC có thể hiệu chỉnh bên trong. Khi được sử dụng làm chân đồng hồ, chân này không thể được sử dụng làm chân I / O.

CLKI: Đầu vào Đồng hồ từ nguồn xung nhịp bên ngoài, xem “Đồng hồ bên ngoài” trên trang 26.

ADC3: Bộ chuyển đổi tương tự sang kỹ thuật số, Kênh 3.

OC1B: Ngõ ra So sánh Ngõ ra Đảo ngược Ngõ ra: Chân PB3 có thể phục vụ như một ngõ ra bên ngoài cho Khớp So sánh Bộ hẹn giờ / Bộ đếm1 B khi được định cấu hình làm ngõ ra (bộ DDB3). Chân OC1B cũng là chân đầu ra đảo ngược cho chức năng hẹn giờ chế độ PWM.

PCINT3: Nguồn ngắt thay đổi chân 3.

Cổng B, Bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2

SCK: Đầu ra Master Clock, chân đầu vào Slave Clock cho kênh SPI. Khi SPI được bật dưới dạng Slave, chân này được định cấu hình làm đầu vào bất kể cài đặt của DDB2. Khi SPI được kích hoạt dưới dạng Master, hướng dữ liệu của chân này được điều khiển bởi DDPB2. Khi chân được buộc bởi SPI làm đầu vào, việc kéo lên vẫn có thể được điều khiển bởi bit PORTB2.

ADC1: Bộ chuyển đổi tương tự sang kỹ thuật số, Kênh 1.

T0: Nguồn bộ đếm Timer / Counter0.

USCK: Chế độ ba dây Đồng hồ giao diện nối tiếp đa năng.

SCL: Chế độ hai dây Đồng hồ nối tiếp cho USI Chế độ hai dây.

INT0: Nguồn ngắt bên ngoài 0.

PCINT2: Nguồn ngắt thay đổi chân 2.

Cổng B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1

MISO: Đầu vào dữ liệu chính, chân đầu ra dữ liệu Slave cho kênh SPI. Khi SPI được bật dưới dạng Master, chân này được định cấu hình làm đầu vào bất kể cài đặt của DDB1. Khi SPI được kích hoạt dưới dạng Slave, hướng dữ liệu của chân này được điều khiển bởi DDB1. Khi chân được SPI buộc làm đầu vào, việc kéo lên vẫn có thể được điều khiển bởi bit PORTB1.

AIN1: Ngõ vào âm của bộ so sánh tương tự. Định cấu hình chân cổng làm đầu vào khi tắt kéo lên bên trong để tránh chức năng cổng kỹ thuật số can thiệp vào chức năng của Bộ so sánh tương tự.

OC0B: Đầu ra So sánh Đầu ra Đối sánh. Chân PB1 có thể phục vụ như một đầu ra bên ngoài cho So sánh Bộ hẹn giờ / Bộ đếm0 B. Chân PB1 phải được định cấu hình như một đầu ra (bộ DDB1 (một)) để phục vụ chức năng này. Chân OC0B cũng là chân đầu ra cho chức năng hẹn giờ chế độ PWM.

OC1A: Ngõ ra So sánh Ngõ ra: Chân PB1 có thể phục vụ như một ngõ ra bên ngoài cho Khớp B so sánh Bộ hẹn giờ / Bộ đếm1 khi được định cấu hình làm ngõ ra (bộ DDB1). Chân OC1A cũng là chân đầu ra cho chức năng hẹn giờ chế độ PWM.

DO: Chế độ ba dây Giao diện nối tiếp đa năng Đầu ra dữ liệu. Chế độ ba dây Đầu ra dữ liệu ghi đè giá trị PORTB1 và ​​nó được điều khiển đến cổng khi bit hướng dữ liệu DDB1 được đặt (một). PORTB1 vẫn cho phép kéo lên, nếu hướng là đầu vào và PORTB1 được thiết lập (một).

PCINT1: Nguồn ngắt thay đổi chân 1.

Cổng B, Bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0

MOSI: Đầu ra SPI Master Data, Đầu vào Slave Data cho kênh SPI. Khi SPI được kích hoạt dưới dạng Slave, chân này được định cấu hình làm đầu vào bất kể cài đặt của DDB0. Khi SPI được kích hoạt như một Master, hướng dữ liệu của chân này được điều khiển bởi DDB0. Khi chân được SPI buộc làm đầu vào, thì việc kéo lên vẫn có thể được điều khiển bởi bit PORTB0.

AIN0: Ngõ vào dương của bộ so sánh tương tự. Định cấu hình chân cổng làm đầu vào khi tắt kéo lên bên trong để tránh chức năng cổng kỹ thuật số can thiệp vào chức năng của Bộ so sánh tương tự.

OC0A: Đầu ra So sánh Đầu ra Đối sánh. Chân PB0 có thể phục vụ như một đầu ra bên ngoài cho So sánh Bộ hẹn giờ / Bộ đếm0 A khi được định cấu hình làm đầu ra (bộ DDB0 (một)). Chân OC0A cũng là chân đầu ra cho chức năng hẹn giờ chế độ PWM.

OC1A: Ngõ ra So sánh Ngõ ra Đảo ngược Ngõ ra: Chân PB0 có thể dùng như một ngõ ra bên ngoài cho Khớp So sánh Bộ hẹn giờ / Bộ đếm1 B khi được định cấu hình làm ngõ ra (bộ DDB0). Chân OC1A cũng là chân đầu ra đảo ngược cho chức năng hẹn giờ chế độ PWM.

SDA: Chế độ hai dây Dữ liệu Giao diện Nối tiếp.

AREF: Tham chiếu tương tự bên ngoài cho ADC. Trình điều khiển kéo lên và đầu ra bị tắt trên PB0 khi chân được sử dụng làm tham chiếu bên ngoài hoặc Vol nội bộtage Tham chiếu với tụ điện bên ngoài tại chân AREF.

DI: Đầu vào dữ liệu ở chế độ USI Ba dây. USI Chế độ ba dây không ghi đè các chức năng cổng thông thường, do đó, chân phải được định cấu hình làm đầu vào cho chức năng DI.

PCINT0: Nguồn ngắt thay đổi chân 0.

Bảng 10-4 Và Bảng 10-5 liên hệ các chức năng thay thế của Cổng B với các tín hiệu ghi đè được hiển thị trong Hình 10-5 trên trang 58.

Bảng 10-4. Ghi đè tín hiệu cho chức năng thay thế trong PB[5:3]

Tên tín hiệu PB5 / ĐẶT LẠI / ADC0 / PCINT5 PB4/ADC2/XTAL2/ OC1B/PCINT4 PB3/ADC3/XTAL1/ OC1B/PCINT3
PUOE

RSTDISBL(1) • DWEN(1)

0 0
PUOV 1 0 0
DOE RSTDISBL(1) • DWEN(1) 0 0
DDOV gỡ lỗiTruyền dây 0 0
PVOE 0 Kích hoạt OC1B

Kích hoạt OC1B

PVV 0 OC1B OC1B
PTOE 0 0 0
DIOE

RSTDISBL(1) + (PCINT5 • PCIE + ADC0D)

PCINT4 • PCIE + ADC2D PCINT3 • PCIE + ADC3D
DIEOV ADC0D ADC2D ADC3D
DI Đầu vào PCINT5 Đầu vào PCINT4 Đầu vào PCINT3
Toàn cầu Đặt lại đầu vào, đầu vào ADC0 Đầu vào ADC2 Đầu vào ADC3

Lưu ý: khi Cầu chì là “0” (Đã lập trình).

Bảng 10-5. Ghi đè tín hiệu cho chức năng thay thế trong PB[2:0]

Tên tín hiệu PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/

PCINT0

PUOE USI_TWO_WIRE 0 USI_TWO_WIRE
PUOV 0 0 0
DOE USI_TWO_WIRE 0 USI_TWO_WIRE
DDOV (USI_SCL_HOLD + PORTB2) • DDB2 0  

(SDA + PORTB0) • DDB0

PVOE USI_TWO_WIRE • DDB2 Bật OC0B + Bật OC1A + USI_THREE_WIRE

OC0A Bật + OC1A Bật + (USI_TWO_WIRE

DDB0)

PVV 0 OC0B + OC1A + DO

OC0A + OC1A

PTOE Sở Thương mại Hoa Kỳ 0 0
DIOE PCINT2 • PCIE + ADC1D + USISIE PCINT1 • PCIE + AIN1D PCINT0 • PCIE + AIN0D + USISIE
DIEOV ADC1D AIN1D AIN0D
DI T0 / USCK / SCL / INT0 /

Đầu vào PCINT2

Đầu vào PCINT1 Đầu vào DI / SDA / PCINT0
Toàn cầu Đầu vào ADC1 Đầu vào âm của bộ so sánh tương tự Đầu vào tích cực của bộ so sánh tương tự

Đăng ký Mô tả

MCUCR - Đăng ký điều khiển MCU

Chút 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 CƠ THỂ ISC01 ISC00 MCUCR
Đọc/Ghi R Đ/T Đ/T Đ/T Đ/T R Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

Bit 6 - PUD: Vô hiệu hóa kéo lên

Khi bit này được ghi vào một, các phần mềm kéo lên trong các cổng I / O sẽ bị vô hiệu hóa ngay cả khi các Thanh ghi DDxn và PORTxn được định cấu hình để bật các phần mềm kéo lên ({DDxn, PORTxn} = 0b01). Xem “Định cấu hình mã pin” trên trang 54 để biết thêm chi tiết về tính năng này.

PORTB - Thanh ghi dữ liệu cổng B

Chút 7 6 5 4 3 2 1 0
0x18 CỔNGB5 CỔNGB4 CỔNGB3 CỔNGB2 CỔNGB1 CỔNGB0 PORTB
Đọc/Ghi R R Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

DDRB - Thanh ghi hướng dữ liệu cổng B

Chút 7 6 5 4 3 2 1 0
0x17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Đọc/Ghi R R Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 0 0 0 0 0 0

PINB - Địa chỉ chân đầu vào cổng B

Chút 7 6 5 4 3 2 1 0
0x16 mã PINB5 mã PINB4 mã PINB3 mã PINB2 mã PINB1 mã PINB0 PINB
Đọc/Ghi R R Đ/T Đ/T Đ/T Đ/T Đ/T Đ/T
Giá trị ban đầu 0 0 Không có Không có Không có Không có Không có Không có

Bộ định thời / Bộ đếm 8 bit 0 với PWM

Đặc trưng

Hai đơn vị so sánh đầu ra độc lập

Thanh ghi so sánh đầu ra được đệm kép

Xóa hẹn giờ khi so sánh đối sánh (Tự động tải lại)

Bộ điều biến độ rộng xung đúng pha, không bị trục trặc (PWM)

Khoảng thời gian PWM thay đổi

Máy phát tần số

Ba nguồn ngắt độc lập (TOV0, OCF0A và OCF0B)

Quaview

Bộ định thời / Bộ đếm0 là một mô-đun Bộ định thời / Bộ đếm 8 bit đa năng, với hai Đơn vị So sánh Đầu ra độc lập và hỗ trợ PWM. Nó cho phép định thời gian thực hiện chương trình chính xác (quản lý sự kiện) và tạo sóng.

Sơ đồ khối đơn giản của Bộ định thời / Bộ đếm 8 bit được hiển thị trong Hình 11-1. Để biết vị trí thực tế của các chân I / O, hãy tham khảo “Pinout ATtiny25 / 45/85” trên trang 2. Thanh ghi I / O có thể truy cập CPU, bao gồm các bit I / O và các chân I / O, được in đậm. Thanh ghi I / O dành riêng cho thiết bị và các vị trí bit được liệt kê trong “Đăng ký Mô tả” trên trang 77.

Bộ định thời/Bộ đếm (TCNT0) và Thanh ghi so sánh đầu ra (OCR0A và OCR0B) là các thanh ghi 8 bit. Tất cả các tín hiệu yêu cầu ngắt (viết tắt là Int.Req. trong hình) đều hiển thị trong Thanh ghi cờ ngắt bộ hẹn giờ (TIFR). Tất cả các ngắt được che dấu riêng với Thanh ghi mặt nạ ngắt hẹn giờ (TIMSK). TIFR và TIMSK không được hiển thị trong hình.

Bộ hẹn giờ/Bộ đếm có thể được tạo xung nhịp bên trong, thông qua bộ chia trước hoặc bằng nguồn xung nhịp bên ngoài trên chân T0. Khối logic Chọn đồng hồ kiểm soát nguồn xung nhịp và cạnh mà Bộ định thời/Bộ đếm sử dụng để tăng (hoặc giảm) giá trị của nó. Bộ hẹn giờ/Bộ đếm không hoạt động khi không có nguồn đồng hồ nào được chọn. Đầu ra từ logic Chọn đồng hồ được gọi là đồng hồ hẹn giờ (clkT0).

Thanh ghi so sánh đầu ra được đệm kép (OCR0A và OCR0B) được so sánh với giá trị Bộ định thời / Bộ đếm tại mọi thời điểm. Kết quả của phép so sánh có thể được Bộ tạo dạng sóng sử dụng để tạo ra PWM hoặc đầu ra tần số thay đổi trên các chân So sánh đầu ra (OC0A và OC0B). Xem “Đơn vị so sánh đầu ra” trên trang 69. để biết chi tiết. Sự kiện So sánh đối sánh cũng sẽ đặt Cờ so sánh (OCF0A hoặc OCF0B) có thể được sử dụng để tạo yêu cầu ngắt So sánh đầu ra.

Định nghĩa

Nhiều tham chiếu thanh ghi và bit trong phần này được viết ở dạng chung. Chữ “n” viết thường thay thế số Bộ hẹn giờ / Bộ đếm, trong trường hợp này là 0. Chữ “x” thay thế cho Đơn vị so sánh đầu ra, trong trường hợp này là Đơn vị so sánh A hoặc Đơn vị so sánh B. Tuy nhiên, khi sử dụng thanh ghi hoặc bit xác định trong một chương trình, biểu mẫu chính xác phải được sử dụng, tức là, TCNT0 để truy cập giá trị bộ đếm Timer / Counter0, v.v.

Các định nghĩa trong Bảng 11-1 cũng được sử dụng rộng rãi trong toàn bộ tài liệu.

Bảng 11-1. Định nghĩa

Không thay đổi Sự miêu tả
ĐÁY Bộ đếm đạt BOTTOM khi nó trở thành 0x00
TỐI ĐA Bộ đếm đạt đến MAXimum khi nó trở thành 0xFF (số thập phân 255)
ĐỨNG ĐẦU Bộ đếm đạt đến TOP khi nó trở nên bằng giá trị cao nhất trong chuỗi bộ đếm. Giá trị TOP có thể được gán là giá trị cố định 0xFF (MAX) hoặc giá trị được lưu trữ trong Thanh ghi OCR0A. Việc phân công phụ thuộc vào phương thức hoạt động

Bộ định thời gian / Bộ đếm và Nguồn đồng hồ

Bộ định thời / Bộ đếm có thể được tạo xung nhịp bằng nguồn xung nhịp bên trong hoặc bên ngoài. Nguồn xung nhịp được chọn bởi logic Chọn đồng hồ được điều khiển bởi các bit Chọn đồng hồ (c) nằm trong Thanh ghi điều khiển Bộ định thời / Bộ đếm 0 (TCCR0B).

Nguồn đồng hồ bên trong với bộ định mức

Bộ định thời/Bộ đếm 0 có thể được đồng hồ hệ thống định thời trực tiếp (bằng cách đặt CS0[2:0] = 1). Điều này cung cấp hoạt động nhanh nhất, với tần số xung nhịp bộ định thời/bộ đếm tối đa bằng với tần số xung nhịp hệ thống (fCLK_I/O). Ngoài ra, một trong bốn vòi từ bộ chia tỷ lệ trước có thể được sử dụng làm nguồn đồng hồ. Đồng hồ định tỷ lệ trước có tần số là một trong hai

Đặt lại Prescaler

Bộ đếm trước đang chạy tự do, tức là nó hoạt động độc lập với logic Chọn đồng hồ của Bộ định thời / Bộ đếm0. Vì bộ định tỉ lệ trước không bị ảnh hưởng bởi việc chọn đồng hồ của bộ đếm thời gian / bộ đếm, trạng thái của bộ định tỉ lệ đặt trước sẽ có ý nghĩa đối với các vị trí nơi đồng hồ đã định tỉ lệ trước được sử dụng. Một người yêu cũample của tạo tác định hạng trước là khi bộ đếm thời gian / bộ đếm được kích hoạt và đồng hồ hóa bởi bộ định hạng trước (6> CS0 [2: 0]> 1). Số chu kỳ đồng hồ hệ thống từ khi bộ đếm thời gian được bật đến lần đếm đầu tiên xảy ra có thể là từ 1 đến N + 1 chu kỳ đồng hồ hệ thống, trong đó N bằng ước số của bộ đếm trước (8, 64, 256 hoặc 1024).

Có thể sử dụng Thiết lập lại Bộ đếm trước để đồng bộ Bộ định thời / Bộ đếm với việc thực thi chương trình.

Nguồn đồng hồ bên ngoài

Một nguồn đồng hồ bên ngoài được áp dụng cho chân T0 có thể được sử dụng làm đồng hồ hẹn giờ/bộ đếm (clkT0). Chân T0 là sampdẫn một lần mỗi chu kỳ đồng hồ hệ thống bởi logic đồng bộ hóa chân. Đồng bộ (sampdẫn) tín hiệu sau đó được thông qua

thông qua máy dò cạnh. Hình 11-2 hiển thị một sơ đồ khối chức năng tương đương của đồng bộ hóa T0 và logic dò biên. Các thanh ghi được đặt ở cạnh dương của đồng hồ hệ thống bên trong (clkI/O). Chốt trong suốt trong khoảng thời gian cao của đồng hồ hệ thống bên trong.

Bộ dò cạnh tạo ra một xung clkT0 cho mỗi cạnh dương (CS0[2:0] = 7) hoặc âm (CS0[2:0] = 6) mà nó phát hiện.

Thanh ghi OCR0x được đệm kép khi sử dụng bất kỳ chế độ Điều chế độ rộng xung (PWM) nào. Đối với chế độ hoạt động bình thường và Clear Timer on Compare (CTC), bộ đệm kép bị vô hiệu hóa. Bộ đệm kép đồng bộ hóa việc cập nhật Thanh ghi so sánh OCR0x với đầu hoặc cuối của chuỗi đếm. Việc đồng bộ hóa ngăn ngừa sự xuất hiện của các xung PWM có độ dài lẻ, không đối xứng, do đó làm cho đầu ra không bị trục trặc.

Việc truy cập Thanh ghi OCR0x có vẻ phức tạp, nhưng không phải vậy. Khi bộ đệm kép được kích hoạt, CPU có quyền truy cập vào Thanh ghi bộ đệm OCR0x và nếu bộ đệm kép bị tắt, CPU sẽ truy cập trực tiếp vào OCR0x.

So sánh đầu ra lực

Trong các chế độ tạo dạng sóng không phải PWM, đầu ra khớp của bộ so sánh có thể bị ép buộc bằng cách ghi một đầu ra vào bit Force Output Compare (FOC0x). Buộc so sánh đối sánh sẽ không đặt Cờ OCF0x hoặc tải lại / xóa bộ đếm thời gian, nhưng chân OC0x sẽ được cập nhật như thể một đối sánh so sánh thực đã xảy ra (cài đặt bit COM0x [1: 0] xác định xem chân OC0x có được đặt hay không. hoặc chuyển đổi).

So sánh Chặn đối sánh bằng TCNT0 Viết

Tất cả các hoạt động ghi CPU vào Thanh ghi TCNT0 sẽ chặn bất kỳ So sánh nào xảy ra trong chu kỳ đồng hồ bộ định thời tiếp theo, ngay cả khi bộ định thời dừng. Tính năng này cho phép OCR0x được khởi tạo cùng giá trị với TCNT0 mà không gây ra ngắt khi đồng hồ Timer / Counter được kích hoạt.

Sử dụng Đơn vị So sánh Đầu ra

Vì việc ghi TCNT0 trong bất kỳ chế độ hoạt động nào sẽ chặn tất cả các So sánh khớp trong một chu kỳ đồng hồ hẹn giờ, có những rủi ro liên quan khi thay đổi TCNT0 khi sử dụng Bộ so sánh đầu ra, độc lập với việc Bộ định thời / Bộ đếm có đang chạy hay không. Nếu giá trị được ghi vào TCNT0 bằng giá trị OCR0x, So sánh đối sánh sẽ bị bỏ qua, dẫn đến việc tạo dạng sóng không chính xác. Tương tự, không ghi giá trị TCNT0 bằng BOTTOM khi bộ đếm đang đếm ngược.

Việc thiết lập OC0x phải được thực hiện trước khi thiết lập Thanh ghi hướng dữ liệu cho chân cổng xuất ra. Cách dễ nhất để thiết lập giá trị OC0x là sử dụng các bit nhấp nháy của Force Output Compare (FOC0x) ở chế độ Bình thường. Thanh ghi OC0x giữ các giá trị của chúng ngay cả khi thay đổi giữa các chế độ Tạo dạng sóng.

Lưu ý rằng các bit COM0x [1: 0] không được đệm kép cùng với giá trị so sánh. Thay đổi các bit COM0x [1: 0] sẽ có hiệu lực ngay lập tức.

So sánh đơn vị đầu ra đối sánh

Các bit của chế độ So sánh đầu ra (COM0x [1: 0]) có hai chức năng. Bộ tạo dạng sóng sử dụng các bit COM0x [1: 0] để xác định trạng thái So sánh đầu ra (OC0x) tại Kết hợp so sánh tiếp theo. Ngoài ra, các bit COM0x [1: 0] điều khiển nguồn đầu ra chân OC0x. Hình 11-6 hiển thị một giản đồ đơn giản của logic bị ảnh hưởng bởi cài đặt bit COM0x [1: 0]. Các thanh ghi I / O, các bit I / O và các chân I / O trong hình được in đậm. Chỉ các phần của thanh ghi điều khiển cổng I / O chung (DDR và ​​PORT) bị ảnh hưởng bởi các bit COM0x [1: 0] mới được hiển thị. Khi tham chiếu đến trạng thái OC0x, tham chiếu dành cho Thanh ghi OC0x bên trong, không phải chân OC0x. Nếu thiết lập lại hệ thống xảy ra, Thanh ghi OC0x được đặt lại về “0”.

Khi OC0A / OC0B được kết nối với chân I / O, chức năng của các bit COM0A [1: 0] / COM0B [1: 0] phụ thuộc vào cài đặt bit WGM0 [2: 0]. Bảng 11-2 hiển thị chức năng của bit COM0x [1: 0] khi các bit WGM0 [2: 0] được đặt ở chế độ bình thường hoặc CTC (không phải PWM).

Bảng 11-2. So sánh Chế độ đầu ra, Chế độ không phải PWM

COM0A1 COM0B1 COM0A0 COM0B0 Sự miêu tả
0 0 Cổng hoạt động bình thường, OC0A / OC0B bị ngắt kết nối.
0 1 Chuyển đổi OC0A / OC0B trên So sánh đối sánh
1 0 Xóa OC0A / OC0B trên So sánh đối sánh
1 1 Đặt OC0A / OC0B trên So sánh đối sánh

Bảng 11-3 hiển thị chức năng bit COM0x [1: 0] khi các bit WGM0 [2: 0] được đặt ở chế độ PWM nhanh.

Bảng 11-3. So sánh Chế độ đầu ra, Chế độ PWM nhanh(1)

COM0A1 COM0B1 COM0A0 COM0B0 Sự miêu tả
0 0 Cổng hoạt động bình thường, OC0A / OC0B bị ngắt kết nối.
0 1 Kín đáo
1 0 Xóa OC0A / OC0B trên So sánh đối sánh, đặt OC0A / OC0B ở BOTTOM (chế độ không đảo ngược)
1 1 Đặt OC0A / OC0B trên So sánh đối sánh, xóa OC0A / OC0B ở BOTTOM (chế độ đảo ngược)

Lưu ý: Một trường hợp đặc biệt xảy ra khi OCR0A hoặc OCR0B bằng TOP và COM0A1/COM0B1 được đặt. Trong trường hợp này, phép so sánh bị bỏ qua, nhưng việc thiết lập hoặc xóa được thực hiện ở BOTTOM. Nhìn thấy “Chế độ PWM nhanh” trên trang 73 để biết thêm chi tiết.

Bảng 11-4 hiển thị chức năng của bit COM0x [1: 0] khi các bit WGM0 [2: 0] được đặt ở chế độ PWM đúng pha.

Bảng 11-4. So sánh Chế độ đầu ra, Chế độ PWM đúng pha(1)

COM0A1 COM0B1 COM0A0 COM0B0 Sự miêu tả
0 0 Cổng hoạt động bình thường, OC0A / OC0B bị ngắt kết nối.
0 1 Kín đáo
1 0 Xóa OC0A / OC0B trên So sánh Khớp khi đếm ngược. Đặt OC0A / OC0B trên So sánh khớp khi đếm ngược.
1 1 Đặt OC0A / OC0B trên So sánh Khớp khi đếm ngược. Xóa OC0A / OC0B trên So sánh khớp khi đếm ngược.

Lưu ý: 1. Trường hợp đặc biệt xảy ra khi OCR0A hoặc OCR0B bằng TOP và COM0A1/COM0B1 được đặt. Trong trường hợp này, So sánh đối sánh bị bỏ qua, nhưng việc thiết lập hoặc xóa được thực hiện ở TOP. Nhìn thấy “Chế độ PWM đúng pha” trên trang 74 để biết thêm chi tiết.

Bit 3: 2 - Res: Số bit dành riêng

Các bit này là các bit dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bit 1: 0 - WGM0 [1: 0]: Chế độ tạo dạng sóng

Kết hợp với bit WGM02 được tìm thấy trong Thanh ghi TCCR0B, các bit này điều khiển trình tự đếm của bộ đếm, nguồn cho giá trị bộ đếm tối đa (TOP) và loại tạo dạng sóng sẽ được sử dụng, xem Bảng 11-5. Các chế độ hoạt động được hỗ trợ bởi bộ hẹn giờ / bộ đếm là: Chế độ bình thường (bộ đếm), chế độ Xóa hẹn giờ khi so sánh đối sánh (CTC) và hai loại chế độ Điều chế độ rộng xung (PWM) (xem "Phương thức hoạt đông" trên trang 71).

Bảng 11-5. Chế độ tạo dạng sóng Bit Mô tả

Cách thức WGM 02 WGM 01 WGM 00 Chế độ hoạt động của bộ hẹn giờ / bộ đếm ĐỨNG ĐẦU Cập nhật OCRx tại Cờ TOV được bật
0 0 0 0 Bình thường 0xFF Ngay lập tức TỐI ĐA(1)
1 0 0 1 PWM, Pha đúng 0xFF ĐỨNG ĐẦU ĐÁY(2)
2 0 1 0 CTC OCRA Ngay lập tức TỐI ĐA(1)
3 0 1 1 PWM nhanh 0xFF ĐÁY(2) TỐI ĐA(1)
4 1 0 0 Kín đáo
5 1 0 1 PWM, Pha đúng OCRA ĐỨNG ĐẦU ĐÁY(2)
6 1 1 0 Kín đáo
7 1 1 1 PWM nhanh OCRA ĐÁY(2) ĐỨNG ĐẦU

Bit 7 - FOC0A: So sánh đầu ra lực A

Bit FOC0A chỉ hoạt động khi các bit WGM chỉ định chế độ không phải PWM.

Tuy nhiên, để đảm bảo tính tương thích với các thiết bị trong tương lai, bit này phải được đặt thành 0 khi TCCR0B được ghi khi hoạt động ở chế độ PWM. Khi ghi một lôgic vào bit FOC0A, khớp So sánh ngay lập tức được bắt buộc trên đơn vị Tạo dạng sóng. Đầu ra OC0A được thay đổi theo cài đặt bit COM1A [0: 0] của nó. Lưu ý rằng bit FOC0A được thực hiện dưới dạng nhấp nháy. Do đó, giá trị hiện diện trong các bit COM1A [0: XNUMX] sẽ xác định hiệu quả của phép so sánh cưỡng bức.

Một nhấp nháy FOC0A sẽ không tạo ra bất kỳ ngắt nào, cũng như không xóa bộ định thời trong chế độ CTC sử dụng OCR0A làm TOP. Bit FOC0A luôn được đọc là XNUMX.

Bit 6 - FOC0B: So sánh đầu ra lực B

Bit FOC0B chỉ hoạt động khi các bit WGM chỉ định chế độ không phải PWM.

Tuy nhiên, để đảm bảo tính tương thích với các thiết bị trong tương lai, bit này phải được đặt thành 0 khi TCCR0B được ghi khi hoạt động ở chế độ PWM. Khi ghi một lôgic vào bit FOC0B, khớp So sánh ngay lập tức được bắt buộc trên đơn vị Tạo dạng sóng. Đầu ra OC0B được thay đổi theo cài đặt bit COM1B [0: 0] của nó. Lưu ý rằng bit FOC0B được thực hiện dưới dạng nhấp nháy. Do đó, giá trị hiện diện trong các bit COM1B [0: XNUMX] sẽ xác định hiệu quả của phép so sánh cưỡng bức.

Một nhấp nháy FOC0B sẽ không tạo ra bất kỳ ngắt nào, cũng như sẽ xóa bộ định thời trong chế độ CTC sử dụng OCR0B làm TOP.

Bit FOC0B luôn được đọc là XNUMX.

Bit 5: 4 - Res: Số bit dành riêng

Các bit này là các bit dành riêng trong ATtiny25 / 45/85 và sẽ luôn được đọc là XNUMX.

Bit 3 - WGM02: Chế độ tạo dạng sóng

Xem mô tả trong “TCCR0A - Thanh ghi điều khiển bộ định thời / bộ đếm A” trên trang 77.

Bit 2: 0 - CS0 [2: 0]: Chọn đồng hồ

Ba bit Chọn đồng hồ chọn nguồn xung nhịp sẽ được Bộ định thời / Bộ đếm sử dụng.

Bảng 11-6. Đồng hồ Chọn Bit Mô tả

CS02 CS01 CS00 Sự miêu tả
0 0 0 Không có nguồn đồng hồ (Bộ hẹn giờ / Bộ đếm đã dừng)
0 0 1 clkI/O/(Không tính tỷ lệ trước)
0 1 0 clkI/O/8 (Từ bộ chia tỷ lệ trước)
0 1 1 clkI/O/64 (Từ bộ chia tỷ lệ trước)
1 0 0 clkI/O/256 (Từ bộ chia tỷ lệ trước)
1 0 1 clkI/O/1024 (Từ bộ chia tỷ lệ trước)
1 1 0 Nguồn xung nhịp ngoài trên chân T0. Đồng hồ trên mép rơi.
1 1 1 Nguồn xung nhịp ngoài trên chân T0. Đồng hồ trên cạnh tăng.

Nếu các chế độ chân bên ngoài được sử dụng cho Bộ định thời / Bộ đếm0, các chuyển tiếp trên chân T0 sẽ tạo xung nhịp cho bộ đếm ngay cả khi chân được cấu hình làm đầu ra. Tính năng này cho phép phần mềm kiểm soát việc đếm.

Bộ đếm và so sánh các đơn vị

Hoạt động chung của Timer / Counter1 được mô tả trong chế độ không đồng bộ và hoạt động trong chế độ đồng bộ chỉ được đề cập nếu có sự khác biệt giữa hai chế độ này. Hình 12-2 hiển thị sơ đồ khối thanh ghi đồng bộ Timer / Counter 1 và sự chậm trễ đồng bộ giữa các thanh ghi. Lưu ý rằng tất cả các chi tiết thu thập đồng hồ không được hiển thị trong hình. Các giá trị thanh ghi Timer / Counter1 đi qua các thanh ghi đồng bộ hóa bên trong, gây ra độ trễ đồng bộ hóa đầu vào, trước khi ảnh hưởng đến hoạt động của bộ đếm. Các thanh ghi TCCR1, GTCCR, OCR1A, OCR1B và OCR1C có thể được đọc lại ngay sau khi ghi thanh ghi. Các giá trị đọc lại bị trễ đối với thanh ghi Timer / Counter1 (TCNT1) và cờ (OCF1A, OCF1B và TOV1), do đồng bộ hóa đầu vào và đầu ra.

Bộ đếm thời gian / Bộ đếm 1 có độ phân giải cao và sử dụng độ chính xác cao với các cơ hội đặt trước thấp hơn. Nó cũng có thể hỗ trợ hai bộ điều biến độ rộng xung 8 bit chính xác, tốc độ cao, sử dụng tốc độ đồng hồ lên đến 64 MHz (hoặc 32 MHz ở Chế độ tốc độ thấp). Trong chế độ này, Timer / Counter1 và các thanh ghi so sánh đầu ra đóng vai trò PWM kép độc lập với các đầu ra không đảo ngược và không đảo ngược không chồng chéo. Tham khảo trang 86 để có mô tả chi tiết về chức năng này. Tương tự, các cơ hội định mức trước cao làm cho thiết bị này hữu ích cho các chức năng tốc độ thấp hơn hoặc các chức năng định thời gian chính xác với các hành động không thường xuyên.

Hình 12-2. Sơ đồ khối thanh ghi đồng bộ hóa Timer/Counter 1.

Bộ hẹn giờ / Bộ đếm1 và bộ định mức trước cho phép chạy CPU từ bất kỳ nguồn xung nhịp nào trong khi bộ định mức sẵn đang hoạt động trên đồng hồ PCK nhanh 64 MHz (hoặc 32 MHz ở Chế độ tốc độ thấp) ở chế độ không đồng bộ.

Lưu ý rằng tần số xung nhịp hệ thống phải thấp hơn một phần ba tần số PCK. Cơ chế đồng bộ của Bộ định thời / Bộ đếm không đồng bộ1 cần ít nhất hai cạnh của PCK khi xung nhịp hệ thống cao. Nếu tần số của đồng hồ hệ thống quá cao, sẽ có nguy cơ làm mất dữ liệu hoặc các giá trị điều khiển.

Sau đây là Hình 12-3 hiển thị sơ đồ khối cho Timer / Counter1.

Bảng 12-1. So sánh Chế độ Chọn trong Chế độ PWM

COM1x1 COM1x0 Hiệu ứng trên các chân so sánh đầu ra
0 0 OC1x không được kết nối. OC1x không được kết nối.
0 1 OC1x bị xóa khi so sánh đối sánh. Đặt khiTCNT1 = $ 00. OC1x được đặt trên trận đấu so sánh. Được thanh toán khi TCNT1 = $ 00.
1 0 OC1x bị xóa khi so sánh đối sánh. Đặt khi TCNT1 = $ 00. OC1x không được kết nối.
1 1 OC1x Đặt trên trận đấu so sánh. Được thanh toán khi TCNT1 = $ 00. OC1x không được kết nối.

Đặc điểm của ADC

Bảng 21-8. Đặc điểm ADC, Kênh kết thúc đơn. TA = -40°C đến +85°C

Biểu tượng Tham số Tình trạng Tối thiểu Kiểu Tối đa Đơn vị
Nghị quyết 10 Bit
Độ chính xác tuyệt đối (Bao gồm các lỗi INL, DNL và Lượng tử hóa, Độ lợi và Độ lệch) VREF = 4V, VCC = 4V,

Đồng hồ ADC = 200 kHz

2 LSB
VREF = 4V, VCC = 4V,

Đồng hồ ADC = 1 MHz

3 LSB
VREF = 4V, VCC = 4V,

Đồng hồ ADC = 200 kHz

Chế độ giảm tiếng ồn

1.5 LSB
VREF = 4V, VCC = 4V,

Đồng hồ ADC = 1 MHz

Chế độ giảm tiếng ồn

2.5 LSB
Tích phân không tuyến tính (INL) (Độ chính xác sau khi hiệu chuẩn bù và khuếch đại) VREF = 4V, VCC = 4V,

Đồng hồ ADC = 200 kHz

1 LSB
Sự khác biệt không tuyến tính (DNL) VREF = 4V, VCC = 4V,

Đồng hồ ADC = 200 kHz

0.5 LSB
Gặp lỗi VREF = 4V, VCC = 4V,

Đồng hồ ADC = 200 kHz

2.5 LSB
Lỗi bù đắp VREF = 4V, VCC = 4V,

Đồng hồ ADC = 200 kHz

1.5 LSB
Thời gian chuyển đổi Chuyển đổi chạy miễn phí 14 280 µs
Tần số đồng hồ 50 1000 kHz
Mã số VIN Đầu vào Voltage GND VREF V
Băng thông đầu vào 38.4 kHz
AREF Tài liệu tham khảo bên ngoàitage 2.0 VCC V
VINT Vol nội bộtage Tham khảo 1.0 1.1 1.2 V
Tham chiếu 2.56V bên trong (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF 32
CƠN MƯA Điện trở đầu vào tương tự 100
Đầu ra ADC 0 1023 LSB

Lưu ý: 1. Giá trị chỉ là hướng dẫn.

Bảng 21-9. Đặc điểm ADC, Kênh vi sai (Chế độ đơn cực). TA = -40°C đến +85°C

Biểu tượng Tham số Tình trạng Tối thiểu Kiểu Tối đa Đơn vị
Nghị quyết Tăng = 1x 10 Bit
Tăng = 20x 10 Bit
Độ chính xác tuyệt đối (Bao gồm INL, DNL và

Các lỗi lượng tử hóa, tăng và bù đắp)

Tăng = 1x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

10.0 LSB
Tăng = 20x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

20.0 LSB
Tích phân không tuyến tính (INL) (Độ chính xác sau khi hiệu chuẩn bù và tăng) Tăng = 1x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

4.0 LSB
Tăng = 20x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

10.0 LSB
Gặp lỗi Tăng = 1x 10.0 LSB
Tăng = 20x 15.0 LSB
Lỗi bù đắp Tăng = 1x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

3.0 LSB
Tăng = 20x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

4.0 LSB
Thời gian chuyển đổi Chuyển đổi chạy miễn phí 70 280 µs
Tần số đồng hồ 50 200 kHz
Mã số VIN Đầu vào Voltage GND VCC V
VDIFF Đầu vào sai khác Voltage VREF/Mức tăng V
Băng thông đầu vào 4 kHz
AREF Tài liệu tham khảo bên ngoàitage 2.0 VCC – 1.0 V
VINT Vol nội bộtage Tham khảo 1.0 1.1 1.2 V
Tham chiếu 2.56V bên trong (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF Điện trở đầu vào tham chiếu 32
CƠN MƯA Điện trở đầu vào tương tự 100
Đầu ra chuyển đổi ADC 0 1023 LSB

Lưu ý: Các giá trị chỉ là hướng dẫn.

Bảng 21-10. Đặc điểm ADC, Kênh vi sai (Chế độ lưỡng cực). TA = -40°C đến +85°C

Biểu tượng Tham số Tình trạng Tối thiểu Kiểu Tối đa Đơn vị
Nghị quyết Tăng = 1x 10 Bit
Tăng = 20x 10 Bit
Độ chính xác tuyệt đối (Bao gồm INL, DNL và

Các lỗi lượng tử hóa, tăng và bù đắp)

Tăng = 1x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

8.0 LSB
Tăng = 20x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

8.0 LSB
Tích phân không tuyến tính (INL) (Độ chính xác sau khi hiệu chuẩn bù và tăng) Tăng = 1x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

4.0 LSB
Tăng = 20x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

5.0 LSB
Gặp lỗi Tăng = 1x 4.0 LSB
Tăng = 20x 5.0 LSB
Lỗi bù đắp Tăng = 1x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

3.0 LSB
Tăng = 20x

VREF = 4V, VCC = 5V

Đồng hồ ADC = 50 - 200 kHz

4.0 LSB
Thời gian chuyển đổi Chuyển đổi chạy miễn phí 70 280 µs
Tần số đồng hồ 50 200 kHz
Mã số VIN Đầu vào Voltage GND VCC V
VDIFF Đầu vào sai khác Voltage VREF/Mức tăng V
Băng thông đầu vào 4 kHz
AREF Tài liệu tham khảo bên ngoàitage 2.0 VCC – 1.0 V
VINT Vol nội bộtage Tham khảo 1.0 1.1 1.2 V
Tham chiếu 2.56V bên trong (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF Điện trở đầu vào tham chiếu 32
CƠN MƯA Điện trở đầu vào tương tự 100
Đầu ra chuyển đổi ADC -512 511 LSB

Tóm tắt bộ hướng dẫn

Thuật ghi nhớ Toán hạng Sự miêu tả Hoạt động Cờ #Đồng hồ
HƯỚNG DẪN THUẬT TOÁN VÀ LOGIC
THÊM VÀO Đường, Rr Thêm hai sổ đăng ký Rd ← Rd + Rr Z, C, N, V, H 1
ADC Đường, Rr Thêm với Mang theo hai thanh ghi Rd ← Rd + Rr + C Z, C, N, V, H 1
ADIW Rdl, K Thêm ngay vào Word Rdh:Rdl ← Rdh:Rdl + K Z, C, N, V, S 2
ĐĂNG KÝ Đường, Rr Trừ hai đăng ký Rd ← Rd – Rr Z, C, N, V, H 1
TÔI ĐÃ ĐI LÊN Đường, K Trừ Hằng số khỏi Đăng ký Rd ← Rd – K Z, C, N, V, H 1
SBC Đường, Rr Trừ bằng Mang theo hai thanh ghi Rd ← Rd – Rr – C Z, C, N, V, H 1
SBCI Đường, K Trừ với Hằng số Mang từ Reg. Rd ← Rd – K – C Z, C, N, V, H 1
SBIW Rdl, K Trừ ngay khỏi Word Rdh:Rdl ← Rdh:Rdl – K Z, C, N, V, S 2
Đường, Rr Logic VÀ Thanh ghi Rd ← Rd ∙ Rr Z, N, V 1
ANDI Đường, K Logic AND Đăng ký và Hằng số Rd ← Rd ∙ K Z, N, V 1
OR Đường, Rr Logic HOẶC Thanh ghi Rd ← Rd v Rr Z, N, V 1
ORI Đường, K Logic HOẶC Đăng ký và Hằng số Rd ← Rd v K Z, N, V 1
EOR Đường, Rr Đăng ký HOẶC độc quyền Rd ← Rd ⊕ Rr Z, N, V 1
COM Rd Sự bổ sung của một Rd ← 0xFF − Rd Z, C, N, V 1
NEG Rd Bổ sung của hai Rd ← 0x00 − Rd Z, C, N, V, H 1
SBR Rd, K Đặt (các) Bit trong Đăng ký Rd ← Rd v K Z, N, V 1
CBR Rd, K Xóa (các) Bit trong Đăng ký Rd ← Rd ∙ (0xFF – K) Z, N, V 1
ĐĂNG KÝ Rd Tăng dần Rd ← Rd + 1 Z, N, V 1
THÁNG MƯỜI HAI Rd Giảm dần Rd ← Rd−1 Z, N, V 1
Tst Rd Kiểm tra Zero hoặc Minus Rd ← Rd ∙ Rd Z, N, V 1
CLR Rd Xóa đăng ký Rd ← Rd ⊕ Rd Z, N, V 1
SER Rd Đặt đăng ký Rd ← 0xFF Không có 1
HƯỚNG DẪN CHI NHÁNH
RJMP k Bước nhảy tương đối PC ← PC + k + 1 Không có 2
IJMP Chuyển đến (Z) gián tiếp PC ← Z Không có 2
GỌI k Cuộc gọi chương trình con tương đối PC ← PC + k + 1 Không có 3
ICALL Gọi gián tiếp tới (Z) PC ← Z Không có 3
ĐĂNG KÝ Chương trình con trở lại PC ← CÒN Không có 4
MẠNG Trả lại gián đoạn PC ← CÒN I 4
CPSE Rd, Rr So sánh, Bỏ qua nếu bằng nếu (Rd = Rr) PC ← PC + 2 hoặc 3 Không có 1/2/3
CP Rd, Rr So sánh Rd−Rr Z, N, V, C, H 1
CPC Rd, Rr So sánh với Carry Rd−Rr−C Z, N, V, C, H 1
Chỉ số CPI Rd, K So sánh Đăng ký với Ngay lập tức Rd−K Z, N, V, C, H 1
SBRC Rr, b Bỏ qua nếu Bit trong Đăng ký được xóa nếu (Rr(b)=0) PC ← PC + 2 hoặc 3 Không có 1/2/3
SBRS Rr, b Bỏ qua nếu Bit trong Đăng ký được đặt nếu (Rr(b)=1) PC ← PC + 2 hoặc 3 Không có 1/2/3
SBIC p, b Bỏ qua nếu Bit trong Đăng ký I / O được xóa nếu (P(b)=0) PC ← PC + 2 hoặc 3 Không có 1/2/3
SBI p, b Bỏ qua nếu Bit trong thanh ghi I / O được thiết lập nếu (P(b)=1) PC ← PC + 2 hoặc 3 Không có 1/2/3
BRBS s, k Nhánh nếu Cờ Trạng thái Đặt nếu (SREG(s) = 1) thì PC←PC+k + 1 Không có 1/2
BRBC s, k Nhánh nếu cờ Trạng thái được xóa nếu (SREG(s) = 0) thì PC←PC+k + 1 Không có 1/2
BREQ k Nhánh nếu bằng nhau nếu (Z = 1) thì PC ← PC + k + 1 Không có 1/2
BRNE k Nhánh nếu không bằng nhau nếu (Z = 0) thì PC ← PC + k + 1 Không có 1/2
BRCS k Nhánh nếu Bộ Mang nếu (C = 1) thì PC ← PC + k + 1 Không có 1/2
BRCC k Chi nhánh nếu đã thanh toán nếu (C = 0) thì PC ← PC + k + 1 Không có 1/2
BRSH k Chi nhánh nếu Tương tự hoặc Cao hơn nếu (C = 0) thì PC ← PC + k + 1 Không có 1/2
BRLO k Nhánh nếu thấp hơn nếu (C = 1) thì PC ← PC + k + 1 Không có 1/2
BRMI k Nhánh nếu Trừ nếu (N = 1) thì PC ← PC + k + 1 Không có 1/2
BRPL k Chi nhánh nếu Plus nếu (N = 0) thì PC ← PC + k + 1 Không có 1/2
BRGE k Chi nhánh nếu Lớn hơn hoặc Bằng, Đã ký nếu (N ⊕ V= 0) thì PC ← PC + k + 1 Không có 1/2
BRLT k Nhánh nếu nhỏ hơn XNUMX, đã ký nếu (N ⊕ V= 1) thì PC ← PC + k + 1 Không có 1/2
BRHS k Nhánh nếu đặt cờ Half Carry nếu (H = 1) thì PC ← PC + k + 1 Không có 1/2
BRHC k Nhánh nếu cờ Half Carry được xóa nếu (H = 0) thì PC ← PC + k + 1 Không có 1/2
BRTS k Nhánh nếu đặt cờ T nếu (T = 1) thì PC ← PC + k + 1 Không có 1/2
BRTC k Nhánh nếu cờ T được xóa nếu (T = 0) thì PC ← PC + k + 1 Không có 1/2
BRV k Nhánh nếu Cờ tràn được đặt nếu (V = 1) thì PC ← PC + k + 1 Không có 1/2
BRVC k Nhánh nếu Cờ tràn được xóa nếu (V = 0) thì PC ← PC + k + 1 Không có 1/2
PHÔ MAI MỀM CỦA PHÁP k Nhánh nếu đã bật ngắt nếu ( I = 1) thì PC ← PC + k + 1 Không có 1/2
CẦU k Nhánh nếu ngắt bị vô hiệu hóa nếu ( I = 0) thì PC ← PC + k + 1 Không có 1/2
HƯỚNG DẪN BIT VÀ BIT-TEST
Ngân hàng SBI P, b Đặt Bit trong Đăng ký I / O I/O(P,b) ← 1 Không có 2
CBI P, b Xóa Bit trong Đăng ký I / O I/O(P,b) ← 0 Không có 2
LSL Rd Chuyển dịch logic sang trái Rd(n+1) ← Rd(n), Rd(0) ← 0 Z, C, N, V 1
LSR Rd Chuyển dịch logic sang phải Rd(n) ← Rd(n+1), Rd(7) ← 0 Z, C, N, V 1
VAI TRÒ Rd Xoay trái qua thực hiện Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) Z, C, N, V 1
ROR Rd Xoay phải qua Carry Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) Z, C, N, V 1
ASR Rd Dịch chuyển số học sang phải Rd(n) ← Rd(n+1), n=0..6 Z, C, N, V 1
Thuật ghi nhớ Toán hạng Sự miêu tả Hoạt động Cờ #Đồng hồ
TRÁO ĐỔI Rd Hoán đổi Nibbles Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) Không có 1
BSET s Cờ đặt SREG(s) ← 1 SREG (các) 1
BCLR s Cờ rõ ràng SREG(s) ← 0 SREG (các) 1
BST Rr, b Bit Store từ Đăng ký đến T T ← Rr(b) T 1
BLD đường, b Tải bit từ T đến Đăng ký Rd(b) ← T Không có 1
GIÂY Đặt Carry C ← 1 C 1
CLC rõ ràng thực hiện C ← 0 C 1
SEN Đặt cờ phủ định N ← 1 N 1
CLN Xóa cờ phủ định N ← 0 N 1
Khu kinh tế đặc biệt Đặt cờ Zero Z ← 1 Z 1
CLZ Xóa cờ Zero Z ← 0 Z 1
SEI Cho phép ngắt toàn cục Tôi ← 1 I 1
CLI Tắt toàn cầu ngắt Tôi ← 0 I 1
SES Đặt cờ kiểm tra đã ký S ← 1 S 1
CLS Xóa cờ kiểm tra đã ký S ← 0 S 1
SEV Đặt Tràn bổ sung Twos. V ← 1 V 1
CTV Xóa tràn bổ sung Twos V ← 0 V 1
BỘ Đặt T trong SREG T ← 1 T 1
CLT Xóa T trong SREG T ← 0 T 1
SEH Đặt cờ Half Carry trong SREG H ← 1 H 1
CLH Xóa cờ Half Carry trong SREG H ← 0 H 1
HƯỚNG DẪN CHUYỂN DỮ LIỆU
MOV Đường, Rr Di chuyển giữa các sổ đăng ký Rd ← Rr Không có 1
MOVW Đường, Rr Sao chép Đăng ký Word Rd+1:Rd ← Rr+1:Rr Không có 1
LDI Đường, K Tải ngay lập tức Rd ← K Không có 1
LD Đường, X Tải gián tiếp Rd ← (X) Không có 2
LD Rd, X + Tải gián tiếp và hậu Inc. Rd ← (X), X ← X + 1 Không có 2
LD Rd, - X Tải gián tiếp và trước tháng XNUMX. X ← X – 1, Rd ← (X) Không có 2
LD Đường, Y Tải gián tiếp Rd ← (Y) Không có 2
LD Rd, Y + Tải gián tiếp và hậu Inc. Rd ← (Y), Y ← Y + 1 Không có 2
LD Rd, - Y Tải gián tiếp và trước tháng XNUMX. Y ← Y – 1, Rd ← (Y) Không có 2
LDD Rd, Y + q Tải gián tiếp với dịch chuyển Rd ← (Y + q) Không có 2
LD Đường, Z Tải gián tiếp Rd ← (Z) Không có 2
LD Rd, Z + Tải gián tiếp và hậu Inc. Rd ← (Z), Z ← Z+1 Không có 2
LD Đường, -Z Tải gián tiếp và trước tháng XNUMX. Z ← Z – 1, Rd ← (Z) Không có 2
LDD Rd, Z + q Tải gián tiếp với dịch chuyển Rd ← (Z + q) Không có 2
Các Thánh Hữu Ngày Sau Đường, k Tải trực tiếp từ SRAM Rd ← (k) Không có 2
ST X, Rr Cửa hàng gián tiếp (X) ← Rr Không có 2
ST X +, Rr Store Gián tiếp và Post-Inc. (X) ← Rr, X ← X + 1 Không có 2
ST - X, Rr Cửa hàng gián tiếp và trước tháng XNUMX. X ← X – 1, (X) ← Rr Không có 2
ST Y, Rr Cửa hàng gián tiếp (Y) ← Rr Không có 2
ST Y +, Rr Store Gián tiếp và Post-Inc. (Y) ← Rr, Y ← Y + 1 Không có 2
ST - Y, Rr Cửa hàng gián tiếp và trước tháng XNUMX. Y ← Y – 1, (Y) ← Rr Không có 2
Bệnh lây truyền qua đường tình dục Y + q, Rr Cửa hàng gián tiếp với dịch chuyển (Y + q) ← Rr Không có 2
ST Z, Rr Cửa hàng gián tiếp (Z) ← Rr Không có 2
ST Z +, Rr Store Gián tiếp và Post-Inc. (Z) ← Rr, Z ← Z + 1 Không có 2
ST -Z, Rr Cửa hàng gián tiếp và trước tháng XNUMX. Z ← Z – 1, (Z) ← Rr Không có 2
Bệnh lây truyền qua đường tình dục Z + q, Rr Cửa hàng gián tiếp với dịch chuyển (Z + q) ← Rr Không có 2
STS k, rr Lưu trữ trực tiếp đến SRAM (k) ← Rr Không có 2
LPM Tải bộ nhớ chương trình R0 ← (Z) Không có 3
LPM Đường, Z Tải bộ nhớ chương trình Rd ← (Z) Không có 3
LPM Rd, Z + Tải bộ nhớ chương trình và hậu kỳ Rd ← (Z), Z ← Z+1 Không có 3
SPM Lưu trữ bộ nhớ chương trình (z) ← R1:R0 Không có
IN Đường, P Trong cảng Rd ← P Không có 1
NGOÀI P, Rr Ra cảng P ← Rr Không có 1
Rr Đẩy đăng ký trên ngăn xếp CỌC ← Rr Không có 2
NHẠC POP Rd Đăng ký bật từ ngăn xếp Rd ← NGỒI Không có 2
HƯỚNG DẪN ĐIỀU KHIỂN MCU
KHÔNG Không có hoạt động Không có 1
NGỦ Ngủ (xem mô tả cụ thể cho chức năng Ngủ) Không có 1
WDR Đặt lại cơ quan giám sát (xem mô tả cụ thể cho WDR / Hẹn giờ) Không có 1
PHÁ VỠ Phá vỡ
Tốc độ (MHz) (1) Cung cấp Voltage (V) Phạm vi nhiệt độ Bưu kiện (2) Mã đặt hàng (3)
10 1.8 – 5.5 Công nghiệp

(-40 ° C đến + 85 ° C) (4)

8P3 ATtiny45V-10PU
8S2 ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR
8X ATtiny45V-10XU ATtiny45V-10XUR
20M1 ATtiny45V-10MU ATtiny45V-10MUR
20 2.7 – 5.5 Công nghiệp

(-40 ° C đến + 85 ° C) (4)

8P3 ATtiny45-20PU
8S2 ATtiny45-20SU ATtiny45-20SUR

ATtiny45-20SH ATtiny45-20SHR

8X ATtiny45-20XU ATtiny45-20XUR
20M1 ATtiny45-20MU ATtiny45-20MUR

Ghi chú: 1. Đối với tốc độ so với khối lượng cung cấptage, xem phần 21.3 “Tốc độ” trên trang 163.

Tất cả các gói đều không có Pb, không có halogen và hoàn toàn có màu xanh lá cây và chúng tuân thủ chỉ thị của Châu Âu về Hạn chế Các Chất Nguy hiểm (RoHS).

chỉ số mã

H: Kết thúc dẫn đầu NiPdAu

U: thiếc mờ

R: băng & cuộn

Các thiết bị này cũng có thể được cung cấp ở dạng wafer. Vui lòng liên hệ với văn phòng kinh doanh Atmel tại địa phương của bạn để biết thông tin đặt hàng chi tiết và số lượng tối thiểu.

Erratum

Lỗi ATtiny25

Thư sửa đổi trong phần này đề cập đến bản sửa đổi của thiết bị ATtiny25.

Rev D - F

Không có errata nào được biết đến.

Rev B - C

Đọc EEPROM có thể không thành công ở mức nguồn cung cấp thấptage / tần số đồng hồ thấp

Đọc EEPROM có thể không thành công ở mức nguồn cung cấp thấptage / tần số đồng hồ thấp

Cố gắng đọc EEPROM ở tần số xung nhịp thấp và / hoặc điện áp nguồn thấptage có thể dẫn đến dữ liệu không hợp lệ.

Khắc phục sự cố / Cách giải quyết

Không sử dụng EEPROM khi tần số xung nhịp dưới 1MHz và nguồn cung cấp voltage dưới 2V. Nếu tần số hoạt động không thể tăng lên trên 1MHz thì nguồn cung cấp voltage phải hơn 2V. Tương tự, nếu nguồn cung cấp voltage không thể nâng lên trên 2V thì tần số hoạt động phải lớn hơn 1MHz.

Tính năng này được biết là phụ thuộc vào nhiệt độ nhưng nó chưa được đặc trưng. Chỉ đưa ra các hướng dẫn về nhiệt độ phòng.

Rev A

Không Sampđã dẫn.

Lỗi ATtiny45

Thư sửa đổi trong phần này đề cập đến bản sửa đổi của thiết bị ATtiny45.

Rev F - G

Không có errata được biết đến

Rev D - E

Đọc EEPROM có thể không thành công ở mức nguồn cung cấp thấptage / tần số đồng hồ thấp

Đọc EEPROM có thể không thành công ở mức nguồn cung cấp thấptage / tần số đồng hồ thấp

Cố gắng đọc EEPROM ở tần số xung nhịp thấp và / hoặc điện áp nguồn thấptage có thể dẫn đến dữ liệu không hợp lệ.

Khắc phục sự cố / Cách giải quyết

Không sử dụng EEPROM khi tần số xung nhịp dưới 1MHz và nguồn cung cấp voltage dưới 2V. Nếu tần số hoạt động không thể tăng lên trên 1MHz thì nguồn cung cấp voltage phải hơn 2V. Tương tự, nếu nguồn cung cấp voltage không thể nâng lên trên 2V thì tần số hoạt động phải lớn hơn 1MHz.

Tính năng này được biết là phụ thuộc vào nhiệt độ nhưng nó chưa được đặc trưng. Chỉ đưa ra các hướng dẫn về nhiệt độ phòng.

Rev B - C

PLL không khóa

EEPROM đọc từ mã ứng dụng không hoạt động ở Chế độ khóa bit 3

Đọc EEPROM có thể không thành công ở mức nguồn cung cấp thấptage / tần số đồng hồ thấp

Bộ đếm bộ hẹn giờ 1 Tạo đầu ra PWM trên OC1B- XOC1B không hoạt động chính xác

PLL không khóa

Khi ở tần số dưới 6.0 MHz, PLL sẽ không khóa

Khắc phục sự cố / Cách giải quyết

Khi sử dụng PLL, hãy chạy ở 6.0 MHz hoặc cao hơn.

EEPROM đọc từ mã ứng dụng không hoạt động ở Chế độ khóa bit 3

Khi các Bit Khóa Bộ nhớ LB2 và LB1 được lập trình ở chế độ 3, chức năng đọc EEPROM không hoạt động từ mã ứng dụng.

Khắc phục sự cố / Giải quyết vấn đề

Không đặt Chế độ Bảo vệ Bit Khóa 3 khi mã ứng dụng cần đọc từ EEPROM.

Đọc EEPROM có thể không thành công ở mức nguồn cung cấp thấptage / tần số đồng hồ thấp

Cố gắng đọc EEPROM ở tần số xung nhịp thấp và / hoặc điện áp nguồn thấptage có thể dẫn đến dữ liệu không hợp lệ.

Khắc phục sự cố / Cách giải quyết

Không sử dụng EEPROM khi tần số xung nhịp dưới 1MHz và nguồn cung cấp voltage dưới 2V. Nếu tần số hoạt động không thể tăng lên trên 1MHz thì nguồn cung cấp voltage phải hơn 2V. Tương tự, nếu nguồn cung cấp voltage không thể nâng lên trên 2V thì tần số hoạt động phải lớn hơn 1MHz.

Tính năng này được biết là phụ thuộc vào nhiệt độ nhưng nó chưa được đặc trưng. Chỉ đưa ra các hướng dẫn về nhiệt độ phòng.

Bộ đếm bộ hẹn giờ 1 Tạo đầu ra PWM trên OC1B - XOC1B không hoạt động chính xác

Bộ đếm thời gian 1 Ngõ ra PWM OC1B-XOC1B không hoạt động chính xác. Chỉ trong trường hợp khi các bit điều khiển, COM1B1 và ​​COM1B0 ở cùng chế độ như COM1A1 và COM1A0, tương ứng, ngõ ra OC1B-XOC1B hoạt động chính xác.

Khắc phục sự cố / Giải quyết vấn đề

Cách giải quyết duy nhất là sử dụng cài đặt điều khiển tương tự trên các bit điều khiển COM1A [1: 0] và COM1B [1: 0], xem bảng 14-4 trong bảng dữ liệu. Sự cố đã được khắc phục cho Tiny45 rev D.

Rev A

Tiêu thụ điện năng giảm quá cao

DebugWIRE mất liên lạc khi một bước bị gián đoạn

PLL không khóa

EEPROM đọc từ mã ứng dụng không hoạt động ở Chế độ khóa bit 3

Đọc EEPROM có thể không thành công ở mức nguồn cung cấp thấptage / tần số đồng hồ thấp

Tiêu thụ điện năng giảm quá cao

Ba tình huống sẽ dẫn đến mức tiêu thụ điện năng sập nguồn quá cao. Đó là:

Đồng hồ bên ngoài được chọn bởi cầu chì, nhưng CỔNG I / O vẫn được kích hoạt như một đầu ra.

EEPROM được đọc trước khi tắt nguồn.

VCC là 4.5 vôn hoặc cao hơn.

Tuyên bố miễn trừ trách nhiệm: Thông tin trong tài liệu này được cung cấp liên quan đến các sản phẩm của Atmel. Không có giấy phép nào, rõ ràng hay ngụ ý, bằng biện pháp cấm vận hay cách khác, đối với bất kỳ quyền sở hữu trí tuệ nào được cấp theo tài liệu này hoặc liên quan đến việc bán các sản phẩm của Atmel. NGOẠI TRỪ NHƯ ĐƯỢC QUY ĐỊNH TRONG CÁC ĐIỀU KHOẢN VÀ ĐIỀU KIỆN BÁN HÀNG CỦA ATMEL TRÊN ATMEL WEBTRANG WEB, ATMEL KHÔNG CHỊU TRÁCH NHIỆM PHÁP LÝ BẤT KỲ BẤT KỲ TRÁCH NHIỆM PHÁP LÝ NÀO VÀ TUYÊN BỐ TỪ CHỐI BẤT KỲ BẢO HÀNH RÕ RÀNG, NGỤ Ý HOẶC LUẬT ĐỊNH NÀO LIÊN QUAN ĐẾN SẢN PHẨM CỦA ATMEL BAO GỒM NHƯNG KHÔNG GIỚI HẠN Ở BẢO ĐẢM NGỤ Ý VỀ KHẢ NĂNG BÁN ĐƯỢC, TÍNH PHÙ HỢP CHO MỘT MỤC ĐÍCH CỤ THỂ HOẶC KHÔNG VI PHẠM. TRONG MỌI TRƯỜNG HỢP, ATMEL SẼ KHÔNG CHỊU TRÁCH NHIỆM PHÁP LÝ VỀ BẤT KỲ THIỆT HẠI TRỰC TIẾP, GIÁN TIẾP, DO HẬU QUẢ, TRÁCH NHIỆM, ĐẶC BIỆT HOẶC NGẪU NHIÊN (BAO GỒM, KHÔNG GIỚI HẠN, THIỆT HẠI VỀ TỔN THẤT VÀ LỢI NHUẬN, GIÁN ĐOẠN KINH DOANH HOẶC MẤT THÔNG TIN) PHÁT SINH NGOÀI VIỆC SỬ DỤNG HOẶC KHÔNG CÓ KHẢ NĂNG SỬ DỤNG TÀI LIỆU NÀY, NGAY CẢ KHI ATMEL ĐÃ ĐƯỢC TƯ VẤN VỀ KHẢ NĂNG THIỆT HẠI ĐÓ.

Atmel không tuyên bố hay bảo đảm về tính chính xác hoặc đầy đủ của nội dung trong tài liệu này và bảo lưu quyền thay đổi thông số kỹ thuật và mô tả sản phẩm bất kỳ lúc nào mà không cần thông báo. Atmel không đưa ra bất kỳ cam kết nào về việc cập nhật thông tin trong tài liệu này. Trừ khi có quy định cụ thể khác, các sản phẩm của Atmel không phù hợp và sẽ không được sử dụng trong các ứng dụng ô tô. Các sản phẩm của Atmel không được thiết kế, ủy quyền hoặc bảo hành để sử dụng làm thành phần trong các ứng dụng nhằm hỗ trợ hoặc duy trì sự sống.

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *