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 Bài Trong Ngày 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 07-01-2006, 09:12 PM   #1
nt++
Nhập môn đệ tử
 
Tham gia ngày: Dec 2005
Bài gửi: 1
:
giao tiếp pc và pic qua usb

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
nt++ vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-02-2006, 08:30 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
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ọ.
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-02-2006, 11:35 PM   #3
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-04-2006, 12:28 PM   #4
hanhluckyly
Đệ tử 4 túi
 
hanhluckyly's Avatar
 
Tham gia ngày: Mar 2006
Bài gửi: 83
:
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)
hanhluckyly vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-04-2006, 01:51 PM   #5
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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.

thay đổi nội dung bởi: falleaf, 05-04-2006 lúc 01:53 PM.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2006, 10:07 AM   #6
hanhluckyly
Đệ tử 4 túi
 
hanhluckyly's Avatar
 
Tham gia ngày: Mar 2006
Bài gửi: 83
:
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
hanhluckyly vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2006, 11:16 AM   #7
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2006, 03:36 PM   #8
hanhluckyly
Đệ tử 4 túi
 
hanhluckyly's Avatar
 
Tham gia ngày: Mar 2006
Bài gửi: 83
:
Trích:
Nguyên văn bởi falleaf
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)
Hình Kèm Theo
File Type: jpg hinhmpCan.jpg (67.4 KB, 216 lần tải)
hanhluckyly vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2006, 05:38 PM   #9
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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.
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-05-2006, 09:39 PM   #10
batbatdieu
Đệ tử 4 túi
 
Tham gia ngày: May 2005
Bài gửi: 83
:
Trích:
Nguyên văn bởi falleaf
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.
chính xác , thiếu con đệm PCA82C250 hoậc dùng MCP2551 cũng đc
batbatdieu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-06-2006, 07:37 PM   #11
TTL
Đệ tử 3 túi
 
Tham gia ngày: Jun 2006
Bài gửi: 50
:
Unhappy Giao tiếp qua các cổng

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/
TTL vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-06-2006, 12:01 PM   #12
doianhve
Đệ tử 2 túi
 
Tham gia ngày: Feb 2006
Bài gửi: 44
:
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.
doianhve vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-06-2006, 08:46 PM   #13
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi doianhve
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.
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-06-2006, 09:05 PM   #14
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
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
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-06-2006, 01:11 AM   #15
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
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/id...&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 .

thay đổi nội dung bởi: bien_van_khat, 29-06-2006 lúc 01:20 AM.
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 09:10 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