- Điều khiển nhiệt độ chỉ là một lĩnh vực nhỏ trong điều khiển tự động, và cũng đã có nhiều công trình có hiệu quả cao như các lò nung trong công nghiệp, các lò nướng dân dụng, … đòi hỏi
Trang 1PHẦN 1: TỔNG QUAN VỀ ĐỀ TÀI ĐIỀU KHIỂN NHIỆT ĐỘ
Chương I: GIỚI THIỆU ĐỀ TÀI
1.3 Phương hướng và phương pháp nghiên cứu 5
1.4 Khó khăn trong quá trình nghiên cứu và biện pháp khắc phục 5
PHẦN 2: CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Chương 1: PHƯƠNG PHÁP ĐO NHIỆT ĐỘ
Chương 2: KHỐI GIAO TIẾP MÁY TÍNH
Chương 3: KHẢO SÁT VI ĐIỀU KHIỂN ATMEGA32
Chương 4: KHỐI CÔNG SUẤT
4.1 Giới Thiệu Tổng Quát Về Solid State Relay (SSR) 41
4.2 Các loại SSR của hang OMRON 42
Chương II: CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN NHIỆT ĐỘ
5.2 Điều khiển kiểu PID
5.2.1 Điều khiển Tỉ Lệ (P) 45
Trang 25.2.2 Điều khiển Tích Phân (I) 46 5.2.3 Điều khiển Vi Phân (D) 46 5.2.4 Điều khiển Tích Phân - Tỉ Lệ (PI) 47 5.2.5 Điều khiển Vi Phân – Tỉ Lệ (PD) 47 5.2.6 Điều khiển Vi Phân – Tích Phân – Tỉ Lệ (PID) 48 5.3 Điều khiển kiểu FUZZY
5.3.1 Khái niệm cơ bản 51 5.3.2 Định nghĩa tập mờ 51 5.3.3 Bộ điều khiển mờ 52 5.3.4 Thiết Kế Bộ Điều Khiển Mờ 53 5.3.5 Thiết kế PID mờ 54
PHẦN 3: KẾT QUẢ THỰC HIỆN ĐỀ TÀI
Chương 1: ĐÁNH GIÁ
Danh mục tài liệu tham khảo 67
Phụ lục 68
Trang 3LỜI MỞ ĐẦU
- Trong thời đại công nghiệp hóa hiện đại hóa ngày nay, cùng với sự phát triễn như vũ bão của kỹ thuật điện tử trong những năm gần đây mà đặc thù là công nghệ bán dẫn và vi điện tử, đã cho ra đời nhiều sản phẩm vi xử lý ngày một hoàn thiện hơn Từ
họ vi điều khiển 8051 kinh điển đã xuất hiện các dòng khác với những tính năng ưu việt và hoàn thiện hơn như PIC, AVR, LPC… Nhờ vào sự phát triển mạnh mẽ của Vi
xử lý thì điều khiển tự động đã trở thành một nhu cầu rất cần thiết trong đời sống sinh hoạt cũng như sản xuất Dưới sự xuất hiện của các học thuyết và các ứng dụng cụ thể trong đời sống hàng ngày, có thể nói điều khiển tự động đang chi phối dần cuộc sống của chúng ta, mang lại sự tiện nghi và thoải mái cho chúng ta Trong phạm vi đề tài này nhóm sẽ ứng dụng Vi điều khiển AVR của họ ATMEL để thực hiện việc đo và điều khiển nhiệt độ
- Điều khiển nhiệt độ chỉ là một lĩnh vực nhỏ trong điều khiển tự động, và cũng
đã có nhiều công trình có hiệu quả cao như các lò nung trong công nghiệp, các lò nướng dân dụng, … đòi hỏi phải điều khiển sao cho nhiệt độ bằng hoặc xấp xỉ nhiệt độ đặt để đáp ứng các điều kiện mà nhu cầu sản xuất đặt ra Đề tài này ra đời chỉ nhằm mục đích tìm hiểu và đưa ra giải pháp mà có thể dễ dàng ứng dụng được với giá thành
rẻ, dễ thi công, và hiệu quả tạm chấp nhận được
- Mặc dù nhóm đã dành hết tâm huyết để nghiên cứu thực hiện đề tài được đúng thời hạn Tuy nhiên, đây là đề tài thực tế về điều khiển nhiệt độ đầu tiên mà nhóm tham gia thực hiện nên có thể không tránh khỏi sai sót trong quá trình thiết kế và thi công Rất mong nhận được sự đóng góp ý kiến để đề tài có thể hoàn thiện hơn
- Thi công bộ điều khiển lò sấy để có thể nghiên cứu tại trường, chủ động trong quá trình gối đầu bước tiếp theo có định hướng với công ty Nectokin Nghiên cứu một
số công nghệ mới như : điều khiển dùng AVR, PID, kỹ thuật điều khiển mờ (Fuzzy)… Nhằm nâng cao rõ rệt trình độ chuyên sâu của giáo viên Đề tài thực hiện thành công
sẽ làm mô hình cho sinh viên thực tập điều khiển quá trình, điều khiển hệ thống tự động
- Kết thúc giai đoạn 1 thực hiện đề tài, nhóm đã hoàn thành đúng tiến độ đề ra như: thi công hoàn chỉnh lò nhiệt, thiết kế mạch điều khiển, mạch công suất, lâp trình chế độ điều khiển ON/OFF, PID, thiết kế giao diện giao tiếp máy tính, nghiên cứu và viết chương trình thuật giải Fuzzy logic
- Trong giai đoạn 2 sẽ đưa thuật giải Fuzzy vào điều khiển lò nhiệt và hoàn chỉnh
mô hình để đề xuất đưa vào giảng dạy
Trang 4Phần 1: TỔNG QUAN VỀ ĐỀ TÀI ĐIỀU KHIỂN
NHIỆT ĐỘ
1.1 Mục đích đối tượng và phạm vi nghiên cứu:
- Nghiên cứu một số công nghệ mới như : điều khiển dùng AVR, PID, kỹ thuật điều khiển mờ (Fuzzy)… Nhằm nâng cao trình độ chuyên sâu
- Đề tài thực hiện thành công sẽ làm mô hình cho sinh viên thực tập điều khiển quá trình, điều khiển hệ thống tự động
- Đối tượng điều khiển là mô hình lò sấy
- Phạm vi và mục đích nghiên cứu là ứng dụng những kiến thức đã học vào thực tiễn nhằm củng cố và nâng cao trình độ
Mô hình lò sấy cần điều khiển
Bộ Điều Khiển Thông Dụng Trên Thị Trường
Trang 51.2 Tình hình nghiên cứu trong và ngoài nước:
- Trong lĩnh vực khoa học kỹ thuật đề tài đo lường và điều khiển nhiệt độ không phải là một đề tài mới, và trên thực tế đã có rất nhiều công trình nghiên cứu về vấn đề trên Tuy nhiên để thực hiện được và đưa vào ứng dụng trong thực tiễn sản xuất thì hầu như rất ít và trên thực tế thì hầu hết các bộ đo lường và điều khiển nhiệt độ là được nhập từ các hãng sản xuất lớn
1.3 Phương hướng và phương pháp nghiên cứu:
- Thiết kế và thi công mạch đo nhiệt độ sử dụng Thermocouple loại K
- Thiết kế và thi công mạch khuếch đại sử dụng IC AD595 chuyên dụng cho thermocouple loại K
- Tìm hiểu về vi điều khiển AVR và phương pháp chuyển đổi ADC (Analog to Digital Convert)
- Tìm hiểu về các phương pháp điều khiển nhiệt độ ON/OFF, PID VÀ FUZZY
- Thiết kế chương trình giao diện của bộ hiển thị trên LCD 20x4 và phím nhấn giao tiếp người dùng
- Tiến hành điều khiển lò nhiệt thực tế để cân chỉnh các thông số điều khiển
- Thiết kế mạch giao tiếp máy tính để gửi các thông số điều khiển và đáp ứng ngõ
xử lý chống nhiễu bằng phần mềm
- Để thực hiện thuật toán chuyển đổi từ điện áp trả về tại đầu dò ra nhiệt độ đòi hỏi thực hiện nhiều phép toán nâng cao như hàm mũ, logaric… mà dùng vi điều khiển để thực hiện thì thời gian đáp ứng là rất chậm Sau một thời gian tối ưu hóa thuật toán vẫn không thành công biện pháp được nhóm đề xuất là lập bảng tra giá trị quy đổi từ tín hiệu đầu vào tương ứng với nhiệt độ thực tế, kết quả là tốc độ xử
lý rất nhanh gần như tức thời
- Vi điều khiển AVR là họ vi điều khiển tương đối mới của hãng ATMEL, lý do nhóm chọn VĐK này vì nó được tích hợp sẵn bộ biến đổi ADC (Analog to Digital) rất cần cho việc đo nhiệt độ và một lý do quan trọng hơn nữa là nhóm muốn tìm hiểu nghiên cứu những cái mới không trùng lắp với các đề tài đi trước (thường dùng họ 8051 kết hợp với IC chuyển đổi ADC) Để tiếp cận cách sử dụng nó và ứng dụng vào đề tài trong khoảng thời gian ngắn là một cố gắng nỗ lực hết mình của nhóm (thiết kế mạch nạp, mạch điều khiển, kiến trúc VĐK AVR, phần mềm lập trình, phần mềm nạp, ngôn ngữ lập trình…)
Trang 61.5 Sơ đồ khối tổng thể của hệ thống:
Khối Cảm Biến
(dùng thermocouple
loại K its_90)
Khối Khuếch Đại (IC AD595)
Khối chuyển đổi ADC
Và Xử Lý Trung Tâm (AVR ATMEGA32)
Khối bàn phím (nhập thông số điều khiển)
Khối Công Suất Điều
Trang 7Phần 2: CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP
Sơ đồ khối của một hệ thống đo lường tổng quát:
- Khối chuyển đổi: làm nhiệm vụ nhận trực tiếp các đại lượng vật lý đặc trưng cho đối tượng cần đo biến đổi các đại lượng thành các đại lượng vật lý thống nhất(dòng điện hay điện áp) để thuận lợi cho việc tính toán
- Mạch đo: có nhiệm vụ tính toán biến đổi tín hiệu nhận được từ bộ chuyển đổi
sao cho phù hợp với yêu cầu thể hiện kết quả đo của bộ chỉ thị
- Khối hiển thị: làm nhiệm vụ biến đổi tín hiệu điện nhận được từ mạch đo để thể hiện kết quả đo
1.2 Sơ Đồ Khối Chi Tiết Của Hệ Thống Đo:
Khối Cảm
Biến
Khuếch Đại tín hiệu đo Dồn Kênh
tương tự
Khối ADC Khối xử lý trung tâm
Khối bàn phím
Khối Giao Tiếp Máy Tính
Khối Hiển Thị
Khối Công Suất
Trang 8Nguyên lý hoạt động:
Để cho mạch nhỏ gọn hơn nhóm đã lựa chọn sử dụng vi điều khiển AVR
ATMEGA 32 của hãng ATMEL tích hợp sẵn bộ ADC 8 kênh
Đối tượng cần đo là đại lượng vật lý,dựa vào các đặc tính của đối tượng cần đo
mà ta chọn một loại cảm biến phù hợp để biến đổi thông số đại lượng vật lý cần đo thành đại lượng điện ,đưa vào mạch chế biến tín hiệu(gồm:bộ cảm biến,hệ thống khuếch đại,xử lý tín hiệu)
Bộ chuyển đổi tín hiệu sang số ADC(Analog Digital Converter) làm nhiệm vụ chuyển đổi tín hiệu tương tự sang tín hiệu số và kết nối với khối xử lý trung tâm
Bộ vi xử lý có nhiệm vụ thực hiện những phép tính và xuất ra những lệnh trên
cơ sở trình tự những lệnh chấp hành đã thực hiện trước đó
Bộ dồn kênh tương tự (multiplexers) và bộ chuyển ADC được dùng chung tất
cả các kênh Dữ liệu nhập vào vi xử lý sẽ có tín hiệu chọn đúng kênh cần xử lý đê đưa vào bộ chuyển đổi ADC và đọc đúng giá trị đặc trưng của nó qua tính toán để có kết quả của đại lượng cần đo
Khối bàn phím là những nút nhấn để người dùng nhập thông số điều khiển Khối giao tiếp máy tính dùng IC Max232 để truyền và nhận dữ liệu từ máy tính Khối công suất dùng SSR (Solid State Relay) để cung cấp năng lượng nung điện trở nhiệt đốt lò
Khối hiển thị dùng LCD 20x4 để thông báo nhiệt độ đặt, nhiệt độ đio và chế độ điều khiển
Phương Pháp Đo Nhiệt Độ:
Đo nhiệt độ là một phương thức đo lường không điện, đo nhiệt độ được chia thành nhiều dãy:
+ Đo nhiệt độ thấp
+ Đo nhiệt độ trung bình
+ Đo nhiệt độ cao
Việc đo nhiệt độ được tiến hành nhờ các dụng cụ hổ trợ chuyên biệt như:
+ Cặp nhiệt điện
+ Nhiệt kế điện kế kim loại
+ Nhiệt điện trở kim loại
+ Nhiệt điện trở bán dẫn
+ Cảm biến thạch anh
Để đo lường các đại lượng có nhiệt độ lớn như ứng dụng cho các lò sấy nhóm
đề xuất sử dụng cặp nhiệt điện thermocouple loại K, có dãy đo rộng (-2700C đến
13720C), chịu nhiệt tốt
Trang 9Hình dạng thực tế của Thermocouple loại K
1.3 Cấu Tạo Thermocouple:
- Tầm đo: từ -2700C đến 13720C
- Gồm 2 thanh kim loại A và B được nối chung 1 đầu, khi có sự thay đổi nhiệt độ
ở đầu nối chung thì ở 2 đầu còn lại sẽ sinh ra suất điện động eAB
Sơ đồ cấu tạo Thermocouple
- Giá trị của suất điện động eAB được cho bởi công thức sau:
ΔeAB = αΔT
Với: α là hệ số tỉ lệ của Thermocouple ứng với mỗi khoảng nhiệt độ sẽ có một
hệ số (nếu là loại K : α ≈ 0,04mV trong dãy nhiệt từ 0-2000C)
ΔT là độ thay đổi của nhiệt độ
ΔeAB là độ thay đổi của suất điện động ứng với khoảng nhiệt thay đổi
- Như vậy ta thấy đối với Thermocouple loại K thì sự thay đổi điện áp ứng với nhiệt
độ gần như là tuyến tính và ta có đặc tuyến sau:
Trang 10Đồ thị tương quan giữa nhiệt độ và suất điện động
Đồ thị tương quan giữa hệ số α và nhiệt độ
Trang 121.4 Sơ Đồ Mạch IC Đo và Khuếch Đại Tín Hiệu
Nguyên lý hoạt động của mạch:
- Tín hiệu nhiệt độ được đo qua đầu dò nhiệt (Thermocouple loại K) là tín hiệu suất điện động rất nhỏ khoảng 0,04mV/0C sau đó được đưa vào ngõ vào IC AD595 là dạng IC khuếch đại chuyên dụng cho Thermocouple loại K, tín hiệu này sẽ được khuếch đại lên 250 lần và ngõ ra từ bộ khuếch đại sẽ có giá trị khoảng 10mV/0C sau đó được đưa vào ngõ vào bộ chuyển đổi ADC
- Bộ ADC bên trong VĐK Atmega32 sẽ biến đổi tín hiệu điện áp thu được (dạng analog) thành giá trị số (digital) chứa trong thanh ghi ADCW và VĐK sẽ được lập trình để chuyển đổi giá trị này thành giá trị nhiệt độ tương ứng
- Từ giá trị nhiệt độ đọc được, VĐK sẽ so sánh với giá trị nhiệt độ cần điều khiển (có thể cài đặt) và lựa chọn phương thức điều khiển ON/OFF, PID, FUZZY
- Bộ hiển thị là màn hình LCD20x4 sẽ được lập trình để thông báo nhiệt độ hiện tại, nhiệt độ cần điều khiển và phuơng thức điều khiển
VCC(12v) ad3
12
9
33 35 37 39 1
3 5 7
29 27 25 23
14 16 18 20
AREF AVCC
a X1
X2
RST
PA7/ADC7 PA5/ADC5 PA3/ADC3 PA1/ADC1 PAO/AD0 PB0
PB2 PB4 PB6
PC7 PC5 PC4 PC2
PD0 PD2 PD4 PD6
ad2
Y1 CRYSTAL
ISO5 OPTO ISOLATOR-A
VCC
R6
R
Trang 13Chương 2: KHỐI GIAO TIẾP MÁY TÍNH
Đa số các thiết bị ngày nay đều có thể giao tiếp với máy tính vì các tính năng tuyệt vời của máy tính Do đó, board mạch điều khiển ở đây cũng được trang bị để có khả năng đó Mặc dù nó cũng có yêu cầu bắt buộc là nạp chương trình điều khiển từ máy tính, nhưng xa hơn nữa nó có thể trao đổi với máy tính về các thông số của quá trình điều khiển, trạng thái của mạch và có thể được điều khiển bởi máy tính …
2.1 Sơ lược về chuẩn RS-232 :
Trong kỹ thuật truyền dữ liệu giữa các hệ thống với nhau, người ta có thể phân loại 2 cách truyền : song song hay nối tiếp Nhưng do cách truyền song song rất dễ bị nhiễu tác động nên không thể truyền đi xa được, do đó cũng ít được sử dụng Truyền nối tiếp cũng có 2 loại : đồng bộ hay không đồng bộ Trong cách truyền đồng bộ, dãy
ký tự được truyền sẽ kèm theo ký tự đồng bộ là SYN (mã ASCII là 22) Phương thức này cho tốc độ truyền khá cao nhưng do mạch xử lý truyền và nhận (bao gồm mạch thêm ký tự đồng bộ, phát hiện và báo sai…) khá phức tạp nên chỉ dùng trong các ứng dụng có yêu cầu cao về tốc độ truyền Còn trong các ứng dụng thông thường, nhất là các ứng dụng trong lĩnh vực điều khiển tự động, thì không có yêu cầu về tốc độ mà yêu cầu về độ tin cậy nhưng mạch thực hiện đơn giản, rẻ tiền Khi đó, cách truyền không đồng bộ rất phù hợp Theo cách truyền này thì các ký tự được truyền riêng rẽ, phân làm từng frame có bit bắt đầu, các bit dữ liệu của ký tự cần truyền, bit chẵn lẻ (để kiểm tra lỗi đường truyền, và các bit kết thúc
Chuẩn RS-232-C (do EIA đưa ra) là một trong những phương thức truyền nối tiếp không đồng bộ Theo chuẩn này thì việc truyền thông được thực hiện ngay tại chỗ bằng cách truyền và nhận một chuỗi các xung điện áp liên tục tương ứng với các bit
Dữ liệu ở mức TTL được biến đổi sang các mức điện áp như sau : mức 1 là từ -3V đến -15V (tiêu chuẩn là -12V), và mức 0 là từ +3V đến +15V (tiêu chuẩn là +12V)
Ta thấy rằng việc truyền và nhận các mức điện áp như vậy được thực hiện rất đơn
giản Chính vì vậy mà chuẩn RS-232-C đã trở thành giao diện phổ biến rộng rãi nhất, được trang bị hầu hết trên các máy tính như là một trong những thành phần cấu thành nên hệ thống
Các thuật ngữ có liên quan đến giao thức truyền thông RS-232-C :
· Chu kỳ truyền dữ liệu : tốc độ truyền dữ liệu được tính bằng bit/giây, nhưng
để phân biệt với cách truyền đồng bộ, người ta sử dụng đơn vị baud (tương ứng với bit/giây trong thời gian có dữ liệu truyền) để tưởng nhớ đến nhà khoa học Pháp thế kỷ 19 là J M E Baudot
· Trạng thái đánh dấu : là khoảng thời gian không có dữ liệu truyền Trong suốt thời gian này, thiết bị phát sẽ giữ đường truyền ở mức cao
· Bit bắt đầu : một bit thấp cho biết việc truyền dữ liệu sẽ bắt đầu
· Các bit ký tự : là dòng dữ liệu gồm 5, 6, 7, hay 8 bit mã hóa ký tự được truyền
Bit có trọng số thấp nhất (LSB) là bit đầu tiên được truyền
· Bit chẵn lẻ : là một bit tùy chọn (có thể có hay không), được phát đi sau các bit ký tự dùng để kiểm tra các lỗi truyền dữ liệu Trong chế độ kiểm tra tính chẵn, thiết bị phát sẽ bật 1 hay xóa về 0 bit chẵn lẻ để tính tổng các bit 1 của ký
Trang 14tự được
truyền và bit chẵn lẻ là một số chẵn Còn trong chế độ kiểm tra tính lẻ, bit chẵn
lẻ
thực hiện tính tổng các bit 1 phải là một số lẻ
· Các bit kết thúc : một hay nhiều bit cao được chèn trong dòng truyền để báo
việc
kết thúc truyền một ký tự, cũng như cho thiết bị nhận có đủ thời gian chuẩn bị
để
sẵn sàng cho việc nhận ký tự kế tiếp
Một khung truyền trong chuẩn RS232
Trong giao thức RS-232-C, các tham số truyền và nhận được chọn từ một miền
các giá trị chuẩn Sau đây là các thông số phổ biến nhất trong các máy vi tính IBM :
· Tốc độ truyền : 50, 110, 300, 600, 1200, 2400, 4800, 9600, 19200
· Bit dữ liệu : 5, 6, 7, hay 8
· Bit chẵn lẻ : chẵn, lẻ, không kiểm tra
· Bit kết thúc : 1,5 hay 2
Các đầu nối :
Theo chuẩn RS-232-C, đầu nối phần cứng xác định với 25 chân, gọi là chân
cắm D-Shell hay DB-25 Nhưng không phải tất cả cổng nối tiếp đều sử dụng đầu nối
DB-25 Một số máy tính như PCJr dùng chân cắm BERG 16 chân, máy PC AT thì sử
dụng chân cắm D-Shell 9 chân
Trang 15Bảng chức năng các chân cổng RS 232
2.2 MAXIM 232 và họ IC dùng cho biến đổi TTLRS-232-C :
Họ IC từ MAX220-MAX249 được sản xuất cho truyền thông EIA/TIA-232E và
V.28/V.24, cụ thể là cho những ứng dụng mà không có sẵn điện áp ±12V Họ IC này
đặc biệt thích hợp cho những hệ thống dùng pin có công suất thấp, do chúng có chế độ
hạ nguồn làm giảm công suất tiêu tán xuống dưới 5µW MAX225, MAX233,
MAX235, MAX245-MAX247 không cần các linh kiện phụ bên ngoài, được dùng cho
những nơi tiết kiệm không gian
Các đặc điểm chính :
· Nguồn cung cấp +5V (MAX231/MAX239 dùng nguồn +5V và +12V) · Hạ nguồn
công suất thấp nhưng vẫn có thể nhận (MAX223/MAX242e · Hỗ trợ chuẫn
EIA/TIA-232E và V.28
· Nhiều bộ nhận và phát
· Phát hiện đứt mạch đường truyền (MAX243)
1.Cấu tạo chân :
Trang 16Sơ Đồ Kết Nối RS232
Ta thấy rằng MAX232 cần có 4 tụ mắc ngoài để biến đổi điện áp từ 0V đến 5V
thành -12V đến 12V phù hợp cho truyền thông theo chuẩn RS-232 ngoài ra có 4 bộ
khuếch đại đảo nhằm chuyển từ mức TTL ra chuẩn RS-232
Trong phép giao tiếp thông thường, chỉ cần 3 dây nối : TXD, RXD, GND là đã đảm
bảo cho giao tiếp
Trang 17
Chương 3: KHẢO SÁT VI ĐIỀU KHIỂN ATMEGA32 3.1 Đặc Điểm Chung Của VĐK ATMEGA32:
Vi điều khiển ATmega32 là một loại vi điều khiển tương đối mới của hãng ATMEL với kiến trúc rất phức tạp ATmega32 sử dụng kiến trúc RISC (Reduced Instruction Set Computer) AVR
ATmega32 với kiến trúc RISC có chỉ tiêu chất lượng cao và tiêu thụ năng lượng ít:
− 131 lệnh hầu hết được thực hiện trong một chu kỳ xung nhịp
− 32 thanh ghi làm việc đa năng
− Cung cấp đầy đủ các trạng thái hoạt động
− Tốc độ xử lý lệnh lên đến 16 triệu lệnh/giây ở tần số 16MHz
Bộ nhớ dữ liệu và bộ nhớ chương trình không tự mất dữ liệu:
− 32K byte bộ nhớ Flash lập trình được ngay trên hệ thống, có thể nạp xoá
10000 lần
− 1K byte bộ nhớ EEFROM lập trình được ngay trên hệ thống, có thể ghi xóa
100000 lần
− 2K byte bộ nhớ SRAM
− Có thể giao tiếp với 64K byte bộ nhớ ngoài
− Khóa bảo mật phần mềm lập trình được
− Giao diện nối tiếp SPI để lập trình ngay trên hệ thống
Các tính năng ngoại vi:
− Hai bộ đếm/ bộ định thời 8 bit với chế độ so sánh và chia tần số tách biệt
− Hai bộ đếm/ bộ định thời 16 bit với chế độ so sánh, chia tần số tách biệt và chế độ bắt mẫu (Capture Mode)
− Bộ đếm thời gian thực (RTC) với bộ dao động tách biệt
− Bốn bộ điều chế độ rộng xung PWM 8 bit
− Bộ biến đổi ADC bên trong 8 kênh 10 bit
− 2 bộ USART nối tiếp lập trình được
− Có giao thức truyền SPI chủ và tớ
− Bộ định thời Watchdog lập trình được với bộ dao động trên chip
− Một bộ so sánh Analog
Các tính năng vi điều khiển đặc biệt:
− Có mạch power - on reset và có thể reset bằng phần mềm
− Có nguồn dao động nội tích hợp sẵn bên trong
− Có 2 nguyên nhân gây ngắt là bên trong và bên ngoài
− Có 6 chế độ ngủ: nghỉ (Idle) Tiết kiệm năng lượng (power save) và power down, ADC Noise Reduction, Standby and Extended Standby
Vào ra và các cách đóng vỏ
Trang 18− 32 đường vào ra lập trình được
− 40 chân dán kiểu vỏ chữ nhật (PDIP), 44 chân dán kiểu vỏ vuông (TQFP) Điện thế làm việc:
− VCC = 2,7V đến 5,5V đối với ATmega32L
− VCC = 4,5V đến 5,5V đối với ATmega32
Vùng tốc độ làm việc:
− 0 đến 8 MHz đối với ATmega32L
− 0 đến 16 MHz đối với ATmega32
Năng lượng tiêu thụ tại tần số 1MHz, 3V, 25oC đối với ATmega32L:
Trang 19Hình dạng phân bố chân vào ra của ATmega32 dạng TQFP/MLF
ATmega32 là bộ vi điều khiển RISC 8 bit tiêu thụ năng lượng nhưng đạt hiệu suất rất cao, dựa trên kiến trúc RISC AVR Bằng việc thực hiện các lệnh trong một chu
kỳ xung nhịp, ATmega32 đạt được tốc độ xử lý dữ liệu lên đến 1 triệu lệnh/giây ở tần
số 1MHz ATmega32 còn cho phép người thiết kế hệ thống tối ưu hoá mức độ tiêu thụ năng lượng mà vẫn đảm bảo tốc độ xử lý
3.2 Sơ Đồ Khối Của VĐK ATMEGA32:
Trang 21Kiến trúc đặc biệt của ATmega32 kết hợp tập lệnh phong phú về số lượng với 32 thanh ghi làm việc đa năng cho phép người lập trình khai thác nó một cách hiệu quả tối ưu Toàn bộ 32 thanh ghi đều được nối với ALU cho phép truy cập hai thanh ghi độc lập bằng 1 lệnh đơn trong một chu kỳ xung nhịp Kiến trúc RISC giúp ATmega32 đạt tốc độ xử lý nhanh gấp 10 lần với vi điều khiển kiến trúc CISC thông thường ATmega cung cấp 64K bytes bộ nhớ Flash lập trình được trong hệ thống và có khả năng đọc/xóa/viết, 1K bytes bộ nhớ EFPROM, 2K bytes SRAM, 53 đường vào ra đa năng, 32 thanh ghi làm việc đa năng, bộ đếm thời gian thực (RTC), 4 bộ định thời/đếm linh hoạt với chế độ so sánh và điều chế độ rộng xung, 2 bộ USART, bộ ADC 8 kênh 10bit với sự lựa chọn ngõ vào có thể lập trình được độ lợi, bộ định thời watchdog lập trình được với bộ dao động bên trong, một cổng nối tiếp SPI, 6 chế độ tiết kiệm năng lượng lựa chọn được bằng phần mềm
Đặc biệt chế độ Idle làm ngưng hoạt động của CPU trong khi bộ nhớ SRAM, các bộ định thời/đếm, cổng SPI và hệ thống ngắt vẫn tiếp tục hoạt động
Chế độ Power Down lưu trữ nội dung thanh ghi nhưng giải phóng bộ dao động, cấm tất cả các chức năng khác trên chíp cho đến khi xuất hiện một ngắt kế tiếp hay tín hiệu Reset cứng
Chế độ Power Save cho phép bộ dao động định thời tiếp tục chạy để cho phép người dùng tiếp tục trong khoảng thời gian nào đấy (đặt trước) trong khi những thiết bị khác
ở trong chế độ ngủ
Chế độ ADC Noise Reduction tất cả các đường I/0 và CPU đều ngưng hoạt động ngoại trừ timer và ADC vẫn hoạt động, giảm mức tối thiểu nhiễu trong chuyển đổi ADC Chế độ dự phòng Standby bộ dao động vẫn chạy trong khi những thiết bị ở trong chế
độ ngủ
ATmega32 được công ty ATMEL chế tạo với công nghệ bộ nhớ không tự mất dữ liệu
Bộ nhớ Flash ISP trên chip cho phép bộ nhớ chương trình có thể được lập trình lại ngay trên hệ thống, thông qua một giao diện nối tiếp SPI hoặc một bộ nạp chương trình vào bộ nhớ không tự mất dữ liệu
Bằng cách kết hợp một CPU 8 bit có kiến trúc RISC với bộ nhớ Flash lập trình được trong hệ thống trên một chíp đơn lẻ, ATmega32 là loại vi điều khiển rất mạnh với tính linh hoạt cao trong sử dụng và chi phí hợp lý đối với nhiều ứng dụng điều khiển chúng trong thực tế
ATmega32 được hỗ trợ bằng tất cả các công cụ lập trình và phát triển hệ thống hiện có: trình biên dịch C, trình biên dịch Macro Assembler, trình gỡ rối/mô phỏng và các kits thí nghiệm
3.3 Chức Năng Các Chân Của VĐK ATMEGA32:
VCC: Điện áp nguồn nuôi
GND: Đất
Port A (PA7…PA0)
- Các chân của Port A là ngõ vào của analog của bộ chuyển đổi ADC
- Port A cũng dùng làm 8 bit xuất nhập dữ liệu được định địa chỉ nếu bộ chuyển đổi ADC không được sử dụng Những chân của Port này đã được cung
Trang 22cấp điện trở nội kéo lên bên trong Bộ đệm ngõ ra của Port A thì đã được thiết kế
tầng lái đối xứng để có thể họat động được ở chế độ sink và source Khi các
chân từ PA0 đến PA7 là các ngõ vào được đặt xuống mức thấp từ bên ngoài,
chúng sẽ là nguồn dòng nếu như các điện trở nối lên nguồn dương được kích
hoạt Các chân này sẽ ở trạng thái tổng trở cao khi tín hiệu Reset ở mức tích cực
hoặc ngay cả khi không có dao động
Port B (PB7…PB0)
- Port B dùng làm 8 bit xuất nhập dữ liệu được định địa chỉ Những chân
của Port này đã được cung cấp điện trở nội kéo lên bên trong Bộ đệm ngõ ra của
Port B thì đã được thiết kế tầng lái đối xứng để có thể họat động được ở chế độ
sink và source Khi các chân từ PB0 đến PB7 là các ngõ vào được đặt xuống
mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu như các điện trở nối lên
nguồn dương được kích hoạt Các chân này sẽ ở trạng thái tổng trở cao khi tín
hiệu Reset ở mức tích cực hoặc ngay cả khi không có dao động
- Các chân của Port B còn có các chức năng đặc biệt khác như sau:
Port C (PC7…PC0)
- Port C dùng làm 8 bit xuất nhập dữ liệu được định địa chỉ Những chân
của Port này đã được cung cấp điện trở nội kéo lên bên trong Bộ đệm ngõ ra của
Port C thì đã được thiết kế tầng lái đối xứng để có thể họat động được ở chế độ
sink và source Khi các chân từ PC0 đến PC7 là các ngõ vào được đặt xuống
mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu như các điện trở nối lên
nguồn dương được kích hoạt Các chân này sẽ ở trạng thái tổng trở cao khi tín
hiệu Reset ở mức tích cực hoặc ngay cả khi không có dao động
- Các chân của Port C còn có các chức năng đặc biệt khác như sau:
Trang 23Port D (PD7…PD0)
- Port D dùng làm 8 bit xuất nhập dữ liệu được định địa chỉ Những chân của Port này đã được cung cấp điện trở nội kéo lên bên trong Bộ đệm ngõ ra của Port D thì đã được thiết kế tầng lái đối xứng để có thể họat động được ở chế độ sink và source Khi các chân từ PD0 đến PD7 là các ngõ vào được đặt xuống mức thấp từ bên ngoài, chúng sẽ là nguồn dòng nếu như các điện trở nối lên nguồn dương được kích hoạt Các chân này sẽ ở trạng thái tổng trở cao khi tín hiệu Reset ở mức tích cực hoặc ngay cả khi không có dao động
- Các chân của Port D còn có các chức năng đặc biệt khác như sau:
Reset: Ngõ vào được đặt lại ATmega32 sẽ được đặt lại khi chân này ở mức thấp trong hơn 50ns hoặc ngay cả khi không có tín hiệu xung clock Các xung ngắn hơn không tạo ra tín hiệu đặt lại
AVCC: Cung cấp nguồn cho Port A và bộ chuyển đổi ADC hoạt động Ngay khi không sử dụng bộ chuyển đổi ADC thì chân AVCC vẫn phải đươc kết nối tới nguồn VCC
AREF: Đây là chân điều chỉnh điện áp tham chiếu cho bộ chuyển đổi A/D
XTAL1: Ngõ vào bộ khuếch đại đảo và ngõ vào mạch tạo xung nhịp bên trong XTAL2: Ngõ ra bộ khuếch đại đảo
Bộ tạo dao động thạch anh :
Trang 24− XTAL1 và XTAL2 lần lượt là lối vào và lối ra của một bộ khuếch đại đảo,
bộ khuếch đại này được bố trí để làm bộ tạo dao động trên chip như trên hình 3
− Để điều khiển được bộ Vi Điều Khiển từ một nguồn xung nhịp bên ngoài, chân XTAL2 để không, chân XTAL1 được nối với tín hiệu dao động bên ngoài
Trang 25Sơ đồ khối kiến trúc của ATMEGA32 AVR sử dụng kiến trúc Harvard với bộ nhớ và bus riêng biệt cho chương chình
và dữ liệu, bộ nhớ chương trình được thực thi với một đường ống hai tầng Trong khi một lệnh đang được thực thi thì lệnh tiếp theo được nhập vào bộ nhớ chương trình Giải pháp này cho phép các lệnh được thực thi trong mọi chu kỳ xung nhịp Bộ nhớ chương trình là bộ nhớ flash lập trình được
Các thanh ghi đa năng truy cập nhanh gồm 32 thanh ghi 8 bit được truy cập trong một chu kỳ xung nhịp Điều này có nghĩa là ALU thực hiện được một phép toán: hai toán hạng được xuất từ tệp các thanh ghi đa năng, phép toán được thực hiện và kết quả được lưu trở lại vào tập các thanh ghi trong một chu kỳ xung nhịp
6 trong số 32 thanh ghi này có thể dùng làm 3 con trỏ địa chỉ gián tiếp 16 bit để định địa chỉ không gian dữ liệu và cho phép tính địa chỉ hiệu dụng Một trong ba con trỏ địa chỉ cũng được dùng làm con trỏ địa chỉ cho chức năng tìm kiếm bảng hằng số trong bộ nhớ Flash Các thanh ghi có chức năng bổ sung này là các thanh ghi 16 bit X,
Y, Z
ALU: hỗ trợ các chức năng số học và logic giữa các thanh ghi hoặc giữa một hằng số và các thanh ghi Các phép toán trong một thanh ghi cũng được thực hiện
Trang 26trong ALU Sau phép toán số học, thanh ghi trạng thái sẽ cập nhật và phản hồi lại kết quả tính toán
Toàn bộ không gian địa chỉ được truy nhập trực tiếp nhờ các lệnh nhảy và lệnh gọi Hầu hết các lệnh AVR có định dạng từ đơn 16 bit Mỗi địa chỉ của bộ nhớ chương trình chứa một lệnh 16 hoặc 32 bit
Khối ngắt mềm dẻo có các thanh ghi điều khiển trong không gian vào ra và một bit cho phép ngắt toàn cục trong thanh ghi trạng thái Mỗi ngắt đều có một vectơ ngắt riêng Các ngắt có thứ tự ưu tiên tương ướng với vị trí vectơ ngắt của chúng địa chỉ của vectơ ngắt càng thấp thì thứ tự ưu tiên càng cao
Không gian bộ nhớ vào ra chứa 64 địa chỉ cho các chức năng ngoại vi của CPU như các thanh ghi điều khiển, bộ đếm/ định thời, các bộ biến đổi tương tự/số và các chức năng vào/ra khác Bộ nhớ vào/ra có thể truy cập trực tiếp hoặc như các vị trí trong không gian dữ liệu ngay sau các vị trí của tập các thanh ghi đa năng từ địa chỉ
$20 đến $5F ATmega32 mở rộng thêm không gian từ $60 đến $FF trên SRAM chỉ có các lệnh ST/STS/STD và LD/LDS/LDD được sử dụng
Trong quá trình gọi ngắt và chương trình con, địa chỉ trở về của bộ đếm chương trình PC được lưu vào ngăn xếp Ngăn xếp được cấp phát trong bộ nhớ dữ liệu SRAM nên kích thước chỉ bị giới hạn bởi dung lượng và không gian đã sử dụng của bộ nhớ SRAM Tất cả chương trình của người dùng phải khởi tạo con trỏ ngăn xếp SP (stack pointer) khi bắt đầu chương trình (trước khi chương trình con và ngắt được thực thi) Con trỏ ngăn xếp 16 bit SP được truy cập để đọc/viết trong không gian vào/ra Bộ nhớ SRAM 2kB có thể được truy cập dễ dàng thông qua năm chế độ định địa chỉ được cung cấp trong kiến trúc AVR
Trang 28Bộ nhớ SRAM có trong hầu hết các bộ xử lý của Vi Điều Khiển AVR Dung lượng của bộ nhớ SRAM 2K byte, bộ nhớ SRAM được truy nhập bằng cách sử dụng nhiều lệnh truy nhập dữ liệu trực tiếp hoặc gián tiếp, bộ nhớ SRAM cũng được sử dụng cho ngăn xếp, thời gian truy nhập vào bộ nhớ SRAM bằng 2 chu kỳ đồng hồ
32 địa chỉ đầu tiên trong SRAM là dành cho 32 thanh ghi đa năng (R0 đến R31) Tệp thanh ghi được tách thành 2 phần, mỗi phần có 16 thanh ghi đánh số từ R0 đến R15 và R16 đến R31 Tất cả các lệnh thao tác trên các thanh ghi đều có thể truy cập trực tiếp hoặc gián tiếp đến tất cả các thanh ghi Nhưng có một ngoại lệ là có một số các lệnh (SBCI, SUBI, CPI, ANDI và ORI …) chỉ tác động đến thanh ghi từ R16 đến R31
Các thanh ghi R0 và R26 đến R31 có các chức năng bổ sung Thanh ghi R0 được sử dụng trong các lệnh nạp bộ nhớ chương trình LPM (load program memory), trong khi các thanh ghi R26 đến R31 được sử dụng làm các thanh ghi con trỏ Các thanh ghi con
trỏ này được sử dụng trong nhiều lệnh gián tiếp dùng trong thanh ghi
Các Thanh Ghi Con Trỏ X, Y, Z
64 địa chỉ tiếp theo ($00 đến $5F) được dùng cho các thanh ghi I/O, ta có thể truy xuất các thanh ghi I/O này bằng các lệnh IN, OUT, SBI, CBI
ATmega32 mở rộng không gian I/O từ $60 đến $FF trên SRAM chỉ có các lệnh ST/STS/STD và LD/LDS/LDD mới được sử dụng
Trang 291 Giao tiếp với bộ nhớ SRAM ngoài:
ATmega32 cho phép người lập trình có thể kết nối bộ nhớ SRAM ngoài lên tới 32K byte
Khi giao tiếp với bộ nhớ SRAM ngoài:
− Port A đóng vai trò là 8 đường địa chỉ thấp và 8 đường dữ liệu từ AD0 đến AD7 hoạt động theo kiểu đa hợp
− Port C cũng đóng vai trò như 8 đường địa chỉ cao từ A8 đến A15
− ALE là chân cho phép chốt địa chỉ
− Sử dụng chân RD và WR của ATmega32 kết nối đến chân RD và WR của SRAM ngoài
Để giao tiếp được với bộ nhớ SRAM ngoài bit SRE (bit7) trong thanh ghi MCUCR phải được thiết lập lên 1 và sử dụng các thanh ghi MCUCR, XMCRA, XMCRB để điều khiển
Thời gian truy nhập mặc định đối với SRAM ngoài là bằng 3 chu kỳ đồng hồ Thời gian này có thể làm tăng lên 4 chu kỳ đồng hồ bằng cách thiết lập bit SRW10 (bit 6) trong thanh ghi MCUCR
ATmega32 không có tập lệnh riêng để truy xuất SRAM ngoài tuy nhiên ATmega32 cho phép truy cập bộ nhớ SRAM ngoài bằng các lênh như bộ nhớ SRAM nội Điều đó
có nghĩa là khi bit SRE trong thanh ghi MCUCR được đặt lên 1 thì SRAM ngoài lúc này được xem như là một SRAM nội được xếp chồng tiếp theo lên 2K byte SRAM nội của ATmega32 Khi đó ta truy xuất dữ liệu bằng tập lệnh một cách dễ dàng
Trang 30Kết nối SRAM ngoài với ATmega32
Trang 31Giới thiệu các thanh ghi truy xuất EEFROM:
EEPROM Address Register - EEARH and EEARL
EEPROM Control Register - EECR
Thanh ghi EECR có các bit điều khiển đọc/ghi vào bộ nhớ EEFPROM
Trang 32− Khi bit I trong thanh ghi SREG và bit EERIE được đặt lên 1 thì EEPROM sẵn sàng xảy ra ngắt
− Khi bit EERIE được xóa về 0 thì EEPROM cấm ngắt
Bit2 - EEMWE
− Đây là bit lựa chọn EEPROM có được ghi dữ liệu vào hay không
− Khi bit EEMWE được thiết đặt lên 1 và bit EEWE được đặt lên 1 trong 4 chu kỳ xung clock thì dữ liệu sẽ được viết vào bộ nhớ EEPROM tại địa chỉ
− Bit EEWE cho phép ghi dữ liệu vào bộ nhớ EEPROM
− Khi địa chỉ và dữ liệu đã được lựa chọn hợp lý thì ghi bit EEWE lên 1, dữ liệu sẽ được viết vào bộ nhớ EEPROM
− Bit EEMWE bắt buộc phải được ghi lên 1 trước khi đặt bit EEWE lên 1 thì mới ghi được dữ liệu vào EEPROM
− EEPROM không thể lập trình trong khi CPU đang truy cập bộ nhớ Flash Bit 0 - EERE
− Bit EERE cho phép đọc dữ liệu từ bộ nhớ EEPROM
− Khi địa chỉ được lập chính xác trong thanh ghi EEAR thì khi ghi bit EERE lên 1 sẽ cho phép đọc dữ liệu từ EEPROM
− Khi EEPROM được đọc thì CPU sẽ tạm dừng trong 4 chu kỳ xung clock trước khi lệnh kế tiếp được thực thi
Các bước ghi dữ liệu vào bộ nhớ EEPROM:
¾ Đợi cho đến khi nào bit EEWE được xóa về 0
¾ Đợi cho đến khi nào bit SPMEN trong thanh ghi SPMCSR được xóa về 0
¾ Viết địa chỉ cần nạp cho EEPROM vào thanh ghi EEAR
¾ Viết dữ liệu cần nạp cho EEPROM vào thanh ghi EEAR
¾ Thiết lập bit EEMWE lên 1 trong khi bit EEWE được xóa về 0
¾ Khi bit EEMWE được ghi lên 1, sau 4 chu kỳ xung clock mới ghi bit EEWE lên
Trang 333.8 Bộ chuyển đổi A/D bên trong ATmega32
Đặc điểm:
− ATmega32 có bộ biến đổi tương tự sang số với độ phân giải 10bit
− Thời gian biến đổi từ 65 – 256 μ s
− Một bộ dồn kênh đa hợp 8 lối vào, mỗi kênh được dẫn riêng lẽ tới bộ hiển thị ADC
− Có thể lựa chọn chuyển đổi 1 kênh hay nhiều kênh
− Điện áp ngõ vào của ADC rộng từ 0 – VCC
− Có thể lựa chọn được điện áp tham chiếu 2,56V
− ADC có thể bắt đầu chuyển đổi bởi chế độ tự động Trigger bằng cạnh lên dựa trên lựa chọn nguồn
− Xuất hiện ngắt trong ADC khi chuyển đổi hoàn thành
Sự sắp xếp các chân lối vào của bộ biến đổi A/D
Trang 34Sơ đồ khối chuyển đổi A/D
1 Giới thiệu các thanh ghi chuyển đổi ADC
ADC Multiplexer Selection Register – ADMUX
REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0
Bit 7:6 – REFS1:0:
− Bit lựa chọn điện áp tham chiếu cho ADC
Trang 35chuyển đổi này được hoàn thành ( Bit ADIF trong thanh ghi ADCSRA được đặt lên 1)
− Điện áp tham chiếu nội không được sử dụng nếu điện áp tham chiếu ngoài được sử dụng tại chân AREF
Bảng lựa chọn điện áp tham chiếu cho ADC:
REFS1 REFS0 Điện áp tham chiếu ADC
0 0 AREF ( Vref nội đã được tắt)
0 1 AVCC với tụ nối bên ngoài tại chân AREF
1 1 Điện áp tham chiếu nội là 2,56V với tụ nối bên ngoài
tại chân AREF
Trang 36Bảng Lựa chọn kênh ngõ vào và độ lợi:
ADC Control and Status Register A – ADCSRA
ADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS0
Bit 7 – ADEN
− Khi bit này được đặt lên 1 cho phép ADC hoạt động, ngược lại sẽ cấm ADC Trong lúc quá trình chuyển đổi đang tiến hành ta xóa bit này về 0 thì quá trình chuyển đổi sẽ kết thúc
Bit 6 – ADSC
− Khi bit này được đặt lên 1 cho phép bắt đầu chuyển đổi A/D
Trang 37Đây là bit xác định hệ số chia giữa tần số thạch anh và thời gian chuyển đổi ADC:
Bảng Xác định hệ số chia giữa tần số thạch anh và thời gian chuyển đổi A/D ADPS2 ADPS1 ADPS0 Hệ số chia
ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 ADCL
ADLAR = 1
ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADCH
− Khi quá trình chuyển đổi ADC hoàn thành, kết quả được tìm thấy trong 2 thanh ghi ADCH và ADCL
− Khi ADCL được đọc thì thanh ghi dữ liệu không được cập nhật cho đến khi ADCH được đọc Vì vậy, nếu kết quả là điều chỉnh trái và không hơn 8 bit thì chỉ cần đọc ở thanh ghi ADCH, còn trường hợp khác thì ADCL được đọc đầu tiên rồi mới tới ADCH
− Bit ADLAR trong thanh ghi ADMUX và bit MUXn trong thanh ghi ADMUX ảnh hưởng đến hướng đọc kết quả từ thanh ghi dữ liệu
− ADLAR được đặt lên 1 thì kết quả được điều chỉnh trái
− ADLAR xóa về 0 (mặc định) thì kết quả được điều chỉnh phải
Trang 38ADC9:0
− Đây là bit mô tả kết quả của quá trình chuyển đổi
ADC Control and Status Register B – ADCSRB
Lựa chọn nguồn Trigger
ADTS2 ADTS1 ADTS0 Trigger Source
4 Bắt đầu một quá trình chuyển đổi
ATmega32 cho phép ta lựa chọn 1 trong 2 cách sau để chuyển đổi 1 tín hiệu tương tự thành tín hiệu số:
− Khi bit ADSC được đặt lên 1 thì ADC bắt đầu chuyển đổi Bit này luôn giữ
ở mức cao khi quá trình chuyển đổi đang còn tiếp diễn và được xóa về 0 bằng phần cứng khi chuyển đổi đã hoàn thành Nếu có 1 kênh khác được lựa chọn trong khi quá trình chuyển đổi còn đang tiếp diễn thì ADC vẫn tiếp tục
và hoàn thành chuyển đổi đang thực hiện trước khi lựa chọn chuyển đổi kênh tiếp theo
− Sự biến đổi có thể lựa chọn bằng chế độ tự động trigger bằng cạnh lên dựa trên sự lựa chọn các nguồn trigger khác nhau Chế độ tự động trigger được cho phép khi thiết lập bit ADATE trong thanh ghi ADCSRA lên 1 Nguồn trigger được lựa chọn bởi sự thiết lập và xóa các bit ADTS trong thanh ghi ADCSRB Khi cạnh dương của tín hiệu trigger xuất hiện thì tần số chuyển đổi ADC (CLK ) được thiết lập và ADC bắt đầu chuyển đổi Nếu tín hiệu
Trang 39ADC tự động trigger
Việc kết thúc quá trình biến đổi, nghĩa là thời điểm mà một tín hiệu analog đã được số hoá và sẵn sàng chờ xử lý tiếp tục, sẽ được báo hiệu qua cờ ngắt ADIF trong thanh ghi điều khiển và trạng thái ADC (ADCSRA)
Khi 1 chuyển đổi hoàn thành và thanh ghi dữ liệu đã cập nhật kết quả thì bit này được đặt lên 1 Kết quả của quá trình biến đổi A/D được đặt ở các thanh ghi dữ liệu ADCH và ADCL
Người dùng còn có thể lựa chọn một trong hai chế độ hiển thị kết quả chuyển đổi:
− Nếu bit ADLAR trong thanh ghi ADMUX được xóa về 0: ADCL (bit 0 đến bit 7) và ADCH (bit 8 và bit 9)
− Nếu bit ADLAR trong thanh ghi ADMUX được thiết lập lên 1: ADCL (bit 6
và bit 7) và ADCH (bit 8 đến bit 15)
Kết quả của chuyển đổi A/D: