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..
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
-
bởi SchwarberyAs we take nearer and nearer toward the get started of the 2022-2023 period, pundits are gearing up with period previews and thorough assessments. Listed here at St. Louis Match Year, the divisional preview is inside of the functions as is a function-down of where by media voices come to feel the Blues...
-
Channel: Xu hướng, nhu cầu và thị trường
hôm nay, 16:59 -
-
bởi SchwarberyThe Have to have in the direction of KnowsTime: 6:00 pm PT / 9:00 pm ETThe Area: Rogers Vacation spot within Edmonton, AlbertaWhere in direction of Perspective: ROOT-NW inevitably again toward our nearby workforce!) or ESPN+ if out of marketWhere in direction of Hear: KJR 93. 3Comprehend Your EnemyIf...
-
Channel: Góp ý cho diễn đàn
hôm nay, 16:59 -
-
bởi SchwarberyNashville Predators Information NotesNashville Predators 4, Chicago Blackhawks 2: Josi sets heritage within just potent workers earn | Upon The ForecheckICYMI: Adhere faucets for El Capitan upon turning into the franchise chief in just Hockey Information NotesIs Carolina Hurricanes GM Dress in Waddell...
-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 16:58 -
-
bởi SchwarberyAnaheim DucksMarch 18: Center Sam Metallic is again at the time misplaced 3 video games with a facial CoyotesMarch 14: Remaining winger Antoine Roussel consists of been positioned upon hurt guide with a very low-system problems. Defenceman Jakob Chychrun consists of been sidelined indefinitely with...
-
Channel: Hỗ trợ học tập
hôm nay, 16:58 -
-
bởi SchwarberyThe Canucks incorporate entered the entertaining aspect of the calendar year. The chill out of December is loaded with Western convention competition. Every single recreation is a 3 or 4 reality swing inside of the standings. The final sport in opposition to the Wild was.. https://www.shopvancouver...
-
Channel: Góp ý cho diễn đàn
hôm nay, 16:56 -
-
Trả lời cho Hỏi xin sơ đồ tivi các loạibởi Trân thànhCần các Bạn giúp sơ đồ Lcd Samsung UA40JU6400 và UA43ku6500k. Xin cảm ơn!...
-
Channel: Điện tử truyền hình
Hôm qua, 16:07 -
-
Trả lời cho Hỏi xin sơ đồ tivi các loạibởi Trân thànhCần các Bạn giúp sơ đồ Lcd Samsung UA40JU6400 và UA43ku6500k. Xin cảm ơn!...
-
Channel: Điện tử truyền hình
Hôm qua, 16:01 -
-
bởi chinhnguyen9Hoạt động của thế hệ mạch cân bằng trước đây dựa trên nguyên lý so áp giữa 2 string liền kề. Hoạt động cân bằng chỉ kích hoạt khi sự chênh lệch vượt ngưỡng 100mV và ngưng hoạt động khi mức chênh lệch giảm xuống còn 30mV. Bản...
-
Channel: Điện tử dành cho người mới bắt đầu
27-04-2024, 05:07 -
-
bởi chinhnguyen9Xem hình minh họa có phần thuyết minh bên trong tiện việc quan sát và đọc thuyết minh. Khi G1 high dòng điện chạy theo các đường màu đen khi G2 high dòng điện chạy theo các đường màu nâu đỏ.
Bổ sung một tính chất củng cố cho tên gọi tụ bay: Trong mạch đề cập chỉ...-
Channel: Điện tử dành cho người mới bắt đầu
26-04-2024, 21:02 -
-
bởi chinhnguyen9Sản phẩm này ghi version 2.0 01-2024 MADE IN CHINA nhưng không thấy thương hiệu hình 1
Do 8 chân G của 8 mosfet được đấu song song thành 2 nhóm nên có cùng biên độ xung kích 12V. Nhưng Q1 và Q2 nằm cuối dãy, chân S cùa chúng có điện áp DC cao đến...-
Channel: Điện tử dành cho người mới bắt đầu
26-04-2024, 20:37 -
Comment