Serial cables... serial communications
-
It's not a programming question :-\ Maybe someone's serial cable fu is better than mine. I'm looking for some practical insight on serial communications at the PC level. Older machines, larger boxes may still have built in com ports exposed at the back, but most of us are living in the land of usb to serial. For the sake of discussion, the ports in use are confirmed to have the same settings - 9600 baud, 8 bit, 1 stop bit, no handshake or anything else.... Living in the embedded world, we'll solder up a home made serial cable in a few minutes - DB9 to DB9 - connector pins 2-3, pin 5 for the ground (swapping pin 2 and 3 gives you a null modem cable). On the embedded hardware, this is typically all we need to do... but I'm finding PC level usage of this hand crafted cable problematic. If I take a typical null modem cable: 10 ft DB9 RS232 Serial Null Modem Cable | Null Modem Serial Cables | StarTech.com[^] everything works fine. If I take my stripped down special, no communications. I've verified that both cables are wired the same - with the exception that the commercial product connects the other 6 pins according to standards. I've been told these other connections are not necessary, but said engineers are talking to embedded hardware not another PC. Wondering if an CP folks have some practical scars and insights in this area that would shed some light on this behavior. I'm going to tell the customer to go buy a serial cable, but now I'm curious. thanks
Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Gentlemen, Excellent suggestions all with debugging the cable differences. I'm going to have to file this under face-palm. :doh: It is a true statement that simple serial communications only require the 3 wires, we do it all the time on various projects. Points go to Mr. DCB suggestion man - if one's handling of the data is fast enough, you really don't need Dtr and Rts control wires. But if your application enables them in the DCB, you're going to need to hook them up. So, the mystery is solved, and there is a lot of good info in this discussion. Thanks to all of you.
Charlie Gilley Most life and software issues can be solved by checking your inputs.... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
If I have the option - and flow control is needed, I prefer to use software handshaking (XON/XOFF)
And it works over a 2 line connection, such as a POTS line. BUT: It is not bit transparent. And it requires the sender to respond fast enough. The latency is generally a lot higher with software flow control. I was teaching networks at college level in the 1990, when 622 Mbps B-ISDN and ATM was still an option, and optic fibers were becoming commonplace, running for 50 km or more without repeaters. (They could run for much greater distances even in the 1990s, but towns are usually no further apart.) I used to start first lecture on B-ISDN with a question: How big is a bit? How many centimeters long? Light in a fiber moves at roughly 200,000,000 m/s. If you sende 622,000,000 per second, that gives them about 30 cm each. Before the first bit has come to the end of a 50,000 m long fiber, you have poured in more than 150,000 bits. And before the STOP!!! signal has come back to you, you have sent another 150,000 bits down the line. Now, let us see how well our basic frame mechanimsm from lower speed lines works under those conditions... Lots of the students first thought I had made an error in the calculation, missing by a factor of a thousand. After checking and counting zeroes, they shook their head with a "But... What shall we do then?". (The next layer-1 protocol we treated was DQDB - another now forgotten alternative, which is a pity; it did have something going, with its reservation scheme. It never made any success, but we should learn for failures, too - failure in the market doesn't prove that it was without merits. Around 1990 it taught the students that there is more than one way to skin a flow control cat!)
-
Ah yes, the DCB :) When I inherited this code, no one thought to initialize that structure before use.... The s/w on the PC side is a simulation test tool (implements communications protocol for some ancient piece of equipment). I have full control over it. I'll see what's going on over there...
Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
It's not a programming question :-\ Maybe someone's serial cable fu is better than mine. I'm looking for some practical insight on serial communications at the PC level. Older machines, larger boxes may still have built in com ports exposed at the back, but most of us are living in the land of usb to serial. For the sake of discussion, the ports in use are confirmed to have the same settings - 9600 baud, 8 bit, 1 stop bit, no handshake or anything else.... Living in the embedded world, we'll solder up a home made serial cable in a few minutes - DB9 to DB9 - connector pins 2-3, pin 5 for the ground (swapping pin 2 and 3 gives you a null modem cable). On the embedded hardware, this is typically all we need to do... but I'm finding PC level usage of this hand crafted cable problematic. If I take a typical null modem cable: 10 ft DB9 RS232 Serial Null Modem Cable | Null Modem Serial Cables | StarTech.com[^] everything works fine. If I take my stripped down special, no communications. I've verified that both cables are wired the same - with the exception that the commercial product connects the other 6 pins according to standards. I've been told these other connections are not necessary, but said engineers are talking to embedded hardware not another PC. Wondering if an CP folks have some practical scars and insights in this area that would shed some light on this behavior. I'm going to tell the customer to go buy a serial cable, but now I'm curious. thanks
Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
As I recall from my college work-study program forty years ago, that's the way we wired up RS-232 terminals: four wires, two of them ground. My memory is no longer great, but I know we had 25-pin connectors, and I'm thinking in that world pin 1 was ground, 3 & 4 swapped, and 8? was a second ground. I have nothing to help you, but thank you for bringing back memories of some good times! :-D
-
It's not a programming question :-\ Maybe someone's serial cable fu is better than mine. I'm looking for some practical insight on serial communications at the PC level. Older machines, larger boxes may still have built in com ports exposed at the back, but most of us are living in the land of usb to serial. For the sake of discussion, the ports in use are confirmed to have the same settings - 9600 baud, 8 bit, 1 stop bit, no handshake or anything else.... Living in the embedded world, we'll solder up a home made serial cable in a few minutes - DB9 to DB9 - connector pins 2-3, pin 5 for the ground (swapping pin 2 and 3 gives you a null modem cable). On the embedded hardware, this is typically all we need to do... but I'm finding PC level usage of this hand crafted cable problematic. If I take a typical null modem cable: 10 ft DB9 RS232 Serial Null Modem Cable | Null Modem Serial Cables | StarTech.com[^] everything works fine. If I take my stripped down special, no communications. I've verified that both cables are wired the same - with the exception that the commercial product connects the other 6 pins according to standards. I've been told these other connections are not necessary, but said engineers are talking to embedded hardware not another PC. Wondering if an CP folks have some practical scars and insights in this area that would shed some light on this behavior. I'm going to tell the customer to go buy a serial cable, but now I'm curious. thanks
Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
You're right. You only need 3 wires for duplex communication. Assuming you connected these wires correctly. the next question is what kind of cable are you using. Transmission lines cause reflections and energy loss. At 10 feet, your cable is long enough to be affected by it. If you're using 3 loose wires, that's a problem; try twisting the wires together. Ideally, you want 100 ohm impedance with 24 AWG wire. If you're using a pre-built cable, check the specs. It may be designed for something else. I also suggest you make sure both computers are powered from the same circuit; otherwise, you may have issues with ground loops.
-
As I recall from my college work-study program forty years ago, that's the way we wired up RS-232 terminals: four wires, two of them ground. My memory is no longer great, but I know we had 25-pin connectors, and I'm thinking in that world pin 1 was ground, 3 & 4 swapped, and 8? was a second ground. I have nothing to help you, but thank you for bringing back memories of some good times! :-D
Close. For D25, it's 2&3 for data, 4&5 for RTS/CTS, 6 is DSR, 7 is signal ground (Not always the same as 1 which is chassis ground), 8 is DCD, 20 is DTR, 22 is RI. The rest are normally N/C.
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
-
It's not a programming question :-\ Maybe someone's serial cable fu is better than mine. I'm looking for some practical insight on serial communications at the PC level. Older machines, larger boxes may still have built in com ports exposed at the back, but most of us are living in the land of usb to serial. For the sake of discussion, the ports in use are confirmed to have the same settings - 9600 baud, 8 bit, 1 stop bit, no handshake or anything else.... Living in the embedded world, we'll solder up a home made serial cable in a few minutes - DB9 to DB9 - connector pins 2-3, pin 5 for the ground (swapping pin 2 and 3 gives you a null modem cable). On the embedded hardware, this is typically all we need to do... but I'm finding PC level usage of this hand crafted cable problematic. If I take a typical null modem cable: 10 ft DB9 RS232 Serial Null Modem Cable | Null Modem Serial Cables | StarTech.com[^] everything works fine. If I take my stripped down special, no communications. I've verified that both cables are wired the same - with the exception that the commercial product connects the other 6 pins according to standards. I've been told these other connections are not necessary, but said engineers are talking to embedded hardware not another PC. Wondering if an CP folks have some practical scars and insights in this area that would shed some light on this behavior. I'm going to tell the customer to go buy a serial cable, but now I'm curious. thanks
Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Serial ports. Oh the pain, the pain. I have a whole box of serial cables that I have accumulated over 20 years of use. I have male-female, female-female, and male-male straight-through cables, and a null modem cable. This lets me make up whatever is called for. I verify my connection using one or two of these cables, then build a custom cable. If the custom cable doesn't work, I know it's the cable. You can connect a serial port using only transmit, receive, and ground, but even at 9600 baud, a steady stream of bytes is likely to overrun your PC's receiver buffer. That's why you want to connect RTS and CTS, which do hardware handshaking. You can do software handshaking using XON and XOFF if your USB-serial box understands that and your terminal software understands that.
-
Close. For D25, it's 2&3 for data, 4&5 for RTS/CTS, 6 is DSR, 7 is signal ground (Not always the same as 1 which is chassis ground), 8 is DCD, 20 is DTR, 22 is RI. The rest are normally N/C.
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
Must have been 1, 2, 3 & 7. A forty year span is a LONG time to maintain an image in one's mind. Connecting terminals to a PDP-11/34; life was simple back then. Old men want a time machine because the past looks better, or at least longer, than the future.
-
Must have been 1, 2, 3 & 7. A forty year span is a LONG time to maintain an image in one's mind. Connecting terminals to a PDP-11/34; life was simple back then. Old men want a time machine because the past looks better, or at least longer, than the future.
Yeah ... it's been over 25 years since I last wired RS323, and even that was probably D9 not D25. And I probably cheated and wired via my datascope which had a patch box built in. :laugh: (Life was easier when you could actually see the data with a scope)
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!
-
It's not a programming question :-\ Maybe someone's serial cable fu is better than mine. I'm looking for some practical insight on serial communications at the PC level. Older machines, larger boxes may still have built in com ports exposed at the back, but most of us are living in the land of usb to serial. For the sake of discussion, the ports in use are confirmed to have the same settings - 9600 baud, 8 bit, 1 stop bit, no handshake or anything else.... Living in the embedded world, we'll solder up a home made serial cable in a few minutes - DB9 to DB9 - connector pins 2-3, pin 5 for the ground (swapping pin 2 and 3 gives you a null modem cable). On the embedded hardware, this is typically all we need to do... but I'm finding PC level usage of this hand crafted cable problematic. If I take a typical null modem cable: 10 ft DB9 RS232 Serial Null Modem Cable | Null Modem Serial Cables | StarTech.com[^] everything works fine. If I take my stripped down special, no communications. I've verified that both cables are wired the same - with the exception that the commercial product connects the other 6 pins according to standards. I've been told these other connections are not necessary, but said engineers are talking to embedded hardware not another PC. Wondering if an CP folks have some practical scars and insights in this area that would shed some light on this behavior. I'm going to tell the customer to go buy a serial cable, but now I'm curious. thanks
Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
-
No need. The mystery - why did one cable work and the hand made cable didn't - answered by checking the source code. If you ask for handshake, you need to provide the appropriate cabling. Simple brainfart on my part.
Charlie Gilley <italic>Stuck in a dysfunctional matrix from which I must escape... "Where liberty dwells, there is my country." B. Franklin, 1783 “They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759