PDA

View Full Version : giao tiếp pc và pic qua usb


nt++
07-01-2006, 09:12 PM
tại sao không có ai viết cái gì trong này vậy mở ra rồi để không vậy sao
cái giao tiếp giữa pc và pic thông qua cổng com và dùng vb để viết giao diện điều khiển thì tui biết chứ còn qua cái cổng usb thì như thế nào nhỉ liệu vb có hổ trợ để viết cái giao diện đk cho nó không ? ai biết thì viết vô đây đi :confused:

namqn
09-02-2006, 08:30 PM
Giao tiếp USB của PIC hiện là một chủ đề khá nóng bỏng trên diễn đàn của Microchip. Tuy nhiên chưa có nhiều thành công trong việc ứng dụng USB module của PIC, do vậy cộng đồng người dùng vẫn đang tích cực nghiên cứu.
Bạn muốn biết tình hình thì hãy ghé vào diễn đàn của Microchip. Tôi không cung cấp link vì Microchip thường thay đổi trang web của họ.

falleaf
09-02-2006, 11:35 PM
Hiện nay giao tiếp USB đã làm được rồi, nhưng thời gian chưa cho phép nên chưa thể viêt tutorial, và các mod vẫn còn trong quá trình học. Ở www.dientuvietnam.net đang thảo luận rất nhiều về giao tiếp USB và có nhiều người cũng làm được rồi.

Tất nhiên, còn khá nhiều vấn đề trong đó, và nếu có thời gian, mong bạn chia sẻ phần này sâu hơn với mọi người theo dạng tutorial.

Đây sẽ là một luồng rất được quan tâm nếu như bạn tham gia hỗ trợ diễn đàn. Chúng tôi sẽ hỗ trợ bạn công cụ web để làm việc, form chuẩn để viết tutorial của picvietnam được cung cấp ở luồng PICVietnam Chuyên nghiệp.

Chân thành cám ơn.

hanhluckyly
05-04-2006, 12:28 PM
Bac Falleaf oi Bac co so do mach (Capture Cis) ve hai con PIC18F458 noi voi nhau thong qua mang CAN khong tien the Bac tu van dum luon la Mang Can co gi loi hon so voi I2C va PSP khong neu Bac co vi du lap trinh giao tiep mang Can cho 2 con PIC18f458 thi tot qua. Cam on Bac rat nhieu( minh thuong lap trinh bang PICC compiler)

falleaf
05-04-2006, 01:51 PM
Mạch giao tiếp CAN, em có thể xem tại http://www.mikroe.com/pdf/can1_board_schematic.pdf

Sơ đồ chân theo thứ tự trong hình có ở đây.http://www.mikroe.com/pdf/easypic3_schematic.pdf

Chúc vui.

hanhluckyly
08-04-2006, 10:07 AM
anh Falleaf cho em hoi ti cai chuong trinh PIC c compiler cua em trong phan help khong co ngat #int can nhung trong khai bao cua PIC 18F458.h lai co phan khai bao nay vay chuong trinh compile nay co ho tro phan Can khong em dang viet nhung chua chay nhung khong biet co phai do no khong

falleaf
08-04-2006, 11:16 AM
Nó có nhúng tập tin can-18xxx8.c và .h vào trong, em đọc kỹ phần đó.

Tập tin này được lấy từ thư mục driver. Em vào đó để xem. Phần CAN em có thể hoàn toàn dùng của nó mà không cần viết lại mất công.

Anh thấy trong .h, toàn là định nghĩa, em muốn tìm #int can ?? là sao anh cũng không hiểu rõ nữa. Em có thể chụp ảnh hoặc cắt những đoạn em thắc mắc và dán cho mọi người dùng coi không?

Chúc vui.

hanhluckyly
08-04-2006, 03:36 PM
Nó có nhúng tập tin can-18xxx8.c và .h vào trong, em đọc kỹ phần đó.

Tập tin này được lấy từ thư mục driver. Em vào đó để xem. Phần CAN em có thể hoàn toàn dùng của nó mà không cần viết lại mất công.

Anh thấy trong .h, toàn là định nghĩa, em muốn tìm #int can ?? là sao anh cũng không hiểu rõ nữa. Em có thể chụp ảnh hoặc cắt những đoạn em thắc mắc và dán cho mọi người dùng coi không?

Chúc vui.
Anh Falleaf va cac ban chi dum muc tieu cua chuong trinh rat don gian
_Con 18f458 ben trai truyen du lieu 0x00 qua cho con ben phai bang mang Can
_ Con 18F458 ben phai nhan va hien thi ra port D
_ minh thuc hien mp phong tren Proteus voi mach nay minh mo phong I2C va PSP deu chay ok nhung ma Can thi minh bo tay roi so do mac mach minh co dinh kem
day la doan code phan phat
#include <18F458.h>
#fuses hs, nowdt, noprotect, put, nolvp, brownout
#use delay(clock=20000000)
#use rs232(baud=56000,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#include <can-18xxx8.c>
void main()
{
int32 tx_id=24;
output_d(0x00);
can_init();
can_putd(tx_id,0x00, 1, 1, 1, 1);
output_d(0xFF);
}
day la doan code phan thu
#include <18F458.h>
#fuses hs, nowdt, noprotect, put, nolvp, brownout
#use delay(clock=20000000)
#use rs232(baud=56000,parity=N,xmit=PIN_C6,rcv=PIN_C7)
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <can-18xxx8.c>

void main()
{
struct rx_stat rxstat;
int32 rx_id;
int in_data[8];
int rx_len;
can_init();
while(1)
{
can_getd(rx_id, &in_data[0], rx_len, rxstat);
output_d(in_data[0]);
}

}
mong may ban chi dum minh la minh mac mach co dung khong va phan code sai cho nao xin cam on rat nhieu (don gian nhu vay ma lam hoai khong chiu chay chan qua nen please help me)

falleaf
08-04-2006, 05:38 PM
Em làm vậy sao nó truyền được, em phải có con đệm chứ. CAN nó đâu có truyền trực tiếp như vậy. Anh đã gửi hai cái link trên kia chắc em chưa xem?

Chúc vui.

batbatdieu
09-05-2006, 09:39 PM
Em làm vậy sao nó truyền được, em phải có con đệm chứ. CAN nó đâu có truyền trực tiếp như vậy. Anh đã gửi hai cái link trên kia chắc em chưa xem?

Chúc vui.

:D chính xác , thiếu con đệm PCA82C250 hoậc dùng MCP2551 cũng đc

TTL
15-06-2006, 07:37 PM
Các bạn nào muốn làm giao ti61p với máy tính thì vào trang web này, khá hay đấy
http://beyondlogic.org/

doianhve
18-06-2006, 12:01 PM
Xin chào các sư huynh !Đệ tham gia diễn đàn khá lâu nhưng hôm nay mới có thể viết bài lên để gop vui chung với các huynh được.Thấy mọi người nói nhiều về USB đệ xin mạo muội có một vài ý kiến sau:
VB thừa sức viết được để nhận code từ USB thậm trí cả VC++.VC#,boland...Nhưng mà mã code của nó dài kinh khủng.
Khi viết cho USB nhận thấy hay tràn bộ nhớ ảo.(Chẳng hiểu vì sao chắc tại đệ kém quá).Nhưng bảo đảm vẫn chạy tốt.
À mà các huynh làm gì phải lo lắng tìm phần cứng mới viết phần mềm.cứ viết nhận dữ liệu qua đường USB thông qua con USB Mouse (60k) đỡ mất thời gian mà nó chắc chắn chạy đúng.

bien_van_khat
26-06-2006, 08:46 PM
Xin chào các sư huynh !Đệ tham gia diễn đàn khá lâu nhưng hôm nay mới có thể viết bài lên để gop vui chung với các huynh được.Thấy mọi người nói nhiều về USB đệ xin mạo muội có một vài ý kiến sau:
VB thừa sức viết được để nhận code từ USB thậm trí cả VC++.VC#,boland...Nhưng mà mã code của nó dài kinh khủng.
Khi viết cho USB nhận thấy hay tràn bộ nhớ ảo.(Chẳng hiểu vì sao chắc tại đệ kém quá).Nhưng bảo đảm vẫn chạy tốt.
À mà các huynh làm gì phải lo lắng tìm phần cứng mới viết phần mềm.cứ viết nhận dữ liệu qua đường USB thông qua con USB Mouse (60k) đỡ mất thời gian mà nó chắc chắn chạy đúng.

he he, xin lỗi trước nhé, tui muốn hỏi mấy câu, vì ngứa miệng í mà.

dùng VB để nhận từ USB, nhưng cụ thể bạn nhân cái gì? Vì giao thức USB chỉ là nền tảng, các thiết bị được xây dựng dựa trên cái nền ấy, mỗi thiết bị có một chức năng riêng dẫn tới cái gọi là giao thức thiết bị riêng. Thế mới sinh ra hàng đống class thiết bị + thêm cái vendor specified class, chắc mọi người hiểu các cụm từ này, tui ko dịch được.

Nhận hay truyền dữ liệu đều phải qua các driver, cái driver của bạn làm trung gian = 1 số các hàm mà nó hỗ trợ. Thí dụ driver của thằng microchip sau khi cài vào nó coi cái USB full-speed demo board là 1 file, tiếp đó microchip nó còn tốt bụng cung cấp thêm file MPUSBAPI.dll để giao tiếp với cái file này. Vậy vấn đề của user chỉ đơn giản là chơi với cái dll này = vài API vô cùng đơn giản. Vậy tui xài bất kỳ ngôn ngữ nào có hỗ trợ gọi API đều có thể giao tiếp được với hardware của tui một cách đúng nghĩa.

Ngoài ra còn có 1 cái driver open source + free đáng tiền khác là thằng USB lib. Cái lib này cũng cung cấp 1 dll để giao tiếp với driver của nó. Nhưng các API mà nó cung cấp thì gần với giao thức phần cứng, tức là đa dụng hơn, tui chưa thử nhưng tui nghĩ nó có thể giao tiếp với bất kỳ thiết bị USB nào. Vấn đề là phải nắm rõ cấu trúc của cái thiết bị cần giao tiếp + nắm giao thức.

Tiện tay đang có hứng viết luôn. Làm sao PC biết được thiết bị USB nào ứng với cái driver nào?
Khi bạn cắm thiết bị vào PC, 1 quá trình phức tạp diễn ra gọi là enumeration, mục đích là nhận dạng thiết bị. Sau quá trình này host có được vendor ID và product ID cùng với class ID của thiết bị. Hai giá trị VID và PID xác định duy nhất 1 dòng thiết bị vì vendor ID là duy nhất ứng với mỗi nhà sản xuất (muốn có phải đăng ký với USB.org + 1 ít money), product ID do nhà sản xuất gán. Nếu PC lục trong registry ko thấy cái VID + PID của thiết bị, nó sẽ load cái driver chung cho cái class của thiết bị, nếu class này được hỗ trợ, còn không nó bung cái popup hỏi driver đâu?

Mỗi driver sẽ được đính kèm 1 file .inf. Bên trong file này có 1 số thông tin về thiết bị, nhưng quan trọng nhất vẫn là thằng VID + PID. Nếu bạn sửa 2 cái này đúng với cái VID + PID của hardware, windows sẽ OK ngay lập tức, nhưng nó có chạy hay ko thì không biết.

falleaf
26-06-2006, 09:05 PM
Các bạn làm, giới thiệu tên, copy luôn mấy cái đó lên diễn đàn để mọi người dễ lấy. Nếu file quá lớn, không gửi lên diễn đàn được, gửi qua cho F, F sẽ đưa lên host. Và hiện nay chúng ta đã có host rồi, cứ post lên đó để share cho mọi người.

Chúc vui

bien_van_khat
29-06-2006, 01:11 AM
http://www.piccoder.co.uk/content/view/42/26/

Một đề tài khá đơn giản dựa trên firmware có sẵn của mc. Cần có .NET framework 1.1 để chạy phần mềm. Nếu muốn sử dụng với VB6 thì cần phải biên dịch lại file MPUSBAPI.dll

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en021940&part=DM163025

các công cụ phát triển USB 2.0 full speed của mc.


http://libusb-win32.sourceforge.net

driver mã nguồn mở, được cung cấp dưới GNU GPL.

http://pe.ece.olin.edu/ece/projects.html

Một proj về USB firmware cho PIC18F2455 của tiến sĩ Bradley A. Minch,. Đây có thể coi là firmware nhỏ nhất trong tất cả các USB firmware cho dòng PIC USB 2.0

À quên muốn nạp được bọn PIC USB các bác phải kiếm cái mạch ICD2
PGC2 ko chơi được, còn GTP USB thì ko biết, mấy bác kiểm tra dùm :D.

sphinx
29-06-2006, 12:36 PM
Chết! Sao em vẫn nạp được con 4550 bằng cái mạch PGC2 nhỉ! Em dùng Winpic bản mới nhất! Các bác kiểm chứng cho cái!:D (hay là nạp được nhưng không chạy, em chưa thử chạy vì chưa làm phần cứng:D)

phamthaihoa
29-06-2006, 04:04 PM
http://www.piccoder.co.uk/content/view/42/26/

Một đề tài khá đơn giản dựa trên firmware có sẵn của mc. Cần có .NET framework 1.1 để chạy phần mềm. Nếu muốn sử dụng với VB6 thì cần phải biên dịch lại file MPUSBAPI.dll


Có project hoàn toàn tương tự ở trang sixca, điều khiển động cơ bước, đọc AD. Muốn dùng với VB6 thì cần định nghĩa một số kiểu dữ liệu mới tương thích với kiểu dữ liệu của C++, tui đã làm kiểu này với Delphi.


http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en021940&part=DM163025
các công cụ phát triển USB 2.0 full speed của mc.

Bác giới thiệu cái này bằng thừa, bọn em nghèo lấy đâu tiền mua cái ấy :D
Mà chỉ nhìn là làm được cái tương đương :cool:


http://pe.ece.olin.edu/ece/projects.html
Một proj về USB firmware cho PIC18F2455 của tiến sĩ Bradley A. Minch,. Đây có thể coi là firmware nhỏ nhất trong tất cả các USB firmware cho dòng PIC USB 2.0

Cái này là dùng PIC USB 2.0 để làm USB 1.1 :confused:
Sở dĩ nó nhỏ là tác giả phát triển theo kiểu ngắt, khá giống với firmware Microchip cung cấp viết bằng HTPIC viết cho dòng 16C745.

Firmware USB 2.0 lớn bởi vì nó phát triển theo kiểu hỏi vòng.
Cái firmware của em phát triển theo kiểu hỏi vòng = HTPIC sau khi dịch ra là 2.5K, có to không nhỉ ?


À quên muốn nạp được bọn PIC USB các bác phải kiếm cái mạch ICD2
PGC2 ko chơi được, còn GTP USB thì ko biết, mấy bác kiểm tra dùm :D.

PG2C nạp tốt, GTP-USB cũng tốt, ICD2 thì càng tốt nữa :D

phamthaihoa
29-06-2006, 04:11 PM
Tiện tay đang có hứng viết luôn. Làm sao PC biết được thiết bị USB nào ứng với cái driver nào?
Khi bạn cắm thiết bị vào PC, 1 quá trình phức tạp diễn ra gọi là enumeration, mục đích là nhận dạng thiết bị. Sau quá trình này host có được vendor ID và product ID cùng với class ID của thiết bị. Hai giá trị VID và PID xác định duy nhất 1 dòng thiết bị vì vendor ID là duy nhất ứng với mỗi nhà sản xuất (muốn có phải đăng ký với USB.org + 1 ít money), product ID do nhà sản xuất gán. Nếu PC lục trong registry ko thấy cái VID + PID của thiết bị, nó sẽ load cái driver chung cho cái class của thiết bị, nếu class này được hỗ trợ, còn không nó bung cái popup hỏi driver đâu?

Mỗi driver sẽ được đính kèm 1 file .inf. Bên trong file này có 1 số thông tin về thiết bị, nhưng quan trọng nhất vẫn là thằng VID + PID. Nếu bạn sửa 2 cái này đúng với cái VID + PID của hardware, windows sẽ OK ngay lập tức, nhưng nó có chạy hay ko thì không biết.

Hỏi bác, nếu em cắm hai thiết bị có cùng VID, PID, phát triển theo cùng kiểu (Generic,HID,Mass Storage, CDC..) thì chuyện gì xảy ra ? :D


Vậy tui xài bất kỳ ngôn ngữ nào có hỗ trợ gọi API đều có thể giao tiếp được với hardware của tui một cách đúng nghĩa.


Câu này đúng, không cần quan tâm đến kiểu firmware USB chỉ cần quan tâm đến EP, xem cái nào là endpoint in, thông thường là EP1,2, là xong. Windriver làm kiểu này.

dunghpc
30-06-2006, 12:48 PM
Minh ban tat ca cac linh kien phuc vu dien dan
gia cua linh kien nhu sau:

Đơn giá/1c (Nghin dong)

Hàng nhập ngoại
1 SX18AC 75,000 VND
2 SX52BD 170,000 VND
3 SX8AC/DP 96,000 VND
4 SX Blitz 2,300,000 VND
5 LCD40x4 430,000 VND
7 PIC16F876 87,000 VND
8 PIC16F876A-I/SP 86,000 VND
9 PIC16F873 75,000 VND
10 PIC16CE625 25,000 VND
11 PIC16F627A 40,000 VND
12 PIC16F688 40,000 VND
13 PIC18F252 140,000 VND
14a PIC18F2320I/SP 120,000 VND
14b rfPIC12f675f (PIC phat song vo tuyen tan so 433MHz) 45,000 VND
14c RF MODULE - RXM - 433- LC -S (Modul thu song vo tuyen tan so 433MHz) 270,000 VND
15 DG419 DJ 53,000 VND
16 DS1307 51,000 VND
17 ADS1252 180,000 VND
18 ULN2803 15,000 VND
19 LTC1376 88,000 VND
20 LTC485 85,000 VND
21 LTC1966CMS8 87,000 VND
22 LTC1624 IS8 (Ổn áp nguồn Swiching) 120,000 VND
23 6N137 20,000 VND
24 AD9201 160,000 VND
25 AD7533 105,000 VND
26 AD7233 195,000 VND
27 AD7715 AN5 210,000 VND
28 CY7C429 170,000 VND
29 AM7201 220,000 VND
30 ICL8038 245,000 VND
31 IR2104 20,000 VND
32 48 MHz Oscilator 60,000 VND
33 73 M 223K (IC Modem hữu tuyến (thu phát sóng FSK)) 110,500 VND
34 LT1930i 86,000 VND
35 COP8 B1218BR8 HVA8 125,000 VND
36 ES2C (Diode dán) 10,000 VND
37 PANCE16V8H - 25 PC 49,000 VND
38 PLCC 44 (Đế cắm 44 chân) 45,000 VND
39 24LC256 (EEPROM) 55,000 VND
40 Max1104 87,000 VND
41 Max 758 87,000 VND
42 Max 4106 ESA 50,000 VND
43 74HC14 7,000 VND
44 74HC133 9,000 VND
45 74HC265 7,000 VND
46 74HC1004 5,000 VND
47 74HC138 5,000 VND
48 HCS410 50,000 VND
49 HMC1002 90,000 VND
50 HS1101 90,000 VND
51 TC1662 170,000 VND
52 TC962 60,000 VND
53 TC775 O. MOA 22,000 VND
54 PB 1P Plastic Project box 45,000 VND
55 GGD 01 Plastic Molded box 120,000 VND
56 TDA 5051 ATD 90,000 VND
57 MCP 602, MCP 6002 (8 chân) (Opam, khuếch đại) 25,000 VND
58 MCP 1525 (3 chân) (Ổn áp 2,5V) 30,000 VND
59 MCP 42010 (Chiết áp điện tử) 47,000 VND
60 SMP 04 EP 190,000 VND
61 TCF 40 - 18 TRI - Ultrasonic Presure (sensor siêu âm) 55,000 VND
62 85A 24000 (IC 20 chân) 11,000 VND
63 ISD 5116 (n/c âm thanh) 364,000 VND
64 LT 1801 110,000 VND
65 TCN75-5 (Sensor nhiet do) 25,000 VND
66 MC1450 12P - ND 44,000 VND
67 BC1333-ND (Sensor siêu âm) 244,000 VND
68 OPA 2703 91,000 VND
69 1,5 KE15 Cadict ND Surge Protector 15,000 VND
70 1,5 KE6.8 Cadict ND Surge Protector 16,000 VND
71 HE 200-ND 40,000 VND
72 EL 320256 - FD6 (màn hình tinh thể lỏng) 6,920,000 VND
73 SW Reg controler N-CH8 78,000 VND
74 Sensor thermal SPI SV8 SOIC 26,000 VND
75 595-THS1030CDW (IC đo lường 28 chân) 213,000 VND
76 LTC 2Y 20 CS8 120,000 VND
77 LTC 2Y 00 CS8 115,000 VND
78 HCPL 4562 40,000 VND
79 ES 2DTR 3,000 VND
80 SW Reg Step DN 48,000 VND
81 Camera 1,055,000 VND
82 Encoder E6 B2 CWZ 6C 2,450,000 VND

Co gi lien he voi minh
Vuong Anh Dung, phong dien tu, cong ty dien tu tin hoc Hoang Phat 34 - 36 Thai Thinh - Dong Da - Ha Noi
Dien thoai: 04 - 5373466
Fax : 04 - 5373440
Di dong : 0904182627
E - mail : dungva@hoangphat.com.vn

Co rat nhieu loai linh kien phuc vu cac ban minh chua dua het len nhu cac bong cong suat lon dieu khien cac dong co, cac sensor do am, bao chay... Tat ca cac linh kien tren duoc nhap truc tiep tu My, Anh, va Singapo ve, co giay hai quan nhap khau. Co gia uu dai voi khach hang co so luong lon

bien_van_khat
30-06-2006, 04:08 PM
Có project hoàn toàn tương tự ở trang sixca, điều khiển động cơ bước, đọc AD. Muốn dùng với VB6 thì cần định nghĩa một số kiểu dữ liệu mới tương thích với kiểu dữ liệu của C++, tui đã làm kiểu này với Delphi.

cai API trong MPUSBAPI.DLL ko xai voi VB6 duoc vì calling convention ko phù hợp. Bắt buộc phải modify source rồi compile lại.


Bác giới thiệu cái này bằng thừa, bọn em nghèo lấy đâu tiền mua cái ấy :D
Mà chỉ nhìn là làm được cái tương đương :cool:


Cai do la` software ko phải hardware, hardware thì làm dễ òm.


Cái này là dùng PIC USB 2.0 để làm USB 1.1 :confused:
Sở dĩ nó nhỏ là tác giả phát triển theo kiểu ngắt, khá giống với firmware Microchip cung cấp viết bằng HTPIC viết cho dòng 16C745.

bạn thử đọc source 1 lần đi. Tui chưa thấy 1 cái fw nào viết =C18 cho bọn PIC USB 2.0 mà dùng ngắt hết.

PG2C nạp tốt, GTP-USB cũng tốt, ICD2 thì càng tốt nữa :D

hì ko xài winpic800 bao giờ nên ko biết. ICD muôn năm.

bien_van_khat
30-06-2006, 04:15 PM
Hỏi bác, nếu em cắm hai thiết bị có cùng VID, PID, phát triển theo cùng kiểu (Generic,HID,Mass Storage, CDC..) thì chuyện gì xảy ra ? :D


Tùy vào phần mềm của bạn xử lý, vì lúc đó có 2 instance của thiết bị. Bạn sẽ phải chọn instance nào chứ có gì đặc biệt đâu. Bạn cắm 2 cái USB flash disk y chang nhau vô cùng 1 máy thì nó vẫn chạy đó thôi.

Hà hà đúng là cao nhân bất lộ tướng, có lẽ sẽ còn nhiêu nhân vật xuất hiện tiếp theo.

Ngoc Du
17-07-2006, 01:53 AM
Hỏi bác, nếu em cắm hai thiết bị có cùng VID, PID, phát triển theo cùng kiểu (Generic,HID,Mass Storage, CDC..) thì chuyện gì xảy ra ?

Hai thiết bị của cùng một nhà sản xuất và có cùng Product ID thì dùng chung driver chứ sao nữa. Các thiết bị này do được gán địa chỉ khác nhau và USB là bus dùng chung nên tại một thời điểm chỉ có một thiết bị được phép giao tiếp với host và việc máy tính giao tiếp với các thiết bị tất nhiên sẽ chẳng gặp rắc rồi gì.

dohoangnam
20-07-2006, 03:56 PM
Đề tài về cái USB này hay đấy! Anh em nên tập trung vào làm mạnh cái này này, tương lai (mà ngay bây giờ) vô số cái đụng đến USB. Anh em nào có code hay sản phẩm cụ thể nào ứng dụng USB2.0 rồi post lên làm "quà tặng" hay khởi đầu để anh em nhào dô nhé!!!
Thân.

thuyanh
31-10-2006, 10:53 AM
Mỗi driver sẽ được đính kèm 1 file .inf

?
:eek:


Nếu bạn sửa 2 cái này đúng với cái VID + PID của hardware, windows sẽ OK ngay lập tức, nhưng nó có chạy hay ko thì không biết.

Đảm bảo khi windows nhận được thiết bị (tức là phần điểm danh của bạn ok) thì sẽ chạy, ổn định là cái chắc. Kiểm nghiệm rùi. Cái vấn đề tui muốn là viết mớtci driver và cái fw riêng. hummmm. mới cao hứng nghĩ thế thôi, có ai có kinh nghiệm và hướng mong gợi ý giúp.
:D

thuyanh
31-10-2006, 11:03 AM
bạn thử đọc source 1 lần đi. Tui chưa thấy 1 cái fw nào viết =C18 cho bọn PIC USB 2.0 mà dùng ngắt hết.


:eek:
Tui thấy việc viết fw thực ra là viết giao thức để truyền nhận các khung tin giữa mạch USB và Host USB, để Host điển danh, nhận thiết bị, rồi thì windows biết và quản lý mạch USB của mình... Cái fw trên PIC ý, là sử dụng ngắt USB của PIC. Tất nhiên có nhiều cách để viết fw, tùy vào mục đích, chức năng của thiết bị USB các bác làm. Thiết nghĩ ,chỉ đoen thuần tổng hợp cách viết fw theo 2 kiểu: dùng ngắt USB trên PIC (tui thấy phương pháp này tiện hơn) và dùng kiểu lập lịch hỏi vòng (thiết nghĩ pp này hơi phí).

bien_van_khat
01-11-2006, 10:31 PM
bạn thử đọc source 1 lần đi. Tui chưa thấy 1 cái fw nào viết =C18 cho bọn PIC USB 2.0 mà dùng ngắt hết.

Bữa post rồi, bị mất bài, nay làm lại. Câu trên này bvk sai. Ngắt hay ko ngắt chỉ là kt viết chương trình, hôm trước ăn thua với PTH nên viết ẩu quá.


Thiết nghĩ ,chỉ đoen thuần tổng hợp cách viết fw theo 2 kiểu: dùng ngắt USB trên PIC (tui thấy phương pháp này tiện hơn) và dùng kiểu lập lịch hỏi vòng (thiết nghĩ pp này hơi phí).

Tất nhiên thiết kế chương trình theo hướng bất đồng bộ thì bạn ko mất thời gian cho CPU hỏi vòng nhưng bù lại chương trình bạn phải viết cực hơn. Dù gì mà nói nếu mình chỉ chú trọng vào code để xử lý giao tiếp chẳng hạn thi cứ hỏi vòng cho khỏe. Khi code đã chạy tốt rồi thì chuyển qua cũng dễ.

Có mấy điều tớ thấy thế này
1 - Nếu bạn đã tham gia diễn đàn này có nghĩa là bạn có khuynh hướng theo về phần cứng, như vậy tớ nghĩ công việc viết fw phù hợp hơn với bạn.
2 - Tớ ko rõ lắm nhưng có thể chắc chắn một điều là phát triển driver rất phức tạp, việc debug nó chẳng đơn giản chút nào.
3 - Dù ko tự viết nhưng bạn vẫn có thể dùng driver open source, hoặc viết theo class HID

thuyanh
02-11-2006, 10:29 AM
3 - Dù ko tự viết nhưng bạn vẫn có thể dùng driver open source, hoặc viết theo class HID

DÙ cũng đã tìm hiểu về truyền tin USB, nhưng tớ mới chỉ dừng lại ở bước nạp mấy cái fw và dùng Tiousb chạy. Quả thực là mạch chạy hơi bị ổn. Có thể giới thiệu giúp tớ một chút về HID không?, hay windriver ? Có vẻ như windriver hứa hẹn nhiều lợi ích hơn.
Mong tin

bien_van_khat
07-11-2006, 07:31 PM
Windriver thì cậu tự mò đi. Trong tailieuvietnam có đó. Còn HID chỉ là 1 lớp thiết bị mà bọn USB.org nó định nghĩa ra, nghĩa là nó là chuẩn, microsoft nó cung cấp sẵn driver cho windows ròi. Cứ viết cho đúng, cắm vô là chạy vô tư, chẳng phải lo driver gì hết.

mà Tiousb là cái gì thế nhỉ?