|
Tài trợ cho PIC Vietnam |
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 |
07-08-2008, 02:15 AM | #1 |
Super Moderator
Tham gia ngày: Feb 2006
Bài gửi: 150
: |
Hướng dẫn làm USB<->RS232 để debug chương trình
Hiện nay mọi người sử dụng máy laptop cũng nhiều, mỗi lần viết chương trình cho PIC mà bị lỗi thì không cách nào mà lần với cái LCD bé tí tẹo, còn kết nối với máy tính qua RS232 để debug bằng Terminal cũng không được khi mà máy tính không có cổng com. Giải pháp là dùng chip chuyển đổi RS232 <-> USB để có thể dùng Terminal để debug thông qua USB. Nhưng mà chip này chỉ có mỗi chức năng chuyển đổi, ngoài ra, những yêu cầu khác như giao tiếp i2c, spi ... thì không có. Vậy tại sao không làm 1 thiết bị debug hoàn chỉnh, chuyển đổi USB <->RS232 tận dụng Terminal trên Win, và các giao tiếp khác của PIC. Các bạn có thể sử dụng PIC18F2550 hay PIC18F4550. Các bước cần thực hiện như sau:
Thiết kế phần cứng: vẽ mạch nguyên lý như sau, ở đây mình vẽ bằng Orcad, mạch đơn giản chỉ là chuyển đổi USB<->RS232 Các bạn có thể thêm vào đó I2C hay SPI hay Program thì tùy, Sau này nếu cần debug từ các PIC khác, chỉ việc nối TX và RX tương ứng với RX và TX. Còn về phần mềm, đơn giản là dùng ex_usb_serial.c của CCS C trong thư mục Examples của thư mục cài đặt CCS C[C:\Program Files\PICC\Examples], không cần sửa gì nhiều, bạn dùng thạch anh nào thì hiệu chỉnh cho đúng, ở đây mình dùng thạch anh 4Mhz, nên hiệu chỉnh như sau: Bạn có thể lược bỏ bớt những phần không cần thiết trong chương trình, đoạn code của CCS chỉ sử dụng để chuyển đổi USB<->RS232, nhưng tùy bạn có thể hiệu chỉnh nó và dùng Terminal để chuyển thành cái gì thì tùy PHP Code:
Sau đó cắm vào máy tính thì nó hỏi driver, bạn làm như sau: Và bây giờ bạn có thể viết bất kì ứng dụng nào với cổng COM ảo đã được tạo, nếu muốn, bạn có thể hiệu chỉnh sơ sơ, mình không có cổng COM vật lý nào, nên chỉnh cho cổng COM ảo này thành cổng COM1 và dùng terminal để debug, như sau: Quả thật là tiện lợi, nhỏ gọn và làm được nhiều thứ để gỡ rối chương trình, chúc các bạn thành công |
08-08-2008, 10:19 AM | #2 |
Đệ tử 3 túi
Tham gia ngày: Jun 2007
Bài gửi: 50
: |
Bài viết của bạn rất hay, nhân tiện mình xin được post bài tương tự nhưng bạn sẽ làm việc với PIC8F2550. Cách làm ở đây hoàn toàn tương tự như đối với 18F4550, nhưng các bạn có thể load về tham khảo thêm, hy vọng sẽ giúp ít được cho các bạn đang mong muốn làm việc với USB_CDC.
|
08-08-2008, 10:48 AM | #3 |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 146
: |
đây đúng là 1 bài viết rất giá trị với các thành viên của PicVN
__________________
mạch nạp - kit phát triển - linh kiện điện tử www.PNLabvn.com |
13-08-2008, 12:16 AM | #4 |
Đệ tử 1 túi
Tham gia ngày: Nov 2007
Bài gửi: 14
: |
vậy làm sao đọc đc file hex, nó chuyển về máy tính toàn số ko sao đọc đc nếu đọc đc chì em với
|
26-06-2009, 09:10 PM | #5 |
Đệ tử 3 túi
Tham gia ngày: Jun 2008
Bài gửi: 51
: |
Tại sao ko tu lam cái USB<=>RS232 đơn giản chỉ tốn khoảng chừng 35k
- 1 PL2303HX (22k) - 1 thạch anh 12MHz (2k); - vài cái tụ (2k) - vài con điện trở. (2k); - 1 USB connect. ( 3.5k); |
26-06-2009, 10:59 PM | #6 | |
Đệ tử 7 túi
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
: |
Trích:
Tui cũng đã từng lấy cable DKU5 (cable nokia) độ lại để nạp philip . Bên trong đầu chuyển của cable DKU5 cũng có con PL2303 . |
|
30-06-2009, 02:58 AM | #7 |
Đệ tử 6 túi
Tham gia ngày: Jan 2007
Bài gửi: 127
: |
đây là schematic và PCB.
|
30-06-2009, 10:28 AM | #8 |
Đệ tử 1 túi
Tham gia ngày: Jun 2009
Bài gửi: 20
: |
em xai` latop nen viec lien ket qua cong com ko dc bac nao` giup voi.e moi vao` nghe` dc may ngay rui`.hihi.mong cac bac giup do~ nhiu` cho.thanks !
|
22-07-2009, 06:50 PM | #9 |
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 3
: |
Trên trang này cũng có hướng dẫn 1 mạch USB > RS232 đơn giản nè, ko cần driver, chỉ sử dụng 1 con AVR 8 chân
http://www.recursion.jp/avrcdc/ |
04-10-2009, 08:17 AM | #10 |
Đệ tử 6 túi
Tham gia ngày: Jul 2009
Bài gửi: 152
: |
Không biết có ai biết có con PIC nào hỗ trợ là luôn USB --> COM đầy đủ tất cả 9 chân cổng COM để có thể giao tiếp nhiều chế độ.
|
25-07-2010, 10:10 AM | #11 | |
Nhập môn đệ tử
Tham gia ngày: Jul 2010
Bài gửi: 1
: |
Trích:
Tiện đây cho mình hỏi bạn một chút, mình muốn sử dụng usb to rs232 để kết nối giữa máy tính sách tay ACER và UPS thì phải làm những gì, mua dây ở đâu thì đảm bảo về chất lượng? |
|
05-09-2011, 09:25 PM | #12 |
Nhập môn đệ tử
Tham gia ngày: Aug 2011
Bài gửi: 5
: |
anh chủ thớt ơi, mấy image của anh bị die rồi ạ.
Em muốn hỏi một chút ạ, em dùng mẫu của ccs để code cho cái usb to rs232. Nhưng khi cắm vào thì máy tính thì không có gì xảy ra cả, máy tính ko hỏi driver, pic cũng ko chạy. Em kiểm tra thì mạch vẫn có điện chạy tốt Em dùng máy win7 64 bits ạ. Cái proteus thì ko dùng đc vì driver usb ảo của proteus ko chạy trên 64 bit nên em chỉ có cách làm mạch rồi test. Giờ nản quá... Code em đây ạ: #include <18F4550.h> #device adc=8 #include <usb_cdc.h> #FUSES NOWDT //No Watch Dog Timer #FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale #FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD #FUSES NOPROTECT //Code not protected from reading #FUSES NOBROWNOUT //No brownout reset #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 MCLR //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 PLL5 //Divide By 12(48MHz oscillator input) #FUSES CPUDIV4 //System Clock by 4 #FUSES USBDIV //USB clock source comes from PLL divide by 2 #FUSES VREGEN //USB voltage regulator enabled #FUSES ICPRT //ICPRT enabled #FUSES HS #use delay(clock=20000000) void main() { setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_CLOCK_DIV_2); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); 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_Oscillator parameter not selected from Intr Oscillator Config tab char c; // init usb port to rs232 usb_cdc_init(); usb_init(); // Test interface: // Test USB output_low(PIN_D0); while (TRUE) { usb_task(); //usb_debug_task(); if (usb_cdc_kbhit()) { c=usb_cdc_getc(); output_toggle(PIN_D1); } } |
07-09-2011, 12:53 PM | #13 |
Nhập môn đệ tử
Tham gia ngày: Aug 2011
Bài gửi: 5
: |
hic có ai giúp em được không ạ, em dùng Win7 64 bits, khi code xong USb - rs232 cho pic18f4550. Lắp mạch, cắm vào thì máy tính báo là unreconized usb device. Em đoán là phải có driver nào đó. Ai giúp em với ạ
|
28-09-2011, 04:40 PM | #14 |
Đệ tử 1 túi
Tham gia ngày: Oct 2010
Bài gửi: 18
: |
Bạn xem lại cable nối và mạch xem. Kiểm tra tụ của vusb và chống nhiễu xem có đúng không
|
01-10-2011, 09:37 PM | #15 | |
Nhập môn đệ tử
Tham gia ngày: Apr 2011
Bài gửi: 5
: |
Trích:
Win7 không chạy được đâu ^_^ |
|
|
|