1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Cấu trúc tổng quát ATMEGA32 – Structure Overview

46 12 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 1,01 MB

Nội dung

1 Cấu trúc tổng quát ATMEGA32 – Structure Overview ATMEGA32 loại vi điều khiển CMOS, nguồn thấp, bit, xây dựng tảng cấu trúc tập lệnh thu gọn tiên tiến cho AVR (Enhanced AVR RISC architecture) • RISC – Reduced Instruction Set Computer • CISC – Complex Instruction Set Computer Khả thực thi 1MIPS (Mega Instruction Per Second) 1MHz Bao gồm 32 ghi làm việc (General Purpose Working Register) liên kết trực tiếp với xử lý số học ALU (Arithmetic Logic Unit) Gồm tính sau: • 32K Flash có khả lập trình tương thích hoạt động Read-While-Write • 1024B EEPROM • 2K SRAM • 32 GPIO • 32 ghi làm việc • Ngõ JTAG • Tính On-chip debug • Timer/Counter • Internal External Interrupt • USART • TWI • kênh ADC 10-bit • Watchdog timer • SPI • Tính ISP thơng qua cổng SPI Boot Loader AVR CPU Core 2.1 Tổng quan Lõi AVR sử dụng kiến trúc Harvard – với bus riêng biệt cho chương trình liệu Lệnh từ nhớ chương trình thực thi thơng qua ống đơn cấp Khi lênh thực thi, lệnh nhốt (pre-fetch) từ nhớ chương trình, cho phép lệnh thực thi chu kì clock Các 32 ghi (8-bit) làm việc cho phép truy xuất nhanh chu kỳ clock Trong hoạt động thông thường ALU, toán hạng xuất từ ghi làm việc, lệnh thực thi, kết lưu ngược lại ghi làm việc chu kì clock số 32 ghi dùng trỏ địa gián tiếp 16-bit sử dụng cho địa không gian liệu ghi địa dùng trỏ địa look-up table nhớ Flash Bộ ALU hỗ trợ hoạt động tính tốn số học logic ghi với nhau, hay ghi với số Các hoạt động ghi đơn thực ALU Sau tính tốn, ghi trạng thái (Status Register) cập nhật thông tin liên quan đến kết tính tốn Dịng chương trình (Program Flow) cung cấp lệnh nhảy có điều kiện khơng điều kiện, định địa chì trực tiếp đến tồn khơng gian địa Hầu hết lệnh AVR dạng 16-bit Mỗi địa nhớ chương trình chứa lệnh 16 32-bit Bộ nhớ chương trình chia làm phần: Boot Loader vùng ứng dụng Cả sử dụng lockbit để bảo vệ đọc/ghi Lệnh SPM thực thi việc ghi liệu vào vùng flash ứng dụng phải đặt vùng Boot Loader Trong trình ngắt hay hàm/chương trình gọi, địa trả đếm chương trình lưu ngăn xếp (stack) Stack phân bồ hiệu phần nhớ SRAM, vậy, độ lớn stack phụ thuộc vào SRAM việc sử dụng SRAM Chương trình người dùng cần phải khởi tạo giá trị cho SP – Con trỏ ngăn xếp (Stack Pointer) chương trình sau reset trước thực việc gọi hàm hay chương trình ngắt thực thi Module ngắt linh hoạt có ghi điều khiển riêng khơng gian IO có bit cho phép ngắt toàn cục ghi trạng thái (Status Register) Tất ngắt có vector ngắt riêng bảng vector ngắt Các ngắt có ưu tiên ngắt theo vị trí ngắt Địa ngắt thấp độ ưu tiên ngắt cao 2.2 ALU – Arithmetic Logic Unit Bộ ALU hiệu suất cao AVR hoạt động liên kết trực tiếp với 32 ghi làm việc Trong chu kì clock, hoạt động tính tốn số học ghi ghi với liệu trực tiếp thực thi Hoạt động ALU chia làm phần chính: xử lý số học, phép toán logic phép toán với bit Một số bổ sung kiến trúc cho phép sử dụng nhân tử hiệu quả, cho khơng dấu/có dấu định dạng phân số 2.3 Thanh ghi trạng thái – Status Register Thanh ghi chứa kết liên quan đến lệnh xử lý số học gần Kết chứa ghi sử dụng để thực hoạt động có điều kiện Thanh ghi trạng thái không tự động lưu lại nhảy vào interrupt không tự động phục hồi (restore) quay về, cần thực điều phần mềm • Bit – I: Global Interrupt Enable Bit cho phép ngắt toàn cục Bit cần set để hoạt động ngắt kích hoạt Việc cho phép ngoại vi ngắt thực ghi điều khiển ngoại vi Một bit cho phép ngắt tồn cục bị xóa cho dù bit cho phép ngắt ngoại vi bật lên, ngắt khơng thể xảy Lưu ý: Bit tồn cục bị xóa tự động phần cứng có ngắt xảy Và set trở lại tự động phần cứng lệnh RETI (lệnh quay từ chương trình ngắt) thực thi Bit tồn cục set/clear phần mềm thơng qua lệnh SEI/CLI • Bit – T: Bit Copy Storage • Bit – H: Half Carry Flag • Bit – S: Sign Bit, S = N + V • Bit – V: Two’s Complement Overflow Flag • Bit – N: Negative Flag • Bit – Z: Zero Flag • Bit – C: Carry Flag 2.4 Tập ghi làm việc đa – General Purpose Register File Tất lệnh thực thi ghi làm việc truy xuất trực tiếp đến ghi, hầu hết lệnh thực thi chu kì clock Như hình, tất ghi gán địa nhớ liệu, ánh xạ chúng trực tiếp đến 32 phân vùng không gian liệu Mặc dù không thực vật lý phân vùng SRAM, tổ chức nhớ cung cấp khả truy xuất phức tạp tuyệt vời ghi, than ghi trỏ X-, Y- Z- set để định vị đến ghi tập ghi 2.5 Thanh ghi X, Y Z Các ghi làm việc từ R26 � R31 có chức phụ trợ Những ghi trỏ địa 16-bit để định địa gián tiếp không gian liệu Trong chế độ định địa khác nhau, ghi có chức chuyển dịch cố định, tự động tăng/giảm 2.6 Con trỏ ngăn xếp – Stack Pointer (SP) Stack sử dụng với mục đích lưu trữ liệu tạm thời, biến cục lưu trữ giá trị địa trả sau gọi chương trình ngắt hay hàm/chương trình (subroutine) Thanh ghi trỏ địa luôn trỏ tới đỉnh stack (Top of the Stack) Lưu ý rằng, stack thực theo cách giảm từ địa nhớ cao xuống thấp Ngầm định lệnh PUSH (cất) giảm giá trị trỏ SP SP trỏ tới vùng SRAM nơi mà stack chương trình interrupt subroutine phân bổ Khơng gian cho stack phải chương trình phần mềm định nghĩa trước thực thi subrountine hay ngắt xảy (kích hoạt ngắt) SP cần phải trỏ tới địa từ $60 SP giảm 1, liệu cất vào stack sau thực lệnh PUSH, stack giảm giá trị trả cất vào stack gọi subrountine hay chương trình ngắt SP tăng lên liệu đẩy (pop) khỏi stack với lệnh POP, SP tăng lên liệu đẩy khỏi stack với lệnh RET trở vể từ subrountine hay lệnh RETI trở từ chương trình ngắt SP AVR thực hóa từ ghi 8-bit 2.7 Xử lý reset ngắt – Reset and Interrupt Handling AVR cung cấp nguồn ngắt khác Mỗi vector ngắt reset có vector chương trình riêng rẽ khơng gian nhớ chương trình Tất ngắt gán bit cho phép ngắt riêng biệt với bit cho phép ngắt toàn cục, tất bit phải set lên Phụ thuộc vào giá trị PC, ngắt bị cấm tự động Boot Lock bit BLB02 BLB12 lập trình Tính đảm bảo chức tính bảo mật phần mềm Địa thấp không gian nhớ mặc định định nghĩa vector Reset vector ngắt Địa vector ngắt đồng thời quy định ưu tiên ngắt cho, địa ngắt thấp có mức ưu tiên ngắt cao ngược lại RESET có mức ưu tiên ngắt cao nhất, INT0 – External Interrupt Request Các vector ngắt di chuyển lên vị trí bắt đầu khu vực Boot Flash bit IVSEL ghi General Interrupt Control Register (GICR) Vector RESET dời lên vị trí bắt đầu Boot Flash cách thiết lập bit cầu chì BOOTSRT Khi có ngắt xảy ra, bit cho phép ngắt tồn cục (Global Interrrupt Enable bit) bị xóa tự động phần cứng, tất ngắt bị cấm Phần mềm set bit lên trở lại phép ngắt trùm (nested interrupt) xảy Tất ngắt kích hoạt sau “ngắt” chương trình xử lý ngắt (Interrupt subrountine) Bit tự động set lên trở lại sau quay từ chương trình ngắt thực thi lệnh RETI Có dạng ngắt bản: • Dạng thứ nhất: Ngắt kích hoạt (trigger) kiện set cờ ngắt (Interrupt Flag) Với ngắt này, PC trỏ tới vector chương trình ngắt nhằm thực thi chương trình xử lý ngắt, phần cứng xóa cờ ngắt tương ứng Cờ ngắt xóa phần mềm cách ghi vào vị trí bit cờ ngắt Nếu điều kiện ngắt xảy bit cho phép ngắt bị xóa, cờ ngắt set ngắt xảy ngắt cho phép trở lại, phần mềm phải xóa cờ ngắt cách ghi Tương tự vậy, hay nhiều điều kiện ngắt xảy bit cho phép ngắt tồn cục bị xóa, cờ ngắt tương ứng set lên, đến bit cho phép ngắt tồn cục set trở lại, ngắt thực thi tương ứng theo thứ tự ưu tiên ngắt • Dạng thứ hai: Ngắt kích hoạt điều kiện ngắt cịn hữu Những ngắt khơng cần có cờ ngắt Nếu điều kiện ngắt ngừng xuất trước ngắt phép hoạt động, ngắt khơng xảy Khi AVR từ chương trình ngắt, ln quay chương trình thực thêm hay vài lệnh trước phục vụ ngắt khác treo Lưu ý: ghi trạng thái (Status Register) không tự động lưu lại nhảy vào chương trình ngắt, khơng phục hồi lại quay từ chương trình ngắt Điều cần thực phần mềm Khi sử dụng lệnh CLI để cấm ngắt, tất ngắt bị cấm Khơng có ngắt xảy thực lệnh CLI, ngắt xảy đồng thời với lệnh CLI Tổ chức nhớ ATMEGA32 – AVR ATMEGA32 Memories Bộ nhớ ATMEGA32 bao gồm phần: nhớ chương trình nhớ liệu Trong ATMEAG32 cịn có nhớ EEPROM để lưu trữ liệu 3.1 Bộ nhớ chương trình – In-System Reprogrammable Flash Program Memory 3.2 Bộ nhớ liệu – SRAM Data Memory 3.3 Bộ nhớ EEPROM – EEPROM Data Memory 3.4 Vùng nhớ IO – IO Memory Clock hệ thống tùy chọn clock - System Clock and Clock Options Quản lý lượng chế độ nghỉ - Power Management and Sleep Modes Điều khiển hệ thống Reset – System Control and Reset Ngắt – Interrupts 7.1 Các vector ngắt ATMEGA32 Lưu ý: • Khi bit cầu chì BOOTRST lập trình, chương trình nhảy đến địa Boot Loader sau reset • Khi bit IVSEL GICR set, bảng vector ngắt di chuyển đến vị trí bắt đầu Boot Flash 7.2 Mô tả ghi Thanh ghi điều khiển ngắt thơng thường – General Interrupt Control Register • Bit – IVSEL: Interrupt Vector Select – Lựa chọn vector ngắt Khi bit xóa, vector ngắt nằm vị trí bắt đầu nhớ Flash Khi bit set, vector ngắt nằm vị trí bắt đầu Boot Loader Flash Vị trí bắt đầu thực Boot Flash bit cầu chì BOOTSZ định Để tránh việc vơ tình thay đổi bảng vector ngắt, cần phải theo trình tự sau: - Ghi vào bit Interrupt Vector Change Enable - Trong vịng chu kì, ghi giá trị mong muốn vào IVSEL ghi vào IVCE Ngắt tự động bị cấm thực trình tự Ngắt bị cấm chu kì IVCE set, tiếp tục bị cấm sau lệnh ghi vào IVSEL Nếu IVSEL không ghi tiếp tục bị cấm chu kì Bit I SREG khơng bị tác động việc cấm ngắt tự động • Bit – IVCE: Interrupt Vector Change Enable – Cho phép thay đổi vector ngắt Bit phải set lên trước ghi giá trị vào bit IVSEL Bit xóa phần cứng chu kì sau set xóa ghi vào bit IVSEL I/O Port 8.1 Giới thiệu Tất port AVR có tính Đọc - Hiệu chỉnh – Ghi thực (Read – Modify – Write) sử dụng chúng cổng IO số thơng thường Có nghĩa hướng (Input/Output) pin port thiết lập mà khơng vơ tình làm thay đổi hướng đến pin khác port lệnh SBI/CBI Mỗi đệm ngõ có khiển (drive) đối xứng có đặc tính cấp (source) rút (sink) cao Bộ khiển pin có khả lái LED trực tiếp Mỗi pin có điện trở kéo lên (Pulled-up resistor) lựa chọn cho pin riêng biệt với trị số cố định phù hợp với điện áp cấp Tất IO có diode bảo vệ đến nguồn đất 8.2 Port với chức IO số thơng thường • Bit – ICNC1: Input Capture Noise Canceler – Kích hoạt chức chống nhiễu cho Input Capture • Bit – ICES1: Input Capture Edge Select – Chọn sườn kích hoạt Input Capture – Falling; – Rising • Bit – Reserved • Bit 4:3 – WGM13:2: Waveform Generating Mode – Chế độ phát sóng Tương tự TCCR1A • Bit 2:0 – CS12:0 – Clock Select – Lựa chọn nguồn clock Timer/Counter Register – TCNT1H and TCNT1L – Thanh ghi counter Timer/Counter Output Compare Register A – OCR1AH and OCR1AL – Thanh ghi so sánh ngõ 1A Output Compare Register B – OCR1BH and OCR1BL – Thanh ghi so sánh ngõ 1B Input Capture Register – ICR1H and ICR1L – Thanh ghi Input Capture Timer/Counter Interrupt Mask Register – TIMSK – Thanh ghi mặt nạ ngắt • Bit – TICIE1: Timer/Counter 1, Input Capture Interrupt Enable – Cho phép ngắt Input Capture • Bit – OCIE1A: Timer/Counter 1, Output Compare A Match Interrupt Enable – Cho phép ngắt Output Compare A Match • Bit – OCIE1B: Timer/Counter 1, Output Compare B Match Interrupt Enable – Cho phép ngắt Output Compare B Match • Bit – TOIE1: Timer/Counter 1, Overflow Interrupt Enable – Cho phép ngắt tràn Timer/Counter Interrupt Flag Register – Thanh ghi cờ ngắt • Bit – ICF1: Timer/Counter 1, Input Capture Flag – Cờ ngắt Capture • Bit – OCF1A: Timer/Counter 1, Output Compare A Match Flag – Cờ ngắt Match cho Output Compare A • Bit – OCF1B: Timer/Counter 1, Output Compare B Match Flag – Cờ ngắt Match cho Output Compare B • Bit – TOV1: Timer/Counter 1, Overflow Flag – Cờ ngắt tràn 10.4 8-bit Timer/Counter 10.4.1 Overview 10.4.2 Clock Source 10.4.3 Output Compare 10.4.4 Chế độ hoạt động thông thường Normal Mode Clear Timer on Compare Match (CTC) Mode Fast PWM Mode Phase Correct PWM Mode 10.4.5 Asynchronous Operation – Chế độ hoạt động bất đồng Lưu ý chuyển từ chế độ đồng (Synchronous) sang bất đồng (Asynchronous): giá trị ghi điều khiển (TCCR2) bị q trình chuyển đổi chế độ Cần phải theo trình tự sau: • Cấm ngắt Timer/Counter (Clear bit OCIE2 TOIE2) • Chọn nguồn clock cần chuyển (thiết lập giá trị AS2) • Ghi giá trị vào TCNT2, OCR2 TCCR2 • Trường hợp chuyển sang chế độ bất đồng bộ: chờ TCN2UB, OCR2UB TCR2UB • Clear cờ ngắt Timer/Counter • Cho phép ngắt trở lại (nếu cần) Bộ dao động thiết kế tối ưu để sử dụng với thạch anh 32.768kHz Sử dụng nguồn clock ngồi lên chân TOSC1 khiến timer/counter hoạt động khơng xác Tần số clock CPU phải gấp lần tần số dao động Khi ghi giá trị vào ghi TCNT2, OCR2 TCCR2, giá trị đưa vào nhớ tạm ghi tương ứng chốt lại sau sườn lên chân TOSC1 Do không ghi giá trị trước giá trị ghi tạm chuyển tới ghi thực sử dụng ghi trạng thái hoạt động bất đồng (Asynchronous Status Register) để kiểm tra giá trị từ ghi tạm chuyển tới đích Khi thực thi chế độ tiết kiệm lượng (Power save) chế độ chờ mở rộng (Extended Standby), sau ghi giá trị vào TCNT2, OCR2 TCCR2, cần phải chờ cho giá trị ghi vào hồn tồn (cập nhật hồn tồn) timer/counter sử dụng để đánh thức (wake up) MCU, không, MCU vào chế độ ngủ trước giá trị cập nhật Điều quan trọng trường hợp sử dụng ngắt so sánh timer/counter (Output Compare Interrupt) để đánh thức MCU dậy, giá trị ghi vào OCR2 TCNT2, chức Output Compare bị cấm tự động (bằng phần cứng) Như giá trị chưa cập nhật, MCU ngủ trước bit OCR2UB xóa 0, thế, khơng có Compare Match Interrupt, MCU khơng đánh thức dậy Khi Timer/Counter sử dụng để đánh thức MCU từ chế độ tiết kiệm lượng hay chế độ chờ mở rộng, điểm cần lưu ý thực thi lại (reenter) chế độ này: mức logic interrupt cần chu kỳ TOSC1 để reset Nếu thời gian wake-up re-entering chế độ ngủ ngắn chu kỳ TOSC1, ngắt không xảy MCU thức dậy Cần theo trình tự sau: • Ghi giá trị vào TCCR2, TCNT2 OCR2 • Chờ Cờ báo bận cập nhật (Update Busy Flag) ASSR • Truy nhập vào chế độ Power save Extended Standby Trong chế độ hoạt động bất đồng bộ, dao động 32.768kHz Timer/Counter luôn chạy, trừ chế độ nguồn giảm (Powerdown) chế độ chờ (Standby) Sau kiện reset bật nguồn (Powerup Reset) đánh thức từ chế độ nguồn giảm chế độ chờ (wake-up from Powerdown or Standby mode), phải cẩn thận dao động cần lâu giây để ổn định Như khuyến cáo nên đợi giây sau Power-up wake-up từ Power-down Standby sử dụng Timer/Counter Nội dung toàn ghi Timer/Counter bị sau wake-up từ Power-down Standby Mô tả chức đánh thức từ chế độ Power Save chế độ chờ mở rộng hoạt động bất đồng timer: Khi xảy điều kiện ngắt, tiến trình wake-up bắt đầu vào chu kì sau đó, điều có nghĩa timer ln chạy trước chu kỳ trước CPU truy xuất đọc giá trị counter timer Sau đánh thức, MCU bị trì hỗn chu kỳ, thực thi chương trình ngắt chạy tiếp chương trình theo sau dòng lệnh SLEEP Đọc giá trị counter TCNT2 nhanh sau đánh thức từ chế độ Power Save khơng xác Vì counter tăng xung clock TOSC, việc đọc giá trị counter phải thực thơng qua ghi đồng hóa với clock hệ thống Quá trình đồng xảy sườn lên TOSC1 Khi đánh thức từ chế độ Power Save, clock hệ thống kích hoạt trở lại, giá trị đọc từ ghi TCNT2 lúc giá trị trước truy nhập vào chế độ ngủ, sườn lên TOSC1 giá trị cập nhật giá trị Pha clock TOSC sau đánh thức khơng thể dự báo được, phụ thuộc vào thời gian đánh thức Phải theo trình tự sau: • Ghi giá trị vào ghi OCR2 TCCR2 • Chờ cho cờ Update Busy xóa • Đọc giá trị TCNT2 Trong hoạt động bất đồng bộ, việc đồng cờ ngắt (Interrupt Flag) cho timer bất đồng chu kì CPU cộng với chu kỳ timer Vì vậy, timer ln trước việc CPU đọc giá trị timer chu kỳ dựa vào việc thiết lập cờ ngắt Chân ngõ Output Compare thay đổi dựa theo clock timer không đồng với clock hệ thống 10.4.6 Mô tả ghi Timer/Counter Control Register - TCCR2 – Thanh ghi điều khiển • Bit – FOC2: Force Output Compare – Kích (ép) Output Compare tay • Bit 6, – WGM21:0: Waveform Generation Mode – Chế độ phát sóng • Bit 5:4 – COM21:0: Compare Match Output Mode – Chế độ ngõ Compare Match Tùy thuộc vào chế độ hoạt động Timer/Counter bên • Bit 2:0: CS22:0: Clock Select – Lựa chọn nguồn clock Timer/Counter Register – TCNT2 – Thanh ghi Timer/Counter (8-bit) Output Compare Register – Thanh ghi so sánh (8 bit) Timer/Counter Interrupt Mask Register – TIMSK – Thanh ghi mặt nạ ngắt • Bit – OCIE2: Timer/Counter Output Compare Match Interrupt Enable – Cho phép ngắt có Output Compare Match • Bit – TOIE2: Timer/Counter OverFlow Interrupt Enable – Cho phép ngắt tràn Timer/Counter Interrupt Flag Register – TIFR - Thanh ghi cờ ngắt • Bit – OCF2: Output Compare Flag – Cờ ngắt Output Compare • Bit – TOV2: Timer/Counter OverFlow Flag – Cờ ngắt tràn 10.4.7 Timer/Counter Prescale – Bộ chia Timer/Counter Special Function IO Register – SFIOR – Thanh ghi IO chức đặc biệt • Bit – PSR2: Prescale Reset Timer/Counter – Reset chia Timer/Counter 11 Giao tiếp nối tiếp bất đồng - USART 12 Bài tập basic review tổng hợp 12.1 Điều khiển LED với nút nhấn – IO port External Interrupt Sử dụng PINA.0 � PINA.3 làm ngõ vào cho nút nhấn, tác động mức thấp Thiết kế cho nút nhấn tác động mức thấp lên chân INT0 (PIND.2) Sử dụng toàn PORTC làm output lái LED Sử dụng ngắt INT0, viết chương trình đọc trạng thái nút nhấn chương trình chớp tắt LED tương ứng theo nút nhấn sau: • Nút PINA.0: chớp tắt tồn LED • Nút PINA.1: Chớp tắt LED xen kẽ • Nút PINA.2: Tắt dần (Trái sang phải ngược lại) • Nút PINA.3: Stop – toàn LED tắt Tinh chỉnh chương trình để đảm bảo tính realtime Bài tập mở rộng Sử dụng nút nhấn kết nối trực tiếp với INT0 • Nhấn lần 1: chớp tắt tồn LED • Nhấn lần 2: Chớp tắt LED xen kẽ • Nhấn lần 3: Tắt dần (Trái sang phải ngược lại) • Nhấn lần 4: Stop – tồn LED tắt Nhấn thêm lần nữa, quay lấn Sau mô thành công, đổ chương trình xuống KIT để chạy thực tế 12.2 Nhấp nháy LEDs với timer – IO port Timer Over Flow Interrupt Thực mô proteus, sử dụng thạch anh 8MHz, ngõ PORTC.0 lái led tích cực mức thấp Viết chương trình kết hợp sử dụng ngắt tràn timer để chớp tắt led với tần số 2Hz Sử dụng oscilloscope proteus để kiểm chứng tần số Bài tập mở rộng Thực KIT, với tần số thạch anh thực 7.3728MHz, sử dụng ngắt tràn timer mở rộng chương trình dịch điểm sáng từ phải sang trái ngược lại PORTC với tần số 2Hz 12.3 Chương trình tạo xung với timer – Output Compare Mode Thực mô proteus, thạch anh 8MHz, sử dụng chân Output Compare (OC0), viết chương trình tạo xung 5K với timer Dùng oscilloscope proteus để kiểm chứng tần số xung tạo 12.4 Chương trình đếm xung – Timer in Counter mode Thực mô proteus, thạch anh tùy ý, sử dụng chế độ counter timer đếm xung tác động lên chân T0 Kết hợp chức compare match để thông báo số lần đếm đạt đến giới hạn yêu cầu (5 lần) 12.5 Điều khiển LEDs dimmer với PWM – PWM mode in Timer Sử dụng chức PWM timer (8-bit) để điều khiển led mắc chân OC0 (Output compare 0) sáng theo cấp: tắt – sáng vừa – sáng hết cỡ KIT thí nghiệm Bài tập mở rộng Thực mô Proteus, lưu ý trường hợp đặc biệt set giá trị cho OCR0 255, mơ trường hợp có không? Như để LED (high active) trường hợp tắt hẳn điều khiển với PWM dùng chế độ nào? Table Of Content Cấu trúc tổng quát ATMEGA32 – Structure Overview AVR CPU Core 2.1 Tổng quan 2.2 ALU – Arithmetic Logic Unit 2.3 Thanh ghi trạng thái – Status Register 2.4 Tập ghi làm việc đa – General Purpose Register File 2.5 Thanh ghi X, Y Z 2.6 Con trỏ ngăn xếp – Stack Pointer SP) 2.7 Xử lý reset ngắt – Reset and Interrupt Handling Tổ chức nhớ ATMEGA32 – AVR ATMEGA32 Memories 3.1 Bộ nhớ chương trình – In-System Reprogrammable Flash Program Memory .9 3.2 Bộ nhớ liệu – SRAM Data Memory .10 3.3 Bộ nhớ EEPROM – EEPROM Data Memory .10 3.4 Vùng nhớ IO – IO Memory 10 Clock hệ thống tùy chọn clock - System Clock and Clock Options 10 Quản lý lượng chế độ nghỉ - Power Management and Sleep Modes 10 Điều khiển hệ thống Reset – System Control and Reset .10 Ngắt – Interrupts 11 7.1 Các vector ngắt ATMEGA32 .11 7.2 Mô tả ghi 12 I/O Port 12 8.1 Giới thiệu 12 8.2 Port với chức IO số thông thường .12 8.3 Các chức phụ port 14 8.4 Mô tả ghi I/O Port 14 Ngắt - External Interrupts 15 9.1 Thiết lập kiểu ngắt – Interrupt Sense Control .15 9.2 Cho phép ngắt – Interrupt Request Enable 16 9.3 Cờ ngắt – Interrupt Flag 16 10 Timer/Counter 0/1/2 16 10.1 8-bit Timer/Counter .17 10.1.1 Overview .17 10.1.2 Clock Source 17 10.1.3 Output Compare 18 10.1.4 Chế độ hoạt động .19 10.1.5 Mô tả ghi .21 10.2 Timer/Counter 0/1 Prescale 24 10.3 16-bit Timer/Counter 25 10.3.1 Overview .25 10.3.2 Clock Source 26 10.3.3 Input Capture .26 10.3.4 Output Compare 28 10.3.5 Chế độ hoạt động .28 10.3.6 Mô tả ghi .33 10.4 8-bit Timer/Counter .38 10.4.1 Overview .38 10.4.2 Clock Source 38 10.4.3 Output Compare 39 10.4.4 Chế độ hoạt động thông thường .39 10.4.5 Asynchronous Operation – Chế độ hoạt động bất đồng 41 10.4.6 Mô tả ghi .42 10.4.7 Timer/Counter Prescale – Bộ chia Timer/Counter 45 11 Giao tiếp nối tiếp bất đồng USART 45 12 Bài tập basic review tổng hợp 45 12.1 Điều khiển LED với nút nhấn – IO port External Interrupt 45 12.2 Nhấp nháy LEDs với timer – IO port Timer Over Flow Interrupt 46 12.3 Chương trình tạo xung với timer – Output Compare Mode 46 12.4 Chương trình đếm xung – Timer in Counter mode .46 12.5 Điều khiển LEDs dimmer với PWM – PWM mode in Timer 46 ... Correct PWM Mode 10.4.5 Asynchronous Operation – Chế độ hoạt động bất đồng Lưu ý chuyển từ chế độ đồng (Synchronous) sang bất đồng (Asynchronous): giá trị ghi điều khiển (TCCR2) bị trình chuyển... sử dụng để đánh thức (wake up) MCU, không, MCU vào chế độ ngủ trước giá trị cập nhật Điều quan trọng trường hợp sử dụng ngắt so sánh timer/counter (Output Compare Interrupt) để đánh thức MCU... xung clock TOSC, việc đọc giá trị counter phải thực thông qua ghi đồng hóa với clock hệ thống Q trình đồng xảy sườn lên TOSC1 Khi đánh thức từ chế độ Power Save, clock hệ thống kích hoạt trở lại,

Ngày đăng: 21/01/2022, 19:23

HÌNH ẢNH LIÊN QUAN

2.4. Tập các thanh ghi làm việc đa năng – General Purpose Register File - Cấu trúc tổng quát ATMEGA32 – Structure Overview
2.4. Tập các thanh ghi làm việc đa năng – General Purpose Register File (Trang 4)
Như trên hình, tất cả các thanh ghi được gán địa chỉ bộ nhớ dữ liệu, ánh xạ chúng trực tiếp đến 32 phân vùng đầu tiên trong không gian dữ liệu - Cấu trúc tổng quát ATMEGA32 – Structure Overview
h ư trên hình, tất cả các thanh ghi được gán địa chỉ bộ nhớ dữ liệu, ánh xạ chúng trực tiếp đến 32 phân vùng đầu tiên trong không gian dữ liệu (Trang 4)
( * Lấy hình minh họa bên dưới làm mẫu, các thanh ghi khác có cùng chứ năng nhưng thuộc về port khác cũng có nội dung tương tự) - Cấu trúc tổng quát ATMEGA32 – Structure Overview
y hình minh họa bên dưới làm mẫu, các thanh ghi khác có cùng chứ năng nhưng thuộc về port khác cũng có nội dung tương tự) (Trang 12)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w