Bài giảng Thiết kế hệ thống nhúng - Kiến trúc AVR 8 bits - Nguyễn Quốc Cường
Kiến trúc AVR – 8 bits
Nguyễn Quốc Cường
Bộ môn kỹ thuật đo và Tin học công nghiệp
Trường Đại học Bách khoa Hà Nội
1
Plan
§
§
§
§
§
§
§
§
§
§
§
§
Kiến trúc AVR – 8 bits
Tệp các thanh ghi
Truy cập bộ nhớ
Bộ nhớ I/O
EEPROM
Cổng I/O
SRAM
Timer
UART
Interrupt
Wathdog
Các chế độ tiết kiệm năng lượng (Power-down)
2
Kiến trúc
AVR – 8
bits
3
§ Kiến trúc Harvard Bus cho data và chương trình là tách riêng
§ Data bus của bộ nhớ dữ liệu:
8 bits
§ Data bus của bộ nhớ chương trình:
§ Không gian các bộ nhớ là tuyến tính
§ Bộ nhớ data có 2 loại
16 bits
¢
¢
¢
RAM
EEPROM
chia làm 5 kiểu khác nhau
§ Các lệnh của AVR
¢
phần lớn có độ dài 16 bit
¢
thực hiện chủ yếu trong một xung nhịp clock
4
Bộ nhớ data
§ 32 thanh ghi 8 bit
§ Các thanh ghi I/O (maximum 64 thanh ghi 8 bit)
§ Internal SRAM
¢
Chứa các biến chương trình
¢
Ngăn xếp
§ External RAM (chỉ có ở một số loại như 89S8515)
§ EEPROM có thể đọc/ghi bởi chương trình (cỡ 100,000 lần)
5
6
Tệp các thanh ghi
§ 32 thanh ghi 8 bit dùng cho các mục đích thông thường
¢
R0 đến R31
¢
Kết nối trực tiếp với ALU, có thể tham gia hầu hết vào tất cả các phép
tính số học và logic
¢
Một số ít lệnh chỉ thực hiện trên các thanh ghi R16 đến R31
§ Đặc biệt X, Y, Z dùng để làm các con trỏ data trong các lệnh
truy cập gián tiếp
7
8
Thanh ghi chỉ số X, Y , Z
9
Bộ nhớ I/O
§ Điều khiển tất cả các thiết bị trên AVR
§ Truy cập
¢
¢
¢
như là ô nhớ SRAM tại địa chỉ 20h đến 5Fh thông qua các lệnh Load
và Store
và OUT
như các bit (chỉ áp dụng cho các thanh ghi 00 đến 1Fh) thông qua các
lệnh Set Bit và Clear Bit
10
Thanh ghi trạng thái - SREG
11
12
§ Khi có Interrupt, Thanh ghi Trạng thái không tự động cất giữ.
Để đảm bảo cho chương trình hoạt động đúng sau khi kết
thúc chương trình phục vụ ngắt ISR (Interrupt Service
Routine)
¢
cần phải lưu khi vào đầu chương trình ISR
¢
phục hồi trước khi thoát khỏi ISR
13
Stack pointer
§ Stack là vùng nhớ đặc biệt được đặt trong vùng nhớ SRAM
(cần phải lớn hơn 60h)
§ Thanh ghi SP 16 bit
¢
SH (một số loại có SRAM <256 byte sẽ không có SH)
¢
SL
§ Mỗi lần cất một byte vào ngăn xếp, SP sẽ giảm đi một
14
Cổng I/O
§ Các cổng của AVR đều là các cổng bi-direction
§ Có 3 thanh ghi điều khiển đi kèm với mỗi cổng
¢
¢
¢
DDRx : định nghĩa chiều của port (0 là input, 1 là output)
PORTx : lưu giữ giá trị output của port
PINx
: dùng để đọc giá trị của port khi làm input
15
DDxn là bit thứ n của thanh ghi DDRx
16
17
18
19
System
clock
20
System clock
§ Lấy từ nhiều nguồn khác nhau
§ Tại một thời điểm chỉ được một clock hoạt động
§ Để tiết kiệm năng lượng, các module không sử dụng có thể
được sleep bằng cách cắt nguồn clock đưa đến module đó
21
Lựa chọn các nguồn clock
§ Thông qua các Flash Fuse bits (các bit này được thiết lập
trong quá trình nạp chương trình)
22
Watchdog
§ Watchdog được thiết kế sử dụng oscillator độc lập với
System clock với tần số 1MHz
§ Sử dụng thanh ghi WDTCR để điều khiển thời gian của
Watchdog
23
24
25
RESET
§ Trong khi RESET
¢
Các thanh ghi được nạp giá trị default
¢
Chương trình start tại địa Reset Vector, lệnh đặt tại Reset Vector cần
phải là một lệnh JMP
§
¢
¢
¢
¢
Power-On Reset
External Reset
Brown-out detection (option) ( có ở một số AVR ví dụ ATmega32,...)
Watchdog reset
§ Có một bộ Delay Counter dùng để tạo một khoảng thời gian
đủ lớn cho các module ổn định trước khi xóa tín hiệu internal
reset
26
27
28
Power-on reset (POR)
§ Tạo ra bởi On-chip detection circuit
§ POR sẽ hoạt động khi điện áp VCC nhỏ hơn điện áp VPOT
29
External Reset
§ Tạo ra khi pin RESET có mức logic thấp
§ Thời gian pin RESET ở mức thấp cần phải lớn hơn minimum
pulse width
30
Watchdog reset
§ Khi Watchdog timer bị time-out, nó sẽ phát ra một xung (nếu
Watchdog là enable) để reset hệ thống
31
Thanh ghi trạng thái và điều khiển - MCUCSR
32
33
Bạn đang xem tài liệu "Bài giảng Thiết kế hệ thống nhúng - Kiến trúc AVR 8 bits - Nguyễn Quốc Cường", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- bai_giang_kien_truc_avr_8_bits_nguyen_quoc_cuong.pdf