1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Báo cáo MẠCH ATS sử DỤNG VI điều KHIỂN ATMEGA16

102 255 10

Đ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

Định dạng
Số trang 102
Dung lượng 2,36 MB

Nội dung

CÁC ĐẶC TÍNH:Hiệu năng cao, tiêu thụ năng lượng ít Kiến trúc RISC 130 lệnh, hầu hết các lênh thực hiện trong một chu kỳ 32 Thanh ghi 8-bit đa năng Tốc độc thực hiện lên tới 16 triệu lệnh

Trang 1

CHƯƠNG 1: VI ĐIỀU KHIỂN AVR_ATMEGA16

Loại vi điều khiển họ AVR RISC là do công ty Atmel sản suất, với kiến trúc RISC(Reduce Instruction Set Computer)

Hoạt động với chu kỳ xung nhịp cao, có thể lên đến 20 MHz tuỳ thuộc từngloại chip cụ thể

Bộ nhớ chương trình và bộ nhớ dữ liệu được tích hợp ngay trên chip

Khả năng lập trình được trong hệ thống, có thể lập trình được ngay khi đangđược cấp nguồn trên bản mạch không cần phải nhấc chip ra khỏi bản mạch

Hỗ trợ cho việc lập trình bằng ngôn ngữ bậc cao – ngôn ngữ C

Trang 2

1.2 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN ATMEGA16

Trang 3

1.3 CÁC ĐẶC TÍNH:

Hiệu năng cao, tiêu thụ năng lượng ít

Kiến trúc RISC

130 lệnh, hầu hết các lênh thực hiện trong một chu kỳ

32 Thanh ghi 8-bit đa năng

Tốc độc thực hiện lên tới 16 triệu lệnh trong 1 giây với tần số 16 MHz

Có 2 bộ nhân, mỗi bộ thực hiện trong thời gian 2 chu kỳ

Các bộ nhớ chương trình và dữ liệu cố định

16 Kb bộ nhớ flash có khả năng tự lập trình trong hệ thống

Có thể thực hiện được 1.000 lần ghi/xoá

512 bytes EEFROM

Có thể thực hiện 100.000 lần ghi /xoá

1Kb SRAM bên trong

Lập trình khoá an ninh phần mềm

Ghép nối ngoại vi

2 bộ định thời/ bộ đếm 8 bit với các chế độ tỷ lệ định trước và chế độ so sánh

1 bộ định thời/ bộ đếm 16 bit với các chế độ tỷ lệ định trước riêng biệt, chế độ

so sánh và chế độ bắt giữ

Bộ thời gian thực với bộ tạo dao động riêng biệt

6 kênh PWM

8 kênh, ADC 10 bit

Giao diện nối tiếp 2 dây hướng tới byte

Bộ truyền tin nối tiếp USART khả trình

Giao diện SPI chủ / tớ

Watchdog Timer khả trình với bộ tạo dao động bên trong riêng biệt

Các đặc điểm đặc biệt khác

Power-on Reset và dò Brown-out khả trình

Bộ tạo dao động được định cỡ bên trong

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

5 chế độ ngủ: Nhàn rỗi, giảm ồn ADC, tiết kiệm năng lượng, giảm năng lượngtiêu thụ, chờ

I/O và các loại: 32 đường I/O khả trình

Điện áp hoạt động: 4.5- 5.5 V

Trang 4

1.4 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN ATMEG16

Hình 1.4 Sơ đồ khối vi điều khiển Atmega16

Trang 5

ATmega16 là vi điều khiển 8 bit dựa trên kiến trúc RISC Với khả năng thực hiện mỗi lệnh trong vòng một chu kỳ xung clock, ATmega16 có thể đạt được tốc

độ 1MIPS trên mỗi MHz(1 triệu lệnh /s/MHz)

Atmega16 có các đặc điểm sau:

16 KB bộ nhớ Flash với khả năng đọc trong khi ghi, 512 byte bộ nhớ

EEPROM, 1KB bộ nhớ SRAM, 32 thanh ghi chức năng chung, 32 đường vào ra chung, 3 bộ định thời/bộ đếm, ngắt nội và ngắt ngoại USART, giao tiếp nối tiếp 2 dây, 8 kênh ADC 10 bit,…

Atmega16 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như: trình dịch C, macro assemblers, chương trình mô phỏng, sửa lỗi, kit thử nghiệm…

Mô tả các chân

VCC: Điện áp cung cấp số

GND: Chân nối đất

PORT B: (PB7:0) Port B là cổng I/O 8-bit hai chiều với các điện trở pull-up

bên trong (được lựa chọn cho mỗi bit) Bộ đệm đầu ra của Port B có đặc tính điềukhiển cân đối với cả tín hiệu source và sink Khi là tín hiệu đầu vào, các chân củacổng B sẽ tiêu thụ dòng nếu các điện trở pull-up bên trong được kích hoạt Cácchân của Port B là 3 trạng thái khi có tín hiệu reset được kích hoạt, thậm chí đồng

hồ không chạy

PORT C: (PC7:0) Port C là cổng I/O 8-bit hai chiều với các điện trở pull-up

bên trong (được lựa chọn cho mỗi bit) Bộ nhớ đệm đầu ra của Port C có đặc tínhđiều khiển cân đối với cả tín hiệu source và sink Khi là các tín hiệu đầu vào, cácchân của cổng C sẽ tiêu thụ dòng nếu các điện trở pull-up bên trong được kíchhoạt Các chân của Port C là 3 trạng thái khi có tín hiệu reset được kích hoạt, thậmchí đồng hồ không chạy

PORT D: (PD7:0) Port D là cổng I/O 8-bit hai chiều với các điện trở pull-up

bên trong (được lựa chọn cho mỗi bit) Bộ đệm đầu ra của Port D có đặc tính điềukhiển cân đối với cả tín hiệu source và sink Khi là các tín hiệu đầu vào, các châncủa cổng D sẽ tiêu thụ dòng nếu các điện trở pull-up bên trong được kích hoạt.Các chân của Port D là 3 trạng thái khi có tín hiệu reset được kích hoạt, thậm chíđồng hồ không chạy

Trang 6

AVCC : AVCC là chân cấp điện cho cổng A và bộ biến đổi A/D Nó được nối nội

bộ đến VCC ngay cả trong trường hợp ADC không được sử dụng Nếu ADC được

sử dụng, nó phải được nối với VCC qua bộ lọc thông thấp

AREF:AREF là chân tín hiệu tham chiếu analog nối vào bộ biến đổi A/D.

XTAL1, XTAL2 là 2 chân tạo bộ dao động ngoài cho vi điều khiển , các chân này được nối với thạch anh

RESET : Đây là chân reset cứng khởi động lại mọi hoạt động của hệ thống

1.5 KIẾN TRÚC CỦA VI ĐIỀU KHIỂN AVR

1.5.1 Cấu trúc tổng quát

Hình 1.5.1 Sơ đồ cấu trúc CPU của ATmega16

Để tối đa hoá hiệu năng tính năng và song song, AVR sử dụng kiến trúcHarvard với bộ nhớ riêng biệt và các BUS cho chương trình và dữ liệu Các câulệnh trong bộ nhớ chương trình được hoạt với một đường ống lệnh mức đơn.Trong khi một lênh đang thực hiện, lệnh tiếp theo sẽ được nạp trước vào từ bộ nhớchương trình Điều này làm cho các lệnh được thực hiện trong mọi chu kỳ đồng

Trang 7

hồ Bộ nhớ chương trình là bộ nhớ In-System Reprogrammable Flash Tập thanhghi truy cập nhanh bao gồm 32 thanh ghi đang năng 8 bit với thời gian ttruy cập là

1 chu kỳ đơn Điều này cho phép ALU hoạt động trong một chu kỳ đơn Một thaotác điển hình với 2 toán hạng được của ALU, 2 toán hạng được lấy ra từ tệp thanhghi để thực hiện, và và kết quả được lưu trữ lại trong tệp thanh ghi trong một chu

kỳ đồng hồ 6 trong số 32 thanh ghi có thể sử dụng như là 3 thanh ghi con trỏ địachỉ gián tiếp 16 bit để chỉ vào vùng dữ liệu phục vụ cho tính toán địa chỉ hiệudụng Một trong các con trỏ địa chỉ này cũng có thể được sử dụng làm con trỏ địachỉ trỏ vào bảng dữ liệu trong bộ nhớ chương trình Flash Các thanh ghi này là X,

Y và Z

ALU thực hiện các phép toán logíc và số học giữa các thanh ghi hoặc giữathanh ghi với một hằng số Cũng có thể thao tác với các thanh thanh ghi đơn trongALU Sau khi thực hiện phép toán số học, các thanh ghi trạng thái được cập nhậtcác thông tin về kết quả thực hiện

Dòng chương trình được điều khiển bởi các phép nhảy có điều kiện hoặckhông điều kiện đến các lệnh được gọi, và chỉ đến các địa chỉ trực tiếp trongkhông gian địa chỉ Hầu hết các lệnh AVR đều thực hiện với dữ liệu 16 bit Mỗiđịa chỉ bộ nhớ chương trình đều chứa 1 lệnh 32 bit hoặc 16 bit

Không gian bộ nhớ chương trình Flash được chia thành 2 vùng, vùng chươngtrình boot và vùng chương trình ứng dụng, cả hai vùng này đều có bit khoá chuyêndụng để bảo vệ cho việc ghi và đọc/ghi Lệnh SPM dùng để ghi vào vùng bộ nhớứng dụng phải có trong vùng chương trình boot Trong khi thực hiện các ngắt vàcác thường trình, địa chỉ trở về của bộ đếm chương trình (PC) được lưu trữ trongstack Nhìn chung stack được định vị trong SRAM, và do vậy kích cỡ stack đượcgiới hạn bởi kích cỡ toàn bộ của SRAM, và cách sử dụng của SRAM Tất cả cácchương trình của người sử dụng phải khởi tạo SP trong thường trình reset (trướckhi thường trình hoặc ngắt được thược hiện) SP có thể trỏ được vào không gianI/O SRAM có thể được truy cập một cách dễ dàng thông qua 5 chế độ địa chỉkhác nhau hỗ trợ bởi kiến trúc AVR

Không gian bộ nhớ trong kiến trúc AVR là bản đồ bộ nhớ thông thường vàtuyến tính

Một module ngắt linh động có các thanh ghi điều khiển của nó trong khônggian I/O cùng với thêm vào bit khởi tạo ngắt toàn cục trong thanh ghi trạng thái.Tất cả các ngắt có vector ngắt riêng biệt trong bảng vector ngắt Các ngắt này cómức độ ưu tiên theo vị trí của vector ngắt tương ứng Mức có địa chỉ càng thấp thì

có quyền ưu tiên càng cao

Không gian bộ nhớ I/O có 64 địa chỉ cho các chức năng ngoại vi của CPU như

là các thanh ghi điều khiển, SPI, và các chức năng I/O khác Bộ nhớ I/O có thểtruy cập trực tiếp, hoặc như là vị trí không gian dữ liệu theo chúng của tệp thanhghi, $20-$5F Thêm vào đó, nó có không gian I/O mở rộng từ $60 đến $FF trongSRAM, các không gian này chỉ có các lệnh ST/STS/STD và LD/LDS/LĐ có thể

sử dụng

Trang 8

1.5.2 ALU– Arithmetic Logic Unit - Đơn vị xử lý số học và logic

ALU làm việc trực tiếp với các thanh ghi chức năng chung Các phép toánđược thực hiện trong một chu kỳ xung clock Hoạt động của ALU được chia lam 3loại:đại số, logic và theo bit Một số phép xử lý của kiến trúc này cũng cung cấp

bộ nhân số có dấu và không có dấu và dạng phân số

1.5.3 Thanh ghi trạng thái (SREG - Status Register)

Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và logic Các thông tin này có thể được sử dụng để điều khiển chương trình Trong nhiều trường hợp, điều này sẽ bỏ đi những cần thiết khi sử dụng câu lệnh so sánh chuyên dụng, kết quả nhanh hơn và đoạn chương trình ngắn gọn hơn.Thanh ghi trạng thái không tự động lưu trữ khi đang nhập vào môt chường trình ngắt và lưu trữ khi trở về từ một ngắt Điều này phải được quản lý bằng phần mềm

Thanh ghi trạng thái AVR – SREG - được định nghĩa như sau:

Hình 1.5.2Thanh ghi trạng thái SREG

C: Carry Flag, cờ nhớ (nếu phép toán có nhớ cờ sẽ được thiết lập )

Z: Zero Flag, cờ zero(nếu kết quả phép toán bằng 0)

N: Nagative Flag(nếu kết quả của phép toán là âm)

V: Two’s complement overflow indicator(cờ này được thiết lập khi tràn số bù2)

H: Half carry Flag ( chỉ báo cho thấy sự mang sang (nhớ) một nửa trong một

số lệnh số học)

T: Bit copy Storage (được sử dụng với lệnh nạp bit BLD (bit load) và lưu trữbit BST (bit store) để nạp và lưu trữ các bit từ một thanh ghi vào một thanh ghikhác

I: Global Interrupt Enable (cho phép ngắt toàn cục Nếu bit này ở trạng thái logic 0 thì không có một ngắt nào được phục vụ)

Bit cho phép ngắt toàn cục phải được đặt để cho các ngắt có thể hoạt động Điều khiển hoạt động của các ngắt riêng biệt được thực hiện trong các thanh ghi điều khiển riêng biệt Nếu thanh ghi cho phép ngắt toàn cục được xóa, không có một ngắt riêng biệt nào được hoạt động Bit I được xóa bởi phần cứng sau khi một ngắtxảy ra và được đặt bởi lệnh RETI để cho các phép các ngắt tiếp theo hoạt động Bit I cũng có thể được đặt và xóa bởi câu lệnh SEI và CLI trong các ứng dụng

Trang 9

1.5.4 Các thanh ghi chức năng chung (General Purpose Register File)

Hình 1.5.3 Thanh ghi chức năng chung.

Hầu hết các lệnh thực hiện với tệp thanh ghi có truy cập trực tiếp tới tất cả cácthanh ghi, và hầu hết chúng là lệnh đơn chu kỳ Mỗi một thanh ghi được chỉ địnhbởi một địa chỉ bộ nhớ dữ liệu, bố trí chúng trực tiếp vào 32 vị trí đầu tiên củakhông gian dữ liệu người sử dụng

Mặc dù không phải là thực hiện theo luật như các vị trí của SRAM, tổ chức bộnhớ này cho phép linh động cao khi truy cập các thanh ghi, như là thanh ghi contrỏ X,Y,Z có thể được đặt vào danh mục của mọi thanh ghi trong tệp.The X-register, Y-register and Z-register

Các thanh ghi R26 R31 có thêm các chức năng ngoài, việc sử dụng như là một thanh ghi đa năng Các thanh ghi này là các con trỏ địa chỉ 16 bit cho chế độ địa chỉ gián tiếp của không gian dữ liệu 3 thanh ghi địa chỉ gián tiếp X, Y, Z được

mô tả như như hình:

Trang 10

Hình 1.5.4 Các thanh ghi X, Y và Z

Trong các chế độ địa chỉ khác, các thanh ghi địa chỉ này có các chức năng như là

độ lệch cố định, tự động tăng và tự động giảm

1.5.5 Con trỏ ngăn xếp(SP- Stack Pointer).

Là một thanh ghi 16 bit nhưng cũng có thể xem như 2 thanh ghi chức năngđặc biệt 8 bit Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (trong bộnhớ RAM là $5E) có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp

Hình 1.5.5 Thanh ghi con trỏ ngăn xếp

Khi chương trinh phục vụ ngắt hoặc chương trình con thì con trỏ PC được lưuvào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí Và con trỏ ngăn xếp sẽgảm một khi thực hiện lệnh push Ngược lại khi thực hiện lệnh POP thì con trỏngăn xếp sẽ tăng một và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp

sẽ tăng 2.Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởitạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho

Trang 11

phép phục vụ Và giá trị ngăn xếp ít nhất cũng phải lớn hơn hoặc bằng 60H (0x60)

vì 5Fh trở lại là vùng các thanh ghi

1.5.6 Điều khiển ngắt và reset- Reset and Interrupt Handling

AVR cung cấp 1 vài nguồn ngắt khác nhau Các ngắt này và vector reset riêng biệt có vector chương trình riêng biệt nằm trong không gian nhớ chương trình Tất

cả các ngắt được chỉ định bởi các bit cho phép riêng biệt mà các bit này phải được ghi mức logic 1 cùng với bit cho phép ngắt toàn cục trong thanh ghi trạng thái để cho phép ngắt Phụ thuộc vào giá trị PC, các ngắt này phải được tự động loại bỏ khi các bit Boot Lock - BLB02 or BLB12 - được lập trình Yếu tố này cải thiện độ

an toàn phần mềm Địa chỉ thấp nhất trong không gian bộ nhớ chương trình được mặc định là Reset và Interrupt Vectors Bảng vector ngắt –bảng 1:

Trang 12

Bảng 1-vecter ngắt và reset

Khi địa chỉ càng nhỏ thì thứ tự ưu tiên càng cao.Các vector ngắt có thể đượcchuyển sang đầu của vùng Boot Flash bằng cách đặt bit IVSEL trong thanh ghiđiều khiển ngắt (MCUCR) Reset Vector có thể được chuyển sang đầu của vùngBoot Flash bằng cách lập trình BOOTRST fuse

Khi một ngắt xảy ra, bit I (bit cho phép ngắt toàn cục) được xóa và tất cả cácngắt được loại bỏ Phần mềm sử dụng có thể ghi mức logic 1 vào bit I để cho phép

Trang 13

các ngắt tiếp theo Tất cả các ngắt được kích hoạt có thể ngắt những chường trìnhngắt hiện tại.

Bit I được đặt tự động khi trở về từ lệnh RETI của ngắt

Có 2 loại ngắt cơ bản:

+ Loại thứ nhất được gây ra bởi sự kiện mà đặt cờ ngắt Đối với loại ngắt này,

PC được hướng tới Interrupt Vector tương ứng để thực hiện chương trình phục vụngắt và phần cứng xoá cờ ngắt tương ứng Các cờ ngắt cũng có thể được ghi mứclogic 1 vào vị trí bit cờ để được xoá Nếu một điều kiện ngắt xảy ra trong khi bitcho phép ngắt tương ứng bị xoá, thì cờ ngắt sẽ được đặt và được nhớ cho đến khingắt được thực hiện, hoặc là cờ ngắt được xoá bởi phần mềm Tương tự nếu 1hoặc nhiều điều kiện ngắt xảy ra trong khi cờ cho phép ngắt toàn cục bị xoá thì các

cờ ngắt tương ứng sẽ được đặt và nhớ cho đến khi cờ cho phép ngắt toàn cục đượcđặt và nó sẽ được thực hiện theo thứ tự ưu tiên

+ Loại ngắt thứ 2 sẽ kích hoạt kéo dài trong thời gian điều kiện ngắt tồn tại Các ngắt này không cần thiết phải có cờ ngắt Nếu điều kiện ngắt mất đi trước khi ngắt được cho phép, thì ngắt sẽ không xảy ra.Khi AVR thoát khỏi từ một ngắt, nó

sẽ luôn trở về chương trình chính và thực hiện một hoặc nhiều lệnh trước khi một ngắt nào đó còn đợi đó được phục vụ Chú ý rằng các thanh ghi trạng thái không

tự động lưu trữ khi nhập vào một thường trình ngắt, và cũng không lưu trữ lại khi trở về từ một thường trình ngắt Điều này phải được thực hiện bởi phần mềm.Khi sử dụng câu lệnh CLI để cấm ngắt, các ngắt sẽ không được tác động ngay lập tức Không có ngắt nào được thực hiện sau khi thực hiện lệnh CLI, thậm chí nó xảy ra cùng lúc với lệnh CLI

Thời gian đáp ứng của 1 ngắt :Việc thực hiện ngắt trong ít nhất 4 chu kỳ đồng hồ với tất cả các ngắt Sau 4 chu kỳ đồng hồ, địa chỉ vector chương trình tương ứng với chương trình điều khiển ngắt thực sự được khởi tạo Trong thời gian 4 chu kỳ này, PC được cất vào trong ngăn xếp Vector thường là lệnh nhảy đến chương trìnhngắt và lệnh nhảy này mất 3 chu kỳ đồng hồ Nếu một ngắt xảy ra trong khi thực hiện một lệnh nhiều chu kỳ thì lệnh được hoàn thành trước khi ngắt được phục vụ Nếu một ngắt xảy ra khi MCU đang trong chế độ ngủ thì thời gian đáp ứng ngắt sẽtăng thêm 4 chu kỳ Thời gian tăng thêm này là thời gian để khởi động lại từ chế

độ ngủ

Sự trở về từ một chương trình điều khiển ngắt mất 4 chu kỳ xung nhịp.Trong thời

Trang 14

gian 4 chu kỳ này, PC (2 bytes) được lấy ra từ ngăn xếp, SP được tăng lên 2, và bit

I trong SREG được đặt

1.6 CẤU TRÚC BỘ NHỚ

AVR có 2 không gian bộ nhớ chính là bộ nhớ dữ liệu và bộ nhớ chương trình.

Ngoài ra ATmega16 còn có thêm bộ nhớ EEPROM để lưu trữ dữ liệu

1.6.1 Bộ nhớ chương trình (bộ nhớ Flash) :

Bộ nhớ Flash 16 KB dùng để lưu trữ chương trình Do các lệnh của AVR có

độ dài 16 hoặc 32 bit nên bộ nhớ Flash được sắp xếp theo kiểu 8K x 16 Bộ nhớFlash được chia làm 2 phần, phần dành cho chương trình boot và phần dành chochương trình ứng dụng

Hình 1.6.1 Bản đồ bộ nhớ chương trình

Trang 15

1.6.2 Bộ nhớ dữ liệu SRAM

1120 ô nhớ của bộ nhớ dữ liệu định địa chỉ cho tệp thanh ghi, bộ nhớ I/O và

bộ nhớ dữ liệu SRAM nội Trong đó 69 ô nhớ đầu tiên định địa chỉ cho tệp thanhghi và bộ nhớ I/O, và 1024 ô nhớ tiếp theo định địa chỉ cho ô nhớ SRAM nội

Hinh 2.4.2 Bản đồ bộ nhớ SRAM

1.6.3 EEPROM Data Memory – bộ nhớ dữ liệu EEPROM

Trang 16

ATmega16 chứa 512 byte bộ nhớ dữ liệu EEPROM Nó được tổ chức thànhkhông gian dữ liệu riêng biệt, trong chúng các byte đơn có thể được đọc và ghi.EEPROM có thể đọc ghi được ít nhất 100.000 lần.

1.6.4 EEPROM Read/Write Access – đọc/ghi vào EEPROMass

Các thanh ghi truy nhập EEPROM có thể được thực hiện trong không gianI/O

1.6.5 Thanh ghi địa chỉ EEPROM – EEARH và EEARL

Bits 15 9 – Res: Các bit dự phòng Các bit này được đặt dự phòng trong

Trang 17

Hình 1.7.1 Sơ đồ chân I/O

Các cổng là cổng I/O 2 chiều với sự lựa chọn các pull-ups bên trong.Hình1.7.2 chỉ ra 1 mô tả các khối chức năng của 1 chân cổng I/O, ta gọi chung làPxn

Trang 18

Hình 1.7.2 Sơ đồ các khối chức năng của 1 chân I/O

Đặt cấu hình cho mỗi chân cổng bao gồm 3 bit thanh ghi: DDxn, PORTxn, và PINxn Các bit DDxn trong thanh ghi DDRx lựa chọn hướng của chân Nếu các bit DDRx là 1 thì Pxn là chân ra, ngược lại là 0 thì là chân vào Nếu các bit

PORTxn là 1 khi chân được cầu hình là chân vào thì các điệc trở pull-up được kíchhoạt Để tắt các điện trở này các bit PORTxn phải đặt lại là 0 hoặc chân ra phải được đặt là chân ra Khi có reset các chân cổng trở về dạng 3 trạng thái ngay cả khi không có xung nhịp

Nếu các bit PORTxn là 1 khi chân được đặt là chân ra thì chân cổng được đặt ở mức cao

Trang 19

Nếu các bit PORTxn là 0 khi chân cổng được đặt là chân ra thì chân cổng được đặt

ở mức 0 Đặt cấu hình cho chân cổng theo bảng 2:

Bảng 2: Đặt cấu hình cho chân cổng

Trang 20

Hình 1.8.1 Sơ đồ cấu trúc bộ đinh thời

1.8.1 Đơn vị đếm

Phần chính của bộ định thời 8 bit là một đơn vị đếm song hướng có thể lập trình được.Cấu trúc của nó như hình dưới đây:

Trang 21

Hình 1.8.2 Đơn vị đếm

Count:tăng hay giảm TCTNT0 1

Direction: lựa chọn giữa đếm lên và đếm xuống

Clear: xóa thanh ghi TCNT0ClkT0 : xung clock của bộ định thời

Top: báo hiệu bộ định thời đã tăng đến giá trị lớn nhất

Bottom: báo hiệu bộ định thơi đã giảm đến giá trị nhỏ nhất(0)

1.8.2 Đơn vị so sánh ngõ ra

Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị trong thanh ghi so sánh ngõ ra (OCR0) Khi giá trị TCNT0 bằng với ORC0, bộ so sánh sẽ tạo một báo hiệu Báo hiệu này sẽ đặt một cờ so sánh ngõ ra (OCF0) lên 1 vào chu kì xungclock tiếp theo Nếu được kích hoạt (OCIE0=1), cờ OCF0 sẽ tạo ra một ngắt so sánh và sẽ tự động được xóa khi ngắt được thực thi Cờ OCRF0 cũng có thể được xóa bằng phần mềm Cấu trúc của nó như hình dưới đây:

Hình 1.8.3 Đơn vị so sánh ngõ ra

Trang 22

1.8.3 Thanh ghi điều khiển timer/counter TCCR0

hình 1.8.4 Thanh ghi điều khiển timer/counter

Bit 7-FOC0 : So sánh ngõ ra bắt buộc

Bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM Khiđặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng sóng.Bit 3;6-WGM01:0: Chế độ tạo dạng sóng

Các bit này điều khiển đếm thứ tự của bộ đếm, nguồn cho giá trị lớn nhất của bộ đếm (TOP) và kiểu tạo dạng sóng sẽ được sử dụng

Bit 5:4-COM01:0: Chế độ báo hiệu so sánh ngõ ra

Các bit này điều khiển hoạt động của chân OC0 Nếu một hoặc cả 2 bit COM01:0 được đặt lên 1, ngõ ra OC0 sẽ hoạt động

Trang 23

1.8.7 thanh ghi so sánh ngõ ra-OCR0

Hình 1.8.6 thanh ghi so sánh ngõ ra

Thanh ghi này chứa một giá trị 8 bit và liên tục được so sánh với giá trị của bộ đếm

1.8.8 Thanh ghi mặt nạ ngắt –TIMSK

Hình 1.8.7 thanh ghi TIMSK

Bit 1- OCIE0: Cho phép ngắt báo hiệu so sánh

Bit 0- TOIE0: Cho phép ngắt tràn bộ đếm

1.8.9 Thanh ghi cờ ngắt bộ định thời –TIFR

Hình 1.8.8 Thanh ghi TIFR

Bao gồm các đặc trưng sau:

Song công, dữ liệu đồng bộ 3 dây

Hoạt động chủ hoặc tớ

Truyền LSB trước hoặc MSB trước

7 tốc độ bit có thể lập trình được

Cờ ngắt khi truyền xong

Bảo vệ xung đột ghi

Đánh thức từ chế độ nhàn dỗi

Chế độ SPI chủ tốc độ đôi

Trang 24

Hình 1.9 Sơ đồ khối SPI

1.10 USART

Bộ truyền và nhận tín hiệu nối tiếp đồng bộ và không đồng bộ vạn năng làthiết bị kết nối nối tiếp có độ linh động cao Các đặc trưng chính sau:

Hoạt động song công

Hoạt động đồng bộ hoặc không đồng bộ

Hoạt động đồng bộ theo xung nhịp chế độ chủ hoặc tớ

Bộ phát tốc độ truyền có độ phân giải cao

Hỗ trợ khung truyền với 5, 6, 7, 8, hoặc 9 Bit dữ liệu và 1 hoặc 2 Stop BitsPhát và kiểm tra chẵn lẻ được hỗ trợ bởi phần cứng

Phát hiện OverRun dữ liệu

Phát hiện lỗi khung truyền

Lọc nhiễu bao gồm phát hiện bit start sai và bộ lọc thông thấp số

Trang 25

3 ngắt riêng biệt khi TX hoàn thành, thanh ghi dữ liệu TX rỗng, và RX hoànthành

Chế độ Multi-processor kết nối

Chế độ kết nối không đồng bộ tốc độ đôi

Một sơ đồ đơn giản của bộ truyền USART được đưa ra như hình 1.10

Hình 1.10 Sơ đồ khối của bộ truyền USART

USART bao gồm 3 phần chính: bộ tạo xung clock, bộ truyền và bộ nhận Cácthanh ghi điều khiển được sử dụng chung giữa các phần này

1.10.1 Tạo xung clock

Trang 26

Bộ tạo xung clock tạo ra xung đồng hồ căn bản cho bộ truyền và bộ

nhận.USART hỗ trợ 4 chế độ hoạt động xung clock: bất đồng bộ, bất đồng bộ tốc

độ cao, truyền đồng bộ master và truyền đồng bộ slave Sơ đồ khối của bộ tạo xung như sau:

Hình 1.10.1 Sơ đồ khối tạo xung clock

Txclk: xung đông hồ bộ truyền

Rxclk: xung đồng hồ bộ nhận

Xcki: tín hiệu vào từ chân XCK, sử dụng cho hoạt động truyền đồng bộ masterXcko: tín hiệu xung clock ngõ ra tới chân XCK, sử dụng cho hoạt động truyền đồng bộ slave

Fosc: tần số từ chân XTAL

1.10.2 Định dạng khung truyền

USART chấp nhận tất cả 30 tổ hợp của các định dạng khung truyền sau đây:

1 bit start

5, 6, 7, 8, hoặc 9 bits dữ liệu

Có hoặc không có bit chẵn lẻ

1 hoặc 2 bits stop

Một khung truyền bắt đầu với 1 bit start, theo sau đó là bit có trọng số thấp nhất (LSB) của dữ liệu (có thể lên tới 9 bit), kết thúc bằng bit có trọng số lớn nhất (MSB) và bit stop

Trang 27

Hình 1.10.2 Định dạng khung truyền

St: bit start (mức thấp)

(n): bit dữ liệu (0 đến 8)

P: bit chẵn lẻSp: bit stop (mức cao)

IDLE: không có dữ liệu truyền (mức cao trong suốt thời gian idle)

1.10.3 Khởi tạo USART

Qúa trình khởi tạo USART bao gồm việc thiết lập tốc độ baud, thiết lập địnhdạng khung và kích hoạt bộ truyền và bộ nhận

1.10.4 Truyền thông dữ liệu –bộ truyền nhận USART

Bộ truyền USART được thiết lập bằng cách thiết lập bit TXEN trong thanh ghiUCSRB Khi bộ truyền được kích hoạt, chân TxD hoạt động như ngõ ra của bộtruyền nối tiếp Tốc độ baud, chế độ hoạt động và định dạng khung truyền phảiđươc thiết lập trước khi truyền dữ liệu

Truyền khung 5 đến 8 bit dữ liệu:

Việc truyền dữ liệu được thiết lập bằng cách nạp dữ liệu truyền vào bộ đệm

truyền.Dữ liệu trong bộ đệm sẽ được đưa vào trong thanh ghi dịch khi thanh ghi dịch đã sẵn sàng gửi một khung mới

Truyền khung 9 bit dữ liệu

Nếu sử dụng 9 bit dữ liệu, bit thứ 9 phải được ghi vào bit TXB8 trong thanh ghi UCSRB trước khi byte còn lại được ghi vào UDR

1.10.5 Nhận dữ liệu – bộ nhận USART

Bộ nhận USART được kích hoạt bằng cách đặt bit RXEN trong thanh ghi

UCRSB lên 1 Khi bộ nhận được kích hoạt, chân RxD hoạt động như ngõ vào của

bộ nhận nối tiếp Tốc độ baud, chế độ hoạt động và định dạng khung truyền phảiđược thiết lập trước khi thực hiện truyền dữ liệu

Trang 28

Nhận khung với 5 đến 8 bit dữ liệu :Bộ nhận bắt đầu nhận dữ liệu khi nó pháthiện 1 bit start hợp lệ Mỗi bit theo sau bit start sẽ được lấy mẫu tại tốc độ baudhoặc tốc độ đồng hồ XCK, vá được dịch vào trong thanh ghi của bộ nhận cho đếnkhi phát hiện một bit stop đầu tiên Nội dung của thanh ghi dịch sau đó được đưavào bộ đệm Bộ đệm của bộ nhận có thể được đọc bằng cách đọc URD Nhận khung truyền với 9 bit dữ liệu: Nếu nhận dữ liệu với 9 bit, bit thứ 9 phảiđược đọc từ bit RXB8 trong thanh ghi UCSRB trước khi đọc các bit thấp trongUDR.

1.11 BỘ BIẾN ĐỔI A/D

Vi điều khiển ATmega16 có một bộ biến đổi ADC tích hợp trong chíp với cácđặc điểm sau:

Độ phân giải 10 bit

Sai số tuyến tính 0.5LSB

Độ chính xác +/- 2LSB

Thời gian chuyển đổi: 65-260µs

8 Kênh đầu vào có thể được lựa chọn

Có 2 chế độ chuyển đổi free running và single

Có nguồn báo ngắt khi hoàn thành chuyển đổi

Loại bỏ nhiễu trong chế độ ngủ

Trang 29

Hình 1.11 Sơ đồ biến đổi analog to digital

Tám đầu vào của ADC là 8 chân của portA và chúng được chọn thông qua mộtMUX.Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3thanh ghi: ADMUX là thanh ghi diều khiển lựa chọn kênh đầu vào cho ADC,ADCSRA là thanh ghi điều khiển và thanh ghi trạng thái của ADC, ADCH vàADCL là 2 thanh ghi dữ liệu

1.11.1 ADMUX: Multiplexer select register

Trang 30

Hình 1.11.1 Thanh ghi ADMUX

Đây là thanh ghi điều khiển 8 bit Với 4 bit được định nghĩa là MUX3,MUX2, MUX1 và MUX0, ứng với các tổ hợp logic ta có thể chọn kênh đầu

Bảng 4 Chọn kênh đầu vào MUX4 0

Các bit REFS1 và REFSO dùng để chọn giá trị điện áp tham khảo cho ADC, như sau:

Bit 7- ADEN : ADC enable

Đây là bít điều khiển hoạt động của ADC Khi bit này được set lên 1 thì ADC có

Trang 31

thể hoạt động và ngược lại Nếu như ta ngừng hoạt động của ADC trong khi nó đang chuyển đổi thì nó sẽ kết thúc quá trình chuyển đổi Mặc dù chưa chuyển đổi xong.

Bit 5-ADATE : ADC Auto trigger enable

Khi bit này được set thì ADC sẽ bắt đầu chuyển đổi mỗi khi có một nguồn kích hoạt xuất hiện Việc lựa chọn nguồn kích hoạt được thực hiện bằng cách set các bittrong thanh ghi SFIOR

BIT 4-ADIF: ADC interrupt Flag

Bit này được set lên một bởi phần cứng khi quá trình chuyển đổi đã hoàn thành và thanh ghi dữ liệu đã dược cập nhập Bít này đước xóa bằng phần cứng nếu như ngắt này được phép và được phục vụ Hoặc nó có thể được xóa bằng cách ghi giá trị logic “0” vào cờ này Cụ thể khi ngắt bị cấm ta có thể sử dụng các lệnh SBI và CBI để tác dụng lên bit này

Bit 3-ADIE: ADC interrupt enable

Nếu bit này set lên 1 và ngắt toàn cục được cho phép thì ngắt này được phục vụ (khi chuyển đổi xong dữ liệu ) và nếu bị xóa thi ngược lại

Bit 2.1.0- ADPS2…ADPS0 :Bit lụa chọn xung nhịp (tốc độ)

Nguồn xung được lầy từ nguồn xung của vi điều khiển (XTAL) và được chia tần thông qua bộ chia tần

Các bit ADPS có nhiệm vụ chọn số chia cho bộ chia tần theo bảng sau:

Bảng 6 Chọn số chia cho bộ chia tần số ADBS

1.11.3 nguyên tắc hoạt động và lập trình điều khiển

ADC có nhiệm vụ chuyển đổi tín hiệu điện áp tương tự thành tín hiệu số có độphân giải 10 bit Với giá trị nhỏ nhất của điện áp đặt ở chân AGND và giá trị cựcđại của điện áp tương tự được mắc vào chân AREF Tám kênh tương tự đầu vàođược chọn lựa thông qua ADMUX và ADMUX này được điều khiển bởi thanh ghiADMUX

ADC này có thể hoạt động được ở 2 chế độ Đó là chuyển đổi đơn: chỉ chuyển đổi

1 lần khi có lệnh (free running mode) đây là chế độ mà ADC tự động chuyển đổi

Trang 32

khi được hoạt động và công việc chuyển đổi có tính tuần hoàn (chỉ cần khởi động

1 lần)

ADC hoạt dộng nhờ thiết lập bit ADEN Quá trình chuyển đổi được bắt đầu bằngviệc ghi vào bit ADSC Mức logic 1 và trong suốt quá trình chuyển dổi bit này luônđược giữ ở mức cao.Khi quá trình chuyển dổi hoàn thành thì bit này được xóabằng phần cứng và cờ AIDF được bật lên

Dữ liệu sau khi chuyển đổi được đưa ra thanh ghi dữ liệu ADCL và ADCH, nhưngchú ý khi đọc dữ liệu từ hai thanh ghi này thì đọc ADCL trước rồi mới đọc ADCH.Nếu đọc ADCH trước thì dữ liệu cập nhập có thể ghi đè lên ADCL ( vi điều khiểnnghĩ rằng đã đọc xong dữ liệu)

Để điều khiển vào ra dữ liệu với ADC, các bước thực hiện như sau:

Bước 1: Định nghĩa các cổng vào cho các tín hiệu tương tự

Xóa bit tương ứng với chân đó trong thanh ghi DDRA Sau đó lại bỏ điện trở treobằng cách xóa bit tương ứng ở thanh ghi PORTA

Bước 2: Chọn kênh tương tự vào ( chọn chân vào cho ADC ) thông qua thanh ghiADMUX (có thể thay đổi trong qúa trình hoạt động )

Bước 3: Thiết lập các thông số cho ADC, tốc độ chuyển đổi thông qua xung nhịpchuyển đổi

Chế độ chuyển đổi: đơn hoặc tự động

Trang 36

CHƯƠNG 2 CÁC LOẠI LINH KIỆN KHÁC

2.1 IC LM324

2.1.1 Single Supply Quad Operational Amplifiers (Opam):

Nhóm IC LM324 có giá thành thấp, có bốn bộ khuếch đại thuật toán với cácngõ vào phân biệt Chúng có vài lợi thế dễ nhận thấy trên nền của bộ khuếch đạithuật toán tiêu chuẩn cung cấp ở ứng dụng đơn lẻ Bốn Opam có thể hoạt động ởđiện áp cung cấp thấp ở 3V hoặc cao 32V với dòng thụ động khoảng 1/5 của dòng

ở IC MC1741 (ở mỗi bộ khuếch đại cơ bản) Ngưỡng ngõ ra chung trong dãy gồmnguồn âm, theo cách ấy loại trừ nhu cầu bởi sự phân cực bên ngoài của các linhkiện ở nhiều thiết bị Dãy áp ngõ ra cũng bao gồm nguồn cung cấp âm

Mạch bảo vệ ngắn mạch ngõ ra

Nguồn đơn từ 3V đến 32V (LM224,LM324,LM324A)

Dòng phân cực ngõ vào thấp: 100nA Maximum( LM324A)

Đóng gói 4 Opam trong một vỏ

Cân bằng bên trong

Chế độ dãy mở rộng đến mức âm nguồn

Sơ đồ chân chuẩn công nghiệp

2.1.2 Hình dáng:

Hình 2.1 hình dáng của LM324

Trang 37

2.1.3 Bảng công suất tối đa

Power Supply Voltages

Input Common Mode

Output Short Circuit

Bảng 2.1 Công suất tối đa

2.1.4 Sơ đồ chân và cấu tạo bên trong:

Trang 38

2.2 IC74HC595

2.2.1 Mô tả:

74HC/HCT595 là một IC CMOS Si-gate tốc độ cao và có chân tương thíchvới mạch logic tranzito-tranzito Schottky năng lượng thấp Được thiết kế dưới sựưng thuận của hội đồng thiết kế các thiết bị điện tử (JEDEC)

“595” là thanh ghi dịch nối tiếp 8 mức với một thanh ghi lưu trữvà 3 chế độngõ ra Thanh ghi dịch và thanh ghi lưu trữ có chia tần số xung clock

Dữ liệu được dịch vào thanh ghi nhờ xung vào ở chân SHcp Dữ liệu từ cácthanh ghi được đưa vào thanh ghi lưu trữ nhờ xung vào ở chân STcp

Thanh ghi dịch có một ngõ vào nối tiếp (Ds) và một ngõ ra tiêu chuẩn nốitiếp (Q7’) cho việc đổ dữ liệu ra Nó cũng được cung cấp chức năng reset bất đồng

bộ (active Low) cho tất cả 8 mức thanh ghi dịch Thanh ghi lưu trữ có bus 8 songsong 3 chế độ điều khiển ngõ ra Dữ liệu vào thanh ghi lưu trữ xuất hiện ở ngõ rabất cứ khi nào chân (OE) cho phép xuất ở mức thấp

2.2.2 Đặc điểm:

Ngõ ra nối tiếp hoặc song song

Thanh ghi với ba chế độ ngõ ra

Thanh ghi dịch với khả năng xóa trực tiếp

Tần số dịch (phổ biến) là 100Mhz

Ngõ ra với khả năng:

Các ngõ ra song song; bus driverNgõ ra nối tiếp; tiêu chuẩnLoại Icc; MSI

2.2.3 Ứng dụng:

Chuyển dữ liệu từ chế độ nối tiếp sang chế độ song song

Điều khiển thanh ghi thời gian

2.2.4 Bảng chức năng các chân:

Bảng 2.2.1 Chức năng các chân

Trang 39

2.2.5 Quick reference data

2.2.6 Sơ đồ chân của 74HC595: Ký hiệu logic

2.2.7 Ký hiệu logic theo IEC

Ngày đăng: 07/09/2017, 15:24

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w