1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài nghiên cứu, tìm hiểu AT90S8535 và ứng dụng thiết kế mạch quang báo

56 609 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Đề Tài Nghiên Cứu, Tìm Hiểu At90s8535 Và Ứng Dụng Thiết Kế Mạch Quang Báo
Trường học University of Technology
Chuyên ngành Electrical Engineering
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Hanoi
Định dạng
Số trang 56
Dung lượng 13,53 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đề tài nghiên cứu, tìm hiểu AT90S8535 và ứng dụng thiết kế mạch quang báo

Trang 1

BO GIAO DUC VA DAO TAO TRUONG DH KY THUAT CONG NGHE TP HO CHi MINH

KHOA DIEN - ĐIỆN TỬ NGÀNH ĐIỆN TỬ VIỄN THÔNG

ĐỎ ÁN TÓT NGHIỆP

ĐỀ TÀI:

Ì NGHIÊN CỨU, TÌM HIỂU AT90S8535

VA UNG DUNG THIET KE MACH

Trang 2

Tim hiểu chip VĐK AVR AT90S8535 và ứng dụng thiết kế mạch Quang Báo

MỤC LỤC

PHÀN A: TÌM HIỂU CHIP VĐK AVR AT90S8535

CHƯƠNG I: GIỚI THIỆU VÈẺ CHIP VĐK AVR 90S8535

3.3 Các bộ dao động tạo xung nhịp

IV TONG QUAN VẺ CẤU TRÚC

5.2 Thanh ghi dia chi EEPROM - EEARH, EEARL

5.3 Thang ghi dữ liệu EEPROM - EEDR

5.4 Thanh ghi điều khiển EEPROM - EECR

5.5 Tránh sai sót trong EEPROM

VI SPI (Serial Peripheral Interface) os

6.1 Giới thiệu

6.2 Chức năng chân SS sesssssscssesccscessecsenececcenseee

VIL CAC PORT NHAP/XUAT -

Trang 5

Trang 3

Tim hiéu chip VDK AVR AT90S8535 va teng dung thiét ké mach Quang Béo

CHUONG II: CAC HOAT DONG

§.2 Thanh ghi trang thai ACSR

VI BO CHUYEN BOI ADC

7.1 Bộ nhớ chương trình và dữ liệu — Loek bits . s-<-

7.2 EIse bifS eSĂŸẰSSSesisseieieeee

7.3 Các bytc nhận dang

7.4 Lập trình Flash và EEPROM .eseeeeenrsrseririeeeee

7.6 Các đặc điểm và lập trình song song

7.8 Các đặc điểm lập trình nối tiếp

CHUONG III: CAC DAC ĐIỂM VE DIEN

I TSO TUYET DOI

Il DAC DIEM DC

CHƯƠNG IV: TÓM TÁT TẬP LỆNH .- 99

CHUONG KET

1 Khả nang can thiệp

2 Xem xét các tính năng được tích hợp bên trong

3 Tốc độ xử lý

4 Các ứng dụng m‹

Trang 6

Trang 4

Tim hiéu chip VBK AVR AT90S8535 va teng dung thiét ké mach Quang Béo

PHAN B: THIET KE & THI CONG MACH QUANG BAO .105

CHƯƠNG MỞ ĐÀU -2S5-teeeereerttrtttrtiiirrrerriee 106

II NGUYÊN LÝ HỌAT ĐỘNG

3.1 Khối điều khiển

3.2 Khối hiển thị

3.3 Khối quét cột

3.4 Khối quét hàng

3.5 Khối giao tiếp máy tinh

IV MỘT SỐ LINH KIỆN SỬ DỤN G TRONG MẠCH

4.1 Ma trận led 8x8 eeeeeeseeeeeeeeseee

4.2 Max232 ase ° 4.3 74HCS573 “ 4 `

4.4 T4HCS95 ee ° 4.5 ULN2803

4.6 UDN2981

CHƯƠNG III: THIET KE PHAN MEM

L YEU CAU CHUONG TRINH

Il THIET Ké PHAN MEM

2.1 Cae giao diện kết nối và truyền dữ liệu bằng Visual Basic

2.2 Lưu đồ giải thuật 2.3 Chương trình

CHƯƠNG IV: CHƯƠNG TRÌNH NẠP CHIP AVR

1 YÊU CÂU CHƯƠNG TRÌNH

II LƯU ĐỎ GIẢI THUẬTT °

KẾT LUẬN

1 DANH GIA TONG QUAN VE DO AN

II HƯỚNG PHÁT TRIÊN ĐÈ TÀI

Trang 7

Trang 6

PHAN A - Chuong I

CHƯƠNG I: GIỚI THIỆU VẺ CHIP VĐK AVR 90S8535

Bộ vi xử lý AVR 8bit với bộ nhớ Flash 8Kbytes lập trình được ngay trên hệ thống

AT90S8535-AT90LS8535

I CAC DAC TINH CUA AVR

, AVR sử dụng cấu trúc RISC - cấu trúc có khả năng xử lý cao và năng lượng tiêu thụ

thâp:

e _ 118 lệnh mạnh - hầu hết thực hiện trong một chu kỳ xung nhịp

© _ Tốc độ xử lý trên 8 triệu lệnh/1 giây ở tần số 8Mhz

Bộ nhớ dữ liệu và chương trình:

e - Bộ nhớ 8Kbytes lập trình được ngay trên hệ thống

- Có giao diện nối tiếp SPI lập trình được ngay trên hệ thống

- Có thể chịu được 1000 chu kì ghỉ/xóa

e EEPROM 512bytes

- Có thể chịu được 100.000 chu kì ghi/xóa

e SRAM ndi 512bytes

e _ Lập trình khoá để bảo mật phần mềm chương trình

Các đặc tính ngoại vi:

e _ Bộ chuyển đổi ADC 8 kênh,10bit

Bộ UART lập trình được

Bộ giao diện nối tiếp SPI chủ/tớ

2 Bộ Timer/Counter 8bit với chế độ chia tần tách biệt và chế độ so sánh

1 Bộ Timer/Counter 16bit với chế độ chia tần tách biệt và chế độ so sánh và chế độ bắt

mẫu và 3 kênh PWM (điều chế độ rộng xung) từ 8,9 đến 10bit

Bộ định thoi Watchdog lap trình được với bộ dao động trên chip

Bộ so sánh tương tự trên chip

Các đặc tính ngoại vi đặc biệt:

© _ Có mạch kích hoạt nguồn (Power on set)

Đồng hồ thời gian thật RTC với bộ dao động và bộ đếm số tách biệt

Có các nguồn ngắt ngoài và trong

Có 3 chế độ: Nghỉ, tiết kiệm năng lượng và giảm dòng tiêu thụ (Power down)

Công suất tiêu thụ ở 4Mhz, 3V, 20°C:

e Tích cực: 6.4mA

e_ Tiết kiệm năng lượng (Power down): <luA

Hệ thống vào/ra và cách gói:

e 32 đường vào/ra lập trình được

Dién 4p cung cap:

Trang 7

ani au Boxee,

eer rosea) (aay BOE (2x0) rot re Pat Bra dus) eps eee AINTs) PRS poe song) Poe oct (0014 Pos wy a eee LÍCP) PDš CỈ 3U 6 por ica)

Hình 2.1: Sơ đồ chân AT90S8535

2.2 Port A (PA7 = PAO)

Port A là một cổng vào/ra 2 hướng 8bit Chân Port Có các điện trở nối lên nguồn dương (được chọn cho mỗi bit) Ngõ ra Port A có thể cho dòng điện 20mA đi qua và có

thể điều khiển led hiển thị một cách chính xác Khi chân A0 + A7 được sử dụng như là ngõ vào và được đặt xuống mức thấp từ bên ngoài, chúng sẽ là nguồn đòng nếu các điện trở nối lên cực dương được kích hoạt

Port A cũng được sử dụng khi ! tín hiệu tương tự ở ngõ vào đến bộ chuyên đổi A/D

Các chân của Port A sẽ được aa ở trạng thái thứ 3 (tông trở cao) khi tín hiệu reset ở mức tích cực ngay cả khi tín hiệu xung nhịp không hoạt động

Port B là một công vào/ra 2 hướng 8bit có các điện trở nối lên nguồn dương Bộ đệm ngõ ra Port B có thể cho dòng điện 20mA đi qua Khi chân Port B được sử dụng như là

ngõ vào và được đặt xuống mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu các điện

trở nối lên cực dương được kích hoạt

Các chân của Port B sẽ được ashe trang thái thứ 3 (tông trở cao) khi tín hiệu reset ở

mức tích cực ngay cả khi tín hiệu xung nhịp không hoạt động

2.4 Port C (PC7 + PC0)

Port C là một công vào/ra 2 hướng 8bit có các điện trở nối lên nguồn dương Bộ đệm

ngõ ra Port C có thể cho dòng điện 20mA đi qua Khi chân Port C được sử dụng như là ngõ vào và được đặt xuống mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu các điện trở nối lên cực dương được kích hoạt Hai chân PC6 và PC7 của Port C ccòn ó thể được sử dụng như một bộ dao động cho bộ bộ định thời Timer/Counter2

- Các chân của Port C sẽ được di trạng thái thứ 3 (tổng trở cao) khi tín hiệu reset ở

mức tích cực ngay cả khi tín hiệu xung nhịp không hoạt động

Trang 10

Trang 8

PHAN A ~ Chuong I

2.5 Port D (PD7 + PDO)

Port D là một cổng vào/ra 2 hướng 8bit có các điện trở nối lên nguồn dương Bộ đệm

ngõ ra Port D có thể cho dòng điện 20mA đi qua Khi chân Port D được sử dụng như là ngõ vào và được đặt xuông mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu các điện trở nôi lên cực dương được kích hoạt

Các chân của Port D sẽ được đặc ở trạng thái thứ 3 (tổng trở cao) cao khi tín hiệu reset

ở mức tích cực ngay cả khi tín hiệu xung nhịp không hoạt động

2.6 Vcc, GND, RESET, XTALI, XTAL2, AVcc, AREE, AGND

'Vcc: Nguồn cung cấp

GND: Dat

RESET: Ngõ vào Reset Bộ vi điều khiển sẽ được thiết lập lại khi chân reset tích cực

mức thấp Xung reset đài hơn 50ns ngay cả khi không có tín hiệu giữ nhịp Các xung ngăn hơn không đảm bảo tạo ra Ì reset

XTALI: Ngõ vào của bộ khuếch đại đảo và mạch tạo xung nhịp bên trong

XTAL2: Ngõ ra của bộ khuếch đại

AVcc: là chân nguồn cung cấp cho Port A và bộ chuyển đổi A/D Nếu bộ chuyển đổi bên trong không sử dụng thì chân này phải được kết nối với Vcc và ngược lại thì chân

này phải được nối với Vcc qua bộ lọc tần số thấp

AREF: là ngõ vào tín hiệu lấy mẫu tương tự cho bộ chuyển đổi A/D Phải cung cấp điện áp 2V tới A Vcc cho chân nay để bộ chuyên đổi hoạt động

AGND: chân GND tương tự Nếu trên board mạch có thiết kế một vùng mass riêng

cho tín hiệu tương tự thi nối chân AGND vào đây Còn không có thì nối AGND vào GND chung

II MÔ TẢ

AT90S8535 là bộ vi điều khiển CMOS 8bit tiêu thụ công suất thấp dựa trên c4u tric AVR

RISC (Reduced Instruction Set Computer: máy tính có tập lện rút gọn) Bằng cách thực hiện

những lệnh mạnh trong một chu kỳ xung nhịp, AT90S8535 đạt được tốc độ xử lý trên 1 triệu

lệnh/I giây ở tần số IMhz cho phép người thiết kế hệ thống tối ưu sự tiêu thụ điện năng mà

Trang 10

PHAN A - Chuong I

3.2 Các đặc điểm

Phân cốt lõi là AVR kết hợp với các tập lệnh đa dạng với 32 thanh ghi đa năng

32 thanh ghi được kết nối trực tiếp với bộ số hoc ALU (Arithmetic Logic Unit), cho phép

truy cập 2 thanh ghi độc lập trong một lệnh đơn được thực thi trong một xung nhịp Cấu

trúc này mang lại nhiều khả năng lập trìng có hiệu quả cao đạt trên 10 lần nhanh hơn bộ vi

xử lý CISC (Complex Instruction Set Computer: máy tính có tập lệnh phức tạp) thông

thường

AT90S8535 cung cấp các thông số đặc trưng sau: bộ nhớ Flash 8Kbytes lập trình được

ngay trên hệ thống, EEPROM 5 12bytes, SRAM 512bytes, 32 đường vào/ra đa năng, 32

thanh ghi đa năng, RTC (Real-Time Clock: đồng hồ thời gian thực), 3 bộ timer/counter

hoạt động linh hoạt với các chế độc so sánh, các ngắt ngoài và ngắt trong, I bộ UART nối

tiếp lập trình được, 1 bộ chuyển đổi ADC 8 kênh 10 bit, bộ định thời Watchdog lập trình

được với bộ dao động bên trong, một cổng nối tiếp SPI và 3 chế độ tiết kiệm năng lượng

có thể lựa chọn nhờ phần mềm Chế độ nghỉ làm cho CPU ngừng hoạt động trong khi cho

phép SRAM, Bộ Timer/Counter, công SPI và hệ thống ngắt vẫn tiếp tục hoạt động Chế độ

làm giảm mức tiêu thụ năng lượng lưu nội dung thanh ghi nhưng lại để bộ dao động hoạt

động, cấm tắt cả các chức năng khác trên chip cho đến khi có tín hiệu ngắt kế tiếp hoặc tín

hiệu reset phần cứng Ở chế độ tiết kiệm năng lượng, bộ dao động định thời vẫn tiếp tục

hoạt động và cho phép người sử dung vẫn tiếp tục duy tri 1 b6 dinh thời cơ sở trong khi

các thiết bị còn lại đang trong chế độ nghỉ

Các thiết bị được chế tạo bởi công ty Atmel sử dụng công nghệ bộ nhớ không tự mắt

dữ liệu và có mật độ cao Bộ nhớ Flash ISP trên chip cho phép bộ nhớ chương trình có thể

lập trình được ngay trên hệ thống qua 1 bộ giao diện nói tiếp SPI hoặc bằng bộ nạp

chương trình vào bộ nhớ không tự mất dữ liệu thông thường Bằng cách kết hợp 1 CPU

8bit theo cấu tric RISC với bộ nhớ Flash lập trình được ngay trên hệ thống trong 1 chip

đơn

3.3 Các bộ đao động tạo xung nhịp

q) Dao động thạch anh

XTALI và XTAL2 được ni lần lượt với ngõ vào và ngõ ra của bộ khuếch đại đảo,

bộ khuếch đại này được định để dùng như một bộ dao động ngay trên chip, hoặc 1 bộ

cộng hưởng thạch anh hay 1 bộ cộng hưởng gốc được sử dụng

MAX 1 HC BUFFER wens Ian

—> Chú ý: Khi sử dụng bộ dao động MCU tạo xung nhịp cho I linh kiện bên ngoài, bộ

đệm HC nên được kết nối như hình 3.2

Trang 13

Trang 11

PHAN A ~ Chương I

b) Bộ xung nhịp bên ngoài -

Để điều khiển linh kiện từ nguồn xung nhịp bên ngoài, XTAL2 nên được thả nổi

(không kết nối) và kết nối XTAL1 với nguồn xung nhịp bên ngoài này như hình 3.3

ne XTALZ

ÊKIEBMAI, OSCRLATOR XIAL

Đối với chân bộ dao động định thời, TOSC1 và TOSC2, thạch anh được kết nối 1

cách chính xác giữa 2 chân Không nối tụ điện ngoài Bộ dao động được tối ưu để sử

dụng cùng với đồng hồ thạch anh 32.768Hz Chân TOSCI không được cung cấp

nguôn xung nhịp bên ngoài

IV TONG QUAN VE CAU TRUC

4.1 Giới thiệu

Khái niệm các thanh ghi truy nhập nhanh bao gồm 32 thanh ghi đa năng 8bit được truy nhập trong 1 chu kỳ xung nhịp, tức là một phép toán logic số học sẽ được thực hiện chỉ trong một chu kỳ xung nhịp đơn 2 toán hạng được truy xuất từ tập các thanh ghi đa năng, phép toán được thực hiện và được lưu giữ lại vào tập các thanh ghi đa năng trong ! chu kỳ xung nhịp

6 trong số 32 thanh ghi đa năng có thể được sử dụng làm 3 con trỏ địa chỉ gián tiếp 16bit đùng cho địa chỉ không gian dữ liệu và cho phép tính địa chỉ hiệu dụng 1 trong số 3 con trỏ địa chỉ cũng được sử dụng cho chức năng dò tìm bảng hằng số Các thanh ghi có

chức năng bổ sung này là các thanh ghi 16bit X, Y, Z

Trang 14

Trang 12

< Data Bus 8-bit

Program ‘Status

4K X16 Program Counter and Control Memory

62x EEPROM

Hình 4.1: Cấu trúc RISC của AT90S8535

ALU hỗ trợ các chức năng toán học và logic giữa các thanh ghi hoặc giữa 1 hằng số và

1 thanh ghi Các phép toán trên thanh ghi cũng thực hiện trong ALU

Hơn nữa, trong hoạt động của thanh ghi, các chế độ địa chỉ ô nhớ quy ước còn có thể

được sử dụng trên tập thanh ghi đa năng Điều này có nghĩa là tập thanh ghi đa năng được

gán 32 đường địa chỉ thấp nhất trong không gian dữ liệu (từ $00 + $1F), cho phép truy

nhập chúng như những vùng bộ nhớ thông thường

Không gian bộ nhớ vào/ra bao gồm 64 đường địa chỉ cho các chức năng ngoại vi của

CPU như các thanh ghi điều khiển, các Bộ Timer/Counter, các bộ chuyển đổi A/D và các

chức năng vào/ra khác Bộ nhớ vào/ra có thể được đăng nhập lập tức hoặc như các vị trí không gian dữ liệu theo sau vị trí các tập thanh ghi $20 + $5F

AVR sử dụng cấu trúc Harvard với bộ nhớ và địa chỉ bus tách biệt ding cho chương trình và dữ liệu Bộ nhớ chương trình được thực hiện với 1 đường ống 2 tầng Trong khi

một lệnh đang được thực thi thì chương trình đã nhận được lệnh kế tiếp Dựa trên cơ sở

này bộ nhớ cho phép lệnh được thực thi trong mỗi chu kì Bộ nhớ chương trình là bộ nhớ Flash lập trình được

Trang 15

Trang 13

PHÂN A ~ Chương I

Với các lệnh gọi và nhảy, các lệnh này được truy nhập nhanh chóng trong toàn bộ

vùng không gian dia chi 4K Hau hét các lệnh trong AVR có định dạng từ đơn 16bit Mọi

địa chỉ bộ nhớ chương trình đêu chứ 1 lệnh 16bit hoặc 32bit

Trong suốt quá trình gọi ngắt và thủ tục con, địa chỉ trả lại của bộ đếm chương trình

được giữ trong ngăn xếp Ngăn xếp được định trong vùng hoạt động của bộ nhớ SRAM,

do đó kích thước ngăn xếp chỉ giới hạn trong trong toàn bộ kích thước bộ nhớ và không

gian đã sử dụng của SRAM Tắt cả chương trình người sử dụng phải tạo lại giá trị ban đầu cho con trỏ SP khi khởi động chương trình (trước khi chương trình con và ngắt được thực

th SP 10bit được truy nhập dé doc/ghi trong vùng không gian vào/ra

Vì được hỗ trợ trong cấu trúc AVR nên bộ nhớ dữ liệu SRAM 512bytes có thể được

truy xuất một cách dễ dàng qua 5 chế độ địa chỉ khác nhau

„ Không gian bộ nhớ trong cấu trúc AVR được định theo kiểu ánh xạ bộ nhớ tuyến tính

Khối ¡ ngất linh hoạt có các thanh ghi điều khiển trong không „gian vào/ra với bit cho

phép ngất toàn cục trong các thanh ghi trạng thái Tất cả các ngắt khác đều cé 1 vector

ngắt riêng biệt trong bảng vector ngắt ở đầu bộ nhớ chuong trình Các ngắt có chế độ ưu

tiên phù hợp với vị trí vector ngắt của chúng Vector ngắt càng thấp thì độ ưu tiên càng

cao

Trang 16

Trang 14

PHAN A — Chuong I

4.2 Tap thanh ghi da nang

Hình 4.3 thê hiện câu trúc của 32 thanh ghi đa năng trên CPU

$1B Xregister high byte

SID Y-register high byte

$IE Z-reglster lưw byte SIF Z-regieter hịgh byte

Hình 4.3: Các thanh ghỉ đa năng trên CPU

Tắt cả các lệnh điều hành thanh ghi trong tập lệnh đều có thể được truy xuất trực tiếp

và trong 1 chu ky don Chỉ có I ngoại lệ là 5 lệnh cho các hằng số toán học va logic SBCI, SUBI, CPI, ANDI, ORI, gitta 1 thanh ghi va 1 hang số và lệnh LDI cho việc tải đữ

liệu không đổi 1 cách nhanh chóng Các lệnh nay chi tác động đến | nita thanh ghi trong

tap thanh ghi (R16 + R31)

Các lệnh thông thường SBC, SUB, CP, AND, OR và tất cả các toán học khác giữa 2

thanh ghỉ hoặc 1 thanh ghi đều tác động đến toàn bộ thanh ghi

Như hình 4.3, mỗi thanh ghi được gán địa chỉ bộ nhớ dữ liệu, ánh xạ chúng vào trong

vi tri 32 dau tiên của không gian dữ liệu của người sử dụng Mặc dù không được thực thi

theo đúng quy luật như vùng SRAM, tổ chức bộ nhớ này thể hiện sự linh hoạt tốt trong việc truy xuất thanh ghi, vì thanh ghi X, Y có thể thiết lập đến chỉ mục nào đó trong tập

thanh ghi đa năng

Thanh ghi X,Y,Z Thanh ghi R26 + R31 có thêm một vài chức năng đã được sử dụng Những thanh ghi này là địa chỉ con trỏ dùng cho địa chỉ gián tiếp của không gian dữ liệu Ba thanh

ghi địa chỉ gián tiếp X, Y, Z được định trỏ trong hình 4.4

Trang 17

Trang 15

Bình 4.4: Các thanh ghỉ X, Y va Z

4.3 Don vi sé hoc ALU (Arithmetic Logic Unit):

Đơn vị số học thực thi cao ALU của hệ AVR hoạt động theo hướng kết nối trực tiếp

với tất cả 32 thanh ghi đa năng Trong vòng 1 chu kì xung đơn, tổ chức ALU giữa những

thanh ghi trong tập thanh ghi đa năng được thực thi Tổ chức ALU được chia làm ba mục

chính: toán học, logic, chức năng bit

4.4 Bộ nhớ chương trình Flash lập trình được ngay trên hệ thống AT90S8535 bao gồm 8KB trên chip, bộ nhớ Flash được dùng để lưu trữ chương trình

Bởi tất cả các lệnh có 16 hoặc 32 từ bit nên bộ nhớ Flash đuợc tổ chức với dung lượng

4KxI6bit Bộ nhớ Flash có sức chịu đựng ít nhất là 1000 chu kì ghi/xoá Bộ đếm chương trình (PC: Program Counter) trong AT90S8535 có 12bit mở rộng, do đó đánh địa chỉ 4096

Trang 16

Có 5 chế độ địa chỉ khác nhau dùng cho các vùng bộ nhớ dữ liệu: sự dich chuyển trực

tiếp, gián tiếp, gián tiếp, tiền giảm gián tiếp và tăng dữ liệu gián tiếp Trong tập thanh ghi,

từ thanh ghi R26 đến R31 có vai trò là thanh ghi con trỏ địa chỉ gián tiếp

Chế độ địa chỉ trực tiếp tham chiếu trên toàn bộ không gian dữ liệu

Trong chế độ dịch chuyển gián tiếp có chức năng tham chiếu tới 63 vị trí từ địa chỉ cơ

sở băng thanh ghi X, Y, Z

Khi sử dụng chế độ thanh ghi địa chỉ gián tiếp để tự động tăng hay giảm vị trí, thanh

ghi địa chỉ X, Y, Z được sử dụng

32 thanh ghi đa năng, 64 thanh ghi vào/ra và 512 bộ nhớ dữ liệu SRAM nội đều được

sử dụng qua tất cả các chế độ này

4.6 Chế độ địa chỉ dữ liệu và chương trình AVR AT90S8535 sử dụng cấu trúc RISC hỗ trợ các chế độ địa chỉ mạnh và có hiệu

suất cao dùng dé đăng nhập vào bộ nhớ chương trình (Flash) và bộ nhớ đữ liệu (SRAM,

tập thanh ghi và bộ nhớ vào/ra) Những phần này mô tả các chế độ địa chỉ khác nhau được

hỗ trợ bởi cấu trúc AVR Trong các hình, OP có nghĩa là những phần mã hoạt động của từ

lệnh Nói một cách đơn giản là tất cả các hình thể hiện chính xác vị trí của các bit địa chỉ

Trang 19

Trang 17

Hình 4.7: Các toán hạng được chứa trong thanh ghỉ r (Rr) và d (R4)

Kết quả được lưu trữ tại trong thanh ghỉ d (Rd)

Hình 4.8: Địa chỉ toán hang chika 6bit tir lénh

n Ia thanh ghi dja chi dich va nguén

Trang 20

Trang 18

Hình 4.9: Một đường địa chỉ dữ liệu 16bit chứa 1 6 bit LSB của 2 từ lệnh

Rd/Rr chi ré thanh ghi nguon/dich

Data Space

Hình 4.10: Dia chỉ toán hạng là kết qủa của thanh ghi Y,Z

có chứa thêm 6bif địa chỉ của một từ lệnh

Trang 19

Hình 4.14: Địa chỉ byte hằng số được định rõ trong thanh ghỉ Z

15bit cao MSB được chọn làm địa chỉ (0 + 4K)

Bit thap LSB dugc chon lam byte thip néu LSB=[0] va la byte cao néu MSB=[1]

Trang 22

Trang 20

Hình 4.15: Chương trình sẽ tiếp tục truy xuất

những gì chứa trong thanh ghỉ Z

PROGRAM MEMORY seco

srr

Hinh 4.16: Chương trình sẽ tiếp tục tray xuất tới địa chỉ PC + k +1

Dia chỉ k được lẫy từ 2048 đắn 2047

4.7 Bộ nhớ dữ liệu EEPROM

AT90S§8535 chứa 512 byte trong bộ nhớ dữ liệu EEPROM Nó vận hành trong vùng không gian dữ liệu riêng biệt, nơi mà những byte dữ liệu đơn có thể được đọc/ghi

EEPROM có thể chịu được ít nhất 100.000 chu kỳ ghi/xoá

4.8 Thời gian đăng nhập bộ nhớ và thời gian thực thi tập lệnh

Phần này mô tả thời gian đăng nhập làm cơ sở để thực thi lệnh và đăng nhập bộ nhớ nội

CPU AVR được vận hành bởi hệ thống Ø, được phát ra một cách trực tiếp từ đồng hồ thạch anh ngoài dùng trong chip Đồng hồ hệ thống này không qua bắt kì bộ chia nào

Bộ xử lý này có một hệ thống 2 tầng và lệnh nạp/giải mã được thực hiện đồng thời với

lệnh thực thi

Trang 23

Trang 21

t ‡

ft i ' i

ALU Operation Execute < 2>

Result Write Back ! < t? Ị

Bình 4.18: Hoạt động của ALU trong một chu kỳ đơn

Việc đăng nhập bộ nhớ dữ liệu SRAM nội được thực hiện trong 2 chu kỳ xung nhịp

của đồng hồ hệ thống được miêu tả ở hình 4.19

Không gian xác định vào/ra của AT90S8535 được thể hiện ở bảng 4.1

Trang 24

Trang 22

PHÂN A ~ Chương I

$3F($5F) SREG | Thanh ghi trang thai

$3E($5E) SPH Thanh ghi con tro(byte cao)

$3D($5D) SPL | Thanh ghi con trỏ (byte thấp)

$3B($5B) GIMSK _ | Thanh ghi che ngắt chung

$3A($5A) GIFR | Thanh ghi cờ ngắt chung

$35($55) MCUCR | Thanh ghi điều khiển chung MCU

$2B($4B) OCRIAH | Thanh ghi so sánh lối ra T/CA(byte cao)

$2A($4A) OCRIAL, | Thanh ghi so sánh lối ra T/CA(byte thấp)

$26($46) ICRIL | Thanh ghi bắt mẫu ngõ ra bộ đếm T/C(byte thấp)

$25($45) TCCR2 | Thanh ghi điều khiển T/C2

$23($43) OCR2 | Thanh ghi so sánh ngõ ra bộ T/C2

$22($42) ASSR_ | Thanh ghi trang thái chế độ bất đồng bộ

$1F($3E) EEARH | Thanh ghi dia chi EEPROM byte cao

$11($31) DDRD | Thanh ghi huéng dit liéu,Port D

$0C($2C) UDR | Thanh ghi dữ liệu vào/ra UART

Trang 23

PHAN A — Chuong I

$0A($2A) UCR Thanh ghi điêu khiên UART

$08($28) ACSR_ | Thanh ghi trang thai va điều khiển bộ so sánh tương tự

$07($27) ADMUX | Thanh ghi lựa chọn kênh cho bộ chuyển đổi ADC

$06($26) ADCSR | Thanh ghi trang thai va diéu khién ADC

$05($25) ADCH_ | Thanh ghi dữ liệu ADC byte cao

$(04($24) ADCL _ | Thanh ghi dữ liệu ADC byte thấp

Bảng 4.1: Không gian 1O của AT90S8535

— Chú ý: Những vùng không sử dụng và đặc biệt không được liệt kê trong bảng này

Tắt cả các thiết bị vào/ra của AT90S8535 và thiết bị ngoại vi đều được đặt không gian vào/ra Vị trí vào/ra được truy xuất bằng lệnh IN/OUT để truyền dữ liệu giữa 32 thanh ghi

đa năng và vùng không gian vào/ra Thanh ghi vào/ra có vùng địa chỉ $00 + $1F, do đó việc truy xuất bit sẽ được thực hiện ngay lập tức bằng lệnh SBI/CBI Trong những thanh ghi này, giá trị của bit đơn có thể được kiểm tra bằng lệnh SBIS/SBIC Khi dùng lệnh IN/OUT lênh hệ thống vào/ra thì địa chỉ của hệ thống này được sử dụng từ $00 + $3F Khi

sử dụng đường địa chỉ cla SRAM thì ta thêm vào $20 vào những đường địa chỉ trên Tat

cả các đường địa chỉ thanh ghỉ vào hệ thống vào/ra trong suốt tài liệu này được trình bày cùng với đường địa chỉ SRAM trong ngoặc đơn

Đối với những thiết bị tương thích trong tương lai, những bit đặc biệt được ghỉ là Zero nếu được truy xuất tới Địa chỉ bộ nhớ vào/ra riêng thì không nên ghi

Một vài cờ trạng thái được xoá bằng cách ghi chúng ở mức [1] Lưu ý là lệnh SB1/CBI

sẽ tác động lên tất cả các bit trong thanh ghi vào/ra, cờ sẽ được ghi lại ở mức [1] vì thế nên xoá cờ Lệnh SBI/CBI chỉ làm việc trên thanh ghi $00 + $IF

a) Thanh ghi trang thái (Status Register) SREG

Thanh ghi trạng thái AVR ở vị trí không gian vào/ra $3F (§5F) được định nghĩa

e _ Bir7- I: Global Interrupt Enable: Cho phép ngắt toàn cục

Các bit cho phép ngắt toàn cục phải được thiết lập (mức [1]) cho phép ngắt

Việc cho phép điều khiển các ngắt riêng biệt sẽ được thực hiện trên các thanh ghi

điều khiển riêng biệt Nếu bit cho phép ngắt toàn cục bị xoá (mức [0]) thì không có

ngắt nào được phép thiết lập độc lap Bit I được xoá bang phan cứng sau khi 1 ngắt xảy ra và được thiết lập bằng lệnh RETI cho phép ngắt tiếp theo thực hiện

Các lệnh BLD/BST (nạp bitlưu trữ bit) như nguồn/đích để vận hành Một bit

từ thanh ghi trong tập thanh ghỉ được sao chép vào T bằng lệnh BST và một bit trong T được sao chép vào thanh ghi trong tập thanh ghi bằng lệnh BLD

¢ Bit 5 - H: Haft-carry Flags, bit H cho biết chỉ nhớ một nửa trong một số lệnh số

học

Trang 26

Trang 24

PHAN A - Chuong I

kết quả giữa cờ phủ định N va cờ tràn bù nhị phân V

e Bit 3 - V: Two’s Complement Overflow Flag (cé tran bu nhi phan) Co tran bu nhi

phân V hỗ trợ phép toán bù nhị phân

¢ Bit 2 - N: Negative Flag (cờ phủ định) Cờ phủ định N cho biết một kết quả phủ

định từ một phép toán hay phép logic

© Bit 1 - Z: Zero Flag (co 0) Cờ 0 cho phép cho biết một kết qủa bằng 0 từ phép toán

không gian vào/ra có địa chỉ $3E ($5E) + $3D ($5D) Khi bộ nhớ dữ liệu của

AT90S8535 có $25F vị trí, 10bit được sử dụng

SRAM phải được định rõ bằng chương trình trước khi gọi bất kỳ chương trình con

nào được thực thi và được phép ngắt Con trỏ ngăn xếp phải được thiết lập đến điểm

phía trên $60 Con trỏ ngăn xếp giảm xuống 1 giá trị khi dữ liệu được đây về phía trên ngăn xếp bằng lệnh PUSH và nó giảm xuống 2 khi một địa chỉ được đây lên trên ngăn

xếp cùng với việc gọi chương trình con và ngắt Con trỏ ngăn xếp được tăng lên 1 giá

trị khi dữ liệu được kéo ra từ ngăn xếp bằng lệnh POP và nó được tăng lên 2 khi một địa chỉ được kéo ra từ ngăn xếp cùng với việc trả lại thủ tực con RET hoặc lệnh ngắt

RETI

4.10 Chế độ ngủ

Để lập bắt kỳ chế độ ngủ nào, bit SE trong thanh ghỉ MCUCR phải được đặt lên [1] va

thực thi lệnh SLEEP Bit SM0/SMI trong thanh ghỉ MCUCR chọn lựa chế độ ngu (Idle, Power-save, Power-down) sẽ được kích hoạt bằng lệnh SLEEP

Nếu một ngắt cho phép xảy ra trong khi MCU ngủ thì MCU sẽ dậy và thực thi thường

trình ngắt và sẽ ngủ lại khi hoàn tất thường trình đó.Lú đó bộ nhớ SRAM và I/O không bị thay đôi nội dung tập thanh ghi Ngoài ra nếu có một tín hiệu reset xuất hiện trong suốt

chê độ ngủ thì MCU sẽ dậy thực thi vector reset đó

Trang 27

Trang 25

cũng như các thiết bị nội như Timer Overflow và ngắt hoàn tất quá trình truyền nhận

của UART hoạt động Nếu MCU khởi động từ một ngắt so sánh tương tự thì không

được đáp ứ ứng, bộ so sánh tương tự thì không được đáp ứng, bộ so sánh tương tự có thê làm giảm dòng tiêu thụ bằng cách thiết lập bit ADC trong thanh ghi điều khiển và trạng thái so sánh tương tự (ASCR) Điều này sẽ giúp tái tạo lại năng lượng tiệu thụ

trong chế độ Idle và CPU sẽ khởi động lại một cách nhanh chóng

b) Power-down (Chế độ giảm dòng tiêu thụ)

Khi bit SM1 và SMO duoc đặt lên 10, lệnh SLEEP sẽ làm cho MCU đăng nhập vào

chế độ Power-down Trong chế độ này bộ đao động ngoài sẽ ngưng | hoạt động trong khi bộ ngắt ngoài và bộ định thời 'Watchdog (nếu được phép) vẫn tiếp tục vận hành

Chỉ cần một tín hiệu reset, reset Watchdog (néu được phép) hay một ngắt mức ngoài

cũng có thế đánh thức MCU

Lưu ý là khi một ngắt trigger theo mức được sử dụng để đánh thức chế độ Power- down, mức thấp phải được giữ trong một khoảng thời gian dài hơn chu kỳ nghỉ trễ của

tín hiệu reset trour

Khi thoát khỏi chế độ Power- down, tín hiệu trễ xuất hiện tạo điều kiện để MCU

thức dậy cho đến khi thoát khỏi chế độ ngủ hoàn toàn Điều này cho phép đồng hồ

khởi động và cho đến khi ổn định thì ngưng

Nếu điều kiện đánh thức MCU xuất hiện trước khi MCU thức dậy và bắt đầu thực thi,ví dụ: Mức thấp không giữ được thời gian đủ dài sẽ làm cho việc thoát khỏi trạng

thái ngủ không được thực hiện

©) Power-save (Chế độ tiết kiệm năng lượng) Khi bit SM1 và SM0 được đặt lên 11, lệnh SLEEP sẽ làm cho MCU đăng nhập vào

chế độ Power-save Đây cũng là chế độ Power-down nhưng có một ngoại lệ: nếu Timer/Counter2 phát xung bất đồng bộ, tức là bit AS2 trong thanh ghi ASSR được thiết lập, Timer/Counter2 sẽ hoạt động trong suốt quá trình ngủ Ngoài ra các linh kiện cũng có thể thoát khỏi chế độ Power-save khi có tín hiệu tràn bộ định thời, hay sự kiện

so sánh ngõ ra từ Timer/Counter2 nếu bit cho phép ngắt Timer/Counter2 tương ứng trong thanh ghi TIMSK và bit cho phép ngắt toàn cục trong thanh ghi SREG được thiết

lập

Khi thoát khỏi chế độ Power-save bằng bộ ngắt ngoài, hai chu kỳ lệnh được thực thi trước khi cờ ngất được cập nhật lại và khi được đánh thức bằng bộ định thời bắt

đồng bộ, ba chu kỳ lệnh được thực thi trước khi các cờ được cập nhật lại Và trong

suốt những chu kỳ này, bộ vi xử lý thực thi nhiều lệnh nhưng điều kiện ngắt không

được đọc và thường trình ngắt đã không được khởi động

Nếu bộ định thời bất đồng bộ không phát ra xung bất đồng bộ, chế độ Power-down được chọn thay vì Power-save bởi vì những nội dung trong các thanh ghi của bộ định thời bất đồng bộ sẽ không được định nghĩa sau khi thoát khỏi chế độ Power-save cho

dù AS2 = [0]

Trang 28

Trang 26

PHAN A - Chuong I

V TRUY XUAT DOC/GHI EEPROM

5.1 Giới thiệu ;

Thanh ghi truy xuat b6 nho EEPROM dugc str dung trong khéng gian I/O

Thời gian truy xuất ghi dữ liệu là trong khoảng 2.5 + 4ms, phụ thuộc vào điện áp

nguồn 'Vcc Chức năng seft-timing cho phép phân mêm người sử dụng dò tìm khi byte kế

tiếp có thể được ghi vào Một ngắt đọc đặc biệt của EEPROM có thể được thiết lập đến trigger khi EEPROM sẵn sàng nhận dữ liệu mới

Để tránh định trước việc ghỉ EEPROM, một quá trình ghỉ cụ thể phải được thẻ hiện

Khi đọc EEPROM thì CPU phải được tạm ngưng trong 4 chu kỳ xung nhịp trước khi

lệnh kế tiếp được thực thi Khi EEPROM được ghi thì CPU phải được tạm ngưng trong 2 chu kỳ xung nhịp trước khi lệnh kế tiếp được thực thi

5.2 Thanh ghi địa chỉ EEPROM - EEARH, EEARL

Đối với thao tác ghi cla EEPROM, thanh ghi dữ liệu EEDR chứa dữ liệu được ghi đến

EEPROM trong ving dia chi được định bởi thanh ghi EEAR Đối với thao tác đọc của

EEPROM, thanh ghi dữ liệu EEDR chứa dữ liệu được đọc ra EEPROM trong vùng địa chỉ được định bởi thanh ghi EEAR

5.4 Thanh ghi điều khiển EEPROM - EECR

© Bữ7+ 4- Res: Các bit thụ động Các bit này luôn được đặt ở mức [0]

e Bit 3 - EERIE: EEPROM Ready Interrupt Enable

Trang 29

Trang 27

PHAN A - Chuong I

Khi bit I trong thanh ghi SREG va EERIE được đặt lên [I], ngắt EEPROM Ready

được cho phépvà khi xoá xuống [0] thì ngắt bị câm Ngắt EEPROM Ready phát ra một

ngắt hăng khi EEWE bị xoá xuống [0]

Bit 2 - EEMWE: EEPROM Master Write Enable Việc đặt EEMWE lên [1] sau đó việc thiết lập EEWE sẽ chỉ ghỉ đữ liệu lên bộ nhớ EEPROM tại vùng địa chỉ đã được chọn Nếu EEMWE bị xoá xuống [0] thì thiết lập EEWE cũng không có tác dụng gì Khi EEMWE được đặt lên [1] bằng phần mềm thì phần cứng sẽ xoá bit này xuống [0] sau bốn chu kỳ xung nhịp

Bit 1 - EEWE: EEPROM Write Enable Khi dữ liệu và đường địa chỉ được cài đặt một cách chính xác, bit EEWE phải

được thiết lập để ghi giá trị vào trong EEPROM Khi mức logic [1] được đặt vào bịt

EEWE thì bit EEMWE phải được thiệt lập, nếu không sẽ không thao tác ghi EEPROM được Các dãy lệnh ghi dữ liệu bộ nhớ EEPROM được viết như sau (bước 2 và 3

không cần thiết):

1 Chờ cho đến khi EEWE trở thành [0]

2 Ghi đường địa chỉ mới của EEPROM đến EEARL và EEARH (không bắt buộc)

3 Ghi đữ liệu mới cua EEPROM đến EEDR (không bắt buộc)

4 Ghi mức logic [1] vào bit EEMWE trong thanh ghi EECR (để có thể ghỉ mức

logic [1] vào bit EEMWE thì bit EEWE phải được ghi là [0] trong cùng một chu kỳ)

5 Trong vòng 4 chu kỳ xung nhịp sau khi EEMWE được thiết lập, ghỉ mức logic

[1] lén EEWE

—= Chú ý: Một tín hiệu phá vỡ sự liên tục giữa bước 4 và bước 5 sẽ làm hỏng chu kỳ

ghi, khi đó EEPROM Master Write Enable sẽ nghỉ Nếu có một ngắt thường trình đăng

nhập EEPROM làm gián đoạn một đăng nhập khác vào EEPROM thì sẽ làm cho thanh

ghi EEAR và EEDR bị thay đổi Vì vậy nên cần xóa cờ ngắt cục trong suốt bốn bước

cuối để tránh những vấn đề này

Khi thời gian truy xuất ghi trôi qua (2.5ms tại Vcc= 5V và 4ms tại Vcc = 2.7V), bit

EEWE sé bj xoá xuống [0] bằng phần cứng Phần mềm người sử dụng có thể thăm dò

và chờ bit này xem đã là [0] chưa trước khi ghi byte kế tiếp Khi EEWE được thiết lập, CPU tạm nghỉ trong hai chu kỳ xung trước khi lệnh kế tiếp được thực thi

Bit 0 - EERE: EEPOM Read Enable Khi dja chi chinh xác được cài đặt trong thanh ghi EEAR, bit EERE được thiết lập

Khi bit EERE xoá xuống [0] bằng phần cứng, dữ liệu yêu cầu đã có trong thanh ghi EEDR Việc đăng nhập đọc EEPROM tốn một lệnh và cũng không cần phải kiểm tra

bit EERE Khi bit EERE được thiết lập thì CPU tạm nghỉ trong 4 chu kỳ xung nhịp

trước khi lệnh kế tiếp được thực thi

Người sử dụng nên kiểm tra bit EEWE trước khi bắt đầu chương trình đọc Nếu có một

tiến trình ghi dữ liệu đang diễn ra mà thanh ghi IO EEPROM lại ghi dữ liệu hoặc địa chỉ

mới thì tiễn trình ghi dữ liệu này sẽ bị gián đoạn và kết quả sẽ không rõ ràng

5.5 Tránh sai sét trong EEPROM Trong suốt chu ky điện áp nguồn Vcc thấp, dữ liệu có thể bị thất thoát bởi vì nguồn cung cấp quá thấp để cho CPU và EEPROM vận hành chính xác Vấn đề đặt ra là làm sao tránh những thất thoát dữ liệu đối với các EEPROM trên chip cũng như tránh thất thoát dữ liệu đối với những vi mạch không có EEPROM trên chip

Khi điện áp quá thấp sẽ phát sinh ra hai nguyên nhân dẫn đến đữ liệu trên EEPROM bị sai lệch Thứ nhất, một trình tự ghi thông thường lên EEPROM cần điện áp nhỏ nhất để

Trang 30

Trang 28

1 Giữ cho Reset AVR tích cực mức thấp trong suốt thời gian điện áp nguồn nuôi

không đủ Tốt nhất là dùng mạch bảo vệ reset nguồn nuôi mức thấp bên ngoài,

thông thường hay dùng phát hiện Brown-out (BOD)

2 Tránh ghi vào bộ nhớ EEPROM trong thời gian điện áp nguồn nuôi bị giám thấp

3 Không nên sử dụng bộ nhớ EEPROM một cách lạm dụng Đây là giải pháp chỉ được

sử dụng khi có yêu cầu

VI GIAO DIỆN THIẾT BỊ NGOẠI VI NÓI TIẾP SPI (SERIAL PERIPHERAL

INTERFACE)

SPI cho phép truyền dữ liệu đồng bộ tốc độ cao giữa AT90S8535 và các linh kiện

ngoại vi hoặc giữa các linh kiện AVR

Bảo vệ cờ xung đột khi ghi

Thoát khỏi chế độ Idle (ngủ )

Ngày đăng: 26/10/2013, 23:34

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w