GIỚI THIỆU VỀ CHIP VĐK © Vididu khién AVR 8 bit có khả năng xử lý cao và năng lượng tiêu thụ thấp e Sử dụng cấu trúc RISC Reduced Instruction Set Computer — cầu trúc có khả năng xử lý
Trang 1
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP.HCM
KHOA ĐIỆN - ĐIỆN TỬ NGÀNH ĐIỆN TỬ VIỄN THÔNG
TRÀN ĐÀO ĐÌNH QUY (họ và tên sinh viên)
103101086 (mã số sinh viên)
ĐO ĐỘ ÂM - NHIỆT ĐỘ DÙNG AVR ATMEGA16
DO AN TOT NGHIEP
Gido vién huéng dan: LE QUOC DAN
Trang 2Luan Van Tét Nghiép | GVHD: LE QUOC DAN
MUC LUC
BÌA
NHIỆM VỤ LUẬN ÁN TÓT NGHIỆP
NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN PHẢN BIỆN
4.2 | CHUC NANG CHAN SS 41
Chương 5 CÁC HOẠT ĐỘNG -cscccrretrrritrrrrerrrrriirirrririiiririiin 46
5.1 | BỘ BIẾN ĐỎI ADC (ANOLOG TO DIGITAL CONVERTER) 46 5.2 | BỘ SO SÁNH TƯƠNG TỰ 5-5255 2ccsrterterrtrttrtietrririrrriie 53
Trang 3
SERIAL RECEIVER AND TRANSMITTER) ¿55 s+seeetrttrrtrterrrrie 60
Chương 7 ĐO NHIỆT ĐỘ - 5c 55c+22 tt mi 76
71 HỆ THÓNG ĐO LƯỜNG NHIỆT ĐỘ .-cccceniennreierrerrrree 76
7.2 ' CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ - -5- 5< 77 e1 097) 0078 83
8N e-\0:)02839Ẽ7) 0 84 Chương 9 CÁC CÔNG GIAO TIẾP TRÊN PC -5cccccsnnietrrrrrrirrrriie 86
9.1 | GIAO TIẾP BẰNG CÔNG MÁY TN c-cccccserrerreriirrrrerrree 86 9.2 | CHUẨN GIAO TIẾP COM (RS-232) -ccccerrrrrreririrrrrrrre 86
9.3 Chuẩn Giao Tiếp RS-484 s5 SntnrhtrhtH ri 87
9.4 | Chuẩn Giao Tiếp USB cs-ccnierrrrrirtrittritiiirirriidririiirriie 89 Chương 10 KHẢ NĂNG ỨNG DỤNG CỦA AVR -csccccneeceerrrerire 92
10.1 ĐỀ XUẤT KHẢ NĂNG ỨNG DỤNG CỦA AVR - ~ 92 10.2.) UNG DUNG THIET KE MACH BO DO AM - NHIỆT ĐỘ 93
— Chuong 11, THIET KE PHAN CUNG u ssssssesesssssseessnnssseeeetinnnneeeernnssceeenennsssnnn 95
11.3 SO DO MACH NGUYÊN LÝ -cc©cs+crerrtetrttrterrrriirrrreee 97
11.4 MỘT SÓ LINH KIỆN DÙNG TRONG MẠCH - 99 11.5 TÍNH TOÁN THIẾT KẾ -5-55+s+ccserettererrtrrrrrserrerrie 105
11.6 LƯU ĐÔ CHƯƠNG TRÌNH CHÍNH .-. -5ccccceerertrrrrree 116
Chương 12 THIET KÉ PHẦN MÈM -ó:-cstcrenhrerrrerrerirerrrrrrree 117
12.1 YEU CAU PHAN MEM.uvcccsscssssssssssesseccseesessnsesessucsnessneeseessesneesseeneseneny 117
SVTH: TRÀN ĐÀO ĐÌNH QUÝ
Trang 4
Luan Van Tot Nghiép | GVHD: LE QUOC DAN
12.2 THIẾT KẾ PHẦN MÈM -:°cc55sereertrrtertertrrrrrrere 117 Chương 13 KẾT LUẬN -. c55¿c552£222tttttxrrtrtrtttrttrtriiirriritrririrrriiiii 123 13.1 ĐÁNH GIÁ TÔNG QUAN VỀ ĐỎ ÁN is 123 13.2 HƯỚNG PHÁT TRIÊN CỦA ĐÈ TÀI . -:-+esserrrttrere 123
Chương 14 TÀI LIỆU THAM KHẢO -:-+-s++ccserrirrerietrrrrrtrrrrrrrere 125
Trang 5
Chương I GIỚI THIỆU VỀ CHIP VĐK
© Vididu khién AVR 8 bit có khả năng xử lý cao và năng lượng tiêu thụ thấp
e Sử dụng cấu trúc RISC (Reduced Instruction Set Computer) — cầu trúc có khả năng xử lý cao và năng lượng tiêu thụ thấp
131 lệnh mạnh - hầu hết thực hiện trong một chu kỳ xung nhịp
32 thanh ghi làm việc đa năng 8 bít Tốc độ xử lý trên 16 triệu lệnh/s ở tần số 16 Mhz e© _ Bộ nhớ dữ liệu và bộ nhớ chương trình
Bộ nhớ chương trình Flash 16K byte có thể lập trình ngay trên hệ thống EEPROM 512 byte
SRAM ni IK byte Chu ky ghi/xoa: 10.000/100.000 cho EEPROM Khả năng ghi nhớ dữ liệu: 20 năm ở 85°C/100 năm ở 25°C Lập trình khoá để bảo mật phần mềm chương trình
Viéc lap trinh cia Flash, EEPROM, Fuses va bit Lock thông qua giao diện
Trang 6
1 bộ Timer/Counter 16 bit với chế độ chia tần tách biệt, chế độ so sánh và chế
độ bắt mẫu
Bộ đếm thời gian thực với bộ dao động tách biệt
4 kênh điều biến độ rộng xung (PWM)
Bộ chuyển đổi ADC 8 kênh, 10 bit
- 8 kênh đơn
- 7 kênh vi sai trong đóng gói TQFP
- 2 kênh vi sai với độ lợi lập trình được ở Ix, 10x, hoặc 200x
Bộ giao diện nối tiếp 2 dây byte định hướng
Bộ USART (Universal Synchronous And Asynchronous Serial Receiver And Transmitter) nối tiếp lập trình được
Bộ giao diện nối tiép SPI (Serial Peripheral Interface) chủ/tớ
Bộ định thời Watchdog lập trình được với bộ dao động trên chip tách biệt
Bộ so sánh tương tự trên chip
e Dac tính đặc biệt của VĐK
Bộ Reset khi mở nguồn và phát hiện sụt áp có thể lập trình
Bộ dao động RC được chỉnh bên trong
Các nguồn ngắt ngoài và trong
Có 6 chế độ ngủ: nghỉ, giảm nhiễu ADC, tiết kiệm năng lượng, giảm dòng tiêu thụ, dự phòng và dự phòng ngoài
e Hệ thống vào/ra và cách đóng gói
32 đường vào/ra lập trình được
PDIP 40 chan, TQFP 44 chan, va QFN/MLF 44 dém
Trang 7Luan Van Tét Nghiép GVHD: LE QUOC DAN
1.2 SO DO CHAN - CHUC NANG CAC CHAN
(MISO) PBG CI 7 34 [9 PAG (ADCE) (8cK) PB7 Cj 6 33 HH PA7 (ADC7)
Hình 1-1: Sơ đồ chân ATmegal6
Port A là một cổng vào/ra 2 hướng 8 bit, nếu bộ chuyển đối không được dùng
Chân Port có các điện trở nối lên nguồn đương (được chọn cho mỗi bit) Ngõ ra Port A
có những đặc tính điều khiển đối xứng với cả hai khả năng chịu đựng nguồn và nhiệt
cao Khi chan PAO toi chân PA7 đượ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
Port A cũng được sử dụng khi một 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 đặt ở trạng thái 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
1.2.3 PortB(PB7 : PB0)
Port B là một cổng vào/ra 2 hướng 8 bit với các điện trở kéo lên nguồn đương bên trong (được chọn cho mỗi bit) Ngõ ra Port B có những đặc tính điều khiển đối xứng với cả hai khả năng chịu đựng nguôn và nhiệt cao Cũng như các chân ngõ vào,
Trang 8
Luan Van Tét Nghiép GVHD: LE QUOC DAN
các chân Port B được đặt xuống mức thấp từ bên ngoài sẽ là nguồn dòng nếu các điện trở nối lên cực đương được kích hoạt Các chân Port B sẽ được đặt trạng thái thứ 3 khi tín hiệu reset ở mức tích cực, ngay khi xung nhịp không hoạt động
1.2.4 PortC (PC7 + PCO)
Port C là một cổng vào/ra 2 hướng 8 bit với các điện trở kéo lên nguồn dương bên trong (được chọn cho mỗi bit) Ngõ ra Port C có những đặc tính điều khiển đối xứng với cả hai khả năng chịu đựng nguồn và nhiệt cao Cũng như các chân ngõ vào, các chân Port B được đặt xuống mức thấp từ bên ngoài 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 Port C sẽ được đặt trạng thái thứ 3
(tổng trở cao) khi tín hiệu reset ở mức tích cực, ngay khi xung nhịp không hoạt động Nếu giao diện JTAG được mức cho phép, những điện trở kéo lên trên những chân PC5(TDI), PC3(TMS) và PC2(TCK) sẽ được kích hoạt ngay cả khi nếu một reset xuất hiện
1.2.5 PortD(PD7 : PD0)
Port D là một cổng vào/ra 2 hướng 8 bit với các điện trở kéo lên nguồn đương bên trong (được chọn cho mỗi bit) Ngõ ra Port D có những đặc tính điều khiến đối xứng với cả hai khả năng chịu đựng nguồn và nhiệt cao Cũng như các chân ngõ vào, các chân Port D được đặt xuống mức thấp từ bên ngoài 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 Port C sẽ được đặt trạng thái thứ 3
(tổng trở cao) khi tín hiệu reset ở mức tích cực, ngay khi xung nhịp không hoạt động
1.2.6 VCC, GND, RESET, XTAL1, XTAL2, AVCC, AREE
e GND: Dat
e RESET : Ngé vao Reset M6t mirc thấp trên chân này đài hơn độ rộng xung tối thiểu sẽ tạo ra một reset, ngay khi xung nhịp không hoạt động Độ rộng xung tối thiểu là 1,5us Xung ngắn hơn không đảm bảo để tạo ra một reset
e XTALI: Ngõ vào của bộ khuếch đại dao động đảo và mạch tạo xung nhịp bên
trong
Trang 9
e XTAL2: Ngõ ra của bộ khuếch đại dao động đảo
e_ AVCC: là chân nguồn cung cấp cho Port A và bộ chuyển đổi A/D Nó nên được kết nối ngoài tới VCC, ngay khi nếu bộ ADC không được dùng Nếu bộ ADC được
sử dụng thì nó được kết nối tới VCC thông qua một mạch lọc thông thấp
e© AREF: là chân tham chiếu cho bộ chuyển đổi A/D
1.3 MÔ TẢ
ATmegal6 là bộ vi điều khiển CMOS 8 bit tiêu thụ công suất thấp dựa trên cầu
trúc AVR RISC (Reduced Indtruction Set Computer: máy tính có tập lệnh 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, ATmegaló đạt
được tốc độ xử lý trên 1 triệu lệnh/1s ở 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à không ảnh hưởng đến tốc độ xử lý
Trang 10
Luan Van Tét Nghiép
4 kL & & @ a &@ 4 ; - ¬ ^
PORTA DRIVERSBUFFERS PORTC DRIVERS/BUFFERS
PORTA DIGITAL INTERFACE BORTC DIGITAL INTERFACE
mí MUX & ADC INTERFACE ADC Twi
TIMERS? ne) wry pO
REGISTER | Lis! PURPOSE TIMER OSCILLATOR fl
PORTB DIGITAL INTERFACE PORTD DIGITAL INTERFACE
Trang 11
1.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ố học ALU (Arthmetic 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ình 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
ATmegal6 cung cấp các thông số đặc trưng sau: bộ nhớ Flash 16K byte lap
trình được ngay trên hệ thống với khả năng đọc và ghi, EEPPROM 512byte, SRAM
1K byte, 32 đường vào/ra đa năng, 32 thanh ghi làm việc đa năng, 1 giao diện JTAG,
việc lập trình và đáp ứng bộ dò sai trên chip, 3 bộ Timer/Counter làm việc linh hoạt
với chế độ so sánh, các ngắt ngoài và trong, 1 bộ USART lập trình nối tiếp, 1 giao diện
nối tiếp 2 dây byte định hướng, 1 bộ chuyển ADC 8 kênh 10 bit với trạng thái đầu vào
vi sai với độ lợi có thể lập trình, 1 bộ định thời Watchdog có thé lap trình với bộ dao
động bên trong, 1 cổng nối tiếp SPI, và 6 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 bộ
USART, bộ giao diện 2 dây, bộ chuyển đổi A/D, SRAM, bộ Timer/Counter, công SPI,
và hệ thống ngắt vẫn tiếp tục làm việc 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 ngoài kế tiếp hoặc tín hiệu reset phần cứng Ở
chế độ tiết kiệm năng lượng, bộ Timer bất đồng bộ vẫn tiếp tục hoạt động và cho phép
người sử dụng vẫn tiếp tục duy trì 1 bộ định thời cơ sở trong khi các thiết bị còn lại
trong chế độ nghỉ Chế độ giảm nhiễu ADC làm cho CPU ngừng hoạt động và tất cả
các môđun vào/ra ngoại trừ bộ Timer bất đồng bộ và bộ ADC, để nhiễu của việc
chuyển mạch đạt cực tiéu trong suốt quá trình chuyên đổi ADC Trong chế độ dự
phòng, thạch anh/bộ dao động cộng hưởng sẽ hoạt động trong khi các thiết bị còn lại
trong chế độ nghỉ Điều này cho phép việc khởi động nhanh được kết hợp với việc tiêu
thụ năng lượng thấp Ở chế độ dự phòng bên ngoài, cả hai bộ dao động chính và Timer
bất đồng bộ vẫn tiếp tục hoạt động
Các thiết bị được chế tạo bởi công tuy Atmel sử dụng công nghệ bộ nhớ không
Trang 12
Luan Van Tét Nghiép GVHD: LE QUOC DAN
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 SIP 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, hoặc bằng
chương trình khởi động trên chip đang chạy trong lõi AVR Chương trình boot có thé
sử dụng một vài giao diện để tải chương trình ứng dụng trong bộ nhớ Flash ứng dụng Phần mềm trong đoạn Flash khởi động sẽ tiếp tục hoạt động trong khi đoạn Flash khởi động được cập nhật, cung cấp hoạt động đọc ghi một cách chính xác Bằng cách kết hop 1 CPU 8 bit theo cấu trúc RISC với bộ nhớ Flash lập trình ngay trên hệ thống trong một chip đơn, ATmegaló của Atmel là bộ vi điều khiển mạnh nó đáp ứng sự linh hoạt cao và là giải pháp có giá trị hiệu quả để đưa nhiều ứng dụng điêu khiên vào
Trang 13
Chwong 2 LOI CPU AVR
2.1 GIOI THIEU
Phần này nói về cấu trúc lõi AVR tổng quát Chức năng chính là để thực hiện
chương trình một cách chính xác Cho nên CPU có thể truy cập bộ nhớ, thực hiện tính toán, điều khiển ngoại biên, và điều khiển ngắt
v
Hình 2-1: Cau trac RISC cia ATmegal6
Để làm hết hiệu suất và có tính song song, AVR sử dụng một cầu trúc Harvard
với bộ nhớ và địa chỉ bus riêng biệt cho chương trình và dữ liệu Những lệnh trong
Trang 14
Luận Văn Tốt Nghiệp GVHD: LE QUOC DAN
chương trình bộ nhớ được thực hiện với một đường ống mức đơn Trong khi một lệnh
đang được thực hiện, lệnh kế tiếp được tiền đem về từ bộ nhớ chương trình Khái niệm
này cho phép những lệnh sẽ được thực hiện trong mọi chu kỳ đồng hồ Bộ nhớ chương
trình thì có thể lập trình lại ngay trên hệ thống bộ nhớ Flash
Tập tin thanh ghi truy cập nhanh chứa 32 thanh ghi 8 bít làm việc đa năng với
một thời gian truy nhập là một chu kỳ đồng hồ đơn Điều này cho phép đơn vị số học
đơn chu kỳ hoạt động Trong một sự hoạt động ALU tiêu biểu, hai toán hạng được gửi
ra từ tập thanh ghi, thao tác được thực hiện, và kết quả được cất giữ lại trong tập thanh
ghi trong một chu kỳ đồng hồ
Sáu trong số 32 thanh ghi có thể được sử dụng như ba thanh ghi con trỏ địa chỉ
gián tiếp 16 bít cho sự định vị không gian dữ liệu - cho phép sự tính toán địa chỉ hiệu
quả Một trong những con trỏ địa chỉ có thể sử dụng như một con trỏ địa chỉ cho việc
tìm những bảng trong bộ nhớ chương trình Flash Những thanh ghi có chức năng bổ
sung này là thanh ghi 16 bít X, Y và Z
ALU hễ trợ các chức năng toán học và lôgic giữa những thanh ghi hay giữa một
hăng số và một thanh ghi Các phép toán cũng được thực hiện trong ALU Sau một
phép toán số học, thanh ghỉ trang thái được cập nhật để phản hồi thông tin về kết quả
của thao tác
Luồng chương trình do bước nhảy không điều kiện và có điều kiện và gọi
những lệnh cung cấp, có thé trực tiếp gửi toàn bộ vùng địa chỉ Đa số những lệnh của
AVR có một word 16 bit định dạng Mọi địa chỉ bộ nhớ chương trình chứa đựng một
lệnh 16 hay 32 bịt
Không gian bộ nhớ chương trình Flash được chia thành hai vùng: vùng chương
trình Boot và vùng chương trình ứng dụng Cả hai vùng có dành cho những bit Lock
cho việc ghi và sự bảo vệ đọc/ghi Lệnh SPM ghi vào trong vùng bộ nhớ ứng dụng
Flash phải được —cu trú trong vùng chương trình Boot
Trong suốt thời gian ngắt và gọi chương trình con, bộ đếm chương trình địa chỉ
trả lời được cất giữ trong ngăn xếp, ngăn xếp được chỉ định trong dữ liệu SRAM, và
vậy thì kích thước ngăn xếp chỉ bị giới hạn bởi kích thước tổng SRAM và cách dùng
của SRAM Tất cả các chương trình người dùng phải khởi tạo SP trong cài đặt thông
Trang 15
thường (trước khi những chương trình con hay những ngắt được thực hiện) Con trỏ ngăn xếp SP là đọc/ghi có thể tiếp cận trong không gian vào/ra Dit ligu SRAM có thể
dễ dàng được truy nhập thông qua năm chế độ khác nhau được hé tro trong cấu trúc AVR
Một mô đun ngắt linh hoạt có những thanh ghi điều khiển của nó trong không gian vao/ra với ngắt toàn cục thêm vào bit cho phép trong thanh ghi trạng thái Tất cả các ngắt có một vectơ ngắt riêng biệt trong bảng vectơ ngắt Những ngắt có quyền ưu tiên phù hợp với vị trí vectơ ngắt của chúng Địa chỉ vectơ ngắt thấp hơn, ưu tiên cao hơn
Không gian bộ nhớ I/O chứa 64 địa chỉ những chức năng ngoại vi CPU như thanh ghi điều khiển, SPI và các chức năng vào/ra khác Bộ nhớ vào/ra có thể được truy nhập một cách trực tiếp, hay như những không gian đữ liệu định vị trí theo tập
thanh ghi, $20 - $5F
2.1.2 Đơn vị số học 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 tất cả 32 thanh ghi đa năng Trong một chu kỳ đồng hồ đơ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, lôgic, chức năng bít Một vài sự thi hành cấu trúc cũng
cung cấp một bộ nhân việc hỗ trợ cả phép nhân có dấu/không dấu và định dạng phân
Hinh 2-2: Thanh ghi trang thai
e Bit 7—I: Global Interrupt Enable: Cho phép ngắt toàn cục
Các bít 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ó
Trang 16
Luan Van Tét Nghiép GVHD: LE QUOC DAN
ngắt nào được phép thiết lập độc lập Bit I được xoá bằng phần cứng sau khi I 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 (nap bit/luu trữ bit) như nguén/dich để vận hành Một bit từ thanh ghi trong tập thanh ghi đượ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
e Bit 5-H: Haft carry Flag: Bit H cho biết chỉ nhớ một nửa trong một số lệnh
số học
e Bit 4—S: Sign Bit (co dấu) S=N®@ V Bit S luôn luôn là một bit riêng biệt và
| là kết quả giữa cờ phủ định N và cờ tràn bù nhị phân V
bù nhị phân V hỗ trợ phép toán bù nhị phân
| e 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
e Bit 1 -Z: Zero Flag (cờ 0) Cờ 0 cho phép cho biết một kết quả bằng 0 từ phép toán hay phép logic
e Bit 0 —C: Carry Flag (co nhé) Co nhoé cho biết sự nhớ một phép toán hay phép logic
Tập thanh ghi là tập lệnh RISC được tối ưu hóa cho AVR được tăng cường Cấu trúc này được yêu cầu có tính hiệu suất và tính linh hoạt, sơ đồ vào/ra sau đây hỗ
trợ bởi tập thanh ghi:
e_ Một toán hạng đâu ra 8 bit và một kết quả đầu vào 8 bit
e_ Hai toán hạng đầu ra 8 bit và một kết quả đầu vào 8 bit
e Hai todn hang dau ra § bit và một két qua dau vao 16 bit
e_ Một toán hạng đầu ra 16 bịt và một kết quả đầu vào 16 bit
Trang 17
R27 #1E X-register High Byte
Reo $16 ¥-register High Byte
R31 $1F Z-tegister High Byte
Hình 2-3: Thanh ghỉ làm việc đa năng trên CPU Tất cả các lệnh điều thanh ghi trong tập lệnh đều có thể truy xuất trực tiếp và trong 1 chu ky don Mỗi thanh ghi được phân một địa chỉ bộ nhớ dữ liệu, ánh xạ chúng
một cách trực tiếp tới 32 vị trí đầu của không gian dữ liệu người dùng Mặc dù không
được thực thi theo đúng quy luật như vùng SRAM, tổ chức 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
e Thanh Ghi X, Y, Z
Những thanh ghi R26 R31 có một số chức năng bổ sung đã được sử dụng Những
thanh ghi này là những con trỏ địa chỉ 16 bít dùng cho địa chỉ gián tiếp của không gian
đữ liệu Ba thanh ghi địa chỉ gián tiếp X, Y và Z được định nghĩa và được mô tả trong
hình dưới
Trang 18
Ngăn xếp chủ yếu được sử dụng để cất giữ dữ liệu tạm thời, để cất giữ những
biến cục bộ và cho việc cất giữ những địa chỉ trả về sau khi ngắt và gọi những chương
trình con Thanh ghi con trỏ ngăn xếp thường trỏ vào đỉnh ngăn xếp Chú ý rằng ngăn
xếp được thực hiện từ những vị trí ô nhớ cao hơn đến những vị trí ô nhớ thấp hơn
Lệnh PUSH ngăn xếp sẽ giảm bớt con trỏ ngăn xếp Nếu phần mềm đọc bộ đếm chương trình từ ngăn xếp sau một lệnh gọi hay một ngắt, không dùng những bit
(15:13) cần phải được định mặt nạ ở ngoài
Con trỏ ngăn xếp chỉ tới vùng ngăn xếp đữ liệu SRAM nơi chương trình con và ngăn xếp ngắt được định vị Không gian ngăn xếp này trong dữ liệu SRAM phải được
định nghĩa bởi chương trình trước khi gọi chương trình con được thực hiện hay ngắt
được cho phép 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 l1 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 hai 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 hay 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 với 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ả về thủ tục con RET hay lệnh ngắt RETI
Con trỏ ngăn xếp AVR được thực hiện như hai thanh ghi 8 bit trong không gian vào/ra Không gian đữ liệu trong một số những sự thực thi của cầu trac AVR thì nhỏ
Trang 19
Luận Văn Tốt Nghiệp GVHD: LE QUOC DAN
đến nỗi chỉ SPL được cần Trong này trường hợp, thanh ghi SPH sẽ không hiện hữu
Hình 2-5: Thanh ghi con trồ ngăn xếp
Mục này mô tả những khái niệm thời gian truy xuất cho việc thực hiện lệnh
CPU AVR được vận hành bởi đồng hồ CPU clkcpu, được phát ra một cách trực tiếp được chọn từ đồng hồ nguồn cho chip Không có phép chia đồng hỗ bên trong được sử dụng
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
ist Instructian Execute tt >
Ath (Instruction Fetch
Hình 2-6: Các lộ trình lệnh song song và thực thi lệnh Hình 2-7 cho thấy việc thực thi trong thanh ghi Hai thanh ghi được sử dụng trong một chu kỳ xung đơn trong hệ thống ALU để thực thi và kết quả được lưu trữ trở lại thanh ghi đích
Trang 20
Những địa chỉ thấp nhất trong không gian bộ nhớ chương trình được định nghĩa mặc định như Reset và những vectơ ngắt Ngắt có địa chỉ thấp hơn thì được quyền ưu tiên mức cao hơn Reset có quyền ưu tiên cao nhất và tiếp theo 1a INTO — yéu cầu ngắt ngoài 0 Những vectơ ngắt có thể được đi chuyên tới vùng bắt đầu của Flash Boot bởi
sự thiết đặt bit IVSEL trong thanh ghi điều khiển ngắt chung (GICR) Vectơ Reset có thể cũng có thể được di chuyển tới vùng bắt đầu của Flash boot bằng lập trình BOOTRST Fuse
Khi một ngắt xuất hiện, bit I - cho phép ngắt toàn cục bị xoá thì các ngắt không
hoạt động Phần mềm người dùng có thé ghi lôgic [1] tới bit I để cho phép những ngắt được lồng vào Tất cả các ngắt được cho phép có thể ngắt hiện tại hoặc ngắt sau đó Bit I tự động đặt khi một sự trả về từ lệnh - RETI- được thực hiện
Về cơ bản có hai kiểu ngắt Loại thứ nhất được kích bởi một sự kiện mà nó cài
Trang 21
đặt cờ ngắt Bộ đếm chương trình được điều khiển tới vectơ ngắt thực tế trong hàng lệnh để thực hiện điều khiển ngắt thường trình và phần cứng xoá cờ ngắt tương ứng Những cờ ngắt có thể cũng bị xoá bởi việc ghi logic [1] tới vị trí bit cờ để bị xoá Nếu một điều kiện ngắt xuất hiện trong khi bit cho phép ngắt tương ứng bị xoá, cờ ngắt sẽ được thiết lập và nhớ cho đến ngắt được cho phép, hay cờ bị xoá bởi phần mềm Tương tự, nếu một hay nhiều điều kiện ngắt hơn xuất hiện trong khi bit cho phép ngắt toàn cục bị xoá, cờ ngắt tương ứng sẽ được thiết lập và nhớ cho đến khi bit cho phép ngắt toàn cục được đặt và rồi được thực hiện theo lệnh của quyên ưu tiên
Loại thứ hai của ngắt là kích dài như điều kiện ngắt có mặt Những ngắt này không cần có những cờ ngắt Nếu điều kiện ngắt biến mất trước khi ngắt được cho phép, ngắt sẽ không được kích
Khi nào AVR thoát khỏi một ngắt, nó sẽ luôn luôn trả lại đến chương trình
chính và thực hiện một lệnh nữa trước khi một ngắt sắp xảy ra được phục vụ
Chú ý rằng thanh ghi trạng thái không tự động được lưu trữ khi vào một thủ tục ngắt, mà cũng không khôi phục khi trở lại từ một thủ tục ngắt Việc này phải được xử
lý bằng phần mềm
Khi việc sử dụng lệnh CLI để vô hiệu hóa ngắt, những ngắt ngay lập tức sẽ không cho phép Không có ngắt được thực hiện sau lệnh CLI, đù nó xuất hiện đồng thời với lệnh CLI
@®_ Thời gian đáp ứng ngắt:
Sự đáp ứng thực hiện ngắt cho tat ca ngắt AVR được cho phép tối đa là bốn chu kỳ đồng hồ Sau bốn chu kỳ đồng hồ địa chỉ vectơ chương trình cho điều khiển ngắt hiện
tại được thực hiện Trong thời gian bốn chu kỳ đồng hồ này, bộ đếm chương trình
được đây lên trên ngăn xếp Vectơ thường nhảy tới thủ tục ngắt và điều này nhảy cần
ba chu kỳ đồng hồ Nếu một ngắt xuất hiện trong thời gian thực hiện của lệnh nhiều chu kỳ, thì lệnh này được hoàn thành trước khi ngắt được phục vụ Nếu một ngắt xuất hiện khi MCU trong chế độ ngủ, thì thời gian đáp ứng ngắt tăng băng 4 chu kỳ đồng
hồ Sự tăng này đi đến việc cộng thêm thời gian khởi động từ chế độ ngủ được chọn
Sự trả về từ một thủ tục điều khiển ngắt cần bốn chu kỳ đồng hồ Trong thời gian bốn chu kỳ đồng hồ này, bộ đếm chương trình (hai byte) được lấy ra ngược lại từ ngăn
Trang 22
Luan Van Tét Nghiép | GVHD: LE QUOC DAN
xếp, ngăn xếp con trỏ được tăng lên hai và bit I trong thanh ghi SREG duge dat
2.2 NHUNG BO NHO AVR ATMEGAI6
Phan này mô tả những bộ nhớ khác nhau trong ATmegal 6 Cấu trúc AVR có hai
không gian bộ nhớ chính, bộ nhớ dữ liệu và không gian bộ nhớ chương trình Bộ nhớ
EEPROM cho bộ nhớ đỡ liệu
ATmegal6 chứa bộ nhớ Flash có thể lập trình lại trong hệ thống trên chip 16 K
Byte cho việc lưu trữ chương trình Từ đó tất cả các lệnh AVR đều là 16 hay 32 bít
rộng, Flash được tổ chức như 8 K x 16 Cho sự an toàn phần mềm, không gian bộ nhớ
chương trình Flash được chia thành hai vùng: vùng lập trình Boot và vùng chương
Có không dưới 1120 vị trí bộ nhớ dữ liệu để định địa chỉ cho tập thanh ghi, bộ
Trang 23
nhớ vào/ra và dữ liệu SRAM nội 96 vị trí đầu tiên dùng định địa chỉ cho tập thanh ghi,
bộ nhớ vào/ra va 1024 vi tri tiép theo được định địa chỉ cho bộ nhớ dữ liệu SRAM nội
Có 5 địa chỉ khác nhau dùng cho các vùng bộ nhớ đữ liệu: sự dịch 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ế dộ đị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 Y - hay 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, và Z được sử dụng
32 thanh ghi làm việc đa năng, 64 thanh ghi vào/ra và 1024 byte của bộ nhớ dữ liệu SRAM nội trong ATmegaló đều được sử dụng qua tất cả các chế độ này
Trang 24Hinh 2-10: Thoi gian truy xuất bộ nhớ dữ liệu
ATmegal6 chứa 512 byte của 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 và
ghi EEPROM có thể chịu được ít nhất 100.000 chu kỳ ghi/xoá
Thanh ghi truy xuất EEPROM được sử dụng trong không gian vao/ra
Thoi gian truy xuất ghi dữ liệu là 8,5ms Một 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 kích 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 ghi 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
thời ngưng trong 2 chu kỳ xung nhịp trước khi lệnh kế tiếp được thực thi
Trang 25
2.2.3.2 Thanh Ghi Dia Chi EEPROM — EEARH va
Hinh 2-11: Thanh ghi dia chi EEPROM — EEARH va EEARL
e Bit 15 9 — Res: Reserved Bits la cdc bit thụ trong ATmega16 và luôn luôn được đặt ở mức [0]
Thanh ghi dia chi EEPROM — EEARH va EEARL chi ro dia chi EEPROM trong khong gian EEPROM 512 byte Nhitng byte dit ligu EEPROM được định địa chỉ ở 0+511 Giá trị ban đầu của EEAR thì không được định nghĩa Một giá trị riêng phải được viết trước khi EEPROM có thể được truy xuất
Bit 7 6 5 4 3 2 1 Ũ
| Msẽ8 | | | | | | | LšSB ff EEDR RaarlWite Rw Rw RW RW RAW RAW RW RAW
Initial Value Ũ Ũ Ũ Ũ 0 ñ ũ ũ
Hình 2-12: Thanh ghi dữ Hiệu EEPROM- EEDR
e Bit 7 0- EEDR7 0: Dit ligu EEPROM
Đối với thao tác ghi của EEPROM, thanh ghi dữ liệu EEDR chứa dữ liệu được ghi tới EEPROM trong vùng địa chỉ được định bởi thanh EEAR Đối với thao tác đọc của EEPROM, thanh ghi EEDR chứa dữ liệu được tạo ra EEPROM trong vùng địa chỉ được định bởi thanh ghi EEAR
Trang 26
Luan Van Tét Nghiép GVHD: LE QUOC DAN
2.2.3.4 Thanh Ghi Điều Khién EEPROM- EECR
Coe eee [EEE [FER] cece
Hình 2-13: Thanh ghi điều khiến EEPROM- EECR
e© Bii 7 4- Res: Resserved Bits là những bít thụ động Các bít này luôn được đặt
ở mức [0]
e Bit 3 - EERIE: EEPROM Ready Interrupt Enable
Khi bit I trong thanh ghi SREG và EERIE được đặt lên [1], ngắt EEPROM Ready
được cho phép và khi xoá xuống [0] thì ngắt bị cắm Ngắt EEPROM Ready phat ra một ngắt hằng khi EEWE bị xoá xuống [0]
Việc đặt EEMWE lên [1] sau đó việc thiết lập EEWE sẽ chỉ ghi dữ 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 4 chu kỳ xung nhịp
Khi địa chỉ và dữ liệu được cài đặt một 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 bit EEWE thì bịt EEMWE phải được thiết lập, nếu không sẽ không thao tác ghi EEPROM được Các lệnh ghi dữ liệu bộ nhớ EEPROM được viết như sau (bước 3 và 4 không cần thiết):
1 Đợi cho đến khi EEWE trở thành [0]
2 Đợi cho đến khi SPMEN ở SPMCR trở thành [0]
3 Ghi địa chỉ EEPROM mới tới EEAR (không bắt buộc)
4 Ghi dữ liệu EEPROM mới tới EEDR (không bắt buộc)
5 Ghi mức lôgic [1] tới bit EEMWE trong khi ghi mức [0] tới EEWE ở thanh ghi EECR
6 Trong vòng bốn chu kỳ đồng hồ sau khi EEMWE được thiết lập, ghi lôgic [1] tới EEWE
Trang 27
Chư ý: Một tín hiệu pha vỡ sự liên tục giữa bước 5 và bước 6 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 hay EEDR bị thay đổi Vì vậy nên cần xoá cờ ngắt toàn cục
trong tất cả những bước để tránh những vấn đề này
Khi thời gian truy xuất ghi trôi qua, bit EEWE sẽ bị 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 hiện
Khi địa chỉ chính xác được cài đặt trong thanh ghi EEAR, bit EERE được ghi mức
légic [1] tới EEPROM kích đọc Truy xuất đọc EEPROM mắt một lệnh và dữ liệu
yêu cầu được đáp ứng ngay lập tức Khi EEPROM được đọc, CPU tạm nghỉ bến
chu kỳ xung trước khi lệnh kế tiếp được thực hiện
Người sử dụng nên kiểm tra bit EEWE trước khi bắt đầu thao tác đọc Nếu một
thao tác ghi được đang hoạt động, nó không thể đọc EEPROM, mà cũng không
thay đổi thanh ghi EEAR
Trong chu kỳ điện áp nguồn Vẹc thấp, đữ liệu EEPROM có thể bị thất thoát vi
điện áp 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 chíp cũng
như tránh thất thoát đữ 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 dữ 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 để hoạt động chính xác Thứ hai, chính CPU thực thi lệnh không chính xác
nếu nguồn cung cấp cho việc thực thi lệnh quá thấp
Sự thất thoát đữ liệu EEPROM có thê dễ dàng được tránh khỏi bằng giải pháp
Trang 28
đủ Đều này có thể được làm bởi việc cho phép 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)
Trang 29Address Name
OCRj TimeriCounter2
TCHT1H TimerCounter ] - Counlsr TEMT1L TimerZounter † — Counter
GCR1AH Timerfaunler] — 1AL Timer ountert -
OQCGR1BH Timer ountert - 1BL Timer/Cnunter{ ~ ICR1H Timer ountert -
(RIL TimerfZounler1 —
TOHT2 OCRZ
PORTO PORTDY PORTOS PORTOS PORTO FORTOS PORTD2 PORTO1
SPOR SPI Data
Lect
USSRA RxC TRE UDRE
UEBRRL USART Baud Rate Leva
ADCH ADC Data
TWDR Two-wire Serial Interface Data
Trang 30Luan Van Tét Nghiép GVHD: LE QUOC DAN
Address Name Bit 7 Bit 6 Bit § Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Hình 2-15: Không gian L/O (tiếp theo) Tất cả I/O ATmegal6 và thiết bị ngoại vi được đặt trong không gian vào/ra VỊ
trí vào/ra được truy xuất bởi 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 Những 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ị bit đơn có thể được kiểm tra bằng lệnh SBIS/SBIC Khi dùng
lệnh IN/OUT trên hệ thống vào/ra thì địa chỉ của hệ thống này được sử dụng từ
$00 + $3F Khi định địa chỉ thanh ghi vào/ra trong khi không gian dữ liệu sử dụng lệnh LD/ST, thì $20 phải được thêm vào những địa chỉ này
Đối với những thiết bị tương thích trong tương lai, những bit đặc biệt được ghi
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 CBI/SBI sẽ tác động lên tất cả các thanh ghi vào/ra, cờ sẽ được ghi lại mức [I] vì thế nên xoá cờ Lệnh CBI/SBI chỉ làm việc trên thanh ghi $00 + $1F
Trang 31
3.2 CHUC NANG NHAP/XUAT SO THONG THUONG
Mỗi Port gồm có ba thanh DDxn, PORTxn và PINxn, các bít DDxn được truy xuất tại địa chỉ vào/ra DDRx, các bit PORTxn tại địa chỉ vào/ra PORTx và các bít PINxn
tại địa chỉ vào/ra PINx
Bit DDxn trong thanh ghi DDRx lựa chọn hướng của chân này Nếu DDxn được
ghi mức [1], Pxn được định như một đầu ra Nếu DDxn được ghi lôgic [0], Pxn được
định như một đầu vào
Nếu PORTxn được ghi lôgic [1] khi chân được định như một đầu vào, điện trở kéo
lên được kích hoạt Để chuyến điện trở kéo lên không hoạt động, PORTxn phải được
ghi logic [0] hay chân phải được định như một đầu ra Những port là trạng thái khi
một điều kiện reset trở nên tích cực, ngay khi không có đồng hồ đang chạy
Nếu PORTxn được ghi lôgic [1] khi một chân được định như một đầu ra, thì chân port được đưa lên cao (1) Nếu PORTxn được ghi lôgic [0] khi chân được định như một chân đầu ra, chân port được điều khiển thấp (0)
Bảng 3-1: Tác động của DDxn lên các chân PORTxn
Trang 32
Luận Văn TốtNghệp - GVHD: LE QUOC DAN
Port A có một chức năng khác, nó là ngõ vào tương tự của bộ biến đổi ADC
Nếu có một số chân Port A được cấu hình làm ngõ ra thì nhất thiết không được thay
đổi đột ngột các chân này trong khi có một quá trình chuyển đổi đang diễn ra, nếu
không thì kết quả chuyển đổi sẽ bị sai lệch
Bảng 3-2: Chức năng khác của Port A
PA5 ADCS5 (kênh 5 ngõ ra ADC)
PAO ADCO (kênh 0 ngõ ra ADC)
Bảng 3-3: Chức năng khác của Port B
AINI (Ngõ vào âm bộ so sánh tương tự)
Trang 33
INT2 (Ngõ vào ngắt ngoài 2)
| XCK (Ngõ vào/Ngõ ra đồng hồ ngoài USART)
e SCK- Port B, Bit 7: Chân ngõ vào Slave clock, ngõ ra Master clock cho kênh
SPI Khi SPI được dùng như một Slave, chân này mặc nhiên được cấu hình là ngõ
vào bắt chấp bit DDB7 bit Khi SPI được dùng làm một Master, hướng truyền dữ liệu trên chân này được điều khiển bởi DDB7 bit Khi chân này được đặt làm ngõ vào, PORT B7 bit vẫn sẽ điều khiển điện trở kéo lên
e MISO _ Port B, Bit 6 : Ngõ vào đữ liệu Master, ngõ ra dữ liệu Slave cho kênh SPI Khi SPI được dùng như một Slave, chân này mặc nhiên được cấu hình là ngõ vào bất chấp DDB6 bit Khi SPI được dùng như một Slave, hướng truyền dữ liệu trên chân này do DDB6 điều khiển Khi chân này bị ép làm ngõ vào, PORT B6 bít
vẫn sẽ điều khiển điện trở kéo lên
e MOSI- Port B, Bit 5 : Ngõ ra đữ liệu Master, ngõ vào dữ liệu Slave cho kênh
SPI Khi SPI được dùng như một Slave, chân này mặc nhiên được cấu hình là ngõ vào bất chấp DDB5 bit Khi SPI được dùng như một Slave, hướng truyền dữ liệu
trên chân này do DDB5 điều khiển Khi chân này bị ép làm ngõ vào, PORT BS bịt
vẫn sẽ điều khiển điện trở kéo lên
e Sỹ — Port B, Bit 4: Slave lựa chọn ngõ vào Khi SPI được dùng như một
Slave, chân mặc nhiên được cầu hình là ngõ bat chap DDB4 bit Luc nay, néu khi
SS bi ép xuống mức thấp thi sẽ làm kích hoạt SPI Khi SPI được dùng như một
Master, hướng truyền dữ liệu trên chân này do DDB4 điều khiển Khi chân này bị
ép làm ngõ vào, PORT B4 bịt vẫn sẽ điều khiển điện trở kéo lên
e AIN1/OC0 — Port B, Bit 3
ATNI, ngõ vào âm bộ so sánh tương tự Cấu hình chân port như ngõ vào với điện
trở kéo lên bên trong không hoạt động để chức năng port số tránh nhiễu với chức
Trang 34
Luan Van Tét Nghiép GVHD: LE QUOC DAN
năng của bộ so sánh tương tự
OCO0, ngõ ra bộ so sánh: chân PB3 có thể phục vụ như ngõ vào ngoài cho bộ so
[1]) để phục vụ chức năng này Chân OCO0 là chân ngõ ra cho chức năng tImer chế
độ PWM
e AINO/INT2 — Port B, Bit 2
AINO, ngõ vào dương bộ so sánh tương tự Cấu hình chân port như ngõ vào với điện trở kéo lên bên trong không hoạt động để chức năng port số tránh nhiễu với chức năng của bộ so sánh tương tự
! INT2, nguồn ngắt ngoài 2 : chân PB2 có thể phục vụ như một nguồn ngắt ngoài tới
MCU
e T1-— Port B, Bit 1 : Nguồn của bộ Timer/Counterl
TO, nguồn bộ đếm Timer/Counter1
XCK, đồng hồ ngoài USART Thanh ghi định hướng dữ liệu (DDB0) điều khiển đồng hồ là ngõ ra (DDB0 được đặt) hay là ngõ vào (DDBO0 được xoá) Chân XCK
chỉ được tích cực khi USART hoạt động trong chế độ đồng bộ
3.3.3 Port C Bảng 3-4: Chức năng khác của Port C
Trang 35
e TOSC2 — Port C, Bit 7: TOSC2, chân bộ dao động Timer 2: Khi bit AS2 trong thanh ghi ASSR được set lên [1] để cho phép đồng hồ bắt đồng bộ của bộ Timer/Counter2, chân PC7 không được kết nối từ port và trở thành ngõ ra đảo của
bộ khuếch đại dao động Trong chế độ này, một bộ dao động thạch anh được kết nối tới chan nay va chan khéng thé ding nhu chan I/O
e TOSCI — Port C, Bit 6: TOSC1, chan b6 dao d6ng Timer 1: Khi bit AS2
trong thanh ghi ASSR được set lên [1] để cho phép đồng hồ bất đồng bộ của bộ
Timer/Counter2, chân PC6 không được kết nối từ port và trở thành ngõ vào của bộ khuếch đại dao động đảo Trong chế độ này, một bộ dao động thạch anh được kết
nối tới chân này và chân không thể dùng như chân L/O
e TDI- Port C, Bit 5: TDI, JTAG kiểm tra dữ liệu vào : Dữ liệu đầu vào nối tiếp được dịch trong thanh ghi lệnh hoặc thanh ghi dữ liệu Khi giao điện JTAG
được cho phép, chân này không thể dùng như L/O
© TDO—Port C, Bit 4: TDO, JTAG kiểm tra dữ liệu ra : Dữ liệu đầu ra nối tiếp
từ thanh ghi lệnh hoặc thanh ghi dữ liệu Khi giao diện JTAG được cho phép, chân
nay khéng thé ding nhu I/O
e TMS - Port C, Bit 3: TMS, JTAG kiểm tra chọn chế độ : Chân này dùng cho
việc điều hướng thông qua máy trạng thái điều khiển TAP Khi giao diện JTAG được cho phép, chân này không thể dùng như I/O
e TCK- PortC, Bit 2: TCK, JTAG kiểm tra đồng hồ : thao tác JTAG đồng bộ tới TCK Khi giao diện JTAG cho phép, chân này không thé ding nhu chan I/O
e SDA — Port C, Bit 1: SDA, dit liéu giao diện nối tiếp 2 dây : Khi bit TWEN trong thanh ghi TWCR được set lên [1] để cho phép bộ giao diện nối tiếp 2 dây,
chân PC1 không được kết nối từ port và trở thành chân I/O dữ liệu nối tiếp cho bộ giao diện nối tiếp 2 dây Trong chế độ này, có một bộ lọc gai trên chân để triệt những gai ngăn hơn 50ns trong tín hiệu vào
e SCL — Port C, Bit 0: SCL, ddng hd giao dién néi tiép 2 day : Khi bit TWEN trong thanh ghỉ TWCR được set lên [1] để cho phép bộ giao diện nối tiếp 2 dây,
chân PCO không được kết nối từ port và trở thành chân I/O dữ liệu nối tiếp cho bộ
Trang 36
Luan Van Tét Nghiép | GVHD: LE QUOC DAN
giao dién nối tiếp 2 dây Trong chế độ này, có một bộ lọc xung nhọn trên chân để triệt những gai ngắn hơn 50ns trong tín hiệu vào
e OC2- Port D, Bit 7: Ngo ra b6 so sénh b6 Timer/Counter2 Chân PD7 có thê dùng như ngõ ra bên ngoài dùng so sánh ngõ ra bộ định thời Timer/Counter2 OC2 phải được cấu hình làm ngõ ra (DDD7 được set [I]) để thực hiện chức năng này OC2 còn được dùng làm chân ngõ ra cho chức năng Timer của chế độ PWM
e ICPI1-— Port D, Bi 6 : Chân bắt tín hiệu ngõ vào Chân PD6 co thể hoạt động như một chân bắt tín hiệu ngõ vào cho bộ Timer/Counter 1
e OCIA -— Port D, Bit 5 : OC1A, ngõ ra A bộ so sánh ngõ ra Chân PD5 có thể
dùng như ngõ ra bên ngoài cho bộ so sánh A ngõ ra bộ định thời Timer/Counter1 Chân này phải được cầu hình như một ngõ ra (DDDS được set lên []]) để phục vụ chức năng này Chân OC1A cũng là chân ngõ ra cho chức năng Timer của chế độ PWM
© OC1B — Port D, Bit 4: OC1B, ngõ ra B bộ so sánh ngõ ra Chân PD4 có thể dùng như ngõ ra bên ngoài cho bộ so sánh B ngõ ra bộ định thời Timer/Counter1 Chân này phải được cấu hình như một ngõ ra (DDD4 được set lên [1]) để phục vụ chức năng này Chân OCIB cũng là chân ngõ ra cho chức năng Timer của chế độ PWM
Trang 37
e TXD_— Port D, Bit 1 : TXD, truyền dữ liệu (chân ngõ ra dữ liệu cho USART)
Khi bộ truyền USART được cho phép, chân này được cấu hình như một ngõ ra bất chấp giá trị của DDDI
e RXD-_ Port D, Bit 0 : RXD, nhận dữ liệu (chân ngõ ra đữ liệu cho USART) Khi bộ nhận USART được cho phép, chân này được cấu hình như một ngõ vào bat chấp giá trị của DDD0 Khi USART ép chân này làm ngõ vào, điện trở kéo lên có thể được điều khiển bằng bit PORTD0
3.4 CÁC THANH GHI CỦA PORT I/O
Read/Write RW LEW OR RW RW Riv Ry RAY
Hình 3-1: Thanh ghi dữ liệu Port A
Hinh 3-3: Thanh ghi địa chỉ chân ngõ vao Port A
Trang 38
Initial Value NA NA WA MA N/A NA MA NA
Hình 3-6: Thanh ghi dia chi chan ngõ vào Port B 3.4.3 Port C
["ooc7 | opce [| ppcs | opcs | opc3 | dpcz | DDCI | poco j DDRC
Read/Write RIV Ri RAW RW RW RW RW RW
Initial Value NA NA NWA NA NiA NA NA NA
Hình 3-9: Thanh ghi dia chi chan ngõ vào Port C
Trang 39
PORTO? | PORTD6 | PORTDS | PORTD4 | PORTD? | PORTO2 | PORTD1 | PORTDO
Trang 40Luan Van Tét Nghiép GVHD: LE QUOC BAN
Chương 4 GIAO DIỆN THIẾT BỊ NGOẠI
VI NOI TIEP SPI (SERIAL PERIPHERAL
INTERFACE)
4.1 GIỚI THIỆU
| SPI cho phép truyền đữ liệu đồng bộ tốc độ cao giữa ATmegal6 và những thiết bị ngoại vi hay giữa linh kiện AVR
& SPI ATmegal6 bao gồm những đặc tính sau đây:
* Song công hoàn toàn, có ba đường đữ liệu đồng bộ
* Thao tac chủ/tớ
‹ Truyền đữ liệu bit thấp LSB đầu tiên hoặc bit MSB đầu tiên
» Bảy tốc độ bít lập trình được
‹ Cờ ngắt kết thúc quá trình truyền
* Bao vệ cờ xung khi ghi
- Thoát khỏi chế độ Idle