2. Cấu trúc vi điều khiển ATMEGA8535 1 Tổng thể
2.3. Tổ chức bộ nhớ bên trong ATMEGA
Bộ vi điều khiển AVR đ−ợc xây dựng trên kiến trúc Harvard, bộ nhớ dữ liệu và bộ nhớ ch−ơng trình tách biệt nhau để có thể thực hiện đồng thời đ−ợc một khối l−ợng lớn công việc.
Báo cáo tốt nghiệp Nguyễn Xuân Tài – Tự động hoá 46
... -35-
Bus dữ liệu đ−ợc sử dụng cho bộ nhớ dữ liệu là bus 8 bit, cho phép kết nối các bộ phận ngoại vi với tệp thanh ghi. Bus dữ liệu dùng cho bộ nhớ ch−ơng trình có độ rộng 16 bit và chỉ nối với thanh ghi lệnh.
Sơ đồ bộ nhớ:
Hình 19: Sơ đồ bộ nhớ của vi điều khiển ATMEGA8535
* Bộ nhớ ch−ơng trình là bộ nhớ Flash có dung l−ợng 8Kx16 bit. Để tiện cho việc bảo vệ bằng phần mềm thì bộ nhớ ch−ơng trình đ−ợc chia làm hai khu vực là khu vực ứng dụng và khu vực khởi động. Bên cạnh các lệnh đ−ợc l−u trữ, bộ nhớ ch−ơng trình cũng l−u trữ các vector ngắt bắt đầu tại địa chỉ $000.
* Bộ nhớ dữ liệu đ−ợc bắt đầu với Tệp thanh ghi, sau đó là các Thanh ghi I/O và SRAM trong. Tệp thanh ghi gồm có 32 thanh ghi (R0... R31) t−ơng ứng với địa chỉ $0000... $001F. Toàn bộ các thanh ghi này đ−ợc sử dụng nh− những thanh ghi 8 bit. Nh−ng có một điều đặc biệt ở đây là các thanh ghi từ R26... R31 có thể kết hợp lại để đ−ợc sử dụng nh− 3 thanh ghi 16 bit X-Y-Z. Khu vực ứng dụng Bộ nhớ ch−ơng trình $000 Khu vực khởi động $FFF R0 R2 ... R30 R31 Bộ nhớ dữ liệu $0000 $001F EEPROM dữ liệu $01 ... $3F $00 SRAM trong $0020 $005F $0060 $025F $0000 Tệp thanh ghi
Báo cáo tốt nghiệp Nguyễn Xuân Tài – Tự động hoá 46
... -36-
Hình 20: Tổ chức thành thanh ghi X,Y,Z
Thanh ghi I/O gồm có 64 thanh ghi 8 bit nằm ở địa chỉ $020... $05F, các thanh ghi này làm nhiệm vụ trao đổi dữ liệu vào/ra. Đôi khi các thanh ghi I/O cũng đ−ợc truy cập nh− SRAM.
Bộ nhớ SRAM của ATMEGA8535 có dung l−ợng 512 byte, đ−ợc sử dụng cho các ngăn xếp cũng nh− để l−u trữ các biến...
* Bộ nhớ EEPROM: ATMEGA8535 có 512 byte EEPROM, đ−ợc tổ chức thành một vùng dữ liệu riêng biệt. Việc ghi và đọc đ−ợc thực hiện trên từng byte. Để đọc EEPROM, CPU phải mất 4 chu kỳ đồng hồ để hoàn thành việc đọc, tuy nhiên việc ghi EEPROM lại chỉ mất có 2 chu kỳ.