PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 26-07-2008, 11:08 PM   #1
pinochu
Nhập môn đệ tử
 
pinochu's Avatar
 
Tham gia ngày: Apr 2007
Bài gửi: 5
:
USB with 18f4550 and opensource driver

Sau một thời gian tìm kiếm, nghiên cứu, tìm hiểu, đào bới sục sạo trên mọi diễn đàn, tui hông thấy (hoặc là tìm hông thấy) bài nào hoàn chỉnh về USB từ đầu tới cuối, mà chỉ có người hỏi, người trả lời thì lấp lửng, hoặc là người trả lời cũng chỉ cung cấp tất cả những gì mình có cho anh em. Tui tổng hợp lại và đã làm ra được 1 device USB bằng chip PIC8F4550, nay post lên cho anh em tham khảo và phát triển. Lưu ý là không phải tôi làm từ đầu, mà là tìm kiếm, làm thành công và post lại thôi. Hi vọng là mọi người cũng làm thành công và phát triển thêm. Tui nghĩ có nhiều người cũng tìm tòi và làm được nhưng giấu nghề, hổng chịu chỉ cho anh em.

Trước tiên là tìm hiểu về USB, tài liệu thì rất là nhiều, nhưng theo các cao thủ đi trước thì anh em khoan nên đọc USB complete, vì chưa làm usb bao giờ mà đọc cuốn đó thì có mà té giếng, tui thấy cũng đúng là té thiệt, và được khuyên là đọc cuốn USB in nutshell trước, cuốn này thì có nhiều người đã post lên rồi, nên tui hông post lại nữa.

- Anh em đọc để hiểu về cách enumuration của usb, quá trình khi cắm device vô, nó sẽ làm gì để nói cho máy tính biết "tui là USB device nè", rồi máy tính làm gì để cấp địa chỉ, reset device..
- Tiếp theo, là đọc firmware của usb, trong này đa số là dân hardware, đa số là dân PIC nên đọc hiểu lẹ, còn tui là dân software chính thống, vì mê hardware nên mới tự nghiên cứu học hỏi, nên đọc firmware hơi lâu, sửa thì sửa được nhưng hiểu thì chưa hiểu. Đọc firmware để biết quá trình initializing của USB device diễn ra như thế nào, làm sao mà để lúc cắm usb vô thì máy tính nó nói "found new hardware.." rồi nó biểu bỏ đĩa vô cài driver. Nếu ai có lòng thì phân tích phụ tui code firmware. Thanks nhiều.
- Kế tới là đọc code driver. À, cái này là chua nhát đây, viết driver là một nghệ thuật, không dễ cho những ai mới biết viết c/c++. Ở đây tui xài driver opensource, phiên bản gốc là libusb viết trên linux, sau đó được port qua windows, gọi là libusb-win32. Download ở đây: http://libusb-win32.sourceforge.net/
. Để build được driver này, phải cần bộ Device Driver Kit, hay còn gọi là DDK. Giờ thì kiếm DDK hơi khó, trên trang microsoft đã phát triển thành WDK (windows driver kit). Thông tin và download WDK ở đây: http://www.microsoft.com/whdc/devtools/wdk/default.mspx (khoảng 300MB, dạng file iso, down về xong, rồi cài đĩa CD ảo vào, mount ra rồi cài, hoặc có thể burn ra CD thật rồi cài).
. Muốn build driver thì download source code về, giải nén, đọc hướng dẫn, ai hông làm đuợc thì vô đây hỏi, tui sẽ chỉ. Ai hông muốn build thì download bản binary được build sẵn về xài.
. Tiếp theo là sơ đồ mạch và firmware. Sơ đồ mạch thì đơn giản, cấp nguồn, thạch anh, firmware này đang xài thạch anh 4MHz. RA0 và RA1 nối vô led vô trở. File zip của tui gồm 2 files zip trong đó, một file là code gốc tui down về, một file là code tui có sửa để dịch đuợc ra file hex, tui có bỏ file hex trong đó luôn.
đây là cái hình chụp lúc làm xong, cắm vào, cài driver xong, nó hiểu có 1 usb device như thế này:



Trên đây là tài liệu tui tổng hợp được và làm device usb chạy, tức là cắm vô máy tính nó hiểu có device, đòi driver..
À trong attachment, có code để điều khiển 2 cái LEDs, code C dễ hiểu thôi, viết chạy command line, chuyển qua GUI rất dễ. Ai có thắc mắc gì cứ hỏi, tui biết gì sẽ trả lời đó.
File Kèm Theo
File Type: zip pic18f4550usb.zip (99.7 KB, 1461 lần tải)

thay đổi nội dung bởi: pinochu, 26-07-2008 lúc 11:18 PM.
pinochu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:33 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam