Mô hình thí nghiệm vi điều khiển họ AVR do Trung tâm đào tạo Điện tử - Tự động hóa – Cơ khí DKS thiết kế.
Hình P2_2.6: Mô hình thí nghiệm vi điều khiển họ AVR
Mô hình thiết kế cho dòng vi điều khiển (AVR), có những đặc điểm như sau: - Người sử dụng có thể lập trình bằng ngôn ngữ C hoặc Assembly.
- Mô hình có thể nạp chương trình từ máy tính xuống thông qua một cáp nạp chương trình (ISP).
- Có khả năng giao tiếp với các thiết bị ngoại vi thông qua các cổng vào ra (I/O).
29
- Thiết bị giao tiếp với máy tính thông qua cổng COM. Thông số kỹ thuật:
- Nguồn cấp: 12-24VDC
- Kích thước bàn: 1200(W)x600(D)x700(H) mm - CPU: Vi điều khiển các loại thuộc dòng AVR - 32 led đơn nối các 4 cổng của vi điều khiển - 4 led 7 thanh loại anod chung
- Giao tiếp I2C với 24Cxx và DS1307
- 4 switches để cấu hình chân cho vi điều khiển - 1 LCD 16x2
- Giao tiếp với máy tính qua cổng RS232 - Mô đun cảm biến nhiệt độ LM335.
23
Phần 2:
NỘI DUNG NGHIÊN CỨU Chương 2:
NGHIÊN CỨU CÁC KIT THÍ NGHIỆM
Trước khi thiết kế KIT phát triển chúng tôi tiến hành nghiên cứu các Kit thí nghiệm giảng dạy thông dụng trên thị trường. Phân tích thiết kế phần cứng, phần mềm và các bài thí nghiệm. Cụ thể là chúng tôi có tham khảo một số KIT thí nghiệm của các đơn vị như sau:
2.1. KIT THỰC TẬP VI ĐIỀU KHIỂN LD1
Kit thực tập vi điều khiển LD1 được thiết kế bởi nhóm tác giả thuộc Bộ Môn Vật Lý Tin Học, Trường Đại Học Tự Nhiên, ĐHQG-HCM, năm 2009.
Các thành phần chính của Kit Thực Tập VĐK LD1 gồm: • Led 7 đoạn • Led ma trận • Led đơn • Bàn phím Hex • 8 Nút ấn
• Giao tiếp RS232 (COM) để nạp VĐK
• Vi điều khiển 89V52RB2
24 Các yêu cầu khi sử dụng Kit:
Thành phần Yêu cầu
Nguồn cung cấp cho mạch 12V, 1A Chương trình nạp VĐK Magic Flash
Chương trình soạn code 8051 IDE (asm), c51v805 (C) Dây kết nối RS232
Nhận xét chung: Kit LD1 được thiết kế các môđun tương đối đơn giản như: Led 7 đoạn, Led ma trận, Led đơn, bàn phím Hex, 8 nút nhấn, giao tiếp RS232 (COM) để nạp VĐK giao tiếp với vi điều khiển 89V52RB2. Sử dụng ngôn ngữ lập trình ASM để viết code và nạp cho vi điều khiển. Tuy nhiên Kit này cũng còn thiếu một số môđun cần thiết như: LCD, điều khiển động cơ DC và động cơ bước để giúp cho người học có thể phát triển các ứng dụng thông qua các môđun này.
2.2. EasyAVR Devlopment KIT và EasyPIC-PRO Development KIT
KIT EasyAVR Devlopment và EasyPIC-PRO Development KIT được thiết kế bởi nhóm tác giả thuộc Công ty Điện tử Thiên Minh.
25
Hình P2_2.3: EasyAVR Devlopment KIT
Những tính năng chính của EasyAVR:
- Power Supply: Sử dụng nguồn ngoài AC/DC 7 ~ 12V hoặc nguồn USB một Switch nguồn 3 trạng thái cho phép chọn lựa nguồn ngoài, OFF, hoặc nguồn USB
- USB On-board programmer chuyển mạch hoàn toàn tự động được hỗ trợ sẵn trong các trình biên dịch như AVR Studio, CodevisionAVR...
- Suport AVR DIP20 (ATtiny2313...), DIP28(ATmega8, ATmega88...), DIP40A (ATmega8535, ATmega16, ATmega32...), DIP40B(ATmega8515, ATmega162...) - RS-232 Comunication giao tiếp truyền dữ liệu với PC
- DS1820 Digital thermometer dùng để đo nhiệt độ từ -55ºC to 125ºC - RTC DS1307 Real time clock kết nối hoặc ngắt khỏi AVR qua DIPSW - Battery Backup 3V dùng cho RTC DS1307
- 6 Led 7seg Anode chung multiplex mode. kết nối hoặc ngắt khỏi AVR qua DIPSW - LCD 16x2 4 BIT có biến trở chỉnh độ tương phản
- Graphic LCD 128x64 / Charracter LCD16x2 8-bit có biến trở chỉnh độ tương phản - 8 led đơn catod chung nối qua header 5x2
26 - 8 Switch pull up/down nối qua header 5x2 - Xtal sử dụng socket dễ dàng thay đổi
- DIPSW tách riêng từng pin riêng biệt cho portA khi chúng sử dụng A-D input - I/O Direct port kiểu header 5x2 (gồm 8 bit port và VCC, GND)
- RESET Switch - cho phép reset mạch bằng tay
Nhận xét chung: Kit EasyAVR Devlopment tích hợp một số môđun cơ bản như: hiển thị LCD, LED 7 đoạn, LED đơn, nút nhấn, giao tiếp RS232, DS1820, RTC DS1307. Khi cần những môđun khác thì phải tự thiết kế riêng hoặc mua thêm từ công ty cung cấp, nó cho phép giao tiếp thông qua những Port có sẵn.
Giá bán: 1 triệu đồng đến 1,2 triệu đồng /KIT. Giá của từng môđun rời từ: 400 ngàn đồng đến 700 ngàn đồng/môđun
2.3. KIT DE PIC
KIT DE PIC do nhóm tác giả thuộc Trung tâm Nghiên cứu & Đào tạo Thiết kế Vi mạch (ICDREC) thiết kế. KIT này sử dụng vi điều khiển PIC và ngôn ngữ lập trình C để viết code và nạp cho vi điều khiển. Đây là một thiết bị tiện ích giúp cho người nghiên cứu nhanh chóng nắm bất được kiến thức về kiến trúc và tập lệnh từ của dòng vi xử lý RISC nhanh chóng thiết kế ra những dòng sản phẩm theo các ý tưởng riêng của người thiết kế.
Đặc điểm của KIT DE PIC: Có thể làm thí nghiệm, nghiên cứu trên các họ PIC khác nhau như: PIC12xxx, PIC16xxx, PIC18xxx
Giao tiếp các thành phần ngoại vi như sau: - 8 led đơn
- 4 led 7 đoạn - LCD 16x2 - Bàn phím 4x4 - 5 port mở rộng
- Ngõ vào cho phép giao tiếp với cảm biến - SD card
- Realtime clock - IDE interface - Audio out - 1 port Ethernet
27 - 1 port USB slave
- Clock option - PWM
- Bộ nhớ ngoài 8 bit
- Đầu nối ICD2 và đầu nối cáp nguồn.
Hình P2_2.4: KIT DE PIC
Nhận xét chung: KIT DE PIC đã được tích hợp với một số môđun thông dụng và những port có sẵn giúp cho người thiết kế có thể phát triển ứng dụng được thuận lợi. Kit này thích hợp cho việc giảng dạy về vi điều khiển và phát triển ứng dụng dựa trên vi điều khiển PIC.
Kit này đã được thương mại hoá.
2.4. BỘ MÔ HÌNH THÍ NGHIỆM VI ĐIỀU KHIỂN (KDD-2007)
Bộ mô hình thí nghiệm vi điều khiển (KDD-2007) được thiết kế bởi nhóm nghiên cứu thuộc trường Đại học Sư phạm Kỹ thuật TP.HCM.
-Cấu tạo của bộ thí nghiệm vi điều khiển này gồm: môđun chính là khối vi điều khiển AT98C51 cùng các chip ngoại vi hỗ trợ cho hoạt động hiệu quả của vi điều khiển. Kit thí nghiệm bao gồm 14 khối chức năng khác nhau giúp cho sinh viên các ngành kỹ thuật có thể thực hiện các thao tác điều khiển từ cơ bản đến nâng cao.
-Tính năng kỹ thuật: sử dụng nguồn điện 220V qua hệ thống cách ly và cung cấp ổn định cho các bài thí nghiệm.
28
2.5. MÔ HÌNH THÍ NGHIỆM VI ĐIỀU KHIỂN HỌ AVR
Mô hình thí nghiệm vi điều khiển họ AVR do Trung tâm đào tạo Điện tử - Tự động hóa – Cơ khí DKS thiết kế.
Hình P2_2.6: Mô hình thí nghiệm vi điều khiển họ AVR
Mô hình thiết kế cho dòng vi điều khiển (AVR), có những đặc điểm như sau: - Người sử dụng có thể lập trình bằng ngôn ngữ C hoặc Assembly.
- Mô hình có thể nạp chương trình từ máy tính xuống thông qua một cáp nạp chương trình (ISP).
- Có khả năng giao tiếp với các thiết bị ngoại vi thông qua các cổng vào ra (I/O).
29
- Thiết bị giao tiếp với máy tính thông qua cổng COM. Thông số kỹ thuật:
- Nguồn cấp: 12-24VDC
- Kích thước bàn: 1200(W)x600(D)x700(H) mm - CPU: Vi điều khiển các loại thuộc dòng AVR - 32 led đơn nối các 4 cổng của vi điều khiển - 4 led 7 thanh loại anod chung
- Giao tiếp I2C với 24Cxx và DS1307
- 4 switches để cấu hình chân cho vi điều khiển - 1 LCD 16x2
- Giao tiếp với máy tính qua cổng RS232 - Mô đun cảm biến nhiệt độ LM335.
30
Phần 3:
KẾT QUẢ VÀ THẢO LUẬN Chương 1:
BỘ KIT AVR HOÀN CHỈNH 1.1. GIỚI THIỆU BỘ KIT AVR
Bộ KIT AVR hoàn chỉnh[a] gồm: board AVR và các phụ kiện đi kèm theo
Hình P3_1.1: Bộ Kit AVR hoàn chỉnh
1.2. CÁC CÔNG CỤ LÀM VIỆC VỚI VI ĐIỀU KHIỂN AVR
a) Trình biên dịch: có rất nhiều trình biên dịch có thể sử dụng để biên dịch code thành file intel hex để nạp vào chip, một số trình dịch quen thuộc có thể kểđến như sau: • AvrStudio: là trình biên dịch ASM chính thức cung cấp bởi Atmel, đây là trình biên dịch hoàn toàn miễn phí rất tốt cho lập trình AVR bằng ASM.
[a]Chi tiết về KIT AVR xem Tài liệu hướng dẫn thiết kế KIT AVR đính kèm theo báo cáo.
Cáp truyền thông với máy tính
Cáp nạp chương trình cho
Vi điều khiển
31
• Wavrasm: cũng được cung cấp bởi Atmel, nó chính là tiền thân của AvrStudio. Hiện tại wavrasm không còn được sử dụng nhiều vì so với AvrStudio trình biên dịch này có nhiều hạng chế.
• WinAvr hay Avrgcc: là bộ chương trình được phát triển bởi GNU, ngôn ngữ sử
dụng là C và thường được viết tích hợp với AvrStudio (dùng Avrstudio làm trình biên tập – editor). Đặc biệt bộ biên dịch này cũng miễn phí và đa số nguồn source code C
được viết bằng bộ này, vì vậy nó rất thích hợp khi viết các ứng dụng chuyên nghiệp. • CodeVisionAvr: đây là một chương trình hỗ trợ lập trình cho vi điều khiển AVR bằng ngôn ngữ C, nó hỗ trợ nhiều thư viện lập trình.
• ICCAVR: đây cũng là một công cụ hữu ích trong việc lập trình cho AVR bằng ngôn ngữ C.
• BascomAVR: lập trình cho AVR bằng basic, đây là trình biên dịch khá hay và dễ sử
dụng, hỗ trợ rất nhiều thư viện. Tuy nhiên rất khó debug lỗi và không thích hợp cho việc tìm hiểu AVR.
Ngoài ra còn rất nhiều trình biên dịch khác cho AVR, nhìn chung tất cả các trình biên dịch này hỗ trợ C hoặc Basic hoặc thậm chí Pascal. Việc chọn 1 trình biên dịch tùy thuộc vào mục đích, vào mức độ ứng dụng, vào kinh nghiệm sử dụng và nhiều lý do khác nữa.
b) Chương trình mô phỏng:AVR simulator là chương trình mô phỏng được tích hợp sẵn trong Avrstudio, AVR simulator cho phép chúng ta quan sát trạng thái các thanh ghi bên trong AVR theo chương nên rất phù hợp để chúng ta debug chương trình.
Proteus không mô phỏng hoạt động bên trong chip mà mô phỏng kết quả chương trình, nó là trình mô phỏng mạch điện tử giả thời gian thực nên chúng ta có thể sử dụng để
kiểm tra chương trình một cách trực quan hơn. Proteus là một công cụ hữu ích khi chúng ta chưa có điều kiện làm các mạch điện tử.
c) Chương trình nạp (Chip Programmer): đa số các trình biên dịch (AvrStudio, CodeVisionAVR, Bascom…) đều tích hợp sẵn chương trình nạp chip hỗ trợ nhiều loại mạch nạp. Trong trường hợp khác, chúng ta có thể sử dụng các chương trình nạp như
Icprog hay Ponyprog…là các chương trình nạp miễn phí cho AVR.
d)Mạch nạp: mạch nạp cho AVR có nhiều chuẩn, có thể sử dụng cổng nối tiếp (COM) hay song song (LPT) của máy tính làm đường nạp.
32
1.3. CÁC YÊU CẦU TRƯỚC KHI SỬ DỤNG KIT Yêu cầu các phụ kiện đi kèm theo KIT: Yêu cầu các phụ kiện đi kèm theo KIT:
Bảng P3_1.1: Bảng các phụ kiện đi kèm theo KIT
Thành phần Yêu cầu
Nguồn cung cấp cho
mạch 5V, 12V, 1A
Chương trình nạp VĐK ICCAVR Chương trình soạn code CodeVisionAVR Chương trình mô phỏng Proteus
Dây kết nối RS232
Yêu cầu cấu hình máy tính:
Bảng P3_1.2: Bảng cấu hình máy tính
Thành phần Yêu Cầu
CPU Intel Pentium IV trở lên RAM 512MB
Hardisk 10GB trở lên
Cổng RS232, COM, USB Bắt buộc
Hệđiều hành Windows XP, Vista
1.4. GHÉP NỐI GIỮ MÁY TÍNH VỚI KIT AVR
Hướng dẫn chi tiết cách ghép nối giữa máy tính với KIT AVR.
Để kết nối giữa KIT AVR với máy tính thông qua cổng USB (một cổng COM ảo sẽ được tạo ra) chúng ta sử dụng cáp STK500_USB Programmer (mode nạp ISP).
-Đầu nối ISP: đầu nối này có ghi chú các chân qui định để kết nối với vi điều khiển.
33
Ởđây chúng tôi sử dụng ISP 10-PIN, nên sử dụng cáp chuyển từ 6-PIN sang 10-PIN.
Hình P3_1.3: Cáp chuyển từ 6-PIN sang 10-PIN
-Cài đặt Driver cho STK_500: Double click vào file cài đặt tương ứng với hệ điều hành đang sử dụng, làm theo gợi ý của phần mềm cho đến khi hoàn tất cài đặt. Sau khi cài đặt xong kết nối cáp vào máy tính thông qua cổng USB, hệ thống sẽ tự tìm driver cho thiết bị.
Chúng ta có thể kiểm tra cổng COM ảo đã được tạo ra trong mục Hardware manager của Windows bằng cách trên desktop nhấn nút phải vào My Computer -> proferties -> hardware -> Device Manager -> Ports (COM & LPT)
Hình P3_1.4:Cổng COM ảo kết nối giữ máy tính với STK500
-Cấu hình trong CodeVisionAVR: Trong CodeVision AVR chọn menu Settings -> Programmer sẽ hiện ra bảng thiết lập, chọn cấu hình cho Programmer và cổng COM như sau:
34
Hình P3_1.5: Chọn cấu hình STK500 trong CodeVision
Sau đó nhấn OK để xác nhận việc cài đặt cấu hình hoàn tất.
Hình P3_1.6: Kết nối giữa KIT AVR với máy tính
1.5. CÁC BÀI THỰC HÀNH ĐI KÈM THEO KIT AVR [b]
Bài 1: KIT AVR VÀ TRÌNH BIÊN DỊCH CODEVISIONAVR
Đưa ra cái nhìn tổng quát các thành phần và cấu trúc của KIT thực tập là KIT chính mà sinh viên sẽ thực tập trong suốt quá trình học môn này. Sử dụng phần mềm CodeVisionAVR để soạn thảo, tổ chức một project cho bất kỳ chip họ AVR nào.
35
Bài 2: ĐIỀU KHIỂN VÀO RA (I/O) VỚI LED ĐƠN
-Hiểu rỏ và cấu hình được các thanh ghi của một port dữ liệu. Cụ thể đối với PortA thì phải hiểu được các thanh ghi sau: DDRA, PINA, PORTA. Tương tự đối với các port khác. Khởi tạo được CPU hoạt động với cấu hình tối thiểu nhất.
-Hiểu được schematic của các môđun I/O như: LED đơn, Switch DIP-8.
-Điều khiển được các port của chip AVR hoạt động như các port vào/ra dữ liệu. -Điều khiển các LED đơn trên KIT theo ý muốn thông qua các port vào/ra của AVR. Bài 3: ĐIỀU KHIỂN LED 7 ĐOẠN
-Hiểu rỏ và cấu hình được các thanh ghi của một port dữ liệu. Cụ thể đối với PortA thì phải hiểu được các thanh ghi sau: DDRA, PINA, PORTA. Tương tự đối với các port khác. Khởi tạo được CPU hoạt động với cấu hình tối thiểu nhất.
-Hiểu được schematic của các môđun I/O như: LED 7 đoạn, Switch DIP-8. -Biết phương pháp quét LED 7 đoạn.
-Điều khiển các LED 7 đoạn trên KIT theo ý muốn thông qua các port vào/ra của AVR. Bài 4: ĐIỀU KHIỂN LED MA TRẬN 5x7
-Hiểu được schematic của các môđun I/O như: LED ma trận 5x7. -Biết cách giải mã và phương pháp hiển thị trên LED ma trận.
-Điều khiển các LED ma trận trên KIT theo ý muốn thông qua các port vào/ra của AVR.
Bài 5: HIỂN THỊ LCD 16x2
-Tìm hiểu về cấu trúc và nguyên lý hoạt động LCD 16x2. Viết chương trình điều khiển LCD bằng AVR nhằm ứng dụng vào việc hiển thị. Phát triển 1 thư viện điều khiển LCD bằng AVR cả 2 chếđộ 8 bit và 4 bit.
-Từ module LCD 16x2 có thể mở rộng sang những module tương tự, ví dụ như module LCD 16x4, 40x2, …
Bài 6: HOẠT ĐỘNG NGẮT VÀ ĐỊNH THỜI CỦA AVR
-Vận dụng được hoạt động ngắt trong AVR là một tính năng quan trọng và cần thiết nhất trong mọi ứng dụng. Hiểu được hoạt động và những tính năng của timer trong AVR. Cấu hình và truy xuất được các thanh ghi trong timer và các thanh ghi liên quan