SlideShare a Scribd company logo
1 of 19
Download to read offline
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
1
HÖÔÙNG DAÃN GIAO TIEÁP USB-HID VÔÙI
PIC18F4550
Chào các bạn, hôm này Chủ Nhật ngày 25/09/2011, lại là 1 ngày buồn chán ko
có việc gì để làm cả, ngồi nhâm nghi chén trà đặc và bắn vài điếu thuốc  cuộc
đời sướng nhất là những lúc như thế này  Ngoài trà và thuốc ra thì cũng tranh
thủ lướt Keyboard tặng các bạn 1 TUT về giao tiếp USB HID Class của Microchip
PIC18F4550.
- Như chúng ta đã biết, con PIC18F4550 này tương đối thông dụng, các
Member trên các 4rum như : www.dientuvietnan.net , www.picvietnam.com
www.bkit4u.com ... thường dùng. Các đề tài, đồ án có liên quan đến USB thì
PIC18F4550 sẽ được chọn. PIC18F4550 hộ trợ USB2.0 Full Speed
480Mbps
- Nói về USB thì chúng ta thường quan tâm đến 2 lớp thường dùng, đó là :
USB HID và lớp USB Mass Storage. Và ở đây cũng thường dùng 2 kiểu
truyền đó là Bulk với USB Mass Storage và Interrupts với lớp HID. Thì
cũng nói luôn là chơi với Bulk thì mới có thể đạt được Full Speed , còn HID
thì chúng ta thường chỉ là 64KB/s hoặc 512KB/s. So với rs232 thì Max
rs232 == 128000bps ~ 16KB/s), nhưng để đẩy đến tốc độ này ko phải thiết
bị nào cũng hộ trợ, PIC thì chắc chắn là ko ăn đến tốc độ này rồi.
- Tuy tốc độ HID không cao nhưng nó được ứng dụng cho các thiết đơn giản
như Keyboard, Mouse, các thiết bị ko yêu cầu về Driver
- HID truyền được cả 2 chiều từ Device lên Host và ngược lại. Việc trao đổi
dữ liệu giữa Host với Device được thực hiện qua giao thức usb, quản lý bằng
các endpoint(điểm đầu cuối) và pipe (ống truyền).
- Đến đây cơ bản là chúng đã có thể sẵn sàng vào làm 1 thiết USB lớp HID
với chức năng Plug and Play (PnP) hay nói cách khác là cắm là chạy, ko cần
Driver.
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
2
1. Giới thiệu về phần mềm Complier của PIC của MikroC
Chúng ta sử phần mềm MikroC Pro For PIC v5.01 bản mới nhất của năm
2011được bán với giá là 249 USD, tính theo tỉ giá đô tại thời điểm này
(25/09/2011) thì chúng ta cần : 249 x 20.834 = 5187.666 ~ tính khoảng 5
củ 2 cho nó dễ.
- Thôi thì sinh viên nghèo, ko có tiền chỉ còn cách là lên thẳng trang chủ để
load phiên bản mới về và search google C.x.x.k để Registered nó.
2. Code với MikroC
- Tạo 1 Project mới.
File / New / New Project …
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
3
Và cứ Next mà thôi, cái này thì dễ quá rồi, ko phải nói nhiều.
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
4
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
5
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
6
- Sẽ hiện 1 cửa sổ Edit Project, chúng ta cần phải chọn các thông số ở đây.
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
7
- Ở đây có 2 cách để chọn tần số hoạt động cho CPU, ở hình vẽ chúng ta nhìn
thấy có 2 Option là đầu vào xung nhịp cho CPU. Với Option 1 là : HSPLL
và Option 2 là: XT, HS.
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
8
- Để cho đơn giản thì chúng ta sẽ sử dụng HSPLL, tức là Option 1. Thạch anh
thật là 20Mhz, qua bộ chia PLLDIV để được 4Mhz và đưa qua bộ 96Mhz
PLL, đầu ra nhận được tần số là 96Mhz, cái này sẽ được chia 2 (như hình
vẽ) 96 / 2 = 48 Mhz, vậy là USB hoạt động với xung nhịp là 48Mhz.
- Khi khai báo sử dụng HSPLL thì XT,HS bị vô hiệu, chính vì thế chúng ta sẽ
lấy xung nhịp từ bộ HSPLL để cấp cho CPU, như hình trên xung nhịp sẽ
được đưa qua bộ chia CPUDIV nhỏ nhất là 2, tức là 96/2 = 48Mhz. Điều
này có nghĩ là CPU sẽ hoạt động với xung nhịp cao nhất 48Mhz, mặc dù đầu
vào thạch anh chỉ có 20Mhz. Và lúc này điều quan trọng cần chú ý là chúng
ta phải sửa lại là giá trị thạch anh đã đặt cho Project là 20Mhz thành 48Mhz
mặc dù thạch anh thật bên ngoài là 20Mhz. (Đây chính là điểm cần lưu ý.)
Ngoài ra chúng ta cần phải Enable cho pin 18 để lấy điện áp 3.3V tại chân này.
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
9
- Đến đây coi như Project cơ bản là chuẩn rồi, bây giờ là viết code
- Các bạn có thể Copy & Paste mã này để Demo mạch của mình nhớ chỉnh
thạch anh cho phù hợp.
Chọn cái này
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
10
- Coi như xong phần code, bây giờ là đến phần Description cho thiết bị.
/*
Coder : HIENCLUBVN
Lab : Học Viện Hải Quân
Description : USB HID PIC18F4450
Complier : MikroC Pro For PIC 2011
Date : 25 / 09 / 2011
------------------
Vd : Xtal = 20Mhz
Chọn HSPLL (PLL DIV 5)
Xung nhịp của USB là 48Mhz
Chọn CPUDIV 2 , xung nhịp của CPU là 48Mhz
*/
unsigned char readbuff[64] absolute 0x500; // Buffers should be in USB RAM, please
consult datasheet
unsigned char writebuff[64] absolute 0x540;
char cnt;
char kk;
void interrupt(){
USB_Interrupt_Proc(); // Hàm phục vụ ngắt
}
void main(void)
{
ADCON1 |= 0x0F; // Set lại các PIN Analog thành Digital
CMCON |= 7; // Disable chuc nang Comparators
HID_Enable(&readbuff,&writebuff); // Cho phép kết nối lớp HID
while(1){
while(!HID_Read()); // Trả về số byte được nhận từ HOST, False nếu ko nhận
được.
// Chờ ở đây, cho đến khi có data nhận thì thực hiện công việc ghi data nhận vào
writebuff và truyền lại.
for(cnt=0;cnt<64;cnt++)
writebuff[cnt]=readbuff[cnt];
// Có thể thêm CODE xử lý tại đây.
while(!HID_Write(&writebuff,64)); // Trả về số byte được truyền đi (64) nếu
thành công, False nếu thất bại.
}
}
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
11
Chọn Tool s / HID Terminal
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
12
- Lưu nó lại ở thư mục Project đã tạo, và add nó vào Project của mình.
Lấy File tại đây
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
13
- Bây giờ coi như mọi việc đã xong, nhấn Ctrl + F9 để Build
- OK, chương trình của chúng ta đã Finished Successfully, ko có lỗi.
- Tiến hành nạp File HEX trong Project bằng Pickit2 là OK rồi.
- Về Schematic có thể ghép nối như 2 hình bên dưới. (Nên thêm các tụ
104 để lọc nguồn giữa 2 Vcc và GND)
USBdsc.c đã được Add vào
Click để Add
Chọn Manager Project
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
14
Có thể dùng 2 tụ
104 nối song song
như hình 1 hoặc tụ
470nF như hình 2
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
15
- Sau khi đã nạp Firmware , thì các bạn có thể thấy thiết bị của mình rồi. Lưu
ý mình sài lớp HID nên cắm phát là PC load được thiết bị ngay.
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
16
- Ok, đến đây là ngon rồi. Bây giờ chúng ta bật HID Temirnal của MikroC
lên để Debug chương trình.
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
17
- Chúng ta thấy USB HID Library (tên đã tạo ra trước đó bằng Description),
nhấn info để xem thông tin về thiết bị.
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
18
- Giả sử như chúng ta gửi 1 mảng các giá trị kiểu byte từ số 1  9, còn các
byte còn lại từ 9  63 sẽ bằng 0, nhấn Send để gửi. Lúc này dưới PIC nhận
được data và gửi bật trở lại (vì trong firmware chúng ta code như thế mà), ở
ngay dưới cửa sổ chúng ta đã thấy dữ liệu đã được trả về (PC nhận và hiện
thị lên TextBox ).
 Đến đây coi như mọi việc đã xong, bây giờ chỉ là vấn đề viết giao tiếp nữa
mà thôi. Để cho đơn giản tôi khuyên các bạn nên code bằng các hàm dll
share trên internet, có thể là của Microchip, www.lvr.com , www.florian-
leitner.de , www.waitingforfriday.com/
- Theo lời ý kiến cá nhân của tôi các bạn nên đầu tư nghiên cứu code của
www.lvr.com hoặc là www.waitingforfriday.com/
Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011
19
3. Phát triễn ứng dụng với HID USB Library
- Tạm thời đến đây đã, mệt rồi. Hôm sau viết tiếp.

More Related Content

What's hot

gGiaotrinhlaprapcaidatmaytinhnew2013 140119205441-phpapp01
gGiaotrinhlaprapcaidatmaytinhnew2013 140119205441-phpapp01gGiaotrinhlaprapcaidatmaytinhnew2013 140119205441-phpapp01
gGiaotrinhlaprapcaidatmaytinhnew2013 140119205441-phpapp01Anh Lê Công
 
NÂNG CAO HIỆU QUẢ GIÁO DỤC LÝ LUẬN CHÍNH TRỊ CHO CÁN BỘ CẤP CƠ SỞ HUYỆN NHO Q...
NÂNG CAO HIỆU QUẢ GIÁO DỤC LÝ LUẬN CHÍNH TRỊ CHO CÁN BỘ CẤP CƠ SỞ HUYỆN NHO Q...NÂNG CAO HIỆU QUẢ GIÁO DỤC LÝ LUẬN CHÍNH TRỊ CHO CÁN BỘ CẤP CƠ SỞ HUYỆN NHO Q...
NÂNG CAO HIỆU QUẢ GIÁO DỤC LÝ LUẬN CHÍNH TRỊ CHO CÁN BỘ CẤP CƠ SỞ HUYỆN NHO Q...KhoTi1
 
Tài Liệu Cấu Hình forti os v6.0 ( FORTINET )
 Tài Liệu Cấu Hình forti os v6.0 ( FORTINET ) Tài Liệu Cấu Hình forti os v6.0 ( FORTINET )
Tài Liệu Cấu Hình forti os v6.0 ( FORTINET )CamQueVuong
 
linear filtering & Non-linear filtering
linear filtering & Non-linear filteringlinear filtering & Non-linear filtering
linear filtering & Non-linear filteringducmanhkthd
 
Vi du chi tiet giai thich lap trinh gui trong matlab
Vi du chi tiet  giai thich lap trinh gui trong matlabVi du chi tiet  giai thich lap trinh gui trong matlab
Vi du chi tiet giai thich lap trinh gui trong matlabPhạmThế Anh
 
Nâng cao chất lượng đội ngũ viên chức trung tâm quản lý hạ tầng giao thông đư...
Nâng cao chất lượng đội ngũ viên chức trung tâm quản lý hạ tầng giao thông đư...Nâng cao chất lượng đội ngũ viên chức trung tâm quản lý hạ tầng giao thông đư...
Nâng cao chất lượng đội ngũ viên chức trung tâm quản lý hạ tầng giao thông đư...Luanvantot.com 0934.573.149
 
Aloha Social Networking Portal - SRS
Aloha Social Networking Portal - SRSAloha Social Networking Portal - SRS
Aloha Social Networking Portal - SRSMilind Gokhale
 
Điều khiển thích nghi cho robot NDOF trên cơ sở bộ quan sát.pdf
Điều khiển thích nghi cho robot NDOF trên cơ sở bộ quan sát.pdfĐiều khiển thích nghi cho robot NDOF trên cơ sở bộ quan sát.pdf
Điều khiển thích nghi cho robot NDOF trên cơ sở bộ quan sát.pdfMan_Ebook
 
PLC mitsubishi
PLC mitsubishiPLC mitsubishi
PLC mitsubishiquanglocbp
 
Các kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềmCác kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềmNguyễn Anh
 
Thiết kế website học trực tuyến e learning
Thiết kế website học trực tuyến e learningThiết kế website học trực tuyến e learning
Thiết kế website học trực tuyến e learningTrinh LeMinh
 
Quy Trình Kiểm Tra và Đóng Gói IC (Mạch Tích Hợp)
Quy Trình Kiểm Tra và Đóng Gói IC (Mạch Tích Hợp)Quy Trình Kiểm Tra và Đóng Gói IC (Mạch Tích Hợp)
Quy Trình Kiểm Tra và Đóng Gói IC (Mạch Tích Hợp)Ngoc Bau Nguyen
 
NGHIÊN CỨU GIẢI PHÁP BÃI ĐỖ XE THÔNG MINH CHO CÁC ĐÔ THỊ KHU VỰC MIỀN TRUNG 6...
NGHIÊN CỨU GIẢI PHÁP BÃI ĐỖ XE THÔNG MINH CHO CÁC ĐÔ THỊ KHU VỰC MIỀN TRUNG 6...NGHIÊN CỨU GIẢI PHÁP BÃI ĐỖ XE THÔNG MINH CHO CÁC ĐÔ THỊ KHU VỰC MIỀN TRUNG 6...
NGHIÊN CỨU GIẢI PHÁP BÃI ĐỖ XE THÔNG MINH CHO CÁC ĐÔ THỊ KHU VỰC MIỀN TRUNG 6...nataliej4
 

What's hot (20)

gGiaotrinhlaprapcaidatmaytinhnew2013 140119205441-phpapp01
gGiaotrinhlaprapcaidatmaytinhnew2013 140119205441-phpapp01gGiaotrinhlaprapcaidatmaytinhnew2013 140119205441-phpapp01
gGiaotrinhlaprapcaidatmaytinhnew2013 140119205441-phpapp01
 
Luận án: Bảo tồn và phát huy giá trị di sản văn hoá (1998 - 2014)
Luận án: Bảo tồn và phát huy giá trị di sản văn hoá (1998 - 2014)Luận án: Bảo tồn và phát huy giá trị di sản văn hoá (1998 - 2014)
Luận án: Bảo tồn và phát huy giá trị di sản văn hoá (1998 - 2014)
 
Đề tài: Tìm hiểu dây chuyền sản xuất Nhà máy bia Hà Nội, HAY
Đề tài: Tìm hiểu dây chuyền sản xuất Nhà máy bia Hà Nội, HAYĐề tài: Tìm hiểu dây chuyền sản xuất Nhà máy bia Hà Nội, HAY
Đề tài: Tìm hiểu dây chuyền sản xuất Nhà máy bia Hà Nội, HAY
 
NÂNG CAO HIỆU QUẢ GIÁO DỤC LÝ LUẬN CHÍNH TRỊ CHO CÁN BỘ CẤP CƠ SỞ HUYỆN NHO Q...
NÂNG CAO HIỆU QUẢ GIÁO DỤC LÝ LUẬN CHÍNH TRỊ CHO CÁN BỘ CẤP CƠ SỞ HUYỆN NHO Q...NÂNG CAO HIỆU QUẢ GIÁO DỤC LÝ LUẬN CHÍNH TRỊ CHO CÁN BỘ CẤP CƠ SỞ HUYỆN NHO Q...
NÂNG CAO HIỆU QUẢ GIÁO DỤC LÝ LUẬN CHÍNH TRỊ CHO CÁN BỘ CẤP CƠ SỞ HUYỆN NHO Q...
 
Bài giảng HTML5-CSS3
Bài giảng HTML5-CSS3Bài giảng HTML5-CSS3
Bài giảng HTML5-CSS3
 
Tài Liệu Cấu Hình forti os v6.0 ( FORTINET )
 Tài Liệu Cấu Hình forti os v6.0 ( FORTINET ) Tài Liệu Cấu Hình forti os v6.0 ( FORTINET )
Tài Liệu Cấu Hình forti os v6.0 ( FORTINET )
 
linear filtering & Non-linear filtering
linear filtering & Non-linear filteringlinear filtering & Non-linear filtering
linear filtering & Non-linear filtering
 
Vi du chi tiet giai thich lap trinh gui trong matlab
Vi du chi tiet  giai thich lap trinh gui trong matlabVi du chi tiet  giai thich lap trinh gui trong matlab
Vi du chi tiet giai thich lap trinh gui trong matlab
 
Nâng cao chất lượng đội ngũ viên chức trung tâm quản lý hạ tầng giao thông đư...
Nâng cao chất lượng đội ngũ viên chức trung tâm quản lý hạ tầng giao thông đư...Nâng cao chất lượng đội ngũ viên chức trung tâm quản lý hạ tầng giao thông đư...
Nâng cao chất lượng đội ngũ viên chức trung tâm quản lý hạ tầng giao thông đư...
 
Luận án: Nâng cao năng lực tư duy lý luận cho đội ngũ giảng viên
Luận án: Nâng cao năng lực tư duy lý luận cho đội ngũ giảng viênLuận án: Nâng cao năng lực tư duy lý luận cho đội ngũ giảng viên
Luận án: Nâng cao năng lực tư duy lý luận cho đội ngũ giảng viên
 
Stereo vision
Stereo visionStereo vision
Stereo vision
 
Macintosh ppt
Macintosh pptMacintosh ppt
Macintosh ppt
 
Aloha Social Networking Portal - SRS
Aloha Social Networking Portal - SRSAloha Social Networking Portal - SRS
Aloha Social Networking Portal - SRS
 
Điều khiển thích nghi cho robot NDOF trên cơ sở bộ quan sát.pdf
Điều khiển thích nghi cho robot NDOF trên cơ sở bộ quan sát.pdfĐiều khiển thích nghi cho robot NDOF trên cơ sở bộ quan sát.pdf
Điều khiển thích nghi cho robot NDOF trên cơ sở bộ quan sát.pdf
 
PLC mitsubishi
PLC mitsubishiPLC mitsubishi
PLC mitsubishi
 
Các kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềmCác kỹ thuật bảo trì phần mềm
Các kỹ thuật bảo trì phần mềm
 
Thiết kế website học trực tuyến e learning
Thiết kế website học trực tuyến e learningThiết kế website học trực tuyến e learning
Thiết kế website học trực tuyến e learning
 
Luận văn ứng dụng công nghệ thông tin trong cơ quan nhà nước
Luận văn ứng dụng công nghệ thông tin trong cơ quan nhà nước Luận văn ứng dụng công nghệ thông tin trong cơ quan nhà nước
Luận văn ứng dụng công nghệ thông tin trong cơ quan nhà nước
 
Quy Trình Kiểm Tra và Đóng Gói IC (Mạch Tích Hợp)
Quy Trình Kiểm Tra và Đóng Gói IC (Mạch Tích Hợp)Quy Trình Kiểm Tra và Đóng Gói IC (Mạch Tích Hợp)
Quy Trình Kiểm Tra và Đóng Gói IC (Mạch Tích Hợp)
 
NGHIÊN CỨU GIẢI PHÁP BÃI ĐỖ XE THÔNG MINH CHO CÁC ĐÔ THỊ KHU VỰC MIỀN TRUNG 6...
NGHIÊN CỨU GIẢI PHÁP BÃI ĐỖ XE THÔNG MINH CHO CÁC ĐÔ THỊ KHU VỰC MIỀN TRUNG 6...NGHIÊN CỨU GIẢI PHÁP BÃI ĐỖ XE THÔNG MINH CHO CÁC ĐÔ THỊ KHU VỰC MIỀN TRUNG 6...
NGHIÊN CỨU GIẢI PHÁP BÃI ĐỖ XE THÔNG MINH CHO CÁC ĐÔ THỊ KHU VỰC MIỀN TRUNG 6...
 

Similar to Hid usb pic18 f4550

Vi dieukhien pic
Vi dieukhien picVi dieukhien pic
Vi dieukhien picmisuki_taro
 
Hướng dan su dung packet tracer
Hướng dan su dung packet tracerHướng dan su dung packet tracer
Hướng dan su dung packet tracerDuc Nguyen
 
Mach nap pic
Mach  nap picMach  nap pic
Mach nap picson2483
 
1. Tai lieu S7-1200.pdf
1. Tai lieu S7-1200.pdf1. Tai lieu S7-1200.pdf
1. Tai lieu S7-1200.pdfHung353905
 
1. tai lieu s7 1200
1. tai lieu s7 12001. tai lieu s7 1200
1. tai lieu s7 1200AM0709
 
Tai lieu S7-1200.pdf
Tai lieu S7-1200.pdfTai lieu S7-1200.pdf
Tai lieu S7-1200.pdfMan_Ebook
 
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Vuong Nguyen
 
Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Học Tự
 
Thiết Kế Chế Tạo Mô Hình Bãi Đỗ Xe Thông Minh
Thiết Kế Chế Tạo Mô Hình Bãi Đỗ Xe Thông Minh Thiết Kế Chế Tạo Mô Hình Bãi Đỗ Xe Thông Minh
Thiết Kế Chế Tạo Mô Hình Bãi Đỗ Xe Thông Minh nataliej4
 
Mcsa 2012 mạng căn bản phần 7
Mcsa 2012 mạng căn bản phần 7Mcsa 2012 mạng căn bản phần 7
Mcsa 2012 mạng căn bản phần 7laonap166
 
Giáo trình plc omron cp1 l 1h [unlockplc.com]
Giáo trình plc omron cp1 l 1h [unlockplc.com]Giáo trình plc omron cp1 l 1h [unlockplc.com]
Giáo trình plc omron cp1 l 1h [unlockplc.com]Nguyễn Hồng Nhân
 
Hướng dẫn kết nối s7300 với citect (cáp USB MIP)
Hướng dẫn kết nối s7300 với citect (cáp USB MIP)Hướng dẫn kết nối s7300 với citect (cáp USB MIP)
Hướng dẫn kết nối s7300 với citect (cáp USB MIP)FPT Telecom
 
Huong dan GNS3
Huong dan GNS3Huong dan GNS3
Huong dan GNS3np_thanh
 
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...Man_Ebook
 

Similar to Hid usb pic18 f4550 (20)

Tìm hiêu về Raspberry Pi và ứng dụng làm Websever dùng giám sát và điều khiển...
Tìm hiêu về Raspberry Pi và ứng dụng làm Websever dùng giám sát và điều khiển...Tìm hiêu về Raspberry Pi và ứng dụng làm Websever dùng giám sát và điều khiển...
Tìm hiêu về Raspberry Pi và ứng dụng làm Websever dùng giám sát và điều khiển...
 
Vi dieukhien pic
Vi dieukhien picVi dieukhien pic
Vi dieukhien pic
 
Re
ReRe
Re
 
Hướng dan su dung packet tracer
Hướng dan su dung packet tracerHướng dan su dung packet tracer
Hướng dan su dung packet tracer
 
Mach nap pic
Mach  nap picMach  nap pic
Mach nap pic
 
1. Tai lieu S7-1200.pdf
1. Tai lieu S7-1200.pdf1. Tai lieu S7-1200.pdf
1. Tai lieu S7-1200.pdf
 
1. tai lieu s7 1200
1. tai lieu s7 12001. tai lieu s7 1200
1. tai lieu s7 1200
 
Tai lieu S7-1200.pdf
Tai lieu S7-1200.pdfTai lieu S7-1200.pdf
Tai lieu S7-1200.pdf
 
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
 
Báo cáo thực tập lắp ráp cài đặt sữa chữa máy tính
Báo cáo thực tập lắp ráp cài đặt sữa chữa máy tínhBáo cáo thực tập lắp ráp cài đặt sữa chữa máy tính
Báo cáo thực tập lắp ráp cài đặt sữa chữa máy tính
 
Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360Giới thiệu về Arduino - Arduino360
Giới thiệu về Arduino - Arduino360
 
Bai tap chia_dia_chi_ip
Bai tap chia_dia_chi_ipBai tap chia_dia_chi_ip
Bai tap chia_dia_chi_ip
 
Thiết Kế Chế Tạo Mô Hình Bãi Đỗ Xe Thông Minh
Thiết Kế Chế Tạo Mô Hình Bãi Đỗ Xe Thông Minh Thiết Kế Chế Tạo Mô Hình Bãi Đỗ Xe Thông Minh
Thiết Kế Chế Tạo Mô Hình Bãi Đỗ Xe Thông Minh
 
Mcsa 2012 mạng căn bản phần 7
Mcsa 2012 mạng căn bản phần 7Mcsa 2012 mạng căn bản phần 7
Mcsa 2012 mạng căn bản phần 7
 
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
Đề tài: Thiết kế một bộ chuyển đổi Analog – Digital (ADC) 8-Bits sử dụng chip...
 
Báo cáo thực tập - LẮP RÁP, CÀI ĐẶT, SỬA CHỮA MÁY TÍNH !!
Báo cáo thực tập - LẮP RÁP, CÀI ĐẶT, SỬA CHỮA MÁY TÍNH !!Báo cáo thực tập - LẮP RÁP, CÀI ĐẶT, SỬA CHỮA MÁY TÍNH !!
Báo cáo thực tập - LẮP RÁP, CÀI ĐẶT, SỬA CHỮA MÁY TÍNH !!
 
Giáo trình plc omron cp1 l 1h [unlockplc.com]
Giáo trình plc omron cp1 l 1h [unlockplc.com]Giáo trình plc omron cp1 l 1h [unlockplc.com]
Giáo trình plc omron cp1 l 1h [unlockplc.com]
 
Hướng dẫn kết nối s7300 với citect (cáp USB MIP)
Hướng dẫn kết nối s7300 với citect (cáp USB MIP)Hướng dẫn kết nối s7300 với citect (cáp USB MIP)
Hướng dẫn kết nối s7300 với citect (cáp USB MIP)
 
Huong dan GNS3
Huong dan GNS3Huong dan GNS3
Huong dan GNS3
 
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
Thiết kế và chế tạo 8 mô hình thực hành môn vi điều khiển sử dụng vi điều khi...
 

Hid usb pic18 f4550

  • 1. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 1 HÖÔÙNG DAÃN GIAO TIEÁP USB-HID VÔÙI PIC18F4550 Chào các bạn, hôm này Chủ Nhật ngày 25/09/2011, lại là 1 ngày buồn chán ko có việc gì để làm cả, ngồi nhâm nghi chén trà đặc và bắn vài điếu thuốc  cuộc đời sướng nhất là những lúc như thế này  Ngoài trà và thuốc ra thì cũng tranh thủ lướt Keyboard tặng các bạn 1 TUT về giao tiếp USB HID Class của Microchip PIC18F4550. - Như chúng ta đã biết, con PIC18F4550 này tương đối thông dụng, các Member trên các 4rum như : www.dientuvietnan.net , www.picvietnam.com www.bkit4u.com ... thường dùng. Các đề tài, đồ án có liên quan đến USB thì PIC18F4550 sẽ được chọn. PIC18F4550 hộ trợ USB2.0 Full Speed 480Mbps - Nói về USB thì chúng ta thường quan tâm đến 2 lớp thường dùng, đó là : USB HID và lớp USB Mass Storage. Và ở đây cũng thường dùng 2 kiểu truyền đó là Bulk với USB Mass Storage và Interrupts với lớp HID. Thì cũng nói luôn là chơi với Bulk thì mới có thể đạt được Full Speed , còn HID thì chúng ta thường chỉ là 64KB/s hoặc 512KB/s. So với rs232 thì Max rs232 == 128000bps ~ 16KB/s), nhưng để đẩy đến tốc độ này ko phải thiết bị nào cũng hộ trợ, PIC thì chắc chắn là ko ăn đến tốc độ này rồi. - Tuy tốc độ HID không cao nhưng nó được ứng dụng cho các thiết đơn giản như Keyboard, Mouse, các thiết bị ko yêu cầu về Driver - HID truyền được cả 2 chiều từ Device lên Host và ngược lại. Việc trao đổi dữ liệu giữa Host với Device được thực hiện qua giao thức usb, quản lý bằng các endpoint(điểm đầu cuối) và pipe (ống truyền). - Đến đây cơ bản là chúng đã có thể sẵn sàng vào làm 1 thiết USB lớp HID với chức năng Plug and Play (PnP) hay nói cách khác là cắm là chạy, ko cần Driver.
  • 2. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 2 1. Giới thiệu về phần mềm Complier của PIC của MikroC Chúng ta sử phần mềm MikroC Pro For PIC v5.01 bản mới nhất của năm 2011được bán với giá là 249 USD, tính theo tỉ giá đô tại thời điểm này (25/09/2011) thì chúng ta cần : 249 x 20.834 = 5187.666 ~ tính khoảng 5 củ 2 cho nó dễ. - Thôi thì sinh viên nghèo, ko có tiền chỉ còn cách là lên thẳng trang chủ để load phiên bản mới về và search google C.x.x.k để Registered nó. 2. Code với MikroC - Tạo 1 Project mới. File / New / New Project …
  • 3. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 3 Và cứ Next mà thôi, cái này thì dễ quá rồi, ko phải nói nhiều.
  • 4. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 4
  • 5. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 5
  • 6. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 6 - Sẽ hiện 1 cửa sổ Edit Project, chúng ta cần phải chọn các thông số ở đây.
  • 7. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 7 - Ở đây có 2 cách để chọn tần số hoạt động cho CPU, ở hình vẽ chúng ta nhìn thấy có 2 Option là đầu vào xung nhịp cho CPU. Với Option 1 là : HSPLL và Option 2 là: XT, HS.
  • 8. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 8 - Để cho đơn giản thì chúng ta sẽ sử dụng HSPLL, tức là Option 1. Thạch anh thật là 20Mhz, qua bộ chia PLLDIV để được 4Mhz và đưa qua bộ 96Mhz PLL, đầu ra nhận được tần số là 96Mhz, cái này sẽ được chia 2 (như hình vẽ) 96 / 2 = 48 Mhz, vậy là USB hoạt động với xung nhịp là 48Mhz. - Khi khai báo sử dụng HSPLL thì XT,HS bị vô hiệu, chính vì thế chúng ta sẽ lấy xung nhịp từ bộ HSPLL để cấp cho CPU, như hình trên xung nhịp sẽ được đưa qua bộ chia CPUDIV nhỏ nhất là 2, tức là 96/2 = 48Mhz. Điều này có nghĩ là CPU sẽ hoạt động với xung nhịp cao nhất 48Mhz, mặc dù đầu vào thạch anh chỉ có 20Mhz. Và lúc này điều quan trọng cần chú ý là chúng ta phải sửa lại là giá trị thạch anh đã đặt cho Project là 20Mhz thành 48Mhz mặc dù thạch anh thật bên ngoài là 20Mhz. (Đây chính là điểm cần lưu ý.) Ngoài ra chúng ta cần phải Enable cho pin 18 để lấy điện áp 3.3V tại chân này.
  • 9. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 9 - Đến đây coi như Project cơ bản là chuẩn rồi, bây giờ là viết code - Các bạn có thể Copy & Paste mã này để Demo mạch của mình nhớ chỉnh thạch anh cho phù hợp. Chọn cái này
  • 10. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 10 - Coi như xong phần code, bây giờ là đến phần Description cho thiết bị. /* Coder : HIENCLUBVN Lab : Học Viện Hải Quân Description : USB HID PIC18F4450 Complier : MikroC Pro For PIC 2011 Date : 25 / 09 / 2011 ------------------ Vd : Xtal = 20Mhz Chọn HSPLL (PLL DIV 5) Xung nhịp của USB là 48Mhz Chọn CPUDIV 2 , xung nhịp của CPU là 48Mhz */ unsigned char readbuff[64] absolute 0x500; // Buffers should be in USB RAM, please consult datasheet unsigned char writebuff[64] absolute 0x540; char cnt; char kk; void interrupt(){ USB_Interrupt_Proc(); // Hàm phục vụ ngắt } void main(void) { ADCON1 |= 0x0F; // Set lại các PIN Analog thành Digital CMCON |= 7; // Disable chuc nang Comparators HID_Enable(&readbuff,&writebuff); // Cho phép kết nối lớp HID while(1){ while(!HID_Read()); // Trả về số byte được nhận từ HOST, False nếu ko nhận được. // Chờ ở đây, cho đến khi có data nhận thì thực hiện công việc ghi data nhận vào writebuff và truyền lại. for(cnt=0;cnt<64;cnt++) writebuff[cnt]=readbuff[cnt]; // Có thể thêm CODE xử lý tại đây. while(!HID_Write(&writebuff,64)); // Trả về số byte được truyền đi (64) nếu thành công, False nếu thất bại. } }
  • 11. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 11 Chọn Tool s / HID Terminal
  • 12. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 12 - Lưu nó lại ở thư mục Project đã tạo, và add nó vào Project của mình. Lấy File tại đây
  • 13. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 13 - Bây giờ coi như mọi việc đã xong, nhấn Ctrl + F9 để Build - OK, chương trình của chúng ta đã Finished Successfully, ko có lỗi. - Tiến hành nạp File HEX trong Project bằng Pickit2 là OK rồi. - Về Schematic có thể ghép nối như 2 hình bên dưới. (Nên thêm các tụ 104 để lọc nguồn giữa 2 Vcc và GND) USBdsc.c đã được Add vào Click để Add Chọn Manager Project
  • 14. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 14 Có thể dùng 2 tụ 104 nối song song như hình 1 hoặc tụ 470nF như hình 2
  • 15. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 15 - Sau khi đã nạp Firmware , thì các bạn có thể thấy thiết bị của mình rồi. Lưu ý mình sài lớp HID nên cắm phát là PC load được thiết bị ngay.
  • 16. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 16 - Ok, đến đây là ngon rồi. Bây giờ chúng ta bật HID Temirnal của MikroC lên để Debug chương trình.
  • 17. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 17 - Chúng ta thấy USB HID Library (tên đã tạo ra trước đó bằng Description), nhấn info để xem thông tin về thiết bị.
  • 18. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 18 - Giả sử như chúng ta gửi 1 mảng các giá trị kiểu byte từ số 1  9, còn các byte còn lại từ 9  63 sẽ bằng 0, nhấn Send để gửi. Lúc này dưới PIC nhận được data và gửi bật trở lại (vì trong firmware chúng ta code như thế mà), ở ngay dưới cửa sổ chúng ta đã thấy dữ liệu đã được trả về (PC nhận và hiện thị lên TextBox ).  Đến đây coi như mọi việc đã xong, bây giờ chỉ là vấn đề viết giao tiếp nữa mà thôi. Để cho đơn giản tôi khuyên các bạn nên code bằng các hàm dll share trên internet, có thể là của Microchip, www.lvr.com , www.florian- leitner.de , www.waitingforfriday.com/ - Theo lời ý kiến cá nhân của tôi các bạn nên đầu tư nghiên cứu code của www.lvr.com hoặc là www.waitingforfriday.com/
  • 19. Ngoâ Ñaêng Hieàn – Hoïc vieän Haûi Quaân 2011 19 3. Phát triễn ứng dụng với HID USB Library - Tạm thời đến đây đã, mệt rồi. Hôm sau viết tiếp.