- Giao diện JTAG + Khả năng quét biên theo tiêu chuẩn JTAG + Hỗ trợ chế độ sửa tạm debug trên chip + Lập trình của Flash, EEPROM, bộ bảo vệ FUSE và Bit khóa Lock Bits thông qua giao diện
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA VẬT LÝ
NGUYỄN THỊ HOA
TÌM HIỂU VI ĐIỀU KHIỂN AVR-ATMEGA 128
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
HÀ NỘI, 2013
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA VẬT LÝ
NGUYỄN THỊ HOA
ơ
TÌM HIỂU VI ĐIỀU KHIỂN AVR-ATMEGA 128
Chuyên ngành: Sư phạm kỹ thuật
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Người hướng dẫn khoa học: ThS PHÙNG CÔNG PHI KHANH
HÀ NỘI, 2013
Trang 3LỜI CẢM ƠN
Trước tiên em xin bày tỏ lòng biết ơn chân thành và sâu sắc nhất của mìnhtới Th.S Phùng Công Phi Khanh, người đã hướng dẫn tận tình và hiệu quả, thường xuyên động viên chúng em trong quá trình hoàn thiện đề tài Người đã dành cho em sự ưu ái nhất trong thời gian học tập, nghiên cứu cũng như quá trình hoàn thành khóa luận tốt nghiệp
Em xin cảm ơn các thầy giáo, cô giáo trong khoa Vật lý trường Đại học
sư phạm Hà Nội 2 đã tạo điều kiện và đóng góp ý kiến để chúng em hoàn thành tốt khóa luận tốt nghiệp
Cuối cùng em xin bày tỏ lòng biết ơn đến gia đình và người thân luôn
cổ vũ, động viên, giúp đỡ em hoàn thành khóa luận
Em xin chân thành cảm ơn!
Hà Nội, Tháng 05 Năm 2013 Sinh viên thực hiện
Nguyễn Thị Hoa
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan khóa luận này được hoàn thành do sự cố gắng tìm hiểu nghiên cứu của bản thân cùng với sự hướng dẫn chỉ bảo tận tình và hiệu quả của Th.S Phùng Công Phi Khanh cũng như các thầy cô trong khoa Vật lý – Trường Đại học sư phạm Hà Nội 2 Và đây cũng là đề tài không trùngvới các đề tài khác
Hà Nội, tháng 05 năm 2013 Người thực hiện
Nguyễn Thị Hoa
Trang 5MỤC LỤC
Trang phụ bìa
Lời cảm ơn
Lời cam đoan
Kí hiệu các chữ viết tắt
Danh mục các hình vẽ
Danh mục các bảng
MỞ ĐẦU 1
NỘI DUNG 3
CHƯƠNG 1: ĐẶC ĐIỂM, TÍNH NĂNG VÀ CẤU TẠO AVR - ATMEGA128 3
1.1 Đặc điểm AVR-ATmega 128 3
1.2 Cấu hình các chân 6
1.3 Cấu trúc của lõi AVR 8
1.4 Các bộ nhớ của AVR 11
1.4.1 Bộ nhớ chương trình 11
1.4.2 Bộ nhớ dữ liệu SRAM 12
1.4.3 Bộ nhớ dữ liệu EEPROM 14
1.4.4 Tóm tắt bản đồ bộ nhớ bên trong của ATmega 128 15
CHƯƠNG 2: GIAO TIẾP VỚI AVR 16
2.1 Các ngắt của ATmega 128 16
2.1.1 Khái niệm về ngắt 16
2.1.2 Ngắt trong ngắt 17
2.1.3 Các ngắt ngoài 17
2.2 Các cổng vào ra 18
Trang 62.2.1 Tìm hiểu khái niệm 18
2.2.2 Cách hoạt động 19
2.3 Bộ định thời của ATmega 128 21
2.3.1 Bộ định thời 1 và (3) 22
2.3.2 Bộ định thời 0 24
2.3.3 Bộ định thời 2 25
CHƯƠNG 3: MỘT SỐ GIAO DIỆN NGOẠI VI 26
3.1 Giao diện ngoại vi nối tiếp SPI 26
3.2 USART 29
3.3 Giao diện hai dây tuần tự TWI 31
3.3.1 Đặc điểm 31
3.3.2 Định nghĩa bus giao diện tuần tự hai dây 32
3.3.3 Liên kết điện 33
3.4 Bộ chuyển đổi tương tự số 33
3.4.1 Đặc điểm 33
3.4.2 Hoạt động 36
KẾT LUẬN 38
TÀI LIỆU THAM KHẢO 39
Trang 7KÍ HIỆU CÁC CHỮ VIẾT TẮT
ADC Analog to Digital Converter Bộ chuyển đổi tương tự sang số
Semiconductor
Một loại công nghệ dùng để chế tạo vi mạch tích hợp
Programmable Read-Only
Memory
Bộ nhớ chỉ đọc có thể xóa được
bằng điện
ISR Information Storage Retieval Sự lưu trữ truy tìm thông tin
MIPS Million Instructions Per
Second
Triệu lệnh mỗi giây
RISC Reduced Instruction Set
Computing
Sự tính toán bằng tập lệnh rút
gọn SPI Serial Peripheral Interface Giao tiếp ngoại vi nối tiếp
Trang 8SPM Sync Point Manager Chương trình quản lý đồng bộ
Memory
Bộ nhớ truy cập ngẫu nhiên
tĩnh
TTL Transistor – Transistor logic Mạch logic transistor -
transistor
Asynchronous Receiver Transmitter
Bộ chuyển phát và thu nhận nối tiếp đồng bộ dị bộ vạn năng
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Các dòng AVR khác nhau: Tiny, AVR và Mega 3
Hình 1.2 Chân ra của ATmega 128 6
Hình 1.3 Sơ đồ khối cấu trúc của AVR 9
Hình 1.4 Bản đồ bộ nhớ chương trình 12
Hình 1.5 Bản đồ bộ nhớ ATmega 128 15
Hình 2.1 Các ngắt lồng nhau 17
Hình 2.2 Sơ đồ khối bộ định thời 1 (3) 22
Hình 2.3 Sơ đồ khối bộ định thời 0 24
Hình 2.4 Sơ đồ khối bộ định thời 2 25
Hình 3.1 Sơ đồ khối SPI 26
Hình 3.2 Sơ đồ kết nối SPI Master – Slave 28
Hình 3.3 Sơ đồ khối bộ USART 30
Hình 3.4 Kết nối bus TWI 32
Hình 3.5 Sơ đồ khối của 1 bộ ADC 35
Trang 10DANH MỤC CÁC BẢNG
Bảng 1.1: Chỉ ra cách mà bộ nhớ SRAM của ATmega128 được tổ chức 12 Bảng 2.1 Cấu hình cho các chân cổng 21 Bảng 3.1 Ghi đè Pin SPI 29
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Lịch sử nhân loại đã trải qua nhiều cuộc cách mạng khoa học kĩ thuật,
tinh thần tìm tòi sáng tạo giúp con người ngày càng có nhiều phát minh, sáng kiến, tìm ra những công cụ, phương tiện mới, con đường mới để chinh phục
tự nhiên Ngày nay, chúng ta đang phấn đấu cho mục tiêu công nghiệp hóa –
hiện đại hóa, dượt đuổi làn sóng các cuộc cách mạng khoa học, con người đã
và đang tiếp cận với vi điều khiển
Trong những năm gần đây, công nghệ vi điện tử phát triển rất mạnh
mẽ Sự ra đời của các vi mạch cỡ lớn, cực lớn với giá thành giảm nhanh, khả năng lập trình ngày càng cao đã mang lại những thay đổi sâu sắc trong ngành
kĩ thuật điện tử Nền công nghiệp thế giới đã đạt được những thành tựu to lớn nhờ ứng dụng những tiến bộ của khoa học kĩ thuật và công nghệ, máy móc đã thay thế con người trong nhiều hoạt động lao động sản xuất
Lập trình vi điều khiển là phần việc không thể thiếu khi chế tạo những máy móc tự động Trong một cỗ máy tự động, nếu phần cơ khí tạo nên hình dạng và một cơ cấu hoạt động linh hoạt thì phần lập trình và mạch điện tử như một bộ não điều khiển những hoạt động đó Về cơ bản bộ vi điều khiển chứa phần tử hạt nhân là bộ vi xử lí và các bộ phận phụ trợ như bộ nhớ dữ liệu, bộ
Trang 12nhớ chương trình, bộ đếm, phát thời gian và các cổng vào ra số, tất cả tích hợp trên một chíp đơn tinh thể và đóng gói trong một vỏ hộp
Đề tài khóa luận đi vào “Tìm hiểu vi điều khiển AVR-ATmega 128”
2 Mục đích nghiên cứu
Nâng cao kiến thức kĩ thuật về vi điều khiển
Tìm hiểu vi điều khiển AVR-ATmega 128
3 Nhiệm vụ
Tìm hiểu tổng quan về vi điều khiển AVR-ATmega 128
Nghiên cứu về cấu trúc của vi điều khiển AVR-ATmega 128
4 Phương pháp nghiên cứu
Nghiên cứu lý thuyết
5 Ý nghĩa khoa học và thực tiễn của đề tài
Vi điều khiển là một trong những kỹ thuật mới được sử dụng rất nhiều trong các hệ thống điều khiển tự động Nắm được vi điều khiển giúp cho việc thiết kế các mạch vi điều khiển đơn giản có thể thay thế rất nhiều mạch lô gic phức tạp với độ chính xác cao Điều này làm cho các mạch điện tử trở nên đơn giản, sử dụng thuận tiện và giá thành sản phẩm theo đó cũng giảm xuống
6 Cấu trúc khóa luận
Phần 1: Mở đầu
Phần 2: Nội dung cấu trúc luận văn làm 3 chương:
Chương 1: Đặc điểm, tính năng và cấu tạo AVR-ATmega 128
Đặc điểm AVR 128, cấu hình các chân, cấu trúc của lõi AVR, các bộ nhớ của AVR
Chương 2: Giao tiếp với AVR
Các ngắt, các cổng vào ra, bộ định thời AVR
Chương 3: Một số giao diện ngoại vi
Trang 13Giao diện ngoại vi nối tiếp SPI, USART, giao diện hai dây tuần tự TWI, bộ chuyển đổi tương tự số
NỘI DUNG
CHƯƠNG 1: ĐẶC ĐIỂM, TÍNH NĂNG VÀ CẤU TẠO
AVR - ATMEGA128 1.1 Đặc điểm AVR-ATmega 128
Vi điều khiển AVR do hãng Atmel (Hoa Kì) sản xuất được giới thiệu lần đầu năm 1996 AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny AVR (như AT tiny 13, AT tiny 22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đến dòng AVR (chẳng hạn AT90S8535, AT90S8515,…) có kích
bộ nhớ vào loại trung bình và mạnh hơn là dòng Mega (như ATmega32, ATmega128,…) với bộ nhớ có kích thước vài Kbyte đến vài trăm Kbyte cùng với bộ ngoại vi đa dạng được tích hợp trên chip, cũng có dòng tích hợp cả bộ LCD trên chip (dòng LCD AVR) Tốc độ của dòng Mega cũng cao hơn so với các dòng khác Sự khác nhau cơ bản giữa các dòng chính là cấu trúc ngoại vi, còn nhân thì vẫn như nhau Đặc biệt năm 2008, Atmel lại tiếp cho ra đời dòng AVR mới là XmegaAVR, với những tính năng mạnh mẽ chưa từng có ở dòng AVR trước đó Có thể nói XmegaAVR là dòng MCU 8 bit mạnh mẽ nhất hiện nay
Trang 14Hình 1.1 Các dòng AVR khác nhau: Tiny, AVR và Mega
Đặc điểm, tính năng của AVR - ATmega 128:
- Hiệu suất cao, tiết kiệm điện
- Hoàn thiện cấu trúc RISC
+ 133 lệnh hiệu quả - thực thi tất cả các chu kì đồng hồ đơn
+ 32 *8 thanh ghi chung đa năng + các thanh ghi điều khiển ngoại vi + Đầy đủ các quá trình điều khiển tĩnh
+ Nâng lên 16 MIPS dữ liệu tại 16 MHz
+ Chip 2 nhân
- Độ bền, sức chịu đựng cao, không thay đổi phân vùng nhớ
+ 128K Bytes bộ nhớ Flash có thể lập trình được trong hệ thống
+ 4K Bytes EEPROM
+ 4K Bytes bộ nhớ SRAM bên trong
+ Chu kì ghi/xóa: 10000 Flash/100000 EEPROM
+ Độ bền dữ liệu 20 năm ở 85 độ/100 năm ở 25 độ
+ Đoạn mã lựa chọn chế độ khởi động với các bít khóa độc lập trong chương trình hệ thống bởi chương trình khởi động đọc thật trong khi quá trình ghi diễn ra
+ Tối đa 64K Bytes không gian nhớ bên ngoài lựa chọn
+ Lập trình khóa cho phần mềm bảo mật
+ Giao diện SPI cho lập trình trong hệ thống
Trang 15- Giao diện JTAG
+ Khả năng quét biên theo tiêu chuẩn JTAG
+ Hỗ trợ chế độ sửa tạm (debug) trên chip
+ Lập trình của Flash, EEPROM, bộ bảo vệ (FUSE) và Bit khóa (Lock Bits) thông qua giao diện JTAG
+ Bit định hướng với 2 dây giao diện nối tiếp
+ Lập trình kép các USARTs nối tiếp
+ Giao diện nối tiếp SPI chủ tớ
+ Lập trình timer Watchdog với bộ dao động trên chip
+ Bộ so sánh tương tự trên chip
- Các tính năng đặc biệt của bộ vi xử lí
+ Thiết lập bật lại nguồn và lập trình lại khi phát hiện nguồn yếu
(brown-out)
+ Hiệu chỉnh bộ dao động RC bên trong
+ Ngắt nguồn trong và ngoài
Trang 16+ 6 chế độ chờ (sleep): Idle nghỉ, giảm ồn ADC, tiết kiệm điện (power – saver), ngắt điện, chế độ chờ (standby), chế độ chờ mở rộng
+ Phần mềm lựa chọn tần số xung nhịp
+ Lựa chọn chế độ so sánh Atmega 103 bởi bộ cầu chì Fuse
+ Vô hiệu hóa dừng lại toàn bộ
Trang 17Hình 1.2 Chân ra của ATmega 128 ATmega 128 là một bộ vi xử lý CMOS điện áp thấp dựa trên nền kiến trúc AVR RISC nâng cao Bằng cách thi hành các lệnh một cách mạnh mẽ trong một chu kì đồng hồ duy nhất, Atmega128 có thể cho phép tốc độ đạt
Trang 18được là 1 MPIS trên 1 MHz từ đó nó giúp người thiết kế hệ thống có khả năng tối ưu hoá điện năng sử dụng so với tốc độ xử lý
Hình 1.2 cho ta sơ đồ các chân ra của ATmega 128 Mô tả các chức năng của từng chân như sau:
- VCC: Chân cấp nguồn
- GND: Chân nối đất
- Port A (PA7 PA0): Cổng A là một cổng vào ra hai hưóng 8 bit với điện trở hãm ở bên trong (được lựa chọn cho mỗi bit) Bộ đệm đầu ra của cổng A có đặc tính đối xứng với cả 2 tản nhiệt nguồn cấp
- Port B (PB7 PB0): Cổng B là một cổng vào ra 2 hướng với điện trở hãm (lựa chọn cho mỗi bit) Bộ đệm cổng B có tính đối xứng với 2 tản nhiệt
- Port G (PG4 PGO): Cổng G là một cổng vào ra 5 bit 2 hướng với điện trở hãm (được lựa chọn cho từng bit) Bộ đệm cổng G có tính đối xứng với tản nhiệt và nguồn cấp Cổng G cũng cung cấp những tính năng đặc biệt Các chân của cổng G là các cổng có 3 chế độ khi mà điều kiện reset được kích hoạt dù là đồng hồ không chạy
- RESET: Đầu ra reset cấp cho phép trên chân này thì dài hơn độ dài xung tối thiểu sẽ phát ra tín hiệu reset, cho dù đồng hồ không chạy
Trang 19- XTAL1: Đầu vào bộ khuyếch đại dao động và đầu vào cho các đồng
hồ đếm bên trong mạch điện điều khiển
- XTAL2: Đầu ra cho bộ khuyếch đại dao động
- AVCC: Là chân nguồn áp cấp cho cổng F và các bộ chuyển đổi A/D
Nó nên là chân nối với VCC, dù là ADC không được sử dụng Nếu ADC được sử dụng, nó nên được nối với chân VCC thông qua 1 bộ lọc thấp tần
- AREF: Là chân tham khảo cho bộ chuyển đổi A/D
- PEN: Là chân được kích hoạt trình cho kiểu lập trình nối tiếp SPI, và các tín hiệu vào được kéo lên cao Bằng việc giữ chân này ở mức thấp trong suốt quá trình khởi động lại nguồn (Power – on Reset), thiết bị này sẽ nhập vào cổng lập trình nối tiếp SPI PEN không có chức năng gì trong quá trình điều khiển
1.3 Cấu trúc của lõi AVR
Chức năng chính của lõi CPU là để đảm bảo thực hiện đúng chương trình CPU vì vậy phải có thể truy cập, quản lí bộ nhớ, tiến hành tính toán, điều khiển ngoại vi và xử lí các ngắt
Trang 20Hình 1.3 Sơ đồ khối cấu trúc của AVR
Để có được hiệu năng cao nhất và khả năng làm việc song song, AVR
sử dụng cấu trúc Harvard – với sự phân chia bộ nhớ và các bus cho chương trình và dữ liệu Các lệnh trong bộ nhớ chương trình thì được thực thi với 1 cấp xử lí liên lệnh đơn Trong khi lệnh được đang được xử lí thì lệnh tiếp theo được nạp tiếp từ bộ nhớ chương trình Khái niệm này kích hoạt lệnh để thực thi trong mỗi chu kì xung nhịp đồng hồ Bộ nhớ chương trình là bộ nhớ flash
có thể lập trình lại được ở trong hệ thống Sự truy cập nhanh vào file của thanh ghi thì bao gồm 32*8 bít thanh ghi đa năng với 1 chu kì xung nhịp để quản lí thời gian Điều này cho phép điểu khiển trong một chu kì đơn của đơn
vị xử lí số học ALU Thông thường trong hoạt động của ALU, 2 toán hạng
Trang 21địa chỉ được xuất ra từ file thanh ghi, quá trình điều khiển được thực thi và kết quả được lưu trữ lại trong thanh ghi file – trong mỗi chu kì xung nhịp 6 trong
32 thanh ghi có thể được sử dụng như là 3 địa chỉ 16 bit gián tiếp cho vùng dữ liệu địa chỉ- kích hoạt địa chỉ có hiệu lực trong tính toán 1 trong những con trỏ địa chỉ này có thể được sử dụng như là một con trỏ địa chỉ cho việc tìm kiếm 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 là thanh ghi 16 bit thanh ghi X, Y, Z
Đơn vị xử lí số học và logic ALU hỗ trợ quá trình điều khiển số học và logic giữa các thanh ghi hoặc giữa các đại lượng không đổi và các thanh ghi Các thanh ghi điều khiển quá trình đơn có thể cũng được thi hành trong ALU Sau một quá trình điểu khiển số học, trạng thái của các thanh ghi được cập nhật để phản ánh thông tin về kết quả của quá trình điều khiển
Dòng chương trình thì được cung cấp bởi các lệnh nhảy có điều kiện và không có điều kiện và các lệnh gọi, có thể là các địa chỉ trực tiếp trong toàn
bộ không gian địa chỉ Hầu hết các lệnh của AVR đều có định dạng là 16 bit
từ đơn Mỗi bộ nhớ địa chỉ chương trình thì bao gồm 16 hoặc 32 bit lệnh Không gian nhớ Flash được chia ra làm 2 phần: phần chương trình khởi động và phần chương trình ứng dụng Cả 2 phần này đều có các bit khóa riêng cho sự bảo vệ ghi và đọc/ghi Lệnh SPM được viết vào trong bộ nhớ ứng dụng Flash phải được thường chú trong khu vực khởi động chương trình Trong suốt quá trình ngắt và gọi các chương trình con, sự hoàn trả địa chỉ của bộ đếm chương trình được lưu ở trong ngăn xếp (Stack) Ngăn xếp (stack) được cách gán hiệu quả trong SRAM dữ liệu chung, và hiệu quả của ngăn xếp (stack) thì chỉ bị giới hạn bởi độ lớn của SRAM và sự sử dụng của SRAM Tất cả các chương trình sử dụng phải được khởi tạo SP trong chương trình con reset (trước khi chương trình con hoặc các ngắt được thực thi) Con trỏ ngăn xếp (SP - stack pointer) là quá trình truy cập đọc/ghi ở trong không
Trang 22gian địa chỉ I/O SRAM dữ liệu có thể dễ dàng được truy cập đến thông qua 5 kiểu địa chỉ khác nhau được hỗ trợ ở trong cấu trúc của AVR
Không gian nhớ ở trong cấu trúc của AVR thì đều tuyến tính và đều là các vùng nhớ thông thường Một module 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 1 bit ngắt kích hoạt chung được thêm vào ở trong thanh ghi trạng thái Tất cả các ngắt đều có một véc tơ phân chia ngắt ở trong các bảng vecto ngắt Các ngắt thì có quyền ưu tiên phù hợp với
vị trí các vecto ngắt của chúng Các vecto ngắt mức thấp, các vecto ngắt mức cao được ưu tiên hơn
1.4 Các bộ nhớ của AVR
Cấu trúc AVR có 2 không gian nhớ chính, bộ nhớ dữ liệu và bộ nhớ chương trình Thêm vào đó, đặc điểm của ATmega 128 là một bộ nhớ EEPROM cho kho lưu trữ dữ liệu Tất cả 3 vùng nhớ thì đều dài và ổn định
Bộ nhớ Flash có một độ bền lâu là trên 10000 chu kì ghi xóa Bộ đếm chương trình (PC) của ATmega 128 là 16 bit dài, việc đặt địa chỉ này cho 64K được định vị trong bộ nhớ chương trình Hoạt động của khu vực chương trình khởi động còn được kết hợp với các bit khóa quá trình khởi động vì sự bảovệ phần mềm Ở đó bảo gồm những mô tả chi tiết về lập trình cho bộ nhớ Flash trong SPI, JTAG, hoặc kiểu lập trình song song
Trang 23Program Memory
S0000
Application Flash section
Boot Flash Section
Trang 24ATmega 128 là 1 vi xử lí linh hoạt với rất nhiều đơn vị ngoại vi hơn nên có thể hỗ trợ 64 vị trí dự trữ ở trong mã hoạt động của các lệnh IN và OUT Không gian địa chỉ I/O không thể xuất ra khi mà ATmega 128 ở trong trạng thái tương thích với ATmega 103
Trong chế độ thông thường địa chỉ vị trí dữ liệu đầu tiên 4352 ở cả hai file đăng kí, bộ nhớ đầu vào ra I/O và dữ liệu trong SRAM 32 vị trí địa chỉ đầu tiên của thanh ghi file, tiếp theo là 64 vị trí bộ nhớ I/O tiêu chuẩn, sau đó
là 160 vị trí của các vùng nhớ I/O mở rộng và tiếp theo là 4096 vị trí địa chỉ của SRAM dữ liệu
Trong chế độ tương thích với ATmega 103, đầu tiên là 4096 vị trí địa chỉ vùng dữ liệu ở cả hai file đăng kí, vùng nhớ I/O và SRAM dữ liệu bên trong Đầu tiên là 32 vị trí địa chỉ của file đăng kí, tiếp theo là 64 vị trí của vùng nhớ I/O chuẩn, và tiếp theo là 4000 vị trí địa chỉ của SRAM bên trong Một tùy chọn SRAM dữ liệu bên ngoài nữa có thể được sử dụng với ATmega 128 SRAM này sẽ chiếm một vùng trong vùng địa chỉ còn lại của không gian địa chỉ 64K Vùng này bắt đầu ở địa chỉ bên dưới trong SRAM Thanh ghi file I/O, I/O mở rộng và SRAM trong chiếm các bit thấp nhất 4352 bytes ở chế độ bình thường, và chiếm 4096 bytes thấp nhất ở trong chế độ tương thích với ATmega 103, vì vậy khi sử dụng 64KB (65536 Bytes) của bộ nhớ ngoài, 61184 Bytes của bộ nhớ ngoài sẽ dư trong chế độ bình thường, và
61440 Bytes trong chế độ tương thích với ATmega 103
Khi sự truy cập địa chỉ trong bộ nhớ SRAM vượt quá vị trí bộ nhớ dữ liệu bên trong, SRAM dữ liệu bên ngoài được truy cập sử dụng các lệnh giống nhau về phần truy cập bộ nhớ dữ liệu bên trong Khi các bộ nhớ dữ liệu bên trong được truy cập, các chân phân tích quá trình đọc và ghi (PG0 và PG1) thì không hoạt động trong khi tất cả truy cập 1 chu kì Quá trình điều khiển
Trang 25SRAM ngoài thì được kích hoạt bằng việc cài đặt các bit SRE trong thanh ghi MCUCR
Sự truy cập SRAM ngoài tạo ra 1chu kì xung nhịp thêm vào trên 1byte được so sánh với sự truy cập vào SRAM trong Nếu ngăn xếp được đặt trong SRAM ngoài, các ngắt, sự gọi các chương trình con, và các phản hồi tạo ra 3 xung nhịp bổ sung, bởi vì bộ đếm chương trình 2 bytes bị đẩy lên và tràn ra,
và việc truy cập vào bộ nhớ ngoài không tạo ra sự thuận lợi cho sự truy cập
bộ nhớ bên trong Khi giao diện SRAM ngoài được sử dụng với trạng thái chờ (wait – state), sự truy cập 1 byte ngoài tạo ra 2, 3, 4 xung nhịp thêm vào cho
1, 2, 3 trạng thái chờ tương ứng Các ngắt, các chương trình con, và phản hồi
sẽ cần 5, 7, 9 xung nhịp nhiều hơn là được xác định ở trong hướng dẫn cài đặt lệnh cho 1, 2, 3 trạng thái chờ
Năm kiểu đặt địa chỉ cho bộ nhớ dữ liệu bao gồm: trực tiếp, gián tiếp kèm thay thế, gián tiếp, gián tiếp kèm giảm bớt, và gián tiếp kèm gia tăng Trong bộ ghi file, thanh ghi R26 và R31 có đặc điểm là thanh ghi con trỏ địa chỉ gián tiếp
Cách đánh địa chỉ trực tiếp hướng tới không gian địa chỉ trọn vẹn Cách đánh địa chỉ gián tiếp kèm theo thay thế hướng tới 63 vị trí địa chỉ
từ các địa chỉ cơ sở được đưa ra bởi thanh ghi Y và Z
Khi sử dụng kiểu đánh địa chỉ thanh ghi gián tiếp kèm theo tự động thay thế và gia tăng, địa chỉ thanh ghi X, Y, Z được gia tăng hoặc giảm bớt 32 thanh ghi làm việc đa năng chung, 64 thanh ghi I/O và 4096 Bytes của SRAM
dữ liệu ngoài ở trong ATmega 128 đều được truy cập thông qua tất cả các kiểu đặt địa chỉ trên
1.4.3 Bộ nhớ dữ liệu EEPROM
Đây là bộ nhớ dữ liệu có thể ghi xóa ngay trong lúc vi điều khiển đang hoạt động và không bị mất dữ liệu khi nguồn điện cung cấp bị cắt Có thể ví