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.
76 trang |
Chia sẻ: maiphuongdc | Lượt xem: 2358 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Luận văn Đồng hồ báo thức dùng vi điều khiển 18F4550, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
18 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ý
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
26
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.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
27
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:
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
28
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.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
29
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
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
30
# 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.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
31
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ố.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
32
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 …
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
33
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.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
34
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:
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
35
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)
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
36
MPLAB IDE User’s Guide – Microchip document DS51519B
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.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
37
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).
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
38
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”).
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
39
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ừ
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.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
40
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
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
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
41
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
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ý
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
42
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.
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
43
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)
Vdd Ground, GND,
Capacitor
Resistor
LED
Crystal
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
44
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
(
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:
Nguyễn Thế Anh Khoa Điện Tử Viễn Thông
45
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
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 for external interrupt (INT2)
RB3 Analog input 9
RB4 Analog input11 can be programmed for interrupt on change
RB5 Digital I/O can be progr
Các file đính kèm theo tài liệu này:
- vi_dieu_khien__0831.pdf