View previous topic :: View next topic |
Author |
Message |
cfernandez
Joined: 18 Oct 2003 Posts: 145
|
USB & RS232 Question |
Posted: Fri Sep 01, 2006 4:07 pm |
|
|
Hi,
I have a PIC18F series and I use a USB to Serial (CP2102) for the USB connection, but my product have USB and Serial connector and I need to know if is possible connect the USB and MAX to the same UART from my PIC. Today I use a Jumper for selection of USB or Serial and I want that this was automatic.
Is possible this?, Anybody can tell me a idea about this.
Thank you very much!!!
Best Regards, |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1634 Location: Perth, Australia
|
|
Posted: Fri Sep 01, 2006 6:22 pm |
|
|
You only need to multiplex the receive lines into the PIC. The Tx out can be connected to both simultaneously.
You use a single PIC output to select either the USB or MAX chip either via using three analog gates (3 of the 4 in a CD4066) or by using 4 gates of a 74HC00.
sample pinout using 74HC00:
Pin 1 to 2 to 4 to PIC I/O select line (should really also have a pullup resistor )
Pin 3 to Pin 12
Pin 5 to USB RX output
Pin 6 to 9
Pin 7 ground
Pin 8 to PIC Rx pinn
Pin 10 to 11
Pin 13 to Max 232 Rx output
Pin 14 to VDD
When config when the PIC select line goes high the USB device is selected and low the rs232 device is selected
Alternatively you could implement a software UART for the RS232 port in which case you could send and received with both devices simultaneously (sending the identical output to both). _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
bwgames
Joined: 21 Jul 2005 Posts: 36
|
|
Posted: Mon Sep 04, 2006 3:56 am |
|
|
Another way, and the way I use, is to use a analog switch for the RX line. This has the advantage of simply requiring power connections, one wire to PIC, and two wires to the USB/serial connectors. |
|
|
asmallri
Joined: 12 Aug 2004 Posts: 1634 Location: Perth, Australia
|
|
Posted: Mon Sep 04, 2006 6:06 am |
|
|
bwgames wrote: | Another way, and the way I use, is to use a analog switch for the RX line. This has the advantage of simply requiring power connections, one wire to PIC, and two wires to the USB/serial connectors. |
How is this different?
Quote: |
You use a single PIC output to select either the USB or MAX chip either via using three analog gates (3 of the 4 in a CD4066) |
_________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
|
bwgames
Joined: 21 Jul 2005 Posts: 36
|
|
Posted: Mon Sep 04, 2006 8:08 am |
|
|
Oops sorry, you're quite right, only noticed the NAND gate (74HC00).
Although it may be worth looking at something like a SPDT analog switch (part number escapes me at the moment) in which case you would only need one switch. |
|
|
cfernandez
Joined: 18 Oct 2003 Posts: 145
|
|
Posted: Mon Sep 04, 2006 8:13 am |
|
|
Hi,
thank you for your answer, but this solution not is possible for my hardware. I need that the user connect the USB or RS232 and in my PIC receive the command for the only one UART, the PIC not select the port, the User select the PORt.
You are understand??
Thank you. |
|
|
jecottrell
Joined: 16 Jan 2005 Posts: 559 Location: Tucson, AZ
|
|
Posted: Mon Sep 04, 2006 10:13 am |
|
|
There are a couple of ways to solve this problem that I've used. They also are dependent on whether you plan on having the two cables connected at once...?
1. If your application allows the use of a custom serial cable:
I typically only use Tx, Rx, & Gnd so that leaves plenty of unused pins. Tie two unused pins together to form a jumper when you connect the custom serial cable to your application. On your board route Vdd through a 10K resistor to one of the pins that is jumpered. The other pin is routed to the logic driving the MUX between USB and Serial. By default USB is selected, however, when you connect the custom cable it drives the MUX to switch to serial.
2. If your application doesn't allow a custom serial cable, but you can guarantee your PC application will drive DTR or RTS:
You can use DTR or RTS to drive your MUX logic. Once again, USB will be the default selection. When you connect a serial cable the DTR or RTS signal can be used to swap the MUX over to serial.
There are lots of creative ways to solve the problem. If you give more details about your requirements you'll get a bunch of great ideas from the pros.
Good luck,
John |
|
|
|