bạn gì đó ơi, bạn có thể post sơ đồ mạch LT của mạch giao tiếp usb cho mình ko (sơ đồ trong TUT chưa đầy đủ thì phải). Và bạn cho mình hỏi cái TUT của bạn là làm giao tiếp usb, nhưng ứng dụng cụ thể của cái bạn làm là gì ? Nếu mình muốn giao tiếp với chuột or bàn phím dùng lớp hid, thì bạn có thể nói cho mình bik các bước thực hiên ko ( như sơ đồ mạch, cách viết firmware và xài 1 số phần mềm cần thiết có sẵn ). Thanks
Thông báo
Collapse
No announcement yet.
[TUT]Hướng dẫn giao tiếp USB với PIC18F
Collapse
This is a sticky topic.
X
X
-
Trong TUT này mình chỉ làm một ví dụ đơn giản về truyền dữ liệu qua USB, từ đó bạn có thể ứng dụng trong các thiết bị để thay thế các chuẩn truyền thông cũ như RS232, còn về phần nguyên lý thi như thế là khá đầy đủ cho một ứng dụng nhỏ rồi, ban chỉ cần chú ý các điểm sau:
- mach nguon, thạch anh, tu, tro treo chan RST --> đảm bảo cho con chíp của bạn chạy được.
- dây D+ và D- dây GND của cổng USB nối chung với GND nguồn.
- tụ dàng cho chân VUSB.
nếu bạn muốn làm với các ứng dụng của chuôt và fim thì có thể tham khảo các example có sẵn trong PICC.
Comment
-
thanks bạn, ai cũng nói nên tham khảo example của picc, nhưng vấn đề là mình vẫn chưa hình dung ra ứng dụng khi giao tiếp với chuột or bàn phím là ntn? Thế này nhé, trong picc có 1 example, và ứng dụng là làm con trỏ chạy vòng vòng trên màn hình( theo như 1 bạn đã HD trong topic mô phỏng usb dùng proteus), Nhưng đương nhiên là mình muốn làm 1 ứng dụng khác chứ ko phải chỉ là cho con trỏ chạy vòng vòng, bạn có thể cho mình 1 gợi ý hay định hướng ko ? ( vì mình hiện đang rất mơ hồ và ko biết nên làm ứng dụng từ đâu, mặc dù về lý thuyết mình đã đọc "usb in a nutshell" nên cũng nắm sơ dc rồi).
Mình có thể mô phỏng trên proteus các ứng dụng kiểu này dc ko? ( dưạ trên lớp hid nên chắc ko cần viết driver và mình cũng muốn mô phỏng xong xuôi mới dám làm mạch thiệt). À, còn về giao diên , mình có cái dở là biết C++ nhưng ko biết xài VC++ . Mong bạn có thể nói kĩ 1 chút, vì mình còn nhiều cái chưa bik , khi tham khảo trên web thì thấy ng ta nói nhiều về thư viện này nọ, như API xài cho lớp hid, nhưng mình ko bik nó là gì và cách tiếp cận ra sao. mình hy vọng có thể làm dc 1 mạch ứng dụng usb nho nhỏ dưạ trên lớp hid mà vẫn loay hoay về các bước thực hiện . Và cũng ko bik làm sao để hiểu và phát triển ứng dụng trên code có sẵnLast edited by phuongdua; 24-02-2010, 08:26.
Comment
-
Nguyên văn bởi hung_nguyen Xem bài viếtHIHI!vấn đề về giao tiếp USB đã có nhiều luồng bàn luận nhưng tôi thấy đa số các luồng đều chỉ bàn về một phần trong cả một project về USB, và chủ yếu là dùng driver, thư viện lập trình giao diện có sẵn của nhà sản xuất vì thế rất khó khăn khi ta muốn giao tiếp USB mà dùng loại chíp khác. Còn tài liệu thì chưa thât sự tỷ mỷ nên nhưng người mới học khó tiếp cận được đặc biệt là các sinh viên. Với mục đính hướng dẫn tốt nhất cho các bạn mới học có thể nhanh chóng tiếp cận tôi xin mở ra một luồng mới hy vọng được sự quan tâm của tất cả các bạn.
Trong tài liệu hướng dẫn này tôi đã chỉ ra cho các bạn cách làm phần cứng, viết fimware, tạo driver và viết một giao diện đơn giản trên máy tính. Mong rằng có nó sẽ giúp ích cho tất cả ai muốn làm về USB. Phần mềm mà tôi sử dụng đó là:
- CCS
- Windriver 9.21
- visual studio 2005
tài liệu này đuợc viết khi tôi làm Project nó được tổng hợp từ nhiều nguồn tài liệu, do kiến thức còn hạn chế nên có thể sẽ có sai sót mong đuợc sự chỉ giáo của tất cả các bạn từ đó xây dựng lên một tài liệu phổ thông nhất để càng ngày càng có nhiều người làm đuợc giao tiếp USB. thân ái!
down ở đây! đọc xong làm ngay..). Tại em đang cần gắn nhiều con cùng lúc.
Comment
-
Máy tính không nhận đc USB 18f4550
Hiện đang làm đề tài về giao tiếp qua USB bằng 18f4550,chạy trên proteus ngon lành rùi,trong manager computer báo nhận thiết bị,nhưng khi em cắm trên testboard thì không nhận đc,cũng có lúc nó báo USB not recognized,em nghe noí nếu đúng thì chân Vus là 3.3V phải không,nhưng em đo thì không có Vôn nào cả,em kiểm tra dây rợ khá kĩ rùi,nhưng em chỉ dùng tụ 1uF ở chân Vusb thui chứ không phải 470nF,không biết có sao khônh?em dùng thạch anh trên thực tế là 12Mhz và 2 tụ 22pF,các chân D+ và D- đã nối vô 24 và 23,2 bên Vss và Vdd cũng đã nối với nhau,đo các chân này đều lên 5V,em post code máy anh xem có vấn đề ji không,
#include "usb_demo_bulk.h"
#include <pic18_usb.h>
#include <usb_desc_scope1.h>
#include <usb.c>
#include <lcd4bit.c>
void usb_debug_task(void)
{
static int8 last_connected;
static int8 last_enumerated;
int8 new_connected;
int8 new_enumerated;
new_connected=usb_attached();
new_enumerated=usb_enumerated();
if (new_connected && !last_connected)
printf("\r\n\nUSB connected, waiting for enumaration...");
if (!new_connected && last_connected)
printf("\r\n\nUSB disconnected, waiting for connection...");
if (new_enumerated && !last_enumerated)
printf("\r\n\nUSB enumerated by PC/HOST");
if (!new_enumerated && last_enumerated)
printf("\r\n\nUSB unenumerated by PC/HOST, waiting for enumeration...");
last_connected=new_connected;
last_enumerated=new_enumerated;
}
void main()
{
int8 out_data[3];
int8 in_data[64];
int8 i=0;
char c;
int8 send_timer=0;
int8 count=0;
setup();
usb_init_cs();
lcd_init();
while (TRUE)
{
usb_task();
usb_debug_task();
if(usb_enumerated())
{
if (!send_timer)
{
count++;
send_timer=250;
out_data[0]=100;
out_data[1]=111;
out_data[2]=233;
if (usb_put_packet(1, out_data, 3, USB_DTS_TOGGLE))
printf("\r\n<-- Sending 2 bytes: 0x%X", out_data[0]);
}
if (usb_kbhit(1))
{
usb_get_packet(1, in_data, 64);
lcd_putc("\f");i=0;
for(;i<32;i++)
{
if(i==15) lcd_putc("\n");
c=in_data[i];
lcd_putc(c);
}
//printf("\r\n--> Received data: %s",in_data);
}
send_timer--;
delay_ms(1);
}
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <18F4550.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES EC_IO //External clock
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES BORV20 //Brownout reset at 2.0V
#FUSES NOPUT //No Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES PBADEN //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#FUSES NOMCLR //Master Clear pin enabled
#FUSES LPT1OSC //Timer1 configured for low-power operation
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL3 // PLL PreScaler 3
#FUSES USBDIV
#FUSES VREGEN
#FUSES CPUDIV1
#FUSES HS
#DEFINE USB_HID_DEVICE FALSE
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1 for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK //turn on EP1 for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE 64 //size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE 64 //size to allocate for the rx endpoint 1 buffer
#use delay(clock=12000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)
void setup()
{
setup_adc_ports(AN0|VSS_VDD);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_low_volt_detect(FALSE);
setup_oscillator(False);
}
Còn ,mấy file kia em nghĩ không có gì quan trọng,mọi người xem giúp
Comment
-
-
giao tiếp 18f4550 với usb
em đã làm 1 mạch in thực hiện giao tiếp qua usb giữa 18f4550 với Pc,firmware đã có đảm bảo đúng 100%,em đã mắc tụ vô chân Vusb,D- cổng usb với D+ Pic và ngược lại,nhưng nó không hoạt động,nhưng khi em dùng đồng hồ VOM đặt vào 2 chân D+ Pic với chân VCC thì thấy nó báo USB not recognized,mình nghĩ phải có điện trở trong mạch này,bạn nào có kinh nghiệm ji chỉ mình voi
Comment
-
Chào mọi người
Hiện tại tớ chưa có phần cứng PIC nên chi mô phỏng bằng proteus, mô phỏng máy báo found new hardware nhưng lại không có driver.
Và khi mở file project_usb_4550.sln máy báo Unable to load DLL 'wdapi921.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
mong các bạn cho biết cách khắc phục.
tớ đang cần driver:
1. project_usb_4550_lib.dll
2. wdapi_dotnet921.dll
3. driver cho máy tính
Chúc mọi người vui vẻ.Last edited by newbie2009; 22-06-2010, 16:35.
Comment
-
chào các bác , em đang tập làm giao tiếp USB , em làm theo hướng dẫn không hiểu sao khi em biên dịch CCS lại báo lỗi này
A #DEVICE required before this line
Kiểm tra lỗi thì nó hiện ra file usb_hw_layer.h ở dòng
enum USB_DTS_BIT {USB_DTS_DATA1=1, USB_DTS_TOGGLE=2, USB_DTS_DATA0=0,
USB_DTS_STALL=3, USB_DTS_USERX=4};
mong các bác có thể giải thích giúp em lỗi này ko ạ ! thankMr. Danh Le Tran
Email:
Comment
-
to RTKP:
lỗi đó là do include file "usb_demo_bulk.h" sai đường dẫn, kiểm tra lại chỗ đó.
to newbie2009:
chạy mô phỏng khác xa nhiều so với chạy thực tế-->> bạn nên làm mạch luôn, rồi làm theo sẽ tốt hơn, tớ nghĩ cứ làm theo hướng dẫn trong luồng này sẽ chạy thôi ( tớ chưa làm nên chưa biết, nhưng thấy nhiều bạn ủng hộ chắc là làm chạy rồi
).
tớ cũng đang chuẩn bị làm ...
----^..^----
Comment
-
Hi all!
Tớ mới viết 1 phần mềm nhỏ giao tiếp USB, mời các bác xem thử.
Ban đầu viết bằng C# không được, nên chuyển sang viết bằng VB6. (nên máy phải cài VB6 mới chạy được).
Không cần driver cho Pic18f4550, nạp firm cắm vào máy tính là tự nhận-->tự cài driver luôn ( rất tiện).
Trong chương trình có schematic luôn...
File đính kèm gồm:
1. PIC18F4550 USB Control led_VB6.exe
2. PIC18F4550 USB Control led_Xtal12Mhz.hex
3. PIC18F4550 USB Control led_Xtal20Mhz.hexAttached FilesLast edited by chuotdientu; 26-07-2010, 19:53.
----^..^----
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi vi van phamUống rượu 1 mình, thấy trang này nhớ lại cách đây vài chục năm hàn thiếc với inox cực kỳ khó, phải dùng acid Hcl tác dụng lên kẻm Zn để có Zncl2 làm thuốc trợ hàn, lúc đó làm gì có acid Hcl và thuốc trợ hàn?
Cái khó bó cái...Hôm qua, 23:05 -
Trả lời cho Tiếng Anh cho người Việtbởi nhathung1101Nếu chú tâm thì học tiếng Việt cũng đủ rồi, thừa sức làm việc rồi.
Học tiếng Anh cũng chỉ phụ trợ để đọc thêm tài liệu, hướng dẫn.
Nhưng có hiểu điều đó không mới là vấn đề. Khi mà học ngoại ngữ để đi đạp xích lô đón khách???...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 21:27 -
-
bởi xenopus123Cần hỗ trợ mạch đồng hồ vạn niên 89c52 ds1302 ds18b20 dùng 16 led 7 đoạn
-
Channel: Hỗ trợ học tập
Hôm qua, 21:24 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi nhathung1101Nhìn kỹ hàng đi cu. Chứ ra đường cứ thấy đàn bà rồi bảo:
- Tôi cũng có vợ như thế....
Đảm bảo cu nát người luôn....-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 21:04 -
-
Trả lời cho tìm mua đồng hồ vạn năngbởi matnetgia99Ồ, cái này mình cũng có nè, có ai mua không, đồ cũ dùng từ năm 2008, hư 1 2 giai gì đấy bỏ xó hơn năm nay...
-
Channel: Điện tử dành cho người mới bắt đầu
17-02-2025, 14:40 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
17-02-2025, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
17-02-2025, 01:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vấn đề là thu ánh sáng rồi phát ra ánh sáng cơ. Hồi mẫu giáo cô bảo đừng làm, lão không nhớ à?
Tốt nhất im mồm....-
Channel: Điện tử công suất
17-02-2025, 01:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
-
Channel: Tâm tình dân kỹ thuật
14-02-2025, 16:15 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanỞ đtvn này mới biết đến 2 loại mạch
1 step down
2 step up
Bây giờ anh lưu vong làm thuê bên nước lạ còn làm ra cái mach vừa up vùa dow luôn.
Tính chất là:
1 Đầu vào bằn ra cho nối thẳng
2 Đầu vào cao hơn...-
Channel: Điện tử công suất
14-02-2025, 00:51 -
Comment