Các chế độ nghỉ của àC AT90S8535

Một phần của tài liệu thiết kế hệ thống phần mềm cho C AT90S8535 (Trang 34 - 36)

Để đa vi mạch điều khiển AT90S8535 vào bất kỳ chế độ nghỉ nào trong 3 chế độ nghỉ sẵn có, bit SE trong thanh ghi MCUCR phải đợc thiết lập và một lệnh SLEEP phải đợc thực hiện. Các bit SM0 và SM1 trong thanh ghi MCUCR đợc sử dụng để lựa chọn chế độ mong muốn (Idle, Power-down, Power Save), chế độ nghỉ lựa chọn sẽ đợc kích hoạt bởi lệnh SLEEP.

Nếu một ngắt đợc phép xảy ra khi MCU đang trong chế độ nghỉ, MCU đợc đánh thức để thực hiện chơng trình con phục vụ ngắt và tiếp tục thực hiện lệnh tiếp theo sau lệnh SLEEP. Nội dung của tập thanh ghi, SRAM và bộ nhớ I/O không bị thay đổi. Nếu một điều kiện Reset xảy ra khi MCU đang trong chế độ nghỉ, MCU đợc đánh thức và thực hiện vector reset.

Chế độ Idle (Idle Mode)

Khi các bit SM1/SM0 đợc đặt là 00, lệnh SLEEP sẽ đa MCU vào chế độ Idle, dừng hoạt động của CPU và cho phép SPI, UARTs, Analog Comparator , ADC, Timer/Counters, Watchdog và hệ thống ngắt tiếp tục hoạt động. Điều này cho phép MCU đợc đánh thức bởi các yêu cầu ngắt ngoài cũng nh các ngắt trong hay ngắt tràn thời gian (Timer Overflow) và ngắt thông báo kết thúc nhận dữ liệu từ UART. Nếu ngắt từ bộ so sánh tín hiệu tơng tự (Analog Comparator) không đợc yêu cầu thì bộ so sánh tín hiệu tơng tự có thể không đợc hoạt động bằng việc thiết lập bit ADC trong thanh ghi ACSR (Analog Comparator Control and Status Register). Điều này sẽ làm giảm sự tiêu thụ năng lợng trong chế độ Idle. Khi MCU kết thúc chế độ Idle, CPU bắt đầu thực hiện chơng trình tức thì bằng cách thực thi lệnh tiếp theo ngay sau lệnh SLEEP.

Chế độ Power-down (Power-down Mode)

Khi các bit SM1/SM0 đợc đặt là 01, lệnh SLEEP sẽ đa MCU vào chế độ Power-down. Trong chế độ này, bộ tạo dao động ngoài sẽ dừng hoạt động trong khi các ngắt ngoài và bộ Watchdog (nếu đợc cho phép) vẫn tiếp tục hoạt động. Chỉ một tín hiệu reset ngoài hoặc một tín hệu Reset của Watchdog (nếu đợc cho phép) hay một ngắt ngoài tác động theo mức có thể đánh thức MCU.

Chú ý : khi một ngắt tác động theo mức đợc dùng để đánh tức MCU từ chế độ Power-down thì mức thấp phải đợc giữ trong khoảng thời gian lâu hơn khoảng thời gian trễ reset (tTOUT).

Khi đánh thức MCU khỏi chế độ Power-down, một trễ điều kiện đánh thức xảy ra đến khi sự đánh thức có hiệu lực. Điều này cho phép đồng hồ khởi động lại và ổn định sau khi bị dừng hoạt động. Khoảng thời gian đánh thức bằng khoảng thời gian Reset.

Nếu một điều kiện đánh thức không xuất hiện trớc khi MCU thức dậy và bắt đầu thực hiện, cụ thể là mức thấp không đợc giữ trong thời gian đủ lâu, ngắt đánh thức MCU sẽ không đợc thực hiện.

Chế độ Power-Save (Power-Save Mode)

Khi các bit SM1/SM0 đợcđặt là 11, lệnh SLEEP sẽ đa MCU vào chế độ Power-Save. Chế độ này cũng giống chế độ Power-down, trừ một điều T/C2 đợc khoá không đồng bộ, bit AS2 trong thanh ghi ASSR đợc thiết lập, T/C2 sẽ hoạt động trong khi MCU đang trong chế độ nghỉ. Ngoài cách đánh thức MCU nh trong chế độ Power-down, MCU cũng có thể đợc đánh thức bởi các sự kiện tràn

các bit cho phép ngắt T/C2 tơng ứng đợc thiết lập trong thanh ghi TIMSK và bit I trong thanh ghi trạng thái SREG đợc thiết lập.

Khi kết thúc chế độ Power-Save bằng một ngắt ngoài, hai chu kỳ lệnh đợc thực hiện trớc khi các cờ ngắt đợc cập nhật. Khi đánh thức MCU bằng bộ thời gian không đồng bộ (asynchronous timer), ba chu kỳ lệnh đợc thực hiện trớc khi các cờ ngắt đợc cập nhật. Trong các chu kỳ này, bộ vi xử lý thực hiện các lệnh, nhng điều kiện ngắt không đọc đợc và chơng trình phục vụ ngắt cha đợc bắt đầu.

Khi dánh thức MCU từ chế độ Power-Save bởi một ngắt thời gian không đồng bộ, MCU sẽ thức dậy thậm trí nếu các ngắt chung không đợc cho phép. Để đảm bảo chơng trình con phục vụ ngắt đợc thực hiện khi đánh thức MCU thì bit I trong thanh ghi trạng thái cũng phải đợc thiết lập.

Nếu bộ thời gian không đồng bộ không đợc đếm thời gian một cách không đồng bộ thì nên sử dụng chế độ Power-down thay chế độ Power-Save bởi vì nội dung của các thanh ghi trong bộ thời gian không đồng bộ đợc coi là không xác định sau khi MCU đợc đánh thức ở chế độ Power-Save, thậm trí bit AS2 có thể bị xoá về 0.

Một phần của tài liệu thiết kế hệ thống phần mềm cho C AT90S8535 (Trang 34 - 36)