This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

UART TTL Level Communication Distance

I am facing some embarrassing problems recently.

After some trouble-shooting, I found that:
We have Board-A and Board-B. Board-A and Board-B communicate to each other with a UART TTL Level Communication. The communication cable is around 80cm long. During the communication, I got a lot of UART errors.

My mission is to build a more reliable communication between Board-A and Board-B; but not allowed to modify the hardware design and baud-rate.

To me, it is not wise to use a UART TTL Level Communication between two boards. However, I am being told that, it is very popular to us to use a UART TTL Level Communication between two boards.

I tried to find some articles/documentation to convince the involved people, that, they should not use a UART TTL Level Communication between two boards. But I can not find anything useful. What I could find is something like:
The UART usually does not directly generate or receive the external signals used between different items of equipment.

My question is:
Where can I find some convincing articles/documentation to convince the involved people? (This is to avoid the future problems.)
If I am not allowed to modify the hardware design and baud-rate, what choices do I have to build a more reliable communication?

Parents
  • You do have a big issue here.

    Buffer chips should be used on both sides.

    If you have buffer chips on your side, but their side don't make use of inputs with schmitt-trigger inputs, then you may be in trouble.

    If they can't handle the capacitances when driving signals, you can get into troubles - especially if you don't have schmitt-trigger inputs on your side.

    If you can't control the software on their side, then there is nothing you can do to improve the reliability using more clever software.

    So the only option available might in the end be to consider what type of cable that is used. Is it a cable with signals on every wire, or a cable with a ground line between each data line, similar to the design of newer PATA IDE cables on a PC (they use a 80-pin cable as replacement for the original 40 signals of the IDE interface just to allow a higher bandwidth without too much emissions or noise pickup).

    Another thing - does the signal quality improve if using ferrites on both sides of the cable, to block other noise from taking advantage of the cable to jump from one board to the other board? There are a large number of different ferrite designs, allowing the ferrite to be clicked onto the cable, or the cable to be twisted around the ferrite.

    In short: Exactly what parameters are _you_ allowed to change on side A or side B or both sides? Both for hardware or software or timing or cabling?

Reply
  • You do have a big issue here.

    Buffer chips should be used on both sides.

    If you have buffer chips on your side, but their side don't make use of inputs with schmitt-trigger inputs, then you may be in trouble.

    If they can't handle the capacitances when driving signals, you can get into troubles - especially if you don't have schmitt-trigger inputs on your side.

    If you can't control the software on their side, then there is nothing you can do to improve the reliability using more clever software.

    So the only option available might in the end be to consider what type of cable that is used. Is it a cable with signals on every wire, or a cable with a ground line between each data line, similar to the design of newer PATA IDE cables on a PC (they use a 80-pin cable as replacement for the original 40 signals of the IDE interface just to allow a higher bandwidth without too much emissions or noise pickup).

    Another thing - does the signal quality improve if using ferrites on both sides of the cable, to block other noise from taking advantage of the cable to jump from one board to the other board? There are a large number of different ferrite designs, allowing the ferrite to be clicked onto the cable, or the cable to be twisted around the ferrite.

    In short: Exactly what parameters are _you_ allowed to change on side A or side B or both sides? Both for hardware or software or timing or cabling?

Children
No data