Tải bản đầy đủ (.docx) (47 trang)

Đồ án vi điều khiển atmega16 (ADC)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.3 MB, 47 trang )

Đồ án công nghệ 2
cdk10lc

L ớp :

Mục lục
Chương 1 : Tổng quan về vi điều khiển Atmega16..................................................2
1.1 . Đặc điểm , tính năng........................................................................................2
1.2 . Cấu trúc tổng quát............................................................................................9
1.3 . Thanh ghi trạng thái.......................................................................................10
1.4 . Các thanh ghi chức năng................................................................................11
1.5 . Con trỏ ngăn xếp ( SP )..................................................................................11
1.6 . Bộ nhớ chương trình ( Bộ nhớ Flash)............................................................12
1.7 . Bộ nhớ dữ liệu ram........................................................................................13
Chương 2 : Sơ đồ khối , cấu trúc modul analog to digital converter (ADC).........14
2. 1 . Đặc điểm.......................................................................................................14
2. 2 . Các thanh ghi của ADC.................................................................................16
2.2.1. Độ chính xác của ADC.................................................................................16
2.2.2. Kết quả chuyển đổi ADC.............................................................................18
2.2.3. ADMUX – Multiplexer select register.........................................................19
2.2.4. ADCSRA – ADC control and status register...............................................20
2.2.5. ADCL và ADCH – ADC data register.........................................................22
2.2.6. SFIOR - Special functionIO register...........................................................22
2.3. Bộ đếm và Thời gian chuyển đổi của ADC.....................................................23
2.4. Dang tín hiệu đầu vào và đầu ra của ADC......................................................27
Chương 3 : Lập trình ứng dụng ADC.....................................................................28
3.1. Nội dung lập trình...........................................................................................28
3.2. Lập trình C bằng CodeVisionAVR..................................................................30
3.3. Phần lập trình..................................................................................................33
3.4. Mơ phỏng trên Proteus....................................................................................40
Kết luận.................................................................................................................44


GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 1


Đồ án công nghệ 2
cdk10lc

L ớp :

MỞ ĐẦU

Vi điều khiển là một lĩnh vực khá lý thú . Cùng với sự phát triển của ngành điện tử
thì họ vi điều khiển cũng được các hãng sản xuất chip cho ra đời như : Z80 của Zilog ,
AT89 của Almel , Pic của Microchip , AVR của Atmel …
Họ vi điều khiển AVR của Atmel Corp là một bước phát triển trên nền của Vi điều
khiển AT89 đã khá quen thuộc . Nếu như AT89 có CPU CISC thì AVR là RISC, với
kiến trúc Havard do vậy tốc độ sẽ nhanh hơn. Ngồi ra AVR cũng tích hợp sẵn trong
chip mạch ADC , PWM … cũng như hỗ chợ các chuẩn giao tiếp thông dụng như
UART/USART, I2C , 2-wires , … nên việc thiết kế và thực hiện phần cứng cho những
ứng dụng khá thuận tiện, nhanh chóng , nhỏ gọn .
Về ngơn ngữ lập trình cho Avr thì có rất nhiều , như : assembly, C , Basic , Pascal ,
… trong đó những phần mềm miễn phí do chính Atmel cung cấp , hay những hãng
khác là rất nhiều , điển hình trong số đó có CodevisionAVR
Hơn thế, chế độ mô phỏng, debug cũng được hỗ chợ các từ A-Z , nhiều phần mềm
simulator , emulator như : AVRstudio , proteus, … . Trong phạm vi của cuốn đồ án này
em chỉ nghiên cứ về vi điểu khiển Atmega16 và tìm hiểu về đề tài “ Lập trình analog
to digital converter trong vi điều khiển Atmega16 “ ( chuyển đổi tín hiệu tương tự

sang tín hiệu số ) do thầy Lê Ngọc Trúc hướng dẫn. Trong quá trình tìm hiểu em có sử
dụng tài liệu datasheet của hãng Atmel ( www.atmel.com ), cùng một số tài liệu do thầy
hưỡng dẫn cung cấp. Tuy vậy, trong quá trình làm làm đồ án này em vẫn cịn nhiều
thiếu sót.

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 2


Đồ án công nghệ 2
cdk10lc

L ớp :

Em rất mong được sự góp ý của các thầy để em có thể hồn thiện hơn nữa đề tài đồ
án của mình . Em xin chân thành cảm ơn !

Chương 1 : Tổng quan về vi điều khiển Atmega16
1.1 . Đặc điểm , tính năng
+ Hiệu suất cao , tiết kiệm điện
+ Hồn thiện cấu trúc RISC
-

131 lệnh hiệu quả - thực thi các chu kỳ đồng hồ đơn

-


32 x 8 Thanh ghi chung đa năng + các thanh ghi điều khiển ngoại vi

-

Đầy đủ các quá trình điều khiển tĩnh

-

Nâng lên 16 MIPS dữ liệu tại 16 MHz

-

Chíp 2 nhân

+ Độ bền , sức chịu đựng cao , không thay đổi phân vùng nhớ
-

16 KBytes bộ nhớ Flash có thể lập trình được trong hệ thống

-

512 Bytes EEPROM

-

1 Kbytes bộ nhớ SRAM bên trong

-

Chu kỳ ghi/xóa : 10000Flash / 100000EEPROM


-

Độ bền giữ liệu: 20 năm ở / 100 năm ở

-

Đoạn mã lựa chọn chế độ khởi động với các bit khóa độc lập trong chương
trình hệ thống bởi chương trình khởi động đọc thật trong khi q trình ghi
diễn ra

-

Lập trình khóa cho phần mềm bảo mật

+ Giao diện JTAG ( phù hợp với tiêu chuẩn IEEE 1149.1)
-

Khả năng quét biên theo tiêu chuẩn JTAG

-

Hỗ chợ chế độ sửa tạm ( debug ) trên chíp

-

Lập trình của Flash, EEPROM , bộ bảo vệ ( FUSE ) và bít khóa ( Lock bits)
thơng qua giao diện JTAG

GVHD: Lê Ngọc Trúc


SVTH : Phạm Quốc Minh

Trang 3


Đồ án công nghệ 2
cdk10lc

L ớp :

+ Đặc điểm ngoại vi :
-

Hai bộ timer/counter 8 bít với bộ đếm gộp trước riêng biệt và chế độ so
sánh mẫu

-

Một bộ timer/counter 16 bit mở rộng với bộ đếm gộp trước chế độ so sánh
mẫu và chế độ thu thập ( bắt dữ liệu )

-

Bộ counter thời gian thực với bộ giao động ( oscillator) riêng biệt

-

Bộ điều chế so sánh tín hiệu ra


-

8-kênh , 10-bit ADC:
8 kênh đầu cuối đơn
7 kênh khác nhau (vi phân)
2 kênh khác nhau với bộ khuyếch đại lập trình được tại 1x, 10x , 200x

-

Bit định hướng với hai dây giao diện nối tiếp

-

Lập trình kép các USARTs nối tiếp

-

Giao diện nối tiếp SPI chủ/tớ

-

Lập trình timer Watchdog với bộ dao động trên chip

-

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

+ Các tính năng đặc biệt của bộ vi sử lý:
-


Thiết lập bật lại nguồn và lập trình lại khi phát hiện nguồn yếu (Brown –
out)

-

Hiệu chỉnh độ dao động RS bên trong

-

Ngắt nguồn trong và ngoài

-

Sáu chế độ chờ ( Sleep ): Idle , giảm ồn ADC , tiết kiệm điện ( Power –
saver), ngắt điện , chế độ chờ ( Standby) , chế độ chờ mở rộng

+ Cổng vào/ra và dạng đóng gói
-

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

-

40 chân PDIP, 44 đường dẫn TQFP và 44 khối QFN/MLF

+ Điện áp hoạt động
-

2,7 – 5,5V Atmega16L


-

4,5 – 5,5V Atmega 16

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 4


Đồ án công nghệ 2
cdk10lc

L ớp :

+ Mức độ xung nhịp
-

0 – 8 MHz Atmega 16L

-

0 – 16 MHz Atmega 16

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 5



Đồ án cơng nghệ 2
cdk10lc

L ớp :

Hình 0.1: Các chân của vi điều khiển Atmega16
Atmega16 là một vi sử lý 8 bit CMOS điên áp thấp dựa trên nền kiến trúc AVR
RISC nâng cao . Bằng cách thi hành các lệnh một cách mạnh mẽ trong một chu kỳ
đồng hồ duy nhất , Atmega16 có thể cho phép tốc độ đạt được là 1 MPIS/MHz từ đó nó
giúp người thiết kế hệ thống có khả năng tối ưu hóa điện năng sử dụng so với tốc độ sử
lý.

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 6


Đồ án cơng nghệ 2
cdk10lc

L ớp :

Hình 0.2: Sơ đồ khối của vi điều khiển

AVR bao gồm 1 tập hợp các lệnh cài đặt với 32 thanh ghi chung đa năng . Tất cả 32
thanh ghi đều được nối trực tiếp với khối số học và logic ( ALU ) nó cho phép 2 thanh

ghi độc lập được truy cập trong một lệnh thực thi trong một chu kỳ quét xung đồng hồ,
GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 7


Đồ án công nghệ 2
cdk10lc

L ớp :

kết quả của cấu trúc này là có nhiều kiểu chế độ hiệu quả hơn trong khi vẫn đạt được
tốc độ tối đa nhanh hơn 10 các bộ vi sử lý CISC thông thường.
Atmega16 cung cấp những tính năng sau đây : 16 Kbytes của bộ nhớ lập trình Flash
trong hệ thống với khả năng đọc trong khi đang ghi , 512 Bytes EEPROM , 1 Kbytes
SROM , 32 đường vào/ra đa năng , 32 thanh ghi chung đa năng , giao diện kiểm tra
JTAG , 3 bộ timer/counter tiện dụng , bộ đếm thời gian thực , 1 USART, 1 byte định
hướng 2 dây giao diện nối tiếp , 8 kênh , 10 bit ADC với các lựa chọn cổng vào riêng
biệt với khả năng lập trình khuếch đại , lập trình timer Watchdog với bộ giao động bên
trong , 1 cổng SPI nối tiếp , và 6 phần mềm có thể lựa chọn chế độ tiết kiệm điện . Chế
độ IDLE dừng CPU trong khi chu phép USART , 2 giao diện , chuyển đổi Tương tự/Số
, SRAM , Timer/counter , cổng SPI , và các ngắt hệ thông tiếp tục vận hành. Chế độ tắt
nguồn tiết kiệm dung lượng của thanh ghi nhưng nó làm đóng băng bộ dao động bên
trong , vơ hiệu hóa tất cả các chức năng của chip cho đến khi có ngắt kế tiếp hoặc là
reset lại phần cứng. Trong chế độ tiết kiệm điện , bộ timer vẫn tiếp tục chạy , điều này
cho phép người sử dụng bảo dưỡng trong một khoảng thời gian trong khi phần còn lại
của thiết bị đang trong quá trình nghỉ ( Sleeping) . Kiểu giảm nhiễu ADC dừng CPU và
tất cả các modul vào/ra trừ các timer dị bộ và ADC . làm cực tiểu nhiễu chuyển mạch

trong xuốt quá trình chuyển đổi ADC . Trong chế độ chờ Standby bộ tạo dao động
thạch anh và cộng hưởng đang chạy trong khi phần còn lại của thiết bị đang trong trạng
thái ngủ . Điều này cho phép rất nhiều các khởi tạo nhanh được tiêu thụ điện áp thấp .
Trong chế độ chờ mở rộng , cả hai bộ tạo dao động chính và các timer dị bộ vẫn đang
chạy .
Thiết bị này được sản xuất dựa trên cơng nghệ chíp nhớ độ đặc cao của ATMEL . Bộ
nhớ flash ISP trên chip cho phép bộ nhớ chương trình được lập trình lại trong hệ thống
thơng qua 1 giao diện ISP nối tiếp , bằng một chương trình lập trình bộ nhớ cố định
thơng thường hoặc bằng một chương trình khởi động đang chạy trong lõi của AVR .
Chương trình khởi động có thể sử dụng bất cứ giao diện nào để tải các chương trình
ứng dụng vào trong bộ nhớ các chương trình ứng dụng ( Flash ) . Phần mềm trong phần
vùng khởi động của bộ nhớ Flash sẽ tiếp tục chạy trong khi các ứng dụng trong phân
GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 8


Đồ án công nghệ 2
cdk10lc

L ớp :

vùng này được cập nhật , cung cấp hoạt động đọc trong khi ghi . Bằng việc kết hợp 1
CPU- cấu trúc 8 bit RISC với bộ nhớ flash lập trình hệ thống trên 1 chip đơn , Atmega
16 là một vi sử lý mạnh , nó cung cấp 1 sự linh hoạt cao và mơi trường làm việc có ích
cho rất nhiều các úng dụng điều khiển nhúng .
Atmega 16 được hỗ trợ với 1 sự thích hợp đầy đủ của chương trình và các
công cụ phát triển hệ thống bao gồm : trình biên dịch C , các macro Asemmbler , các

chương trìnhc hạy thử và mơ phỏng , 1 bộ mơ phỏng mạch điện , và các công cụ đánh
giá so sánh.

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 9


Đồ án công nghệ 2
cdk10lc

L ớp :

1.2 . Cấu trúc tổng quát

Hình 0.3: Sơ đồ cấu trúc CPU của Atmega16
Thấy rằng 32 thanh ghi trong Register File được kết nối trực tiếp với Arithmetic
Logic Unit -ALU (ALU cũng được xem là CPU của AVR) bằng 2 line, vì thế ALU có
thể truy xuất trực tiếp cùng lúc 2 thanh ghi RF chỉ trong 1 chu kỳ xung clock.

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 10


Đồ án công nghệ 2

cdk10lc

L ớp :

1.3 . Thanh ghi trạng thái

C : Carry Flag – Cờ nhớ ( Nếu phép tốn có nhớ cờ sẽ được thiết lập )
Z : Zero Flag – Cờ 0 ( Nếu kết quả phép tốn bằng khơng )
N : Negative Flag - ( Nếu kết quả phép toán là âm )
V : Two’s complement overflow indicator - (Cờ này được thiết lập khi chàn số bù 2)
H : Half carry Flag - (Sử dụng trong một số toán hạng)
T : Transfer bit used by BLD and BST instructions - ( Sử dụng làm nơi trung gian trong
các lệnh BLD , BST)
I : Global interrupt Enabal/Disabal Flag - (Đây là bit cho phép toàn cục ngắt . Nếu bit
này ở trong thái logic 0 thì khơng có một ngắt nào được phục vụ)

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 11


Đồ án công nghệ 2
cdk10lc

L ớp :

1.4 . Các thanh ghi chức năng


1.5 . Con trỏ ngăn xếp ( SP )
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 $3E ( Trong bộ nhớ RAM là $5E)
. Có nhiệm vụ trỏ tới vùng nhớ RAM có ngăn xếp.

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 12


Đồ án công nghệ 2
cdk10lc

L ớp :

1.6 . Bộ nhớ chương trình ( Bộ nhớ Flash)
Gồm 2 phần , phần dành cho chương trình Boot và phần dành cho chương trình ứng
dụng

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 13


Đồ án công nghệ 2
cdk10lc


L ớp :

1.7 . Bộ nhớ dữ liệu ram
1120 ô nhớ của bộ nhớ dữ liệu định địa chỉ chi File thanh ghi, bộ nhớ vào/ra và bộ
nhớ dữ liệu SRAM nội . Trong đó 96 ô nhớ đầu tiên định địa chỉ cho File thanh ghi và
bộ nhớ vào/ra , và 1024 ô nhớ tiếp theo định địa chỉ cho bộ nhớ SRAM nội .

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 14


Đồ án công nghệ 2
cdk10lc

L ớp :

Chương 2 : Sơ đồ khối , cấu trúc modul analog to digital
converter (ADC)
2. 1 . Đặc điểm
Độ phân giải 10 bit
Sai số tuyến tính : 0.5LSB
Độ chính xác +/- 2 LSB
Thời gian chuyển đổi : 65 – 260 µs
8 kênh đầu vào có thể được lựa chọn
Có hai chế độ chuyển đổi Free running và Single conversion
Có nguồn báo ngắt khi hồn thành chuyển đổi

Loại bỏ nhiễu trong chế độ ngủ
Tám đầu vào của ADC là tám chân của PORTA và chúng được chọn thông qua một
MUX
Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi:
ADMUX là thanh ghi điề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à hai thanh ghi dữ
liệu.
Bộ ADC chuyển đổi tín hiệu đầu vào analog sang tín hiệu digital 10-bit thơng qua
approxi-mation . Giá trị nhỏ nhất đại diện cho chân GND và giá trị lớn nhất đại diện
cho điện áp trên chân AREF .

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 15


Đồ án cơng nghệ 2
cdk10lc

L ớp :

Hình 0.4: Sơ đồ bộ biến đổi ADC

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 16



Đồ án công nghệ 2
cdk10lc

L ớp :

2. 2 . Các thanh ghi của ADC
2.2.1. Độ chính xác của ADC
Một số thông sô mô tả độ lệch của trạng thái lý tưởng
Offset: Độ lệch của quá trình chuyển đổi đầu tiên (0x000 để 0x001) so với quá trình
chuyển đổi lý tưởng (0.5 LSB). Giá trị lý tưởng: 0 LSB.

Không thể tách rời tuyến tính (INL): Sau khi điều chỉnh bù đắp và đạt được lỗi, INL
là độ lệch tối đa của một quá trình chuyển đổi thực tế so với một quá trình chuyển đổi
lý tưởng cho bất kỳ mã. Giá trị lý tưởng: 0 LSB.

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 17


Đồ án cơng nghệ 2
cdk10lc

L ớp :

Khơng phân tuyến tính (DNL): Chiều rộng độ lệch thực tế (khoảng cách giữa hai

quá trình chuyển đổi liền kề) với chiều rộng lý tưởng (1 LSB). Giá trị lý tưởng: 0 LSB.

Lượng Lỗi: Do lượng tử của điện áp đầu vào thành một số hữu hạn các mã số, một
loạt các điện áp đầu vào (rộng 1 LSB) sẽ mã với giá trị tương tự. Ln ln ± 0,5 LSB.
Độ chính xác tuyệt đối: Độ lệch tối đa của một thực tế (không điều chỉnh) chuyển
đổi so với một quá trình chuyển đổi lý tưởng cho bất kỳ mã. Đây là hiệu ứng của hợp
chất Offset, Gain lỗi, sai lỗi, khơng tuyến tính, và Quantization Lỗi. Giá trị lý tưởng: ±
0,5 LSB.

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 18


Đồ án công nghệ 2
cdk10lc

L ớp :

2.2.2. Kết quả chuyển đổi ADC
Sau khi chuyển đổi hoàn tất (ADIF là cao), kết quả chuyển đổi có thể được tìm thấy
trong ADC. Kết quả chuyển vào (ADCL, ADCH).

VIN : Điện áp trên chân đầu vào
VREF:

Điện áp tham chiếu được lựa chọn . 0x000 đến 0x3FF


GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 19


Đồ án công nghệ 2
cdk10lc

L ớp :

2.2.3. ADMUX – Multiplexer select register
Đây là thanh ghi điều khiển 8 bit
Lựa chọn điện áp tham chiếu
Chọn kênh ADC

Thanh ghi ADMUX
Các REFS1 , REFS0 chọn điện áp tham chiếu cho ADC :
REFS1
0
0
1
1

REFS0
0
1
0
1


Lựa chọn điện áp tham chiếu
Điện áp ngoài từ chân AREF
AVCC với tụ điện bên ngoài của chân AREF
Reserved
Điện áp tham chiếu nội 2.56V với tụ điện bên ngồi chân
AREF

Ví dụ : Để lấy điện áp ngoài trên chân AREF , đối chiều với bảng chúng ta cần set 2 bit
REFS1=0 và REFS0=0 , câu lệnh như sau :
#define AREF_MODE 0
Điện áp tham chiếu nội , tương ứng với bit REFS=1 :
#define INT_MODE

(1<
Chọn điện áp tham chiếu từ chân AVCC:
#define AVCC_MODE (1<Với 4 bít đượ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 vào . Cụ thể :

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 20


Đồ án công nghệ 2
cdk10lc


L ớp :

2.2.4. ADCSRA – ADC control and status register
Đây là thanh ghi điều khiển và lưu trạng thái của ADC

Ví dụ :
Set bit ADSC trong thanh ghi ADCSRA để bắt đầu quá trình chuyển đổi :
ADCSRA|=(1<Sau khi quá trình chuyển đổi kết thúc bit ADIF sẽ được tự động set lên 1, trong lúc chờ
cho quá trình chuyển đổi kết thúc ta dùng câu lệnh :
loop_until_bit_is_set(ADCSRA,ADIF);
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ó
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 q trình chuyển đổi . Mặc dù chưa chuyển đổi xong.
ADSC – ADC start conversion:
Trong chế độ chuyển đổi đơn thì bít này phải được set lên 1 để bắt đầu chuyển
đổi . Trong chế độ chuyển đổi tự do thì bit này cần được set lên 1 để bắt đầu lần chuyển
GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 21


Đồ án công nghệ 2
cdk10lc

L ớp :


đổi đầu tiên . Bit này được giữ xuốt trong quá trình chuyển đổi và được xóa khi mà
chuyển đổi xong.
ADATE – ADC auto trigger enable
Khi bit này được set thi ADC 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 thực hiện bằng cách set các bit trong thanh
ghi SFIOR.
ADIF – ADC interrupt Flag
Bit này được Set lên 1 bởi phần cứng khi quá trình chuyển đổi đã hồn thành và
thanh ghi dữ liệu đã cập nhật . Bit 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 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 bít này.
ADIE – ADC interrupt enable
Nếu bit này set 1 và ngắt toàn cục được phép phục vụ và nếu bị xóa thì ngược lại
ADPS2…ADPS0 – Bít 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 :

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 22


Đồ án công nghệ 2
cdk10lc


L ớp :

2.2.5. ADCL và ADCH – ADC data register
Thanh ghi này chứa giá trị chuyển đổi từ tương tự sang số
Nếu quá trình chuyển đỗi đã kết thúc, kết quả chuyển đổi sẽ được chứa trong 2
thanh ghi ADCL và ADCH, 2 thanh ghi này được tự động gộp thành thanh ghi 16 bit
ADCW (ADC WORD)
Trả về kết quả chuyển đổi , câu lệnh :
return ADCW;
ADLAR = 0 :

ADLAR = 1:

2.2.6. SFIOR - Special functionIO register
Thanh ghi chức năng đặc biệt, 3 bit cao trong thanh ghi này quy định nguồn kích
ADC nếu chế độ Auto Trigger được sử dụng. Đó là các bit ADTS2:0 (Auto Trigger
Source 2:0). Các loại nguồn kích được trình bày trong bảng :

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 23


Đồ án cơng nghệ 2
cdk10lc

L ớp :


Nguồn kích ADC trong chế độ Auto Trigger:
ADTS2
0
0
0
0
1
1
1
1

ADTS1
0
0
1
1
0
0
1
1

ADTS0
0
1
0
1
0
1
0
1


Nguồn kích
Chế độ chạy miễn phí
So sánh Analog
Ngắt ngoài yêu cầu 0
Timer/Counter0 So sánh phù hợp
Timer/Counter0 Tràn
Timer/Counter1 so sánh phù hợp với B
Timer/Counter1 tràn
Timer/Counter1 nắm bắt sự kiện

2.3 Bộ đếm và Thời gian chuyển đổi của ADC

Hình : Bộ đếm ADC

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 24


Đồ án công nghệ 2
cdk10lc

L ớp :

Theo mặc định, tần số đầu vào cấp cho mạch trong một chu kỳ lằm trong khoảng từ
50kHz đến 200kHz để đạt độ phân giải tối đa. Nếu độ phân giải thấp hơn 10bit là cần
thiết , đầu vào của 1 chu kỳ tần số cho ADC có thể cao hơn 200kHz để đạt được 1 tỷ

lệ .
Các module của ADC có một bộ đếm gộp, tạo ra bộ ADC có 1 chu kỳ tần số có thể
chấp nhận được bất kỳ CPU nào có tần số trên 100kHz . Các bộ đếm được thiết lập
bởi các bit ADPS và ADCSRA . Bộ đếm bắt đầu từ thời điểm bộ ADC thiết lập bit
ADEN trong thanh ghi ADCSRA . Bộ đếm tiếp tục chay cho đến khi các bít ADEN
được thiết lập , và liên tục cho đến khi bit ADEN đạt giá trị thấp nhất . Khi bắt đầu kết
thúc quá trình chuyển đổi đầu tiên bằng cách thiết lập bit ADSC trong thanh ghi
ADCSRA. Một lần chuyển đổi bình thương mất 13 chu kỳ thời gian ADC .
Trên thực tế là 1,5 chu kỳ thời gian sau lần chuyển đổi bình thường và 13,5 chu kỳ
thời gian ADC sau lần chuyển đổi đầu tiên . Khi q trình chuyển đổi hồn tất kết quả
được ghi vào bộ ADC dữ liệu và ADIF được thiết lập. Khi ở chế độ tự động , bộ đếm
sẽ thiết lập lại những việc đã làm và bắt đầu quá trình chuyển đổi .
Trong chế độ chạy Free running , một chuyển đổi mới sẽ được thiết lập ngay lập tức
sau khi sau khi quá trình chuyển đổi trước hồn tất , trong khi ADSC vần cịn ở mức
cao.
Bảng 1 : Giản đồ thời gian ADC, lần chuyển đổi đầu tiên (Chế độ chuyển đổi đơn)

GVHD: Lê Ngọc Trúc

SVTH : Phạm Quốc Minh

Trang 25


×