Luận văn Vi điều khiển PIC 18F4550

Mục lục

Mục lục 3

CHƯƠNG I .5

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

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

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

1.2.1 INTEL 8051.7

1.2.3 MOTOROLA 68HCxx.7

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

CHƯƠNG II.9

VI ĐIỀU KHIỂN MICROCHIP PIC.9

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

2.2 Phân Loại.10

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

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

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

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

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

CHƯƠNG III.14

VI ĐIỀU KHIỂN PIC 18F4550.14

3.1 Sơ đồ chân.16

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

3.3 Đơn vị ICD-U40.23

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

3.5 FIRMWARE.25

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

3.7 Thiết bị lớp.25

3.8 Firmware HID.26

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

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

3.11 Driver.27

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

3.13 Kết luận.32

CHƯƠNG IV.34

CÔNG NGHỆ USB QUA MICROCHIP 18F4550.34

4.1 Giới thiệu.34

4.2 Vi xử lý 18f4550.34

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

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

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

CHƯƠNG V.46

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

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

5.2 Giới thiệu.46

5.3 Reset Brown-out (BOR).50

5.4 XUNG.50

5.5Tuỳ chọn dao động ký.51

5.6 Đồng hồ đo năng lượng.51

5.7 Độ trễ khởi động/reset.51

5.8 Sự khác Biệt Về Chân.52

5.9 Điện trở kéo gắn trong.53

5.10 Tỷ lệ dòng trên các chân vào/ra.53

5.11 VCAP/VDDCORE và ENVREG.54

5.12 Bộ Nhớ Chương Trình.54

5.12.1 ID thiết bị.54

5.12.2 Từ cấu hình.54

5.12.3 Các chu trình ghi.57

5.12.4 Khả năng ghi nhớ đặc tính.57

5.12.5Mô phỏng tự ghi và EEPROM.57

5.12.6 Bảo vệ mã.58

5.12.7 Vào chế độ lập trình.58

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. .59

5.14 KHÁC BIỆT MODULE.60

5.15 TỔNG KẾT.60

CHƯƠNG VI.61

ĐỒNG HỒ BÁO THỨC.61

6.1 Tóm lược.61

6.2 Chỉ thị hoạt động.61

6.2.1 Ngày tháng/thời gian hiện tại.61

6.2.2 Thời gian 12 giờ hay thời gian quân sự.62

6.2.3 Báo thức.63

6.2.4 Âm báo thức.64

6.2.5 Đồng bộ, chờ và ngừng báo thức.64

6.3 USB.66

6.4 Lập trình PIC.66

6.4.1 Đồng hồ.66

6.4.2 USB.67

6.5 Sử dụng Compact Flash.67

6.6 Chip bộ mã hoá MP3.68

6.7 Bộ chuyển đổi số - tương tự CS4334 .71

6.8 Màn hình LED .71

6.9 Kết luận .72

pdf75 trang | Chia sẻ: lethao | Lượt xem: 8018 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Vi điều khiển PIC 18F4550, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ề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ý 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ừ 25 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 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 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 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 Bit cấu hình: 27 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 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 # 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 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông # Define USB_EP1_RX_SIZE 8 # Include # Include # Include Đâ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 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 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 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 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 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 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 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 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”). PDFSUSB: Trong danh sách thả xuống, chọn PIC, đặt tên là “PICDEM FS USB 0 (Boot)”. 38 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 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ừ 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. 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 Total Component 39 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông Designation 450-1644-ND (Digi-Key) SWITCH TACT 6MM BK 160GF 8.51MM 2 0.21 0.42 S1, S2 PIC18F4550- I/P-ND (Digi- Key) IC PIC MCU FLASH 16KX16 40DIP 1 9.73 9.73 P1 X439-ND (Digi- Key) CRYSTAL 20.000 MHZ 20PF 49US 1 0.58 0.58 Q1 4.7KQBK-ND (Digi-Key) RES 4.7K OHM 1/4W 5% CARBON FILM 2 0.06 0.12 R1, R2 22QBK-ND (Digi-Key) RES 22 OHM 1/4W 5% CARBON FILM 2 0.06 0.12 R3, R4 1.0KQBK-ND (Digi-Key) RES 1.0K OHM 1/4W 5% CARBON FILM 1 0.06 0.06 R5 1.0MQBK-ND (Digi-Key) RES 1.0M OHM 1/4W 5% CARBON FILM 1 0.06 0.06 R6 516-1311-ND (Digi-Key) LED 3MM 645NM RED DIFF LOW CURR 1 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% RAD 1 0.46 0.46 C2 BC1003CT-ND (Digi-Key) CAP 15PF 50V CERAMIC C0G 5% 2 0.08 0.16 C3, C4 PBCUB1F (Winford) USB B Female Breadboard Adapter 1 5.60 5.60 40 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 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ý 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. 41 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 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. 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: 42 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 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) Vdd Ground, GND, Capacitor Resistor LED Crystal 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à: 43 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông 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 ( 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: Phụ lục F Tổng quan về các cổng vào/ra trên PIC18F4550 Port Other Functions Traits RA0 Analog input 0 RA1 Analog input 1 RA2 Analog input 2 44 Nguyễn Thế Anh Khoa Điện Tử Viễn Thông RA3 Analog input 3 RA4 Digital I/O Schmitt 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

Các file đính kèm theo tài liệu này:

  • pdfVi Điều Khiển PIC 18F4550.pdf