vi Điều khiển pic 18f4550 và các ứng dụng

104
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông LỜI CẢM ƠN Trước tiên chúng tôi xin gửi lời cảm ơn đến các thầy, cô giáo Trường Đại Học Công Nghệ - ĐHQGHN, bộ môn Điện Tử Viễn Thông đã nhiệt tình giảng dạy và truyền đạt những kiến thức, kinh nghiệm quí giá trong suốt bốn năm chúng tôi học đại học. Tôi xin gửi lời cảm ơn sâu sắc đến PGS.TS Ngô Diên Tập, đã tận tình hướng dẫn, cung cấp tài liệu trong suốt quá trình thực hiện đề tài này Tôi xin gửi lời cảm ơn đến tập thể lớp K49ĐB, những người đồng hành trong khóa học và có nhiều ý kiến đóng góp. Một lần nữa xin gửi lời cảm ơn chân thành và sâu sắc! Hà Nội, tháng 6 năm 2008 Sinh viên thực hiện: Nguyễn Thế Anh 1

Upload: kids196870

Post on 19-Jun-2015

5.356 views

Category:

Documents


14 download

TRANSCRIPT

Page 1: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

LỜI CẢM ƠN

Trước tiên chúng tôi xin gửi lời cảm ơn đến các thầy, cô giáo Trường Đại Học

Công Nghệ - ĐHQGHN, bộ môn Điện Tử Viễn Thông đã nhiệt tình giảng dạy và

truyền đạt những kiến thức, kinh nghiệm quí giá trong suốt bốn năm chúng tôi học đại

học.

Tôi xin gửi lời cảm ơn sâu sắc đến PGS.TS Ngô Diên Tập, đã tận tình hướng

dẫn, cung cấp tài liệu trong suốt quá trình thực hiện đề tài này

Tôi xin gửi lời cảm ơn đến tập thể lớp K49ĐB, những người đồng hành trong

khóa học và có nhiều ý kiến đóng góp.

Một lần nữa xin gửi lời cảm ơn chân thành và sâu sắc!

Hà Nội, tháng 6 năm 2008

Sinh viên thực hiện:

Nguyễn Thế Anh

1

Page 2: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

MỞ ĐẦU

Có thể nói, hiện nay vi điều khiển đã rất phổ biến ở Việt Nam, và được ứng

dụng rất nhiều. Những sinh viên nghành Điện, Điện Tử , Cơ Điện Tử, Tin Học, Viễn

Thông ... hâu như ai cũng biết cách để làm việc với vi điều khiển. Ngày nay, những

tiến bộ trong công nghệ bán dẫn đã thúc đẩy sự phat triển không ngừng của nghành

công nghiệp tự động, các quá trình điều khiển tự đông hoá và điều khiển thời gian thực

đã đặt ra yêu cầu rất lớn về việc trao đổi dữ liệu giưa các hệ thống hay giữa các bộ

phân trong cùng một hệ thống.

Các mục tiêu đề ra trong luận văn:

Chương I: Sơ Lược Về Vi Điều Khiển

Chương II: Vi Điều Khiển Microchip PIC

Chương III: Vi Điều Khiển PIC 18F4550

Chương IV: Công Nghệ USB Qua Microchip 18F4550

Chương V: Chuyên Đổi Từ Thiết Bị Flash PIC 18F Sang PIC 18FXXJ

Chương VI: Đồng Hồ Báo Thức

Mục lục

2

Page 3: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

CHƯƠNG I: SƠ LƯỢC VỀ VI ĐIỀU KHIỂN.............................................................51.1. Sơ Lược Về Cấu Trúc Của Vi Điều Khiển.........................................................51.2 Một Vài Họ Vi Điều Khiển Phổ Biến:.................................................................7

1.2.1 INTEL 8051................................................................................................71.2.3 MOTOROLA 68HCxx................................................................................71.2.4 MICROCHIP PIC 12Xxxx, 16Xxxx, 17Xxxx, 18Xxxx, DSPIC................8

CHƯƠNG II: VI ĐIỀU KHIỂN MICROCHIP PIC.......................................................92.1 Lịch Sử Phát Triển...............................................................................................92.2 Phân Loại...........................................................................................................10

2.2.1 Họ cấp thấp (low-end)...............................................................................102.2.2 Họ cấp chung (Mid-range)........................................................................102.2.3 Họ cấp cao (High-end) 17Cxxx................................................................112.2.4 Họ cấp cao (High- performance)...............................................................12

2.3 Một Số Ưu Điểm Microchip PIC.......................................................................12CHƯƠNG III: VI ĐIỀU KHIỂN PIC 18F4550............................................................14

3.1 Sơ đồ chân..........................................................................................................163.2 Các Công Cụ Lập Trình.....................................................................................203.3 Đơn vị ICD-U40................................................................................................233.4 Tiêu Thụ Năng Lượng.......................................................................................243.5 FIRMWARE......................................................................................................253.6 Các công cụ làm việc.........................................................................................253.7 Thiết bị lớp.........................................................................................................253.8 Firmware HID....................................................................................................263.9 Một số đặc tính:.................................................................................................263.10 Nguyên tắc hoạt động:.....................................................................................263.11 Driver...............................................................................................................273.12 Mô Tả Thực Hiện Firmware Thứ Hai..............................................................293.13 Kết luận............................................................................................................32

CHƯƠNG IV: CÔNG NGHỆ USB QUA MICROCHIP 18F4550..............................344.1 Giới thiệu...........................................................................................................344.2 Vi xử lý 18f4550................................................................................................344.3 Lắp ráp bảng phát triển......................................................................................344.3 Truyền tải khởi động vào 18F4550....................................................................364.4 Phát triển ứng dụng trong MPLAB IDE............................................................37

CHƯƠNG V: CHUYỂN ĐỔI TỪ THIẾT BỊ FLASH PIC18F SANG PIC18FXXJ...475.1 Chuyển đổi thiết bị.............................................................................................475.2 Giới thiệu...........................................................................................................475.3 Reset Brown-out (BOR)....................................................................................515.4 XUNG................................................................................................................515.5Tuỳ chọn dao động ký........................................................................................525.6 Đồng hồ đo năng lượng.....................................................................................525.7 Độ trễ khởi động/reset.......................................................................................525.8 Sự khác Biệt Về Chân........................................................................................53

3

Page 4: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

5.9 Điện trở kéo gắn trong.......................................................................................545.10 Tỷ lệ dòng trên các chân vào/ra.......................................................................545.11 VCAP/VDDCORE và ENVREG...............................................................................555.12 Bộ Nhớ Chương Trình.....................................................................................55

5.12.1 ID thiết bị................................................................................................555.12.2 Từ cấu hình..............................................................................................555.12.3 Các chu trình ghi.....................................................................................585.12.4 Khả năng ghi nhớ đặc tính......................................................................585.12.5Mô phỏng tự ghi và EEPROM.................................................................585.12.6 Bảo vệ mã................................................................................................595.12.7 Vào chế độ lập trình................................................................................59

5.13 Thiết Lập Chính Xác Cho Chương Trình Thiết Bị Và Công Cụ Phần Mềm. .605.14 KHÁC BIỆT MODULE.................................................................................615.15 TỔNG KẾT......................................................................................................61CHƯƠNG VI: ĐỒNG HỒ BÁO THỨC.................................................................626.1 Tóm lược............................................................................................................626.2 Chỉ thị hoạt động................................................................................................62

6.2.1 Ngày tháng/thời gian hiện tại....................................................................626.2.2 Thời gian 12 giờ hay thời gian quân sự.....................................................636.2.3 Báo thức....................................................................................................646.2.4 Âm báo thức..............................................................................................656.2.5 Đồng bộ, chờ và ngừng báo thức..............................................................65

6.3 USB....................................................................................................................676.4 Lập trình PIC.....................................................................................................67

6.4.1 Đồng hồ.....................................................................................................676.4.2 USB...........................................................................................................68

6.5 Sử dụng Compact Flash.....................................................................................686.6 Chip bộ mã hoá MP3.........................................................................................696.7 Bộ chuyển đổi số - tương tự CS4334.................................................................726.8 Màn hình LED...................................................................................................726.9 Kết luận..............................................................................................................73

4

Page 5: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

CHƯƠNG I

SƠ LƯỢC VỀ VI ĐIỀU KHIỂN

1.1. Sơ Lược Về Cấu Trúc Của Vi Điều Khiển

Năm 1971 bộ vi xử lý đầu tiên ra đời đã mở ra một thời đại mới trong công

nghệ điện tử và tin học, nó đã ảnh hưởng sâu sắc đến mọi lĩnh vực khoa học công

nghệ. Các hẹ thống được thiết kế dựa trên nền tảng của bộ vi xử lý ( điển hình như PC)

co khả năng mà các hệ thống điện tử thông thường không thể thực hiện được.

Các hãng chế tạo bán dẫn đã tích hợp các mạch ngoại vi và bộ vi xử lý lên một

chíp duy nhất (on chíp) để tạo ra các bộ vi điều khiển, để nhằm hạn chế tối đa các linh

kiện mắc ngoài khi xây dựng hệ thống có sử dụng vi xử lý, vi điều khiển.

Những bộ vi điều khiển mới hiện nay của các hãng như: ATMEL, MOTOROLA,

MICROCHIP… Bên trong đã tích hợp nhiều thiết bị ngoại vi như khối ADC, khố

PWM, các loại bộ nhớ, bộ đệm, các cổng truyền thông như: 12C, UART, CAN, PSP,

USB, khối điều khiển LCD, thậm chí cả các khối thu phát không dây RF. Điều này

khiến cho việc thực hiện các ưng dụng với vi điều khiển trở nên dễ dàng, giảm được

kích thước mạch điện và chi phí.

Việc thiết kế và chế tạo ra các bộ xử lý (microprocessor) hiện nay phát triển theo

hai hớng chính. Hướng thứ nhất là phát triển cac bộ xử lý mạnh tốc độ cao thực hiện

hàng tỷ lệnh mỗi giây, độ dài từ dữ liệu lớn 32 hoặc 64 bit, truy nhập không gian bộ

nhớ đến hàng trăm Mbyte hiện nay đã lên hàng Gbyte. Các bộ xử lý này được dùng

trongcác hệ thống cần có công suất tính toán cao như ở máy tính cá nhân PC (Personal

Computer). các hệ điều khiển trong công nghiệp. Hướng thứ hai đó là thiết k, chế tạo

các vi điều khiển (microcontroller), đó là một vi mạch đơn bên trong gồm bộ xử lý

8,12,14 hoặc 16 bit và các khối chức năng như bộ nhớ, bộ đệm, bộ biến đổi A/D, cổng

nối tiếp… . Các vi điều khiển điển hình là intel 8051, ATMEL, AVR, MOTOROLA

68HC11, Microchip Pic…

Điều thúc đảy việc nghiên cứu chế tạo vi điều khiển đó là tính đa dụng, dễ dàng

lập trình và giá thành thấp. Vi điều khiển tỏ ra rất hấp dẫn trong các ứng dụng điều

khiển điện tử vì có kích thước nhỏ, tuy nhỏ nhưng chức năng cũng rất đa dạng, dễ

dàng tích hợp vào trong hệ thống để điều khiển toàn hệ thống.

5

Page 6: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Các thành phần của vi điều khỉên là: CPU, RAM, ROM, các bộ đếm, bộ định

thời, các cổng vào ra, giao diện truyền thông nối tiếp, các khối chuyển đổi tương tự số

A/D và ngược lại số tương tự D/A. Khối xử lý trung tâm CPU thực hiện các chỉ thị

được lưu trong bộ nhơ chương trinh ROM để điều khiển tất cả các thành phần còn lại.

Bộ nhớ truy cập ngẫu nhiên RAM được dùng để lưu các thiết lập và các biến sử dụng

trong chương trình. Chương trình và các số liệu cố định được lưu trong ROM. Bộ nhớ

ROM của vi điều khiển sẽ trở thành phần sụn (firmware) sau khi được nạp trình. Bộ

nhớ ROM này có thể là loại ROM mặt nạ (masked ROM), với loại này chương trinh

được đưa vào ngay trong quá trình chế tạo vi mạch. Hay có thể là loại OTP ROM chỉ

cho phép nạp chương trình một lần, loại EFROM co thể ghi va xoá nhiều lần bằng tia

cực tim, ngoài ra còn loại bộ nhớ nữa là EEFROM là loại bộ nhớ không tự bay hơi có

thể được thay đổi dễ dàng bởi người lập trình.

Vi điều khiển được sử dụng rộng rãi trong các thiết bị điện tử: chúng có trong các

thiết bị viễn thông, máy văn phòng, đồ điện tử gia dụng, đồ chơi trẻ em, thiết bị giải

trí. Các thiết bị đó nói chung đều cần một cơ cấu điều khiển thông minh, có khả năng

tương tác với người sử dụng.

Chương trình cho vi điều khiển là một tập các lệnh đã được dịch thành mã máy

thường được nạp trực tiếp vào bộ nhớ ROM của vi điều khiển từ máy tinh thông

quamọt bộ nạp trình. Một phía của bộ nap được nối với cổng máy tính (COM, USB,

LPT) để nhận dữ liệu từ máy tính, phía kia đưa dữ liệu tới vi điều khiển thông qua các

chân nạp trình của vi điều khiển . Các chân này lại là các chân vào ra thông thường sau

khi vi đièu khiển đã được nạp chương trình.

Các cổng vào ra số cho các dữ liệu nhị phân di chuyển voà ra qua các chân của vi

điều khiển. Các chân này được dùng để ghép nối vi điều khiển với các thiết bị vào ra

số hay ghép nối với các bộ vi điều khiển khác để thực hiện các chức nang nào đó.

Cổng truyền thông dữ liệu nối tiếp tạo khả năng giao tiếp của hệ thống với các hệ

thống khác qua các chuẩn giao tiếp như: URAT, CAN, 12C, SPI…

Các bộ đếm dùng để tạo ra các nhịp thời gian chính xác hoặc để đếm xung.

Khối chuyển đổi A/D cho phép vi điều khiển giao tiếp với các thiết bị điện tử

tương tụ như cảm biến tương tự nhờ đó nó có thể đưa các dữ liệu tương tự vào để xử

lý và lưu trữ. Khối A/D cho phép vi điều khiển điều khiển các thiết bị không tương

thích điều khiển số.

6

Page 7: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

1.2 Một Vài Họ Vi Điều Khiển Phổ Biến:

1.2.1 INTEL 8051

Có 40 chân, trong đó có 32 chân vào ra

128 byte RAM

Có khả năng định địa chỉ được 64Kbyte bộ nhớ ngoài

Có 2 tới 3 khối timer

Tần số xung nhịp 12-24MHz

Có khối UART

Nạp trình song song ở các phân họ có bộ nhớ chương trình

1.2.2 ATMEL AVR AT90Sxxxx

Đóng vỏ 8-20-40 chân, tương ứng là 3-15-32 chân vào ra

Chữ lượng bộ nhớ chương trình từ 512 byte đến 8 Kbyte.

Có 128 byte đến 512 byte RAM

Có khối UART trong một số loại cấo cao

Có 1 đến 2 timer 8 bit một số loại có timer 16 bit

Bộ ADC 10bit với 6-8 kênh vào

Có bộ nhớ EEFROM dung lượng 64-512 byte

Tần số xung nhịp 10 MHz

Tập lệnh RISC

Nạp trình nối tiếp theo chuẩn ICSP

1.2.3 MOTOROLA 68HCxx

Đóng vỏ PLCC52, 68 hoặc 82 chân

38 chân vào ra

Có 1 byte bộ nhớ RAM bên trong

Không có hoặc tối đa 20Kbyte bộ nhớ lệnh

Có khối UARTx

7

Page 8: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Bộ ADC 8bit, 6-8 kênh vào

5 bộ timer 16 bit

Có bộ nhớ không tự bay hơi EEFROM 512 byte

Khả năng định địa chỉ 16 Kbyte bộ nhó ngoài

Tần số xung nhịp 8 MHz

Nạp trình song song

1.2.4 MICROCHIP PIC 12Xxxx, 16Xxxx, 17Xxxx, 18Xxxx, DSPIC

Đóng vỏDip8-18-28-40 (phổ biến), tương ứng là 5-13-22-3 chân I/O

Dung lượng bộ nhớ chương trình ROM 512 byte đến 8 Kbyte

Có từ 25 đến 400 byte RAM

Ở các loại cấp chung và cấp cao có khối UART

Có 1 đến 3 timer 8 bit, 16 bit

Bộ ADC 8bit, 10bit, 6-8 kênh vào

Có bộ nhớ EEFROM dung lượng 64-512 byte ở các họ Fxxx và DSPIC

Có khả năng định địa chỉ cho bộ nhớ ngoài ở các họ cấp cao

Tần số xung nhịp từ 4-40 MHz

Tập lệnh RISC

Đa số nạp trình theo chuẩn ICSP

8

Page 9: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

CHƯƠNG II

VI ĐIỀU KHIỂN MICROCHIP PIC

2.1 Lịch Sử Phát Triển

Năm 1965 hãng Genneral Instrument thành lập ban vi điện tử nhằm tập trung

nghiên cứu công nghệ chế tạo bộ nhớ kiểu EPROM và EEPROM, đó là các linh kiện

thu hút nhiều đầu tư của các phòng thí nghiệm bán dẫn. Đầu những năm 70 Genneral

Instrument cũng chế tạo vi xử lý 16 bit PC1600. Bộ xử lý này khá tốt nhưng có nhược

điểm là khả năng vào ra không mạnh để thích ứng bộ xử lý PC1600 trong các ứng

dụng cần có tính nâng cao. Năm 1975 Genneral Instrument thiết kế vi mạch điều

khiển giao tiếp ngoại vi (Peripheral interface controler) viết tắt là PIC, đó là linh kiện

hỗ trợ các tính năng vào ra cho vi xử lý PIC không cần nhiều chức năng vì chỉ xử lý

các công việc vào ra do đó bộ mã lệnh của nó khó nhỏ gọn. Những vi điều khiển PIC

đầu tiên có điểm yếu là chế tạo theo công nghệ n-MOS nên tiêu thụ nhiều năng lượng,

bộ nhớ chương trình là loại ROM mặt nạ chỉ nạp được một lần, do đó chương trình

điều khiển được nạp ngay khi chế tạo vi mạch nên chỉ thích hợp với các khách hàng

đặt mua với số lượng lớn, để lắp ráp trong sản xuất những sản phẩm cụ thể.

Những năm đầu thập ki 80 Genneral Instrument gặp khó khăn trong thương mại

và tổ chức lại. Hãng tập trung vào chế tạo linh kiện bán dẫn công suát lớn là thế mạnh

cho tới hiện nay của hãng. Genneral Instrument đã chuyển nhượng Ban vi điện tử và

nhà máy tại Chandle, bang Anizona cho các nhà đầu tư. Họ lập ra một công ty mới, đặt

tên là Arizona Microchip technology hiện nay là Microchip technology Inc.

Chiến lược của các nhà đầu tư là tập trung vào vi điều khiển và các bộ nhớ bán

dẫn. Các vi mạch PIC n-MOS được cải tiến, chế tạo dựa trên nền tảng công nghệ mới

CMOS. Các sản phẩm đầu tiên của Microchip được biết tới và bán ra với số lượng lớn

là các vi điều khiển PIC thuộc họ PIC16C5x. Họ này có hai biến thể với bộ nhớ

chương trình là OTP và UV EPROM. Loại OTP có thể nạp trình một lần dùng cho sản

xuất loại lớn. Loại UV EPROM có thể xóa được bằng tia cực tím (tia UV) dùng khi

phát triển, thử nghiệm phần mềm.

Năm 1983 Microchip là hãng đầu tiên đã tích hợp được bộ nhớ chương trình

flash EEPROM vào những vi điều khiển mới, trong đó được biết đến nhiều nhất là PIC

9

Page 10: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

16C84 và PIC16F84. Bộ nhớ chương trình flash đã loại bỏ vai trò của vi điều khiển có

bộ nhớ xoá bằng tia cực tím, có vỏ bằng gốm đắt tiền và các đèn chiếu tia cực tím.

2.2 Phân Loại

Tiêu chuẩn để phân nhóm dựa trên sự khác nhau về kiến trúc bộ xử lý bên trong vi

điều khiển.

Số các thanh ghi có thể truy cập được

Có hay không có ngắt , số lượng ngắt

Số lượng các phần cứng có chức năng đặc biệt

Độ dài từ lệnh

Dựa vào những đặc điểm đó vi điều khiển PIC được chia làm 4 họ:

2.2.1 Họ cấp thấp (low-end)

Gồm các loại được ký hiệu 12C5xx, 16C5x, 16C505, 16HV540

Độ dài từ lệnh 12 bit

Bố chí các thanh ghi: có 32 thanh ghi trên một bank, tối đa có 4 bank

Đặc điểm chung

Rất thích hợp trong các ứng dụng giao diện đơn giản với ngoại vi.

Bộ nhớ chương trình kiểu OTP hoặc EPROM xoá được bằng tia cực tím.

Tốc độ cao, thực hiện được 5 triệu chỉ thị/s với tần số xung nhịp 20MHz.

Chỉ có một bộ đếm timer.

Không có các ngắt cứng.

Không có các lối ra tăng cường.

Nạp trình song song, trừ PIC12C5xx và PIC16C505 được nạp trình nối

tiếp theo giao thực ICSP.

2.2.2 Họ cấp chung (Mid-range)

Bao gồm 12C6xx, 14C000, 16C55x, 16C6x, 16C62x, 16F62x, 16C67x, 16C8x,

16F87x và 16C9xx

Độ dài từ lệnh 14 bit

10

Page 11: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Là họ vi điều khiển PIC thông dụng nhất hiện nay.

Bố chí các thanh ghi: 128 byte trên một bank, tối đa 4 bank.

Là vi điều khiển vạn năng tinh năng mạnh.

Có rất nhiều biến thể khắc nhau, với các kiểu đóng vỏ đa dạng: DIP, PLCC,

SSOP…

Đặc điểm:

Tốc độ cao, thực hiện được 5 triệu chỉ thị /s ở xung nhịp 20MHz.

Có các ngắt phần cứng.

Có từ 1 đến 3 bộ đếm – timer

Có rất nhiều kiểu khác nhau về chân vào/ra tăng cường bao gồm các vào/ra tương tự,

giao diện truyền thông nối tiếp: đồng bộ, không đồng bộ, 12C, SPI, CAN, USB…, bộ

điều khiển LCD.

Bộ nhớ chương trình flash ở hầu hết các vi mạch.

Khả năng nạp trình nối tiếp ICSP.

Có khả năng tự ghi vào bộ nhớ chương trình (self-programming).

Có phần cứng gỡ rối chương trình ICD ở một số loại.

2.2.3 Họ cấp cao (High-end) 17Cxxx

Gồm các loại 17Cxxx

Độ dài từ lệnh 16 bit

Bố trí các thanh ghi: 224 byte trên một bank, tối đa 8 bank, 48 thanh ghi chức

năng đặc biệt (SFR).

Đặc điểm chung.

Kiến trúc khác so với họ PIC cấp chung, cấp thấp.

Có ác lệnh tăng cường và nhiều khả năng định địa chỉ.

Vi điều khiển giao tiếp bus, truy nhập cac thiết bị song song trực tiếp.

Có một số lối vào/ra tăng cường.

Bộ nhớ chương trình OTP.

11

Page 12: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Nạp trình kiểu song song.

2.2.4 Họ cấp cao (High- performance)

Gồm những loại có ký hiệu 18Cxxx và 18Fxx2

Độ dài từ lệnh 16 bit.

Bố trí các thanh ghi 256 byte trên một bank, tối đa có 16 bank.

Đặc điểm chung:

Kiển trúc nâng cao, dựa trên nền tảng của họ cấp trung, theo xu hướng thừa kế

những tính năng của các loại cấp trung đồng thời bổ xung các tính năng mới.

Do đó dần dần có khả năng thay thế toàn bộ PIC cấp trung.

Có các lệnh tăng cường và nhiều khả năng định địa chỉ.

Có khả năng truy nhập tới 2Mbyte bộ nhớ chương trình, 4Kbyte bộ nhớ RAM.

Véctơ ngắt đơn, có thể lập trình được mức độ ưu tiên các nguồn ngắt.

Khả năng vào/ra tương tự họ cấp trung.

Tần số hoạt động tối đa 40MHz, có bộ nhân tần số PLL.

Có bộ nhớ chương trình flash.

Nạp trình nối tiếp, có khả năng tự ghi vào bộ nhớ chương trình.

Hiện nay mới nhất là DSPIC với nhiều tính năng vượt trội:

Kiến trúc Harvard sửa đổi, 83 lệnh đơn, với chế độ địa chỉ mềm dẻo….

2.3 Một Số Ưu Điểm Microchip PIC

Bộ nạp trình cho PIC có thể tự lắp ráp một các dễ dàng với chi phí thấp do PIC

chủ yếu nạp trình theo chuẩn ICSP (In-Circuit Siral Programming) là phương thức nạp

trình nối tiếp: các dữ liệu được nạp vào bộ nhớ chương trình thông qua 2 chân vào/ra

được gán là cổng truy nhập đến bộ nhớ chương trình trong quá trình nạp trình. Do đó

nhờ có bộ nhớ flash và nạp trình theo chuẩn ICSP mà những người nghiên cứư và sử

dụng PICđã tiết kiệm được đáng kể chi phí mua các công cụ nạp. Với bộ nhớ flash thì

thời gian nạp trình cũng được cải thiện đáng kể ( chỉ khoảng vài chục giây) so với UV

EPROM (cỡ hơn chục phút).

12

Page 13: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Microchip cung cấp rất đầy đủ và chi tiết các tài liệu kỹ thuật về tất cả các loại vi

điều khiển PIC. Ngoài ra còn cung cấp phần mềm công cụ miễn phí MPLAB-IDE

được đánh giá là tốt nhất so với các công cụ phát triển tương tự của các hãng sản xuất

vi điều khiển khác (các tài liệu công cụ này được cung cấp miễn phí trên

www.microchip.com). Ngoài ra còn có rất nhiều sách viết về PIC và các trang web nói

về vi điều khiển này. Tài liệu hỗ trợ cho vi điều khiển PIC chỉ dùng sau máy tính cá

nhân PC và về doanh số bán ra thi trường hiện nay. Microchip đã đứng đầu về doanh

số bán PIC 8 bit, vượt lên trên cả các vi điều khiển của motorola.

13

Page 14: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

CHƯƠNG III

VI ĐIỀU KHIỂN PIC 18F4550

PIC18F4550 là một vi xử lý cơ bản đa chức năng và rẻ. Nó là sản phẩm của họ vi

xử lý PIC thông dụng của công ty Microchip của Mỹ có trụ sở đặt tại Chandler,

Arizona (Mỹ).

Hình 1: PIC18F4550

Điểm riêng biệt của vi xử lý PIC18F4550 là nó là một trong những PIC hỗ trợ

toàn thể cho USB, nghĩa là có USB gắn trong có sẵn các chân đầu ra để nối trực tiếp

với máy tính mà không cần mạch kéo hay bất cứ mạch gắn ngoài nào khác.

14

Page 15: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 2: Giao Tiếp USB

Hỗ trợ tinh thể và dao động ký nhiều tần số như đầu vào và bộ cân bằng nên bộ

xử lý có thể hoạt động với tần số 48 MHz của dao động ký độc lập khi kết nối. Khi kết

thúc hoạt động thì chỉnh dao động ký được kết nối (thông qua các bit cấu hình). Làm

việc với tốc độ 48 MHz là điều kiện tiên quyết để chuyển sang chế độ toàn tốc nhờ

cổng USB. Vì vậy, driver USB chuyển sang chế độ toàn tốc (1.5 Mbyte/giây) qua USB

và tương thích với chuẩn USB 2.0. Nó cũng có 35 chân vào/ra số chung (xem sơ đồ

chân ở phần dưới) và có sẵn vỏ bọc gồm DIP-40 nên rất thuận tiện cho nhà phát triển

và những người nghiệp dư quan tâm.

Với bộ nhớ, có 32kb Flash lưu trữ chương trình, 2kb bộ nhớ SRAM bay hơi và

256 byte EEPROM (bộ nhớ không bay hơi) để lưu trữ dài hạn dữ liệu như cấu hình …

Các chỉ thị dài 1 byte với một số ngoại lệ dài 2 byte (CALL, MOVFF, GOTO

LSFR). Sử dụng cơ chế đường ống để thực thi mã bằng việc khiến các chỉ thị liên tiếp

hoạt động trong 4 xung (độ dài xung) và có 4 lần nhảy xung được thêm vào.

Các đặc tính đáng chú ý khác là có đồng hồ, ngắt (đồng hồ gắn trong và gắn

ngoài) với hai mức ưu tiên và dùng cả hai mức như bộ so sánh tương tự kèm theo với

bộ phát điện thế chuẩn có 16 mức (hữu ích khi dùng trigger ở mức phần cứng).

Cuối cùng, CIP cũng có một bộ chuyển đổi tương tự 10 bit nhưng dao động ký

15

Page 16: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

không đủ yêu cầu về tốc độ cao cần thiết. Vì vậy, máy phát dao động có tốc độ 48

MHz giữa thời gian trễ do truyền tải và các ngắt khác (vòng lặp …). Không thể đạt

được tốc độ lớn hơn 200 kHz.

3.1 Sơ đồ chân

Sau đây là sơ đồ chân của PIC18F4550 trong hộp DIP-40.

Đặc biệt, có thể nhận ra chân D- và D+ từ kết nối USB (chân 23 và 24).

Hình 3:Sơ đồ chân của PIC18F4550 trong hộp DIP-40

16

Page 17: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 4: TQFP

Hình 5: QFN

17

Page 18: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Bảng 1: Bảng mô tả các chức năng từng chân của PIC18F4550

Chân Hướng Mô tả chức năng và các đặc tính

AN0-

AN12

I 13 kênh Input, Analog, AN6 và AN7 còn dùng cho lập

trình dữ liệu và xung clock vào.

Avdd Nguồn dương cho môđun tương tự.

Avss Nguồn Ground cho modul tương tự.

CLKI I Lối vào của xung Clock ngoài, luôn kết hợp với chân

OSC1.

CLKO O Lối ra của bộ dao động tinh thể, nối với tinh thể hoặc

bộ cộng hưởng trong chế độ dao động thạch anh.

Giống như CKLO trong chế độ RC hoặc EC. Luôn kết

hợp với chân chức năng OSC2

CN0-CN7,

CN17-CN18

I Khai báo thay đổi ở lối vào.

COFS

CSCK

CSDI

CSDO

I/O

I/O

I

O

Cổng giao tiếp chuyển đổi dữ liệu đồng bộ khung.

Cổng giao tiếp chuyển đổi dữ liệu Clock vào ra nối tiếp.

Lối vào dữ liệu nối tiếp.

Lối ra dữ liệu nối tiếp.

C1RX

C1TX

I

O

Cổng nhận bus CAN1

Cổng phát bus CAN1

EMUD

EMUC

EMUD1

EMUC1

EMUD2

I/O

I/O

I/O

I/O

Cổng vào ra dữ liệu kênh truyền thông sơ cấp của ICD.

Vào ra xung nhịp kênh sơ cấp.

Vào ra dữ liệu kênh thứ cấp.

18

Page 19: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

EMUC2

EMUD3

EMUC3

IC1,

IC2,IC 7,

IC8

I Các cổng vào của môđun Capture.

INT0,

INT1,

INT2

I Các ngắt ngoài.

LVDIN I Cổng vào phát hiện sụt thế.

/MCLR I Power, chân Reset, mức tích cực thấp.

OSC1

OSC2

I

O

Lối vào bộ giao động tinh thể. Bộ đệm Trigger

Schmitt được sử dụng khi cấu hình trong chế độ RC.

Lối ra bộ dao động tinh thể.

PGD

PGC

I/O

I

Vào ra dữ liệu của ICSP.

Lối vào Clock của ICSP.

RA11 I/O Port A.

RB0-RB12 I/O PortB.

RC13-

RC15

I/O PortC.

RD0-RD3,

RD8, RD9

I/O PortD.

RF0-RF5 I/O PortF.

SCK1 I/O Vào ra Clock đồng bộ của khối SPI1.

19

Page 20: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

SDI1

SDO1

SS1

I

O

I

Lối vào dữ liêu của khối SPI1.

Lối ra dữ liệu của SPI1.

Slaver đồng bộ.

SCL

SDA

I/O

I/O

Vào ra Clock nối tiếp của I2C.

Vào ra Data nối tiếp đồng bộ của I2C.

SOSCO

SOSCI

O

I

Lối ra bộ dao động tinh thể công suất thấp 32Khz.

Lối vào bộ dao động 32Khz.

T1CK

T2CK

I

I

Lối vào xung Clock ngoài của Timer1.

………………………………..Timer2.

U1RX

U1TX

U1ARX

U1ATX

I

O

I

O

Cổng nhận khối UART1.

Cổng phát khối UART1.

Cổng nhận mở rộng khối UART1.

Cổng phát mở rộng khối UART1.

VDD Chân nguồn Vdd.

VSS Chân nguồn Vss.

Vref+

Vref-

I

I

Lối vào Vref+ (cao) thế analog chuẩn.

Lối vào Vref- (thấp) thế chuẩn.

3.2 Các Công Cụ Lập Trình

Khi lựa chọn kiến trúc, phải nói đến cách lập trình. Với CIP thì thường dùng

PICSTART Plus của Microchip. Tuy nhiên, mô hình ta đã chọn là mô hình duy nhất

không tương thích với nhà sản xuất này. Mặt khác, ta có thuận lợi nếu theo nhà phát

triển này, ta sẽ có sẵn một chiếc mà không cần phải mua. Đánh giá khi hoàn thành

project thì trong tương lai bản cập nhật sẽ được phép dùng.

20

Page 21: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

CIP phát biểu dù chưa thực hiện nhưng sẽ theo kịp với nhu cầu bảo mật hay xây

dựng chương trình riêng của mình.

Giải pháp ta tìm ra là chương trình và bộ debug ICD2. Giải pháp ta tìm ra là

chương trình và bộ debug ICD2. Ta dễ quản lý nhóm của nhà phát triển thể hiện các

đặc tính:

Thiết bị sử dụng được chia thành như sau

Một bộ debug/chương trình thiết bị tổng hợp MPLAB ICD2 là bộ D/P thời gian

thực, giá rẻ có các đặc tính sau:

Giao diện USB (Toàn tốc 2Mbit/giây) và RS-232 nối tới máy host

Debug nền thời gian thực

Giao diện người dùng đồ hoạ MPLAB IDE (có bản copy miễn phí)

Mạch giám sát đoản mạch/quá tải điện thế tích hợp

Firmware cập nhật từ máy tính

Hoàn toàn gắn kèm

Hỗ trợ điện thế thấp đến 2.0 Volt (dải từ 2.0 đến 6.0)

LED chẩn đoán (Nguồn, Bận, Lỗi)

Không gian đọc/viết và miền EEDATA của vi điều khiển chính

Các bit cấu hình chương trình

Xoá không gian bộ nhớ chương trình sau khi kiểm định

Các đồng hồ ngưng ngoại vi dừng lại tại các điểm ngưng

Biểu đồ chính của kết nối với ICD2

Hình 6: Kết Nối Với ICD2

21

Page 22: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Thể hiện phần mềm bằng ICD

Hình 7 : Phần mềm bằng ICD

Quản lý các đầu vào và đầu ra số cũng như đầu vào tương tự (bộ chuyển đổi

tương tự - số)

Giai đoạn hai của việc thực hiện USB, rất đơn giản, chỉ là tích luỹ kinh nghiệm

phát triển của năm trước tại đây đáng đề cập đến đặc tính của CIP

Với ứng dụng này sẽ sử dụng công cụ lập trình sau

CCS ICD là giải pháp loại bỏ lỗi và lập trình cho microchip PIC16Fxx và

PIC18Fxx MCU hoàn chỉnh in-circuit. ICD có thể loại bỏ lỗi qua PIC16 và hỗ trợ

PIC18 trống loại bỏ lỗi theo cách loại trừ sai phạm. Nó cũng cung cấp lập trình nối tiếp

in-circuit (ICSP) cho tất cả các chip Flash. Một danh sách các phần được DCI hỗ trợ

được ghi chi tiết ở đây.

Các đơn vị CCS ICD làm việc tốt với phần mềm điều khiển PCW hay CCS độc

lập với ICD CCS. Debug PCW là quan trọng và tích hợp với bộ biên dịch và PCW

PCWH và cung cấp thông tin phát sinh lỗi được viết chi tiết bằng C. Phần mềm cho

phép các chương trình điều khiển độc lập nhanh chóng tác động vào ICSP chính nhờ

ICD. Phần mềm điều khiển cũng cho phép bạn cập nhật các hỗ trợ mà không thay đổi

về mặt logic đối tượng ICD, không phải bỏ đi chip của đơn vị ICD. (Dùng các công cụ

phần mềm này đòi hỏi phải nạp cho đơn vị CCS ICD không thay đổi logic phương tiện

trên ICD, được tải theo mặc định) Phần mềm điều khiển từ đơn vị ICD và cho phép

thiết lập các phần Flash được hỗ trợ. Để giúp loại bỏ lỗi, chức năng của PCW hay

PCWH là debug và tích hợp IDE với IDE.

22

Page 23: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

ICD-S40 đã thay thế ICD-S20 và DCI 4 MHz. Hãy chú ý, ICD-S40 và ICD-U40

chỉ làm việc với phần mềm và không dùng MPLAB IDE CCS. ICD nguyên bản CCS 4

MHz làm việc với MPLAB IDE 5.xx.

Cần phải cấp nguồn 3V cho ICD-U40. ICD-S40 không hỗ trợ 3V. CCS cung

cấp hai giải pháp cho ICD:

3.3 Đơn vị ICD-U40

Đơn vị ICD nối với máy tính và phần mềm Debug trên USB. Nó hoạt động với

tần số xung 40 MHz nên thời gian debug nhanh hơn (có cả cáp USB). Đơn vị được cấp

nguồn ICD-U40 USB. Bộ nguồn cũng cấp nguồn 5V để nối “cầu” gần ICD trong đơn

vị (đơn vị phải được bật)

Hình 8: Đơn Vị ICD-U40

Sơ đồ hai ứng dụng được trình bày dưới đây:

Thông tin relay:

Hình 9 : Thông Tin relay

23

Page 24: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Phần này dùng để kết nối với ICD của MPLAB để connector J2 có thể lập trình

lại cũng như chiếu sáng và gỡ bỏ thiết bị, với loại kết nối này thì không cần card CIP

DEMO USB FS của Microchip và có giá thành cao.

Đây là cách sử dụng ứng dụng thứ hai.

Hinh 10: Thông Tin relay

Cần phải nói rằng connector DCI đã thay đổi, không còn là cáp 5 connector nữa

mà đã chuyển thành cáp 6 connector, đó là do việc phát triển project gặp khó khăn khi

dùng ICD, nó hầu như không thể bị ảnh hưởng hay debug nhiều lần, đây là lý do chính

mà thay đổi là ICD có cấu hình như trên, tuỳ chọn thay đổi đầu vào tương tự và máy

chỉ thị thể hiện có truyền thông giữa thiết bị và host.

3.4 Tiêu Thụ Năng Lượng

Để quyết định xem có cần cấp nguồn ngoài (hay đơn giản là cấp nguồn qua cổng

USB), xem danh sách sau các thành phần và tiêu thụ năng lượng của chúng.

Do cổng USB có thể cấp dòng 500 mA nên phải dùng nguồn từ ngoài để cấp

nguồn. Ta dùng bộ điều chỉnh 7805 và chọn nguồn 9VDC vì đó là điện thế tối thiểu

cần để 7805 hoạt động được (và để tản nhiệt) và có thể thay bằng pin 9V nếu cần.

24

Page 25: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

3.5 FIRMWARE

Thực hiện truyền thông USB

2 ví dụ được phát triển để thực hiện truyền thông qua USB:

• Cung cấp host thông tin (máy tính) cho thiết bị (vi điều khiển) và thông tin relay từ

thiết bị (vi điều khiển) cho host (máy tính).

• Quản lý các đầu vào và đầu ra số cũng như các đầu vào tương tự (bộ chuyển đổi

tương tự - số)

Thông tin truyền thông và quảng bá Web:

3.6 Các công cụ làm việc

Firmware là chương trình chạy trong CIP và điều khiển truyền thông. Nó được

viết hoàn toàn bằng C dùng MPLAB C18 của Microchip, một bộ biên dịch C của cùng

nhà sản xuất hỗ trợ chuẩn PKI ANSI C’89 và được thiết kế cùng MPLAB IDE (là

công cụ để lập trình và debug CIP). Một đặc tính khác của MPLAB C18 là khả năng

sinh ra giá trị nhị phân do vi điều khiển quản lý.

Họ PIC18F (ví dụ, PIC18F4550) dùng chỉ thị mở rộng như một kiến trúc.

Chú ý MPLAB C18 có thể download miễn phí trên trang của Microchip (xem

liên kết tham khảo). Tuy nhiên, phiên bản miễn phí (gọi là phiên bản dùng cho sinh

viên) có thời hạn sử dụng là 60 ngày. Trong 60 ngày đó, chương trình sẽ tiếp tục hoạt

động nhưng không quản lý, vì vậy bộ biên dịch sẽ sinh ra các giá trị nhị phân để tiếp

tục hoạt động nhưng sẽ tốn không gian hơn (do không được quản lý) và không dùng

các chỉ thị của PIC18F4550 phổ dụng nên cần nhiều tính năng phần mềm hơn và vì

vậy kém hiệu quả.

3.7 Thiết bị lớp

Theo chuẩn thì có nhiều loại thiết bị USB với các đặc tính khác nhau thường thấy

trong thiết bị. Ví dụ, có lớp cho camera số, một lớp cho máy scan, một cho máy in …

Các lớp thiết bị được xây dựng để nâng cao tính tương thích của các thiết bị. Vì vậy,

bất cứ hệ điều hành nào có driver làm việc với camera số đều có thể đọc được ảnh từ

camera số được thiết kế phù hợp với các thông số kỹ thuật của loại thiết bị đó.

Đặc biệt với ứng dụng của chúng ta, ta chọn sử dụng loại thiết bị HID (Thiết bị

giao diện người dùng), về cơ bản là một kết nối tương tự với chuột hay bàn phím. Lý

25

Page 26: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

do ta chọn lớp này là do lượng lớn thông tin tại Microchip và kinh nghiệm có được từ

các đối tượng khác sử dụng loại driver này, ngoài ra nếu ta cần tạo một driver thì ta sẽ

dẫn đến trang này từ Microchip.

3.8 Firmware HID

Truyền thông được thực hiện qua sự hỗ trợ của firware USB HID, một nền cung

cấp yêu cầu của Microchip để thiết lập truyển thông (qua cổng USB) một cách đơn

giản.

3.9 Một số đặc tính:

Chuyên nghiệp: miễn phí, dễ sử dụng

Nhược điểm: tốc độ truyền dữ liệu nhỏ (giới hạn tới 64 kbyte/giây)

Bộ nhớ: xấp xỉ 3Kbyte

Driver của Windows: không yêu cầu

3.10 Nguyên tắc hoạt động:

Ứng dụng này là một HID cơ bản (không phải là bàn phím hay chuột và nguyên

tắc của nó như sau):

Nhận đầu ra thông báo bằng cách truyền ngắt OUT và gửi dữ liệu thông báo lại

đến lối vào host trong thông báo bằng cách truyền ngắt IN.

Nhận đầu ra thông báo nhờ truyền điều khiển (Set_ReportRequest) và thông báo

lại đầu vào host trong báo cáo nhờ truyền điều khiển (Get_ReportRequest).

Ứng dụng điều khiển bộ đệm để phân biệt các báo cáo nhận qua việc ngắt truyền

thông và báo cáo ngắt nhận qua điều khiển truyền thông.

Ứng dụng cũng điều khiển bộ đệm để phân biệt các thông báo nhận đầu vào qua

việc truyền đầu vào ngắt và các báo cáo nhận qua việc truyền điều khiển.

Nhận các báo cáo đưa đến bằng cách điều khiển truyền thông

(Set_ReportRequest) và gửi lại một báo cáo đến host trong một thông báo đưa đến nhờ

điều khiển truyền thông.

Một bộ đệm đơn giữ các bản báo cáo được lưu trữ và báo cáo nhận được đã gửi.

Việc thực hiện là sử dụng chuột thử nghiệm từ Microchip.

Project được kiểm tra trong bảng thể hiện PICDEM FS USB.

26

Page 27: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

3.11 Driver

Chuẩn yêu cầu tất cả các thiết bị USB trong giai đoạn thương lượng phải được

xác định với ID nhà sản xuất và ID sản phẩm (sau đây gọi là VID và PID). Cặp giá trị

này giúp nhận biết nhà sản xuất thiết bị (PRI) và mẫu riêng của một sản phẩm được kết

nối. Vì vậy, các mẫu khác của cùng sản phẩm nói chung khác PID.

Mục đích chính của các giá trị này không chỉ là xác định thiết bị mà còn là tìm và

tải đúng driver cho nó. Vì vậy, tất cả các driver của Windows (hay các sản phẩm tương

tự) được sắp xếp như thiết bị với một hay nhiều PID và PRI sử dụng cho driver đã nói.

Đây là cách sử dụng Windows (hay hệ điều hành khác đang đề cập) dù driver được

chọn có đúng hay không.

Trong trường hợp driver dùng cho hệ điều hành khác, cặp VID/PID đủ để xác

định driver nếu cần tải và vì vậy khi một thiết bị gắn với VID/PID thì nhận biết được

hệ thống tự động tìm ra và cho phép sử dụng ngay. Tuy nhiên, nếu không nhận ra

VID/PID thì hệ điều hành sẽ hỏi người dùng cấp driver. Một ví dụ là màn hình.

Cửa sổ phát hiện phần cứng mới

Đây là phần giải thích PRI và bộ điều khiển PID về ứng dụng của chúng ta với

loại HID không cần cài đặt bất cứ driver nào (Windows tự động cập nhật).

Các công cụ dùng trong ứng dụng này được thể hiện như sau:

C18 2.30.01 +

Phiên bản yêu cầu tối thiểu: 2.30.01 +

Khuyến nghị: 2.40 +

Phiên bản này có tại http://www.microchip.com

MPLAB IDE 6.62 +

Phiên bản yêu cầu tối thiểu: 6.62 +

Khuyến nghị: 7.00 +

MPLAB (R) IDE có tại http://www.microchip.com

Bit cấu hình:

27

Page 28: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Các bit cấu hình được dùng để thiết lập chế độ hoạt động của CIP (ví dụ, tần số

của bộ tạo dao động) và được thiết kế để lập trình. Các bit cấu hình do MPLAB quản

lý khi lập trình và có thể cấp cho 2 dạng:

1. Qua danh sách các bit cấu hình của MPLAB (Đặt bit cấu hình).

2. Qua các macro cùng mã dùng khai báo cấu hình thực #.

Dưới đây là hình ảnh lựa chọn các bit cấu hình của MPLAB (tuỳ chọn 1).

1. tham chiếu đến project dùng một “bộ tải khởi động”.

• Khi bạn mở ứng dụng thì luôn mở file “workspace” (*.mcw).

• Tất cả các ví dụ trong thư mục được tải qua bộ tải khởi động.

Thành phần cơ bản:

Vector reset và ngắt của bộ tải khởi động được chỉnh theo các địa chỉ 0x0800,

0x0808, 0x081.

Phần điều chỉnh liên kết với phần khởi động được sử dụng, file này là

rm18f4550.lkr và được đặt tại mỗi ứng dụng.

28

Page 29: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Nếu bạn đang dùng ICD2 và không phù hợp với bộ tải khởi động thì bạn phải

điều chỉnh lại như sau:

• MPLAB đồ hoạ thay đổi liên kết rm18f4550.lkr bằng một linker chuẩn

18f4550.lkr, điều này có thể thấy được theo mặc định trong thư viện C18.

• Thay đổi đường dẫn của liên kết đến đúng vị trí để không phát sinh lỗi.

• Bạn phải xoá đi các mã theo sau:

Extern void _startup (void); / / xem c018i.c trong thư mục biên dịch C18

# Pragma _RESET_INTERRUPT_VECTOR code = 0x000800

Void _reset (void)

(

_asm Goto _startup _endasm

)

# Pragma Code

Đây là mã trong file main.c.

• Cuối cùng (tuỳ chọn) khi định hướng bit, đặt 0x30000B tắt phần ngăn viết

BOOT.

3.12 Mô Tả Thực Hiện Firmware Thứ Hai

Ứng dụng thứ hai là sự trợ giúp lớn và kinh nghiệm lớn để hiểu USB, theo sự

phát triển của ứng dụng trước đây áp dụng vào các điểm khác để phát triển và thực

hiện cho thực thi này và firmware được dùng cho các công cụ làm việc khác này, được

mô tả ở chương trước, tiếp cận đang sử dụng là mã hoạt động:

# Include <18F4455.h>

# Fuses HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL5,

CPUDIV1, VREGEN

# Use delay (clock = 48000000)

# Define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT

# Define USB_EP1_TX_SIZE 8

# Define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT

29

Page 30: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

# Define USB_EP1_RX_SIZE 8

# Include <pic18_usb.h>

# Include <usb_desc_hid.h>

# Include <usb.c>

Đây là phần header cần thiết để thiết lập truyền thông với DCI và có thể tạo HID

lớp ứng dụng, phần đầu usb_desc_hid.h thực hiện việc này.

Ứng dụng dùng 5 đầu vào tương tự sau đây cần cấu hình CIP để làm việc với thuỷ tinh

có tốc độ 20 MHz cho tốc độ 48 MHZ:

Setup_adc (ADC_CLOCK_INTERNAL);

Setup_adc_ports (AN0);

Set_adc_channel (0);

Phần còn lại là logic cần thiết để có thể thiết lập quan hệ giữa chúng, nhấn nút

hay nhấn nút trên máy host chỉ cần để biết tên bản ghi CIP và gửi cuộc gọi một cách

thích hợp.

Đặc tính khác được thể hiện trong mã thông báo.

Phần Mềm

Phát triển lập trình tại host được thực hiện bằng Microsoft Visual ++, logic của

chương trình, tương tự như ứng dụng trước

Sau đây là cấu trúc chương trình trong ứng dụng này:

Usb_Ej_1.dsp

File (file project) này chứ thông tin về cấp project và được dùng để xây dựng

project đơn hay project con. Người dùng ngoài có thể chia sẻ file project (.dsp) nhưng

không được xuất file khởi tạo nội bộ.

Usb_Ej_1.h

Đây là phần header của file chính cho ứng dụng. Project khác gồm có header đặc

biệt (gồm resource.h) và khai báo lớp ứng dụng Cusb_Ej_1App.

Usb_Ej_1.cpp

Đây là phần chính của mã nguồn ứng dụng gồm lớp ứng dụng Cusb_Ej_1App.

30

Page 31: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Usb_Ej_1.rc

Đây là danh sách tất cả các tài nguyên của Microsoft Windows mà chương trình

sử dụng gồm có các icon, điểm ảnh, con trỏ được lưu trong thư mục con của RES. File

này có thể viết trực tiếp vào Microsoft Visual C++.

Usb_Ej_1.clw

File này chứa thông tin để ClassWizard sử dụng khi phác thảo các lớp hay thêm

lớp mới. ClassWizard cũng dùng file này để chứa thông tin cần thiết để tạo, soạn danh

sách các thông điệp, trình bày dữ liệu cho hội thoại và tạo tác vụ như thành phần

nguyên bản.

Res \ Usb_Ej_1.ico

Đây là icon của file dùng cho icon ứng dụng. Icon này có trong file tài nguyên

chính Usb_Ej_1.rc.

Res \ Usb_Ej_1.rc2

File này chứa tài nguyên không được viết bằng Microsoft Visual C++. Bạn nên

đặt tất cả các tài nguyên không được chỉnh sửa bời bảng phác thảo tài nguyên vào file

này.

UsbHidApi.lib

File này cung cấp thông báo về chương trình với DLL cùng tên.

Kết quả

Giao diện được phát triển hỗ trợ truyền thông USB điều khiển ba kiểu truyền dữ

liệu là: đầu ra số, đầu vào số và đầu vào tương tự - số.

31

Page 32: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 11: Giao diện được phát triển hỗ trợ truyền thông USB

3.13 Kết luận

Project được thực hiện qua bắt ngoặt lớn khi chúng ta kiểm soát do điều này chưa

được biết đến.

Khi phát triển project có thể thấy rằng có nhiều cách truyền thông bằng bus hơi

phức tạp do nó gồm nhiều giao thức. Việc truyền thông này không được thực hiện theo

hướng như trường hợp cổng song song hay cổng nối tiếp mà dùng driver để truy nhập

vào.

Có thể có vô hạn driver này do có thể tạo ra các driver riêng giống nhau, vấn đề

là độ phức tạp của thuật toán được phát triên. Trong trường hợp project của ta, ta chọn

sử dụng DLL “UsbHidApi” là phần mềm thương mại, file này khiến mạch máy tính

phát hiện ra dạng của HID (Thiết bị giao diện người dùng), tương tự với chuột,

joystick, bàn phím …

32

Page 33: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Những phát triển của project này đã mở ra cánh cửa để sử dụng tốt loại bus này,

được coi là bảng bus. Dựa trên ứng dụng này qua PIC, có thể thực hiện được rất nhiều

ứng dụng hay trong công việc khi bất cứ thiết bị được phát triển nào có thể được giám

sát và điều khiển qua bus này.

Chú trọng đến vi điều khiển PIC là vi điều khiển phổ biến nhất hiện nay cho các

ứng dụng đó, các chức năng luồng cần cho truyền thông với bus USB và chuyển đổi

nội dung tương tự - số cho thiết bị.

Nguồn thông tin.

Internet

Diễn đàn thảo luận.

Hướng dẫn lập trình ngôn ngữ Visual C++.

Trang web (www.microchip.com).

Khuyến nghị.

Bước thực hiện để nghiên cứu và hiểu được bus này là quan trọng và giải đáp

những câu hỏi cơ bản khiến cho công việc nghiên cứu rõ ràng hơn.

Nên mua thiết bị ghi PIC như yêu cầu để phát triển thêm ứng dụng và hiểu bus

USB.

33

Page 34: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

CHƯƠNG IV

CÔNG NGHỆ USB QUA MICROCHIP 18F4550

4.1 Giới thiệu

Tài liệu này giới thiệu nền tảng cơ bản để khám phá công nghệ liên kết với các

thiết bị USB. Nó cung cấp chi tiết cần thiết để giả lập một bảng phát triển, chương

trình và thí nghiệm với vi xử lý Microchip 18F4550.

Sơ đồ thực hiện dùng ở đây sử dụng việc kết hợp cách tiếp cận dùng trong giao

diện CREATE USB (CUI, phụ lục 3) và pic18fusb.online.fr Wiki (Phụ lục 1). Cả hai

đều sử dụng kỹ thuật tải khởi động và phần mềm liên kết với bảng thể hiện USB toàn

tốc Microchip PICDEM.

Tất cả các phần mềm dùng trong bảng phát triển có thể download miễn phí gồm

có bộ biên dịch MPLAB C18 C phiên bản dùng cho sinh viên.

4.2 Vi xử lý 18f4550

Vi điều khiển Microchip PIC 18F4550 là một thiết bị phổ biến để kết nối với

USB. Nó có giao diện USB 2.0 toàn tốc tích hợp sẵn. Thiết bị có sẵn nhiều ví dụ nên

dễ dàng bắt đầu thí nghiệm công nghệ. PIC 18F4550 gồm 13 lối vào tương tự/số, 18

cổng vào/ra chung và một bộ chỉ thị kiểu RISC mạnh. Thiết bị có bộ nhớ 16K để lưu

chương trình. Do cho phép sử dụng USB, bạn có thể có sẵn 1024 byte RAM để lưu dữ

liệu (có thể 2048 byte).

4.3 Lắp ráp bảng phát triển

Phụ lục A cung cấp danh sách các thành phần, sơ đồ và ảnh các đơn vị hoàn thiện.

Quá trình phát triển

Quá trình phát triển được minh hoạ dưới đây:

34

Page 35: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 12 : Quá Trình Phát Triển

Trước khi lập trình lần đầu cho bảng phát triển, bạn phải download mã tải khởi

động vào 18f4550. Đọc phần có tiêu đề “Truyền tải khởi động vào 18F4550” để xem

chi tiết về quá trình này.

Các chương trình được viết và phát triển trong Microchip MPLAB. Các chương

trình có thể phát triển bằng ngôn ngữ hợp ngữ hay C.

Sử dụng môi trường MPLAB để gọi bộ biên dịch C18 C hay bộ hợp ngữ. C18

hay bộ hợp ngữ sẽ biên dịch file .asm của bạn hay mã C thành file .hex.

Lập trình cho PIC 18F4550 bằng cách download file .hex qua tải khởi động dùng

chương trình PDFSUSB.EXE (lưu trú tại C:\MCHPFSUSB\Pc\Pdfsusb\PDFSUSB.exe

trong MCHPFSUSB USB Framework).

Để bảng phát triển hiện ra thực đơn PDFSUSB.EXE, phải reset bảng và giữ phím

“button”.

Trong môi trường PDFSUSB.EXE:

Tải file Hex

Lập trình thiết bị

Thực hiện

Nó sẽ tải file hex vào 18F4550 và khởi tạo thực hiện trong thiết bị.

Phần mềm cần thiết

Phần mềm sau có thể download từ Microchip:

MPLAB IDE – môi trường phát triển để xây dựng ứng dụng.

Bộ biên dịch MPLAB C18 C Phiên bản cho sinh viên – có thể sử dụng với

MPLAB IDE để phát triển ứng dụng bằng C.

MCHPFSUSB USB Framework - gồm tải khởi động và các ví dụ để sử dụng với

bảng phát triển.

Tài liệu

Tài liệu được liệt kê dưới đây sẽ có ích trong việc vận hành môi trường phát

triển. Nó có thể download từ Microchip (www.microchip.com)

MPLAB IDE User’s Guide – Microchip document DS51519B

35

Page 36: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Release Notes for MPLAB C18 C Compiler, Student Edition

MPLAB C18 COMPILER USER’S GUIDE – Microchip document DS51288J

MPLAB C18 C Compiler Getting Started – Microchip document DS51295F

MPLAB C18 Libaries Documentation – Microchip document DS51297F

Release Notes for MCHPFSUSB – Microchip Full-Speed USB Solutions

PICDEM FS USB Demonstration Board User’s Guide – DS51526A

4.3 Truyền tải khởi động vào 18F4550

Xem Phụ lục B – “Phần cứng để tải mã vào 18f4550” nói về các thiết bị để

truyền tải khởi động vào chip 18f4550.

Lần đầu tiên lập trình cho bảng phát triển, phải dùng chương trình ICD2 thay cho

PDFSUSB.EXE. Nguyên nhân là do PIC hoàn toàn trống khi đem từ nhà máy về và

bạn phải tải file hex cho tải khởi động vào PIC để kích hoạt các phiên lập trình trong

tương lai qua PDFSUSB.EXE.

File hex tải khởi động được lưu trong mã MCHPFSUSB USB Framework. Trong

MPLAB, mở file hex “C:\MCHPFSUSB\fw\Boot\_output\MCHPUSB.hex”, chọn

chương trình ICD2 và click vào thiết bị lập trình. Nó sẽ truyền mã tải khởi động vào

18f4550.

Vào chế độ tải khởi động

Mã biên dịch dạng file .hex có thể download bằng chương trình PDFSUSB.EXE.

Để download mã vào 18f4550 qua PDFSUSB.EXE, làm như sau:

Mở ứng dụng PDFSUSB.EXE.

Kiểm tra cửa sổ thả “Select PICDEM FS USB Board” để xem bảng điều khiển có

hiện ra không. Nếu có thì bạn sẽ thấy phần “PICDEM FS USB (0) Boot”. Chọn phần

này. Đến bước 4.

Nếu “PICDEM FS USB (0) Boot” không hiện ra, làm như sau để vào chế độ tải

khởi động 18f4550:

Nhấn và giữ khoá S2.

Trong khi giữ S2, nhấn và thả S1.

36

Page 37: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

PC sẽ kêu “beep” chỉ thị rằng 18f4550 bây giờ đã có trong ứng dụng

PDFSUSB.EXE. Trong Device Manager, thiết bị sẽ xuất hiện dưới Other Devices –

PIC 18F4550 Family Device.

Trở lại bước 2.

Mã biên dịch bây giờ có thể đownloa vào 18f4550 nhờ các thao tác trong ứng

dụng PDFSUSB.EXE sau:

Tải file Hex.

Lập trình thiết bị.

Thực hiện.

PC sẽ kêu “beep” chỉ thị 18f4550 bây giờ đang hoạt động và không ở chế độ tải

khởi động nữa.

Nhấn S1 để nó tự khởi động lại ứng dụng được nạp vào 18f4550. Ngay cả khi

ứng dụng Demo Tool đang chạy ở chế độ tải khởi động thì một lần reset bảng đơn giản

(nhấn S1) sẽ không làm bảng tự vào chế độ tải khởi động.

Nếu đây là lần đầu tiên bạn sử dụng tải khởi động thì máy tính sẽ không nhận

firmware tải khởi động, vì vậy bạn phải cài driver (chỉ cần một lần). Khi Windows

thông báo “Found New Hardware”, click “No, not this time” rồi chọn “Install from

list”. Rồi click vào “Browse …” và chọn thư mục “C:\MCHPFSUSB\Pc\MCHPUSB

Driver\Release” rồi “Next”, “Continue Anyway” và “Finish”.

4.4 Phát triển ứng dụng trong MPLAB IDE

Các bước sau để tạo ra một ứng dụng mới cho 18f4550 dùng chế độ tải khởi

động để download cho thiết bị.

Mở MPLAB IDE

Từ thực đơn MPLAB Project, chọn Project Wizard.

Click “Next”.

Chọn thiết bị (PIC18F4550).

Chỉnh lại Active Toolsuite là “Microchip C18 Toolsuite”.

Tạo một file project mới. Tạo một thư mục mới cho project (C:\MCHPFSUSB\fw\

MyPro1). Đặt tên cho project (ví dụ MyPro1).

37

Page 38: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Thêm file vào project này. Thêm file “C:\MCHPFSUSB\fw\Demo02\rm18f4550”.

Tạo một file để lưu chương trình C. File|New. Thêm mã, Save As (ví dụ Mypro1.c).

Thêm Mypro1.c vào project. File|Add new file to project.

Biên dịch Project|Build All.

Sau khi biên dịch thành công, vào chế độ tải khởi động với 18f4550.

Sử dụng ứng dụng PDFSUSB.EXE để tải chương trình vào 18f4550.

Chú ý rằng script linker đặc biệt (rm18f4550.lkr) được dùng cho ứng dụng tải

khởi động. Trong rm18f4550.lkr, reset, vector ngắt có ưu tiên cao và thấp được xếp

ngoài khối khởi động để ngăn ghi đè lên nó.

Ví dụ - Tải file Hex Demo02 vào 18f4550

Khi bạn đã truyền được tải khởi động vào 18f4550, bạn có thể dùng chương trình

PDFSUSB.EXE để tải file chương trình vào thiết bị.

Để vào chế độ tải khởi động, nhấn phím chương trình trên bảng phát triển trong

khi vẫn cắm cáp USB hay reset lại bảng. Nếu đây là lần đầu tiên bạn dùng tải khởi

động thì máy tính của bạn sẽ không nhận firmware tải khởi động, vì vậy bạn phải cài

driver (chỉ cần một lần). Khi Windows thông báo “Found New Hardware”, click “No,

not this time” rồi chọn “Install from list”. Rồi click vào “Browse …” và chọn thư mục

“C:\MCHPFSUSB\Pc\MCHPUSB Driver\Release” rồi “Next”, “Continue Anyway”

và “Finish”.

Ví dụ sau đây trình bày về thủ tục tải khởi động cho project Microchip Demo02,

chương trình kiểm thử có thể được tải khởi động.

MPLAB: Với MPLAB, mở, (chỉnh lại) và xây dựng (lại) project “C:\

MCHPFSUSB\fw\Demo02\Demo02.mcp”.

BOARD: Vào chế độ khởi động bằng cách nhấn [S1 Reset] trong khi vẫn giữ [S2

enter Boot/Program].

PDFSUSB: Mở công cụ Microchip:

“C:\MCHPFSUSB\Pc|Pdfsusb\PDFSUSB.exe” (“tiện ích Microchip USB – Boot

Loader”).

38

Page 39: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

PDFSUSB: Trong danh sách thả xuống, chọn PIC, đặt tên là “PICDEM FS

USB 0 (Boot)”.

PDFSUSB: Click “Load Hex file”:

“C:\MCHPFSUSB\fw\Demo02\Demo02.hex”.

PDFSUSB: Click “Program Device”.

PDFSUSB: Click “Execute” để khởi động PIC trong chế độ người dùng (bỏ qua

khuyến cáo lỗi, nó chỉ dùng để reset thiết bị).

Chương trình Demo02 khi nhấn S2 thì trạng thái chân RD1 phải thay đổi (0V lên 5V

…).

Xem Phụ lục C về các thành phần phụ được gắn vào chiếu sáng LED cho bảng phát

triển.

Ví dụ - Chuyển từ giao diện RS-232 sang USB

Các phần mềm hữu ích khác

Các phần mềm sau đây được đánh giá là hữu ích khi sử dụng bảng phát triển:

Windows Device Manager – Vào Windows Device Manager bằng cách click

Start, Setting, Control Panel, icon System, tab Hardware và click nút Device Manager.

Device Manager hoạt động dễ dàng hơn nhiều nếu mở chương trình devmgmt.msc từ

cửa sổ dòng lệnh.

DevCon – là một tiện tích dòng lệnh thay thế cho Device Manager. Dùng

DevCon, bạn có thể kích hoạt, ngắt, khởi động lại, xoá và truy vấn các thiết bị riêng

hay một nhóm thiết bị. DevCon cũng cung cấp thông tin tương ứng về nhà phát triển

driver và không có sẵn trong Device Manager. Download từ

http://support.microsoft.com/kb/311272. Có các phiên bản 32 và 64 bit.

USB Sniffer/Analyzer – công cụ debug USB cho phép bạn xem các byte được

truyền đi giữa host và thiết bị.

Phụ Lục A

Xây dựng môi trường phát triển 18f4550

Bản thiết kế được trình bày ở đây là sự kết hợp các cách tiếp cận thiết lập 18f4550 cơ

bản. Nó nhấn mạnh vào các cách tiếp cận CUI và thực hiện pic18fusb.

39

Page 40: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Các thành phần cần thiết để tạo lập phát triển 18f4550 được liệt kê sau đây:

P/N (source) Description Qty Each TotalComponent

Designation

450-1644-ND

(Digi-Key)

SWITCH TACT 6MM BK 160GF

8.51MM2 0.21 0.42 S1, S2

PIC18F4550-I/

P-ND  (Digi-

Key)

IC PIC MCU FLASH 16KX16

40DIP1 9.73 9.73 P1

X439-ND (Digi-

Key)

CRYSTAL 20.000 MHZ 20PF

49US1 0.58 0.58 Q1

4.7KQBK-ND

(Digi-Key)

RES 4.7K OHM 1/4W 5%

CARBON FILM2 0.06 0.12 R1, R2

22QBK-ND

(Digi-Key)

RES 22 OHM 1/4W 5%

CARBON FILM2 0.06 0.12 R3, R4

1.0KQBK-ND

(Digi-Key)

RES 1.0K OHM 1/4W 5%

CARBON FILM1 0.06 0.06 R5

1.0MQBK-ND

(Digi-Key)

RES 1.0M OHM 1/4W 5%

CARBON FILM1 0.06 0.06 R6

516-1311-ND

(Digi-Key)

LED 3MM 645NM RED DIFF

LOW CURR1 0.51 0.51 LED1

478-4278-1-ND

(Digi-Key)CAP CER .10UF 50V DISC RAD 2 0.20 0.40 C1, C5

478-4178-ND

(Digi-Key)

CAP TANTALUM .47UF 35V

10% RAD1 0.46 0.46 C2

40

Page 41: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

BC1003CT-ND

(Digi-Key)

CAP 15PF 50V CERAMIC C0G

5%2 0.08 0.16 C3, C4

PBCUB1F

(Winford)

USB B Female Breadboard

Adapter1 5.60 5.60

438-1045-ND

(Digi-Key)

BREADBOARD 2.13x6.496

SLDLESS*1 8.73 8.73

Total 26.95

số lượng.

Hinh 13: bo mạch test

Hình 14 : mạch nguyên lý

41

Page 42: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Tạo lập

Hai thành phần trong mạch phân cực.

Một thành phần mà cực là tụ điện 470 nF (C2). Cực được đánh dấu trên tụ được

theo dõi.

Thành phần nhạy phân cực thứ hai là LED. Cực được đánh dấu dưới đây (Phụ

lục 4) của LED được theo dõi.

Sắp xếp các thành phần quanh tinh thể hơi khó khăn và cần thực hiện cẩn thận để

tránh đoản mạch.

Khi thực hiện, Winford USB B Female Breadbroad Adapter được dùng nhiều

hơn bộ lắp ráp USB B Female rẻ hơn thường được nối với PCB (Digi-Key 609-1039-

ND). Adator này đảm bảo rằng cáp USB có kết nối tốt với bảng mạch.

Hình có tiêu đề “Breadboard Adator Detail” thể hiện cách nối ngầm dưới breadboard

adapter.

42

Page 43: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Nếu bạn dùng bộ lắp ráp USB B Female thì các chân phải nối như sau:

Chân Tên Màu cáp Mô tả

1 VCC Đỏ +5VDC

2 D- Trắng Dữ liệu -

3 D+ Xanh Dữ liệu +

4 GND Đen Đất

Một số định nghĩa

Vcc +5VDC (supplied by the USB port)

VddGround, GND,

Capacitor

Resistor

LED

Crystal

43

Page 44: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Sử dụng nguồn USB

Các chức năng tốn ít năng lượng, năng lượng bus: Draw Max 100mA.

Phụ lục B

Phần cứng để tải mã vào 18f4550

Như đã đề cập đến, lần đầu tiên bạn lập trình cho bảng phát triển thì phải dùng

chương trình ICD2 thay cho PDFSUSB.EXE. Đó là do PIC hoàn toàn trống khi đem

từ nhà máy về và bạn phải lập trình một file hex cho tải khởi động vào PIC để kích

hoạt các phiên lập trình trong tương lai qua PDFSUSB.EXE.

Cách chắc chắn nhất để thực hiện điều này là dùng chương trình ICD2 và module

lập trình toàn cục từ Microchip. Giá của các thiết bị này vào mùa xuân năm 2008 là:

MPLAB CD2 In-Circuit Debugger/Programmer (DV164007) – 189,99 trừ 25%

(xem phần dưới).

Module lập trình toàn cục cho ICD2 (AC162049) – 39,95 trừ 25% (xem phần

dưới).

Cách khác cũng được đề cập đến cho ICD2 là:

Olimex MPLAB Compatible ICD2 với USB và RS232 - $106,95

(http://www.sparkfun.com)

Khấu trừ

Đặt mua trên Microchip trực tiếp qua địa chỉ email với “.edu”, “.k12”, “.ac” …

trong tên miền sẽ nhận được khoản tự khấu trừ 25% giá bán các công cụ phát triển

Microchip.

Phụ lục C

Phần cứng để chiếu sáng LED với chương trìn DEMO2

Chương trình Demo02 khi nhấn S2, trạng thái châm RD1 phải thay đổi (0V lên 5V

…). LED được gắn vào bảng phát triển như hình:

44

Page 45: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Phụ lục F

Tổng quan về các cổng vào/ra trên PIC18F4550

PortOther

FunctionsTraits

RA0 Analog input 0

RA1 Analog input 1

RA2 Analog input 2

RA3 Analog input 3

RA4 Digital I/OSchmitt Trigger input, can be programmed to be input to TMR0

clock

RA5 Analog input 4

RB0 Analog input12 can be programmed for external interrupt (INT0)

RB1 Analog input10 can be programmed for external interrupt (INT1)

RB2 Analog input 8 can be programmed for external interrupt (INT2)

RB3 Analog input 9

RB4 Analog input11 can be programmed for interrupt on change

RB5 Digital I/O can be programmed for interrupt on change

45

Page 46: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

RB6 Digital I/O can be programmed for interrupt on change

RB7 Digital I/O can be programmed for interrupt on change

RC0 Digital I/O

RC1 Digital I/O can be programmed for PWM output

RC2 Digital I/O can be programmed for PWM output

RC6 Digital I/O can be programmed for UART TX line

RC7 Digital I/O can be programmed for UART RX line

RD0 Digital I/O

RD1 Digital I/O

RD2 Digital I/O

RD3 Digital I/O

RD4 Digital I/O

RD5 Digital I/O

RD6 Digital I/O

RD7 Digital I/O

RE0 Analog input5

RE1 Analog input6

RE2 Analog input7

46

Page 47: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

CHƯƠNG V

CHUYỂN ĐỔI TỪ THIẾT BỊ FLASH PIC18F SANG PIC18FXXJ

5.1 Chuyển đổi thiết bị

Tài liệu này có mục đích mô tả sự khác biệt về chức năng và sự khác biệt về đặc

tính kỹ thuật điện hiện tại khi chuyển từ thiết bị này sang thiết bị thế hệ kế tiếp.

Chú ý: Các thiết bị này được thiết kế để biểu thị các thông số trong bản data

sheet sẽ nói đến. Chúng được kiểm thử với các đặc tính kỹ thuật điện được thiết kế để

xác định khả năng tương thích với các thông số này. Do có sự khác biệt trong quá trình

sản xuất thiết bị, chúng có thể những đặc tính hoạt động khác với các phiên bản trước.

Những sự khác biệt này khiến cho thiết bị hoạt động khác với các phiên bản trước.

Chú ý: Người dùng phải đảm bảo dao động ký đo thiết bị phải được bật và hoạt

động đúng ý mình. Có thể phải điều chỉnh giá trị trở kháng tải và/hoặc chế độ dao

động ký.

5.2 Giới thiệu

Họ thiết bị Flash mới PIC18FXXJ có những khác biệt lớn so với họ phiên bản

Flash PIC18 trước. Tài liệu chuyển đổi này sẽ chỉ rõ, kiểm tra và giải thích những khác

biệt này và cách thức chúng gây ảnh hưởng đến thiết kế hệ thống. Những khác biệt này

gồm có thay đổi quy định gọi tên các phần, chức năng tổng quát, khác biệt theo

module và cách thiết lập chính xác các công cụ lập trình.

5.3 Cấp nguồn cho thiết bị

Bộ điều chỉnh điện thế gắn trong, VDDCORE/VCAP, thiết bị “LF” và “F”, cấp VDD

Khác với các thiết bị của dòng Flash PIC18 trước, họ thiết bị Flash PIC18FXXJ

có một bộ điều chỉnh điện thế gắn trong. Bộ điều chỉnh điện thế này cấp nguồn cho

phần chính của thiết bị thấp hơn so với cấp cho các chân vào/ra. Trong thiết bị có

nhiều chân hơn (từ 60 chân trở lên), bộ điều chỉnh điện thế có thể được khởi động hoặc

ngắt từ bên ngoài qua chân ENVREG. Chân này có thể nối với VDD để khởi động bộ

điều chỉnh điện thế hoặc nối đất để ngắt bộ điều chỉnh điện thế. Hình 16 minh hoạ

mạch hoạt động cho thiết bị có nhiều chân. Chú ý là chân ENVREG đang hoạt động và

nó điều khiển việc bật hay tắt bộ điều chỉnh điện thế.

47

Page 48: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 15: Kết nối bên trong cho đăc trưng mã đếm thiết bị

Trong thiết bị có ít chân hơn, ví dụ PIC18F45J10 (xem hình 17), ký tự “F” trong

tên thiết bị (ví dụ PIC18F45J10) cho biết bộ điều chỉnh điện thế gắn trong luôn nối với

VDD và luôn bật. Ký tự “LF” (ví dụ PIC18LF45J10) cho biết bộ điều chỉnh điện thế

luôn nối đất và luôn tắt.

48

Page 49: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình:16: Kết nối giao diện cho mã đếm “F” và “LF” của thiết bị

Chân VDDCORE/VCAP có hai chức năng. Khi bộ điều chỉnh tắt, nếu ENVREG nằm

trên thiết bị nhiều chân và thiết bị ít chân có ký tự “LF” thì VDDCORE cấp nguồn cho

thành phần số chính của thiết bị. Như vậy sẽ giảm dòng tiêu thụ của các phần khác

bằng cách loại bỏ dòng thụ động của bộ điều chỉnh điện thế, là nơi tiêu tốn năng lượng

nhất khi ở chế độ Idle hay Sleep. Ở chế độ này, năng lượng phải cấp cho cả chân

VDDCORE và chân VDD. Cách cấu hình thông thường là nối VDDCORE với VDD và cấp nguồn

từ 2,0V đến 2,7V. Cũng có thể lấy năng lượng từ nguồn riêng cho VDDCORE (2,0V đến

2,7V) và VDD (VDDCORE đến 3.6V). Như vậy cho phép thành phần chính hoạt động với

mức điện thế thấp hơn trong khi các chân vào/ra và các cổng ngoại vi hoạt động với

mức điện thế cao hơn. Khi hoạt động ở chế độ này, nhất thiết phải giữ cho VDDCORE

không vượt quá VDD kể cả khi bắt đầu.

Khi bộ điều chỉnh điện thế được bật, do ENVREG được nối với VDD ở thiết bị

nhiều chân và thiết bị ít chân với ký tự “F”, một tụ điện trở kháng chuỗi tương đương

49

Page 50: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

(ESR) thấp sẽ nối vào chân VCAP để ổn định đầu ra từ bộ điều chỉnh điện thế gắn trong.

Trong chế độ này, thiết bị phải được cấp nguồn từ 2.7V đến 3.6V trên VDD. Khi bộ

điều chỉnh bị ngắt, VDDCORE phải được cấp nguồn từ 2.0V đến 2.7V để cấp năn lượng

cho thành phần chính của thiết bị.

Hình 17: Cấu hình nguồn điển hình cho thiết bị flash PIC18FXXJ nhiều chân

Hình 18: Cấu hình nguồn điển hình cho thiết bị flash PIC18FXXJ it chân

Hình 18 thể hiện cấu hình năng lượng thông dụng cho thiết bị PIC18FXXJ Flash

nhiều chân. Hình 4 thể hiện cấu hình năng lượng thông dụng cho thiết bị PIC18FXXJ

Flash ít chân.

50

Page 51: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

5.3 Reset Brown-out (BOR)

Thiết bị PIC18FXXJ Flash có module BOR là một phần của bộ điều chỉnh điện

thế gắn trong. Khi đầu ra của bộ điều chỉnh hạ xuống dưới mức điện thế chính tối thiểu

thì thiết bị sẽ rơi vào trạng thái BOR. Do module BOR có trong bộ điều chỉnh điện thế

nên thiết bị với bộ điều chỉnh điện thế bị ngắt (thiết bị nhiều chân với ENVREG nối

đất và tất cả các thiết bị ít chân với ký tự “LF”) sẽ ngắt module BOR.

Điểm khác biệt với thiết bị PIC18 Flash trước, do module BOR khả trình có thể

được chọn là bật hay ngắt, nằm ở từ cấu hình hay thanh ghi điều khiển, và có thể được

cấu hình với mức điện thế nhất định mà tại đó Reset hoạt động. Các thiết bị này đòi

hỏi có BOR khả trình vì chúng cần giảm tần số hoạt động khi điện thế giảm; vì vậy,

BOR khả trình cho phép người dùng đảm bảo rằng các thông số kỹ thuật không bị ảnh

hưởng khi điện thế hệ thống giảm. Trái lại, với thiết bị PIC18FXXJ Flash, với bộ điều

chỉnh điện thế bật, chỉ cần BOR đơn mức vì chúng có thể hoạt động toàn tốc với điện

thế hoạt động tối thiểu. Chức năng BOR trong thiết bị PIC18FXXJ Flash có trong bộ

điều chỉnh điện thế và không hoạt động nếu bộ điều chỉnh bị ngắt.

5.4 XUNG

Tần số xung nhịp cao khi điện thế thấp hơn, thiết bị “LF” và “F”

Dù họ thiết bị PIC18FXXJ Flash có dải điện thế hoạt động hẹp, chúng vẫn có thể

cung cấp được nhiều MIPS/V hơn thiết bị PIC18 Flash trước. Các thiết bị này có thể

chạy với tốc độ 40 MHz (10 MIPS) khi hoạt động ở 2.25 V. Tính mềm dẻo hoạt động

tăng cường này cho phép người dùng khai thác toàn bộ năng lượng và tốc độ của thiết

bị trong dải điện thế rộng hơn.

Hình 20 thể hiện quan hệ giữa VDD và tần số hoạt động của thiết bị với bộ điều

chỉnh được bật (thiết bị nhiều chân với ENVREG nối với VDD và thiết bị ít chân với ký

tự “F”). Hình 6 thể hiện quan hệ giữa VDD, VDDCORE và tần số hoạt động của thiết bị với

bộ điều chỉnh điện thế bị ngắt. Chú ý VDD nối với VDDCORE nên điện thế hoạt động tối

đa là 2.75V.

51

Page 52: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 19: VDD theo tần số hoạt động ( bộ điều chỉnh đã bật)

Hình 20: VDD theo tần số hoạt động ( bộ điềo chỉnh đã tắt)

5.5Tuỳ chọn dao động ký

Tuỳ chọn dao động ký cho thiết bị PIC18FXXJ Flash là EC, ECPLL, HS,

HSPLL và dao động ký gắn trong 31 kHz. Thiết bị PIC18FXXJ Flash không có tuỳ

chọn XT và LP thường có trong thiết bị PIC18 Flash. Chế độ RC có trong một số thiết

bị PIC18FXXJ Flash. Hãy xem data sheet để rõ hơn về thiết bị riêng.

5.6 Đồng hồ đo năng lượng

Trong thiết bị PIC18FXXJ Flash, đồng hồ đo năng lượng được bật. Ở thiết bị

trước, có tuỳ chọn bật hay tắt ở phần thiết lập cấu hình.

5.7 Độ trễ khởi động/reset

Do trong thiết bị PIC18FXXJ Flash, đồng hồ đo năng lượng luôn bật nên thời

gian khởi động các thiết bị này lâu hơn so với các phần PIC18 Flash. Cũng có độ trễ

cộng thêm vào cho thiết bị PIC18FXXJ Flash sau mỗi lần reset để copy từ cấu hình từ

bộ nhớ chương trình vào thanh ghi cấu hình. Trong thời gian trễ, dao động ký RC gắn

52

Page 53: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

trong đóng vai trò nguồn thiết bị. Sau khi thanh ghi cấu hình được nạp, thiết bị chuyển

sang xung đặc biệt nhờ các bit cấu hình FOSC. Xem “Từ cấu hình” để biết thêm chi

tiết.

5.8 Sự khác Biệt Về Chân

Chân dung sai 5 Volt

Dù các thiết bị PIC18FXXJ Flash có VDD tối đa 3.6V nhưng các chân vào/ra với

tính năng số chỉ chịu được tối đa 5V. Các chân được ghép kênh với đặc tính tương tự

có dung sai không phải là 5V và không giới hạn, gồm:

Bất cứ chân nào là đầu vào tương tự (AN0, AN1 …)

Bất cứ chân nguồn xung nào (OSC1, OSC2, T1OSC)

Bất cứ chân đầu vào so sánh nào

Chú ý rằng các chân có dung sai 5V là đầu vào chỉ nhận VDD là đầu ra. Với các

ứng dụng đòi hỏi đầu ra 5V trên các thiết bị cắm ngoài thì chân cổng 5V có thể tự tạo

bằng cách:

Thêm điện trở kéo ghép ngoài;

Đặt bit thanh ghi LAT cho chân đó là ‘0’ và

Dùng bit thanh ghi TRIS cho chân đó để cho phép chân đó nâng lên 5V hay

hạ xuống mức đất.

Khi dùng một điện trở kéo trên chân cổng, khả năng kết nối giữa hai thiết bị cần

được xem xét để quyết định tỷ lệ tăng/giảm của tín hiệu trên chân cổng và giá trị chính

xác của điện trở cho ứng dụng. Ta có Phương trình 1 sau:

Phương trình 1:

Thời gian tăng/giảm = t ln(PVDD/(PVDD - TVIH))

trong đó:

t = RCt, TVIH = điện thế đầu vào mức cao của thiết bị nhận và PVDD là điện thế

mà điện trở kéo lên.

Ví dụ, như trình bày ở mạch trong Hình 7, PVDD là điện thế mà điện trở kéo lên.

Nếu R = 1kOhm, Ct = 10 pF và PVDD = 5V thì thời gian từ khi thiết bị PIC18FXXJ

53

Page 54: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Flash mở đường (cho phép điện trở kéo đường lên mức cao) đến khi thiết bị A phát

hiện ra thay đổi như Phương trình 2:

Phương trình 2:

tln(PVDD/(PVDD - TVIH)) = (1K)(10 pF)ln(5V/5V*(.8*5V)) = 16 ns

Hình 21: Nối thiết bị với một điện trở kéo đẩy

Khi thiết bị PIC18FXXJ Flash có đường nối đất thì giá trị R được dùng để tính

toán t là điện trở chuỗi của phần đầu ra cộng thêm trở kháng đường. Thời gian tính

thêm do đường thường được lược đi khi so sánh với thời gian giảm xuống của đầu ra

cổng (Tiof). Xem phần đặc tính AC trong data sheet về thiết bị để biết giá trị của Tiof.

5.9 Điện trở kéo gắn trong

Để chân số trên thiết bị PIC18FXXJ Flash chịu được 5V, cần có một bộ dịch

mức. Điện trở kéo gắn trong trên chân cổng không thể kéo các chân theo tất cả các

đường lên VDD được; chúng bị giới hạn bởi VDD trừ đi ngưỡng giảm của bộ dịch hay

Vtn. Thông tin chuyên biệt thêm về các giới hạn kéo đầu ra được nói đến trong phần

các đặc tính điện của data sheet về thiết bị.

5.10 Tỷ lệ dòng trên các chân vào/ra

Một điểm đáng xem xét khi chuyển sang phần PIC18FXXJ Flash là khả năng lưu

điện của chân cổng. Trong nhiều phần PIC18 Flash, tất cả các cổng đều có khả năng

lưu 25 mA một chân. Ở thiết bị PIC18FXXJ Flash, các cổng nhất định, thường là

PORTB và PORTC, lưu được dòng 25 mA một chân. Các cổng khác có khả năng lưu

54

Page 55: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

được 8 mA hoặc 2 mA một chân. Người dùng nên thường xuyên đọc data sheet về

thiết bị để xem thông tin lưu điện của họ thiết bị PIC18FXXJ Flash.

5.11 VCAP/VDDCORE và ENVREG

Thiết bị PIC18FXXJ Flash có các chân mới: VCAP/VDDCORE trên tất cả các thiết bị

và ENVREG trên các thiết bị có từ 44 chân trở lên. Mỗi chân này thay cho một trong

các chân cổng tương đương trong thiết bị PIC18 Flash. Xem phần “Bộ điều chỉnh điện

thế, VDDCORE/VCAP, thiết bị “LF” và “F”, mức VDD” để biết thêm thông tin về việc sử

dụng các chân này và hiệu ứng của chúng trong chức năng thiết bị

5.12 Bộ Nhớ Chương Trình

5.12.1 ID thiết bị

Ở các thiết bị PIC18FXXJ Flash ít chân, các phần ký hiệu “F” và “LF” có các ID

thiết bị khác nhau. Trong thiết bị PIC18 Flash, phần “F” và “LF” có cùng ID thiết bị.

Xem “Thiết lập chính xác chương trình thiết bị và công cụ phần mềm” để biết thêm

thông tin về cách thay đổi chương trình và sử dụng công cụ.

5.12.2 Từ cấu hình

Trong thiết bị PIC18 Flash, từ cấu hình được đặt ở đầu địa chỉ 300000h. Địa chỉ

này nằm trong không gian bộ nhớ chương trình người dùng thường xuyên (xem Hình 8

làm ví dụ).

Trong thiết bị PIC18FXXJ Flash, từ cấu hình được đặt ở cuối không gian bộ nhớ

người dùng (xem Hình 21). Các giá trị này được copy mỗi lần reset từ vị trí bộ nhớ

chương trình vào thanh ghi cấu hình. Khi copy xong, cơ chế ghi vào thanh ghi cấu

hình bị ngắt.

Nếu bất cứ bit cấu hình nào thay đổi trong bộ nhớ chương trình trong lúc hoạt

động, chúng sẽ không ảnh hưởng đến khi thiết bị được reset. Sau khi thiết bị được

reset, từ cấu hình sẽ được copy lại vào thanh ghi cấu hình.

55

Page 56: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 22: Sơ đồ địa chỉ từ cấu hình flash PIC18

56

Page 57: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 23: Sơ đồ địa chỉ từ cấu hình flash PIC18FXXJ

Các ứng dụng sử dụng chức năng tự ghi của thiết bị PIC18FXXJ Flash nên được

xem xét riêng theo từ cấu hình. Trước khi xoá khối không gian bộ nhớ chương trình

người dùng cuối cùng, ứng dụng lưu lại từ cấu hình và ghi lại các giá trị này càng sớm

càng tốt. Trong trường hợp reset sau khi xoá khối bộ nhớ cuối cùng nhưng trước khi

ghi lại thì thiết lập cấu hình của thiết bị có thể bị hỏng. Theo khuyến cáo, các ứng dụng

dùng chức năng tự ghi để tránh dùng khối bộ nhớ cuối cùng trong phần thay đổi mã

khởi động hay giữ lại một bản copy từ cấu hình ở vùng sao lưu của bộ nhớ để kiểm

định chương trình vào trong tình huống hiếm hoi này, từ cấu hình có thể được khôi

57

Page 58: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

phục lại. Ứng dụng buộc reset cần phải có trước khi thiết bị có thể tổng hợp hoạt động

ở chế độ hoạt động khôi phục lại.

5.12.3 Các chu trình ghi

Thiết bị PIC18FXXJ Flash có tốc độ chu trình ghi thông thường thấp hơn Flash

cải tiến thường dùng trong đa phần các thiết bị PIC18 Flash. Hãy xem data sheet về

thiết bị PIC18FXXJ Flash để biết thêm về số chu trình ghi thông thường của thiết bị

đó.

5.12.4 Khả năng ghi nhớ đặc tính

Thiết bị PIC18FXXJ Flash có khả năng ghi nhớ đặc tính yếu hơn so với Flash cải

tiến dùng trong nhiều thiết bị PIC18 Flash. Giá trị tối thiểu và thông dụng để ghi nhớ

đặc tính được ghi trong data sheet về thiết bị của họ thiết bị PIC18FXXJ Flash.

5.12.5Mô phỏng tự ghi và EEPROM

Khi chuyển sang ứng dụng tự ghi sang thiết bị PIC18FXXJ Flash, phải xem xét

một số vấn đề. Vấn đề đầu tiên là thiết bị PIC18FXXJ Flash có khối xoá lớn hơn đa

phần thiết bị PIC18 Flash. Việc tăng bản ghi cũng đòi hỏi khôi phục lại toàn bộ khối

sau khi xoá.

Một vấn đề khác là không như các thiết bị PIC18 Flash, mỗi khối ghi chỉ có thể

ghi một lần giữa các chu trình xoá. Điều này nghĩa là nếu một ứng dụng muốn thay đổi

một bit của bộ nhớ chương trình về 0 thì nó cần phải đệm toàn bộ khối xoá, xoá bộ

nhớ và ghi lại toàn bộ bộ nhớ với bit đã thay đổi. Nhiều thiết bị PIC18 Flash cho phép

ghi nhiều bản cho một khối giữa các lần xoá, cho phép ứng dụng chỉ copy khối cần

thay đổi, xoá một bit đó rồi ghi lại bộ nhớ. Việc xoá bắt buộc, yêu cầu tăng bộ đệm và

giảm số chu trình xoá trong thiết bị PIC18FXXJ Flash làm cho việc mô phỏng

EEPROM khó khăn hơn.

Trong thiết bị PIC18FXXJ Flash, thanh ghi giữ để tự ghi không tự reset thành

FFh sau khi ghi xong. Chúng giữ giá trị từ khối lập trình cuối cùng. Điều này được

dùng vào các ứng dụng có thể ghi toàn bộ khối vào bộ nhớ và giữ phần dữ liệu còn lại

là FFh. Để đảm bảo các byte còn lại chuyển thành FFh thì ứng dụng cần thực hiện chỉ

thị TBLWT cho các byte còn lại trong khối với giá trị FFh.

58

Page 59: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Bất cứ ứng dụng nào tự ghi hay mô phỏng EEPROM trên thiết bị Flash

PIC18FXXJ phải biết số chu trình ghi thông thường của thiết bị đó (xem “Chu trình

ghi” để biết thêm chi tiết).

Vấn đề đặc biệt phải thực hiện với các ứng dụng có chức năng tự ghi trong khối

xoá cuối cùng của không gian bộ nhớ người dùng. Xem “Từ cấu hình” để biết thêm

chi tiết.

5.12.6 Bảo vệ mã

Bảo vệ mã trong thiết bị PIC18FXXJ Flash được thực hiện như một khối đơn.

Toàn bộ bộ nhớ được bảo vệ bởi một bit cấu hình. Giống như (các) bit bảo vệ mã ở

thiết bị trước, bit này không cho ghi và đọc từ ngoài tại module lập trình nối tiếp in-

circuit. Tuy nhiên, bit bảo vệ mã không giới hạn chức năng đọc và ghi bảng trong mã

ứng dụng.

5.12.7 Vào chế độ lập trình

Phương thức vào chế độ lập trình của thiết bị PIC18FXXJ Flash đã thay đổi.

Trước đây, thiết bị PIC18 Flash dựa vào nguồn 12V trên VPP/MCLR để vào chế độ lập

trình qua chế độ lập trình điện thế cao hoặc tín hiệu mức cao trên PGM để vào chế độ

lập trình nguồn đơn khi bit cấu hình được đặt chính xác. Ở thiết bị PIC18FXXJ Flash,

vào chế độ lập trình bằng cách trước hết nâng và sau đó hạ đường reset xuống. Khi

reset xong, một chuỗi được truyền nối tiếp vào các chân lập trình để vào chế độ lập

trình. Cuối cùng, đường MCLR được đặt lại mức cao để bắt đầu lập trình.

HÌnh 24 trình bày ví dụ vào chế độ lập trình trên thiết bị PIC18FXXJ Flash. Xem

thông số kỹ thuật lập trình thiết bị để biết thông tin về yêu cầu thời gian và thiết bị

riêng.

Hình 24: Vào chế độ lập trình/ thay đổi của thiết bị flash PIC18FXXJ

59

Page 60: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

5.13 Thiết Lập Chính Xác Cho Chương Trình Thiết Bị Và Công Cụ Phần Mềm

Phải chú ý khi dùng bất cứ công cụ lập trình nào cho thiết bị PIC18FXXJ Flash.

Thiết bị PIC18FXXJ Flash không thể hoạt động ở 12V trên Vpp/MCLR thường sử

dụng để vào thiết bị trong chế độ lập trình. Trước khi nối thiết bị PIC18FXXJ Flash

với bảng thể hiện hay cài nó vào một socket lập trình:

1. Xác nhận rằng bảng sẽ đưa ra mức điện thế chính xác.

2. Xác nhận rằng chân VDDCORE/VCAP được cấu hình đúng như đã được mô tả

trước trong phần “Bộ điều chỉnh điện thế, VDDCORE/VCAP, thiết bị “LF” và

“F”, mức VDD”.

3. Xác nhận rằng chương trình và MPLAB IDE đều chọn thiết bị chính xác.

Nối chương trình với máy tính và kiểm tra chương trình đã được bạt và kích hoạt

đúng thiết bị trước khi nối chương trình với bảng hay cài một phần vào chương trình.

Không thực hiện được điều này có thể làm hỏng phần đó.

Để chọn đúng thiết bị, vào tuỳ chọn thực đơn “Configure” trong MPLAB IDE rồi

chọn tuỳ chọn “Select Device”. Từ thực đơn này, chọn thiết bị chính xác .

Chú ý: Với thiết bị PIC18FXXJ Flash ít chân, các phần ký hiệu “F” và “LF” sẽ

đợc liệt kê riêng biệt trong hộp thoại “Select Device”. Điểm này khác biệt với thiết bị

PIC18 Flash, chỉ có phần ký hiệu “F” được liệt kê trong hộp thoại “Select Device”.

Hình 25: Chọn thiết bị trong MPLAB- IDE

60

Page 61: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

5.14 KHÁC BIỆT MODULE

Chuẩn hoá tương tự/số

Một thay đổi chức năng quan trọng được thêm vào thiết bị PIC18FXXJ Flash là

khả năng người dùng có thể chuẩn hoá bộ chuyển đổi tương tự/số. Việc chuyển hoá

này sẽ giúp bù lại bất cứ phần offset nào sinh ra trong module.

Để bắt đầu chuẩn hoá, đầu tiên đặt bit chuẩn hoá ADCAL trong thanh ghi

ADCON0 (xem Hình 26). Khi đặt bit ADCAL, bắt đầu chuyển đổi tương tự/số bằng

cách đặt bit GO/DONE. Việc chuyển đổi này sẽ không đọc bất cứ một chân đầu vào

tương tự nào. Quá trình này nên thực hiện mỗi lần hoạt động của thiết bị thay đổi, ví

dụ, dao động ký thay đổi, điện thế thay đổi, sau mỗi lần reset …

Hình 26: Mở rộng đến các chân đến thêm vào bit chuẩn hóa A/D

5.15 TỔNG KẾT

Thiết bị PIC18FXXJ Flash cho nhà thiết kế hệ thống nhiều tuỳ chọn và tính linh hoạt

cao hơn để thoả mãn các nhu cầu về vi điều khiển của họ. Những khác biệt chính trong tài

liệu này giúp phân biệt thiết bị PIC18FXXJ Flash với thiết bị PIC18 Flash, cho phép nhà thiết

kế chọn đúng thiết bị cho ứng dụng của mình. Nhà thiết kế nên xem xét những điểm khác biệt

khi thiết kế và phát triển sản phẩm.

61

Page 62: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

CHƯƠNG VI

ĐỒNG HỒ BÁO THỨC

6.1 Tóm lược

Mục đích của ta là thiết kế một đồng hồ báo thức tốt hơn với các đặc tính ưu việt

mà mọi người thực sự cảm thấy hữu ích. Ta muốn cung cấp nhiều âm báo thức cho

phép người dùng tải MP3 và cài những bài hát khác nhau ứng với những báo hiệu khác

nhau. Ta cũng thiết kế để cung cầp nhiều báo hiệu, cho phép một báo hiệu có thể đặt ở

chế độ tắt trong nhiều ngày với thời gian ngắn biến thiên và có âm báo thức đặt trước.

Cấu hình này được thực hiện toàn bộ qua một ứng dụng Java và tấ cả các lệnh và dữ

liệu đều được gửi qua giao diện USB.

6.2 Chỉ thị hoạt động

Đồng hồ báo thức Spiffy được điều khiển chủ yếu qua ứng dụng Java trên máy

tính cá nhân của người dùng. Ứng dụng này là giao diện người dùng đồ hoạ trên nền

Swing cho phép sử dụng thời gian và ngày hiện tại, hiệu chỉnh 12 giờ và thời gian

quân sự, báo thức với độ dài chờ thay đổi và âm báo thức được tải qua USB vào đồng

hồ báo thức. Để sử dụng đồng hồ báo thức, cắm nguồn và cáp USB vào và kiểm tra

xem đồng hồ bắt đầu đếm từ 12 giờ. Tại điểm này, ứng dụng có thể mở và cấu hình/tải

có thể bắt đầu.

6.2.1 Ngày tháng/thời gian hiện tại

Theo mặc định, ngày tháng/thời gian hiện tại của đồng hồ báo thức được đồng bộ

theo đồng hồ hệ thống của máy tính người dùng. Nếu không thích thì người dùng có

thể chọn trên menu Time, tuỳ chọn Edit Date/Time để chỉnh lại phần ngày tháng/thời

gian.

62

Page 63: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hinh 27: Ngày tháng / thời gian hiện tại

6.2.2 Thời gian 12 giờ hay thời gian quân sự

Theo mặc định, đồng hồ báo thức chỉ giờ dạng 12 giờ nhưng nếu người dùng

muốn hiển thị kiểu 24 giờ/thời gian quân sự thì có thể vào menu Time và chọn tuỳ

chọn 12-hr/Military Time.

Hình 28: Thời gian quân sự

63

Page 64: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

6.2.3 Báo thức

Người dùng có thể thêm, chỉnh và xoá báo thức qua menu Alarms. Thêm hay

chỉnh báo thức thì mở phần chỉnh báo thức ra, ở đó cho người dùng một bộ các nút thể

hiện ngày mà báo thức cần tắt đi, vùng thể hiện thời gian trong ngày mà báo thức cần

tắt đi, độ dài chờ và danh sách các âm báo thức người dùng có thể chọn cho báo thức.

Hình29a: Báo thức

Hình 29b: Báo thức

64

Page 65: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

6.2.4 Âm báo thức

Người dùng có thể chỉnh các khe âm báo thức hiện tại bằng cách vào menu

Tones và chọn Edit. Người dùng sẽ có một hộp thoại mở file để có thể tìm trong hệ

thống file và chọn một file MP3 muốn tải vào đồng hồ báo thức.

Hình 30: Âm báo thức

6.2.5 Đồng bộ, chờ và ngừng báo thức

Khi người dùng chọn xong, có thể đồng bộ theo ý muốn và tải bất cứ âm báo

thức thay đổi bào vào đồng hồ báo thức bằng cách vào menu App và chọn Sync. Ngoài

ra, khi báo thức được điều khiển, người dùng có thể để chế độ chờ hau ngưng báo thức

qua menu App.

65

Page 66: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 31: Đồng bộ, ngứng và chờ báo thức

Chi tiết về project

Hình 32: Chi Tiết Project

66

Page 67: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

6.3 USB

PIC18F4550 có phần hỗ trợ tích hợp cho USB 2.0, nghĩa là có bộ nhớ tích hợp và

khả năng hoạt động không đồng bộ để truyền/lấy dữ liệu qua các đường truyền dữ liệ

USB được D+ và D- được chỉ định. Microchip cung cấp firmware cho nhiều thiết lập

USB gọi là lớp Thiết bị Giao diện Người dùng và Thiết bị Truyền thông. Firmware lớp

Thiết bị Truyền thông được dùng với chức năng cần thiết để cấu hình và tải dữ liệu

qua máy tính vào đồng hồ báo thức. Firmware được cung cấp kèm theo PIC18F4550

bán cùng bộ sản phẩm demo Microchip, vì vậy ta bỏ đi nhiều mã để firmware hoạt

động theo đúng như thiết lập. Firmware CDC do Microchip cung cấp làm việc với

driver USB trên máy host qua cổng COM chuẩn, mô phỏng đến chương trình ứng

dụng. Microsoft tích hợp driver này trên Windows XP nên khó khăn duy nhất là

file .INF chứa ID nhà sản xuất và ID sản phẩm của đồng hồ báo thức đã được cài đặt

để máy tính biết sử dụng driver USB/nối tiếp khi cắm thiết bị vào. Lập trình thiết bị

tương đối đơn giản, dùng gói Javacomm do Sun cung cấp cho kết nối nối tiếp trong

Java. Ta chọn kết nối USB do sự phổ biến của USB trong lĩnh vực tin học hiện nay và

khả năng truyền dữ liệu tốc độ cao, cho phép người dùng chon và tải âm báo thức MP3

mới dễ dàng và nhanh. Theo vấn đề về thời gian và độ phức tạp, dùng driver chuyên

biệt, đầy đủ cho Windows XP không dễ dàng và ta chọn thay bằng mô phỏng USB/nối

tiếp. Nhược điểm là tốc độ truyền ta dùng không tương đương với USB nhưng ưu

điểm là thực dùng USB và tiếp tục phát triển là khả thi trong một giờ hai đợt, một

khung thời gian định kỳ.

6.4 Lập trình PIC

Vi điều khiển PIC thực hiện một số tác vụ bao gồm theo dõi ngày tháng và thời

gian thực, điều khiển vào/ra từ kết nối USB và giao tiếp với phần cứng thiết bị

Compact Flash bộ mã hoá MP3. Để tất cả các hoạt động chạy một cách trơn tru thì đòi

hỏi phải chia chức năng mà các tác vụ đó yêu cầu thành các phần nhỏ để có thể thực

hiện tuần tự bằng một vòng lặp chính, do đó cho phép tất cả các tác vụ lấy thời gian bộ

xử lý theo định kỳ.

6.4.1 Đồng hồ

Để theo dõi ngày tháng và thời gian thực, PIC dùng đồng hồ gắn trong dò theo

luồng để điều khiển một ngắt có nhiệm vụ tăng giá trị ngày tháng/thời gian một cách

chính xác. Ngoài ra, khi ngắt thấy bắt đầu một phút mới, nó kiểm tra báo thức xem có

67

Page 68: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

cần kích hoạt chưa. Nếu có, một cờ được đặt để lần sau qua vòng lặp, chức năng hỏi

vòng để kiểm tra cờ kích hoạt báo thức sẽ cho chạy âm báo thức chính xác.

6.4.2 USB

Tác vụ USB dùng thành phần trạng thái để cho phép lưu lại đúng trạng thái của

nó trong khi các tác vụ khác vẫn chạy. Ví dụ, đặt ngày tháng/thời gian hiện tại yêu cầu

gửi lệnh “set” từ máy tính đến đồng hồ báo thức, để thành phần trạng thái USB vào

trạng thái chờ lệnh “clk”, rồi lại thay đổi trạng thái để chờ một số nhất định các byte

chứa dữ liệu thời gian/ngày tháng.

Bộ mã hoá MP3 Compact Flash

Compact Flash có bộ điều khiển gắn trên mạch nên dễ dàng gửi lệnh mới để thực

thi độc lập với PIC. Vì vậy, trong vòng lặp chính, nếu báo thức được điều khiển và vì

vậy âm báo thức được bật thì khi chức năng chạy được gọi từ vòng lặp chính xác định

Compact Flash cần nhiều dữ liệu hơn, nó phát lệnh đọc để ngăn lại trong khi CF đọc,

vì vậy cho phép tác vụ chạy nhanh chóng kết thúc hoạt động liên tiếp, lặp lại. Bộ mã

hoá MP3 đòi hỏi dữ liệu phải được gửi vào nối tiếp để hoạt động được chia nhỏ ra để

gửi dữ liệu thành các gói nhỏ.

6.5 Sử dụng Compact Flash

Ta chọn sử dụng card Compact Flash (CF) để lưu trữ dữ liệu MP3. Lý do chính

cho lựa chọn này là card CF có bộ điều khiển riêng gắn cùng để khi kết nối chỉ cần gửi

lệnh và chờ thực hiện. Ta chọn kết nối với card CF dùng chế độ Common Memory

làm việc với giao diện dữ liệu 8 bit và vì vậy ta có thể lưu trên các chân của vi điều

khiển PIC. Ta dùng bảng ngắt CF có sẵn trong trang SparkFun.com.

Dữ liệu trên card CF được lưu trữ trên các sector 512 byte và tất cả các sector

phải được viết thành khối kích thước 512 byte. Để kết nối với card CF, ta dùng 3

đường địa chỉ để truy cập vào 8 thanh ghi. Các thanh ghi này được dùng để tải thông

tin địa chỉ và gửi lệnh đọc và viết. Ta cũng có thể tận dụng nhiều đường điều khiển,

việc này chỉ tận dụng được những đường quan trọng nhất gồm Reset, Ready, Write

Enable và Output Enable. Reset thì dễ hiểu, Ready là tín hiệu từ card để báo hiệu khi

bận, Write Enable viết vào thanh ghi địa chỉ và Output Enable đọc từ thanh ghi địa chỉ.

Khi bật đồng hồ báo thức, card CF được reset và sẵn sàng nhận chấp nhận tín hiệu. Có

mã cung cấp để gọi nhiều chức năng và thực hiện những tác vụ phức tạp nhưng mã

thực sự dùng trong thiết bị khá đơn giản. Khi cần chơi một bài hát thì sector đầu tiên

68

Page 69: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

sẽ được tải vào các thanh ghi CF bằng lệnh CF_StartSectorRead(), nó cũng tải thanh

ghi điều khiển bằng lệnh read. Sau đó sector đầu tiên được copy từ card vào bộ đệm

trên PIC, việc này thực hiện bằng cách đọc thanh ghi 0 và cho phép đầu ra xuống mức

thấp rồi nâng lên mức cao để đọc lần lượt 512 byte. Để sector kế tiếp sẵn sàng khi cần

thiết, lệnh CF_StartSectorRead() được gọi lại để tải trước. Chức năng gửi MP3 đến

chip STA013 cũng kiểm tra hết file sau khi tải một sector mới, việc này được thực

hiện bằng cách kiểm tra một sector mà tất cả các byte có giá trị 0xFF. Khi viết số bài

hát, trước tiên phải xác định sector bắt đầu. Sau đó, các byte được viết vào sector và

mỗi lần sector lấp đầy, bộ đệm được viết vào card và nó lại được lấp đầy lại. Khi cả

bài hát đã được viết, phần còn lại của sector đó được lấp với giá trị 0xFF và được viết,

sau đó công việc cũng được thực hiện tương tự trong sector kế tiếp để có ít nhất một

sector đầy giá trị 0xFF khi kết thúc bài hát.

Nhìn chung, giao diện CF rất cơ bản và dễ sử dụng. Quản lý dữ liệu trên một bộ

đệm kích thước sector trên PIC và viết hay đọc vào card CF khiến cho việc truy cập và

viết dữ liệu rất dễ dàng.

6.6 Chip bộ mã hoá MP3

Ta chọn STA013 để mã hoá MP3, thực sự thì có những phiên bản mới hơn của

chip này phổ biến hơn nhưng ta không nói đến ở đây. Chip này được chọn vì dễ sử

dụng, tất cả những việc cần làm chỉ đơn giản là gửi vào một file và nó sẽ quyết định

tốc độ bit và các thông tin khác rồi mã hoá phần dữ liệu. Chip có sắn bộ đệm trong và

nâng tín hiệu lên mức cao để báo hiệu cho PIC biết nó có thể nhận dữ liệu. Điều này

không cần nhiều điều kiện cho việc báo hiệu thời gian chính xác từ PIC, chỉ cần giữ

đầy bộ đệm nếu có thể.

69

Page 70: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hinh 33: Bộ mã hóa MP3

Việc cấu hình chip STA013 được thực hiện qua bus I2C, là bus chia sẻ hai chiều

sử dụng đơn giản như một công cụ cấu hình. Dùng giao thức I2C, các lệnh có thể được

viết vào chip và chip được thiết lập để chạy file. Chip STA013 ta dùng có file cấu hình

rất lớn do STMicro cung cấp, nhiều người cho rằng đó là firmware cập nhật cho chip

để hoạt động tốt. File này có khoảng 2000 bản ghi vào chip, đầu tiên phải được gửi

vào chip qua bus I2C, khi file đã được gửi thì các lệnh chính xác phải được gửi đi để

cấu hình chip trong môi trường cài đặt. Cấu hình gồm các chi tiết như tốc độ xung và

thông tin giao diện để nối vào bộ chuyển đổi số - tương tự. Thiết lập chính xác có thể

thấy trên data sheet của chip này. Khi chip đã được cấu hình, nó phải được chuyển đổi

để sử dụng và chạy các chế độ và sau đó nó sẽ sẵn sàng nhận dữ liệu MP3. Chip mã

hoá cũng có nhiều tuỳ chọn tiên tiến gồm tuỳ chọn EQ và thiết lập dung lượng, cho

phép sửa đổi âm thanh dễ dàng nhưng không được dùng trong mã hiện tại. Các thiết

lập này dễ thay đổi qua bus I2C.

Dữ liệu MP3 được gửi đến chip qua giao diện SPI đơn giản. Giao diện này có hai

đường, một cho đồng hồ và một cho dữ liệu. Đường dữ liệu được đặt và xung đồng hồ

70

Page 71: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

được gửi cho mỗi bit. Dữ liệu được gửi từng byte một đến khi đường yêu cầu dữ liệu

của chip xuống mức thấp để báo hiệu bộ đệm đã đầy.

Việc khó nhất khi sử dụng chip là thiết lập mạch khởi tạo cho nó và chỉnh tín

hiệu 5V sang 3V do STA013 là chip 3V trong khi PIC của ta là 5V. Mạch khởi tạo có

trong sơ đồ, hiệu điện thế có thể điều chỉnh bằng nhiều cách.

Đầu tiên, có một mạch đơn giản gồm điện trở và tụ điện giữa PIC và STA013, nó

giảm điện thế xuống đủ thấp để điện thế không làm hỏng chip STA013. Khó nhất là

đường dữ liệu bus I2C. Cần thực hiện cả hai việc để bộ chia giữa các chip không hoạt

động. Lẽ ra phải dùng thành phần kéo 3V và PIC chỉnh tín hiệu thành High-Z đến khi

nó hạ tín hiệu thấp xuống điểm không mà chân và điện trở kéo có sụt điện thế 3V.

Hình 34a: :I2C bus data

Hình 34b: Giao diện 5 xuống 3V một chiều

Để cấp nguồn cho chip STA013 thì phải dùng một bộ điều chỉnh điện thế thay

đổi được 317T, nó cấp nguồn khá ổn định chỉ với một chip và các điện trở và tụ điện

kép gắn ngoài. Data sheet của chip này có mạch máy phát dao động tinh thể được dùng

để cấp xung nhưng điều này không đáp ứng được, vì vậy ta chuyển sang máy phát dao

động 10 MHz, giải quyết tất cả các vấn đề về máy phát dao động.

71

Page 72: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

6.7 Bộ chuyển đổi số - tương tự CS4334

Đây là một bộ chuyển đổi số - tương tự cơ bản. Giao diện khá đơn giảm do chip

hỗ trợ kết nối I2S và STA013 cũng vậy. Ngoài việc thiết lập mạch khởi tạo, chip chỉ

cần cấp nguồn và có tín hiệu chính xác từ STA013. StA013 phải thiết lập chính xác

theo các thông số kỹ thuật của bộ chuyển đổi số - tương tự kèm theo và hoạt động đơn

giản.

6.8 Màn hình LED

Để hiển thị, ta sử dụng màn hình 7 phần, khiến cho đồng hồ trông giống như

đồng hồ báo thức thường hơn là đồng hồ báo thức phức tạp. Điều này hạn chế ta chỉ

hiển thị thời gian và các đối tượng không phức tạp hơn như ngày trong tuần và ngày

tháng nhưng do thiết lập bình thường qua kết nối USB, đó không phải là vấn đề quan

trọng.

Để nối màn hình 7 đoạn vào PIC, ta biết là cần phải dùng càng ít chân càng tốt.

Quyết định cuối cùng là dùng bốn thanh ghi dịch 8 bit nối tiếp vào/song song ra để có

thể tải qua hai chân và có một bit cho mỗi đoạn. Do có bộ điều khiển màn hình 7 đoạn,

tuỳ chọn này rất đơn giản và đạt yêu cầu. Ta chỉ cần refresh lại màn hình bất cứ khi

nào dữ liệu hiển thị thay đổi, mặt khác, có thể giữ nguyên và màn hình sẽ hiển thị thời

gian hiện tại. Nối bốn thanh ghi dịch vào một đường nối tiếp và dùng chúng để điều

khiển màn hình rất đơn giản và hiệu quả.

Hình 35: Màn hình LED

72

Page 73: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

6.9 Kết luận

Ta đã thành công trong việc tạo ra một đồng hồ báo thức với các đặc tính mong

muốn. Dùng đồng thời các chip tiện dụng, nối và lập trình chúng theo thiết kế riêng

không phải là cách dễ nhất để tạo ra một đồng hồ báo thức như vậy như đó là cơ hội

lớn để học hỏi.

73

Page 74: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 36: Sơ đồ khối

74

Page 75: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

Hình 37: STA013

75

Page 76: Vi Điều Khiển PIC 18F4550 và các ứng dụng

Nguyễn Thế Anh Khoa Điện Tử Viễn Thông

TÀI LIỆU THAM KHẢO

1. Dương Minh Chí. Sơ Đồ Chân Linh Kiện Bán Dẫn. NXB KHKT. 2002

2. Ngô Diên Tập. Vi Xử Lý Trong Đo Lường Và Điều Khiển. NXB KHKT.

10/08/2004

3. Ngô Diên Tập. Vi Điều Khiển Với Lập Trình C. NXB KHKT. 04/2006

4. Ngô Diên Tập. Kỹ Thuật Vi Điều Khiển AVR

Một Số Trang Web:

http://dientuvietnam.net

http://picvietnam.com

http://www.piclist.com

http://www.tailieuvietnam.net

http://www.microchip.com

76