Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein


devel / comp.arch.embedded / Re: Shared Communications Bus - RS-422 or RS-485

SubjectAuthor
* Shared Communications Bus - RS-422 or RS-485Rick C
+* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|+* Re: Shared Communications Bus - RS-422 or RS-485pozz
||`- Re: Shared Communications Bus - RS-422 or RS-485David Brown
|`* Re: Shared Communications Bus - RS-422 or RS-485Rick C
| `* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|  `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|   `* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|    `* Re: Shared Communications Bus - RS-422 or RS-485pozz
|     +* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |`* Re: Shared Communications Bus - RS-422 or RS-485pozz
|     | `* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |  +* Re: Shared Communications Bus - RS-422 or RS-485pozz
|     |  |`* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |  | `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |  |  `* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |  |   `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |  |    `* Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |  |     +- Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |  |     `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |  |      `* Re: Shared Communications Bus - RS-422 or RS-485Richard Damon
|     |  |       `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |  |        `* Re: Shared Communications Bus - RS-422 or RS-485Richard Damon
|     |  |         `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |  |          +* Re: Shared Communications Bus - RS-422 or RS-485Clifford Heath
|     |  |          |`* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |  |          | +- Re: Shared Communications Bus - RS-422 or RS-485Clifford Heath
|     |  |          | `- Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |  |          `* Re: Shared Communications Bus - RS-422 or RS-485Richard Damon
|     |  |           `- Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |  `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |   +* Re: Shared Communications Bus - RS-422 or RS-485antispam
|     |   |`* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |   | +* Re: Shared Communications Bus - RS-422 or RS-485antispam
|     |   | |`- Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |   | `- Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |   `* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |    `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |     `* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |      +* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |`* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |      | `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |  +* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |      |  |`* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |  | `* Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |      |  |  `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |  |   `* Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |      |  |    `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |  |     `* Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |      |  |      `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |  |       +- Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |      |  |       `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |  |        +- Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |      |  |        `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |  |         +- Re: Shared Communications Bus - RS-422 or RS-485David Brown
|     |      |  |         `- Re: Shared Communications Bus - RS-422 or RS-485Richard Damon
|     |      |  `* Re: Shared Communications Bus - RS-422 or RS-485Richard Damon
|     |      |   +* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|     |      |   |`* Re: Shared Communications Bus - RS-422 or RS-485Richard Damon
|     |      |   | `- Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |   `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |    `* Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |      |     `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |      `* Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |      |       `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |        `* Re: Shared Communications Bus - RS-422 or RS-485Stef
|     |      |         `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      |          `* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|     |      |           `- Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     |      `- Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|      `* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|       `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|        `* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|         +* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|         |`* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|         | `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|         |  `* Re: Shared Communications Bus - RS-422 or RS-485David Brown
|         |   `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|         |    `* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|         |     `- Re: Shared Communications Bus - RS-422 or RS-485David Brown
|         `- Re: Shared Communications Bus - RS-422 or RS-485David Brown
+* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|`* Re: Shared Communications Bus - RS-422 or RS-485Rick C
| `* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|  `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|   `* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|    `* Re: Shared Communications Bus - RS-422 or RS-485Rick C
|     `* Re: Shared Communications Bus - RS-422 or RS-485Paul Rubin
|      `- Re: Shared Communications Bus - RS-422 or RS-485Rick C
+* Re: Shared Communications Bus - RS-422 or RS-485Dave Nadler
|`* Re: Shared Communications Bus - RS-422 or RS-485Rick C
| `- Re: Shared Communications Bus - RS-422 or RS-485Richard Damon
`- Re: Shared Communications Bus - RS-422 or RS-485chris

Pages:1234
Shared Communications Bus - RS-422 or RS-485

<6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1096&group=comp.arch.embedded#1096

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:ac8:7457:0:b0:3a5:4193:e722 with SMTP id h23-20020ac87457000000b003a54193e722mr3050251qtr.415.1667366939577;
Tue, 01 Nov 2022 22:28:59 -0700 (PDT)
X-Received: by 2002:a25:bc02:0:b0:695:652e:72b5 with SMTP id
i2-20020a25bc02000000b00695652e72b5mr21281104ybh.21.1667366939334; Tue, 01
Nov 2022 22:28:59 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Tue, 1 Nov 2022 22:28:59 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
Subject: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Wed, 02 Nov 2022 05:28:59 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4210
 by: Rick C - Wed, 2 Nov 2022 05:28 UTC

I have a test fixture that uses RS-232 to communicate with a PC. It actually uses the voltage levels of RS-232, even though this is from a USB cable on the PC, so it's only RS-232 for maybe four inches. lol

I'm redesigning the test fixtures to hold more units and fully automate a few features that presently requires an operator. There will now be 8 UUTs on each test fixture and I expect to have 10 to 20 test fixtures in a card rack. That's 80 to 160 UUTs total. There will be an FPGA controlling each pair of UUTs, so 80 FPGAs in total that the PC needs to talk to.

Rather than working on a way to mux 80 RS-232 interfaces, I'm thinking it would be better to either daisy chain, or connect in parallel all these devices. The protocol is master-slave where the master sends a command and the slaves are idle until they reply. The four FPGAs on a test fixture board could be connected in parallel easily enough. But I don't think I want to run TTL level signals between so many boards.

I could do an RS-422 interface with a master to slave pair and a slave to master pair. The slaves do not speak until spoken to, so there will be no collisions.

RS-485 would allow all this to be over a single pair of wires. But the one big issue I see people complain about is getting PC software to not clobber the slaves, or I should say, to get the master to wait long enough that it's not clobbering it's own start bit by overwriting the stop bit of the slave. I suppose someone, somewhere has dealt with this on the PC and has a solution that doesn't impact bus speed. I run the single test fixture version of this at about 100 kbps. I'm going to want as much speed as I can get for 80 FPGAs controlling 160 UUTs. Maybe I should give that some analysis, because this might not be true.

The tests are of two types, most of them are setting up a state and reading a signal. This can go pretty fast and doesn't take too many commands. Then there are the audio tests where the FPGA sends digital data to the UUT, which does it's thing and returns digital data which is crunched by the FPGA. This takes some small number of seconds and presently the protocol is to poll the status until it is done. That's a lot of messages, but it's not necessarily a slow point. The same test can be started on every UUT in parallel, so the waiting is in parallel. So maybe the serial port won't need to be any faster.

Still, I want to use RS-422 or RS-485 to deal with ground noise since this will be spread over multiple boards that don't have terribly solid grounds, just the power cable really.

I'm thinking out loud here as much as anything. I intended to simply ask if anyone had experience with RS-485 that would be helpful. Running two wires rather than eight would be a help. I'll probably use a 10 pin connector just to be on the safe side, allowing the transceivers to be used either way.

--

Rick C.

- Get 1,000 miles of free Supercharging
- Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<tjtd7g$145er$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1100&group=comp.arch.embedded#1100

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Wed, 2 Nov 2022 10:28:15 +0100
Organization: A noiseless patient Spider
Lines: 114
Message-ID: <tjtd7g$145er$1@dont-email.me>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 2 Nov 2022 09:28:16 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="84c97277b00ecefe695f502c294a2caa";
logging-data="1185243"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+xpIt80cdehzXm7YiWXGoqhfUx5Tu+69U="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Cancel-Lock: sha1:ZfUZMIEWKB4DPjNUQKIc8wL9cfQ=
Content-Language: en-GB
In-Reply-To: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
 by: David Brown - Wed, 2 Nov 2022 09:28 UTC

On 02/11/2022 06:28, Rick C wrote:
> I have a test fixture that uses RS-232 to communicate with a PC. It
> actually uses the voltage levels of RS-232, even though this is from
> a USB cable on the PC, so it's only RS-232 for maybe four inches.
> lol
>
> I'm redesigning the test fixtures to hold more units and fully
> automate a few features that presently requires an operator. There
> will now be 8 UUTs on each test fixture and I expect to have 10 to 20
> test fixtures in a card rack. That's 80 to 160 UUTs total. There
> will be an FPGA controlling each pair of UUTs, so 80 FPGAs in total
> that the PC needs to talk to.
>
> Rather than working on a way to mux 80 RS-232 interfaces, I'm
> thinking it would be better to either daisy chain, or connect in
> parallel all these devices. The protocol is master-slave where the
> master sends a command and the slaves are idle until they reply. The
> four FPGAs on a test fixture board could be connected in parallel
> easily enough. But I don't think I want to run TTL level signals
> between so many boards.
>
> I could do an RS-422 interface with a master to slave pair and a
> slave to master pair. The slaves do not speak until spoken to, so
> there will be no collisions.
>

RS-422 is normally a point-to-point interface. It is one line in each
direction, but using balanced pairs instead of a TTL signal. You would
not normally connect multiple receivers or transmitters to an RS-422
bus, as the standard practice is that each transmitter is always driving
the pair it is attached to - there is no multi-drop.

> RS-485 would allow all this to be over a single pair of wires. But
> the one big issue I see people complain about is getting PC software
> to not clobber the slaves, or I should say, to get the master to wait
> long enough that it's not clobbering it's own start bit by
> overwriting the stop bit of the slave. I suppose someone, somewhere
> has dealt with this on the PC and has a solution that doesn't impact
> bus speed. I run the single test fixture version of this at about
> 100 kbps. I'm going to want as much speed as I can get for 80 FPGAs
> controlling 160 UUTs. Maybe I should give that some analysis,
> because this might not be true.

RS-485 is easy from a PC using appropriate USB devices. We make heavy
use of FTDI's chips and cables - they handle the drive enables for the
RS-485 automatically so that from the PC side you just read and write to
the serial port.

The reception of the last byte from a slave is not finished until the
stop bit has been properly received by the master - that means at least
half-way through the sending of the stop bit. Then there is a delay
before the data gets sent back to the host PC, a delay through the
kernel and drivers before it reaches the user program, time for the
program to handle that message, time for it to prepare the next message,
delays through the kernel and drivers before it gets to the USB bus,
latency in the USB device that receives the USB message and then starts
transmitting. There can be no collision unless all that delay is less
than half a bit time. And no matter how fast your computer is, you are
always going to need at least one full USB polling cycle for all this,
which for USB 2.0 is 0.125 us. That means that if you have a baud rate
of 16 kbaud or higher, there is no possibility of a collision.

>
> The tests are of two types, most of them are setting up a state and
> reading a signal. This can go pretty fast and doesn't take too many
> commands. Then there are the audio tests where the FPGA sends
> digital data to the UUT, which does it's thing and returns digital
> data which is crunched by the FPGA. This takes some small number of
> seconds and presently the protocol is to poll the status until it is
> done. That's a lot of messages, but it's not necessarily a slow
> point. The same test can be started on every UUT in parallel, so the
> waiting is in parallel. So maybe the serial port won't need to be
> any faster.
>
> Still, I want to use RS-422 or RS-485 to deal with ground noise since
> this will be spread over multiple boards that don't have terribly
> solid grounds, just the power cable really.
>
> I'm thinking out loud here as much as anything. I intended to simply
> ask if anyone had experience with RS-485 that would be helpful.
> Running two wires rather than eight would be a help. I'll probably
> use a 10 pin connector just to be on the safe side, allowing the
> transceivers to be used either way.
>

You need to do some calculations to see if you can get enough telegrams
and enough data through a single serial port. You'll be hard pushed to
find a USB serial port device of any kind that goes above 3 Mbaud, and
you need to be careful about your selection of RS-485 drivers for those
kinds of rates. You will also find that much of your bandwidth is taken
up with pauses between telegrams and reply latency, unless you make your
telegrams quite large.

When we have made testbenches that required serial communication to
multiple parallel devices, we typically put a USB hub in the testbench
and use multiple FDTI USB to serial cables. You only make one (or
possibly a few) of the testbenches - it's much cheaper to use
off-the-shelf parts than to spend time designing something more
advanced. You can buy a /lot/ of hubs and USB cables for the price of
the time to design, build and program a custom card for the job. It
also makes the system more scalable, as the communication to different
devices runs in parallel.

We have also done systems where there is a Raspberry Pi driving the hub
and multiple FTDI converters. The PC is connected to the Pi by Ethernet
(useful for galvanic isolation), and the Pi runs forwarders between the
serial ports and TCP/IP ports.

To be fair, I don't recall any testbenches we've made that needed more
than perhaps 8 serial ports. If I needed to handle 80 lines, I would
probably split things up - a Pi handling 8-10 lines from a local
program, communicating with a PC master program by Ethernet.

Re: Shared Communications Bus - RS-422 or RS-485

<tjti8a$129ep$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1101&group=comp.arch.embedded#1101

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!paganini.bofh.team!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: pozzu...@gmail.com (pozz)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Wed, 2 Nov 2022 11:54:03 +0100
Organization: A noiseless patient Spider
Lines: 35
Message-ID: <tjti8a$129ep$1@dont-email.me>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 2 Nov 2022 10:54:02 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="6d9dfc81e3281d9e04c09fac0b4ba58b";
logging-data="1123801"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/lZXKkfrckuSR0Vo3xdWCAhXqyZ7+upas="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.4.1
Cancel-Lock: sha1:rEDUnGVlGO0XNt62UMsMe9GLe7Q=
In-Reply-To: <tjtd7g$145er$1@dont-email.me>
 by: pozz - Wed, 2 Nov 2022 10:54 UTC

Il 02/11/2022 10:28, David Brown ha scritto:
> On 02/11/2022 06:28, Rick C wrote:

> RS-485 is easy from a PC using appropriate USB devices.  We make heavy
> use of FTDI's chips and cables - they handle the drive enables for the
> RS-485 automatically so that from the PC side you just read and write to
> the serial port.
>
> The reception of the last byte from a slave is not finished until the
> stop bit has been properly received by the master - that means at least
> half-way through the sending of the stop bit.  Then there is a delay
> before the data gets sent back to the host PC, a delay through the
> kernel and drivers before it reaches the user program, time for the
> program to handle that message, time for it to prepare the next message,
> delays through the kernel and drivers before it gets to the USB bus,
> latency in the USB device that receives the USB message and then starts
> transmitting.  There can be no collision unless all that delay is less
> than half a bit time.  And no matter how fast your computer is, you are
> always going to need at least one full USB polling cycle for all this,
> which for USB 2.0 is 0.125 us.  That means that if you have a baud rate
> of 16 kbaud or higher, there is no possibility of a collision.

However this depends on the speed of slave too, because it could be slow
to move *its* direction from TX to RX. If the master starts transmitting
after the stop bit from the slave, but *before* it changes *its*
direction from TX to RX, the first bytes could be corrupted.

Unfortunately, not all UARTs in MCUs are able to drive automatically the
DE (Drive Enable) signal, so it sometimes happens that DE is a normal GPIO.
If you are lucky, you have the TXC (transmit complete) interrupt that
fires *after* stop bit is transmitted, a safe time to move DE signal.

In this case interrupt delay is short, but you could have other active
interrupts that occasionally could delay the TXC interrupt for some time.

Re: Shared Communications Bus - RS-422 or RS-485

<tjtr7f$16c7a$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1103&group=comp.arch.embedded#1103

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Wed, 2 Nov 2022 14:27:10 +0100
Organization: A noiseless patient Spider
Lines: 55
Message-ID: <tjtr7f$16c7a$1@dont-email.me>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me> <tjti8a$129ep$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 2 Nov 2022 13:27:11 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="84c97277b00ecefe695f502c294a2caa";
logging-data="1257706"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX197Dsmq5WXcl97KYh8oIBHxKdPIlyu+Qw4="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Cancel-Lock: sha1:qAEvm3fAGEmlE9gmBArMjL0ysFs=
Content-Language: en-GB
In-Reply-To: <tjti8a$129ep$1@dont-email.me>
 by: David Brown - Wed, 2 Nov 2022 13:27 UTC

On 02/11/2022 11:54, pozz wrote:
> Il 02/11/2022 10:28, David Brown ha scritto:
>> On 02/11/2022 06:28, Rick C wrote:
>
>> RS-485 is easy from a PC using appropriate USB devices.  We make heavy
>> use of FTDI's chips and cables - they handle the drive enables for the
>> RS-485 automatically so that from the PC side you just read and write
>> to the serial port.
>>
>> The reception of the last byte from a slave is not finished until the
>> stop bit has been properly received by the master - that means at
>> least half-way through the sending of the stop bit.  Then there is a
>> delay before the data gets sent back to the host PC, a delay through
>> the kernel and drivers before it reaches the user program, time for
>> the program to handle that message, time for it to prepare the next
>> message, delays through the kernel and drivers before it gets to the
>> USB bus, latency in the USB device that receives the USB message and
>> then starts transmitting.  There can be no collision unless all that
>> delay is less than half a bit time.  And no matter how fast your
>> computer is, you are always going to need at least one full USB
>> polling cycle for all this, which for USB 2.0 is 0.125 us.  That means
>> that if you have a baud rate of 16 kbaud or higher, there is no
>> possibility of a collision.
>
> However this depends on the speed of slave too, because it could be slow
> to move *its* direction from TX to RX. If the master starts transmitting
> after the stop bit from the slave, but *before* it changes *its*
> direction from TX to RX, the first bytes could be corrupted.

True, and it that is an important point.

>
> Unfortunately, not all UARTs in MCUs are able to drive automatically the
> DE (Drive Enable) signal, so it sometimes happens that DE is a normal GPIO.
> If you are lucky, you have the TXC (transmit complete) interrupt that
> fires *after* stop bit is transmitted, a safe time to move DE signal.

I think the OP has FPGA's for the slave side of the equation, so there
should not be a delay in switching their drivers off after the last byte
is sent. Even if it is a microcontroller and has no hardware control
for the DE line, pretty much any half-decent microcontroller from this
century has a TXC interrupt and can react and turn off the driver within
a few microseconds. I am assuming he is not trying to do this project
using PIC's or 8051's !

>
> In this case interrupt delay is short, but you could have other active
> interrupts that occasionally could delay the TXC interrupt for some time.
>

If this kind of thing is a risk, then it's not hard to put a short delay
on the PC side between receiving a reply and sending out the next
telegram. But it's good that you brought it up, so that the OP can
decide if it /is/ a risk.

Re: Shared Communications Bus - RS-422 or RS-485

<b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1106&group=comp.arch.embedded#1106

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:a05:6214:20c1:b0:4b9:f285:de7e with SMTP id 1-20020a05621420c100b004b9f285de7emr22659041qve.14.1667416851289;
Wed, 02 Nov 2022 12:20:51 -0700 (PDT)
X-Received: by 2002:a25:3c87:0:b0:6bf:e137:688a with SMTP id
j129-20020a253c87000000b006bfe137688amr25820697yba.271.1667416850866; Wed, 02
Nov 2022 12:20:50 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Wed, 2 Nov 2022 12:20:50 -0700 (PDT)
In-Reply-To: <tjtd7g$145er$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com> <tjtd7g$145er$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Wed, 02 Nov 2022 19:20:51 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 10186
 by: Rick C - Wed, 2 Nov 2022 19:20 UTC

On Wednesday, November 2, 2022 at 5:28:21 AM UTC-4, David Brown wrote:
> On 02/11/2022 06:28, Rick C wrote:
> > I have a test fixture that uses RS-232 to communicate with a PC. It
> > actually uses the voltage levels of RS-232, even though this is from
> > a USB cable on the PC, so it's only RS-232 for maybe four inches.
> > lol
> >
> > I'm redesigning the test fixtures to hold more units and fully
> > automate a few features that presently requires an operator. There
> > will now be 8 UUTs on each test fixture and I expect to have 10 to 20
> > test fixtures in a card rack. That's 80 to 160 UUTs total. There
> > will be an FPGA controlling each pair of UUTs, so 80 FPGAs in total
> > that the PC needs to talk to.
> >
> > Rather than working on a way to mux 80 RS-232 interfaces, I'm
> > thinking it would be better to either daisy chain, or connect in
> > parallel all these devices. The protocol is master-slave where the
> > master sends a command and the slaves are idle until they reply. The
> > four FPGAs on a test fixture board could be connected in parallel
> > easily enough. But I don't think I want to run TTL level signals
> > between so many boards.
> >
> > I could do an RS-422 interface with a master to slave pair and a
> > slave to master pair. The slaves do not speak until spoken to, so
> > there will be no collisions.
> >
> RS-422 is normally a point-to-point interface. It is one line in each
> direction, but using balanced pairs instead of a TTL signal. You would
> not normally connect multiple receivers or transmitters to an RS-422
> bus, as the standard practice is that each transmitter is always driving
> the pair it is attached to - there is no multi-drop.

That is simply not true. Data sheets for RS-422 devices often show multidrop applications and how to best terminate them.

> > RS-485 would allow all this to be over a single pair of wires. But
> > the one big issue I see people complain about is getting PC software
> > to not clobber the slaves, or I should say, to get the master to wait
> > long enough that it's not clobbering it's own start bit by
> > overwriting the stop bit of the slave. I suppose someone, somewhere
> > has dealt with this on the PC and has a solution that doesn't impact
> > bus speed. I run the single test fixture version of this at about
> > 100 kbps. I'm going to want as much speed as I can get for 80 FPGAs
> > controlling 160 UUTs. Maybe I should give that some analysis,
> > because this might not be true.
> RS-485 is easy from a PC using appropriate USB devices. We make heavy
> use of FTDI's chips and cables - they handle the drive enables for the
> RS-485 automatically so that from the PC side you just read and write to
> the serial port.

I've yet to be convinced of this. Admittedly, my last interaction with RS-485 was many years ago, but there were some four or five different devices being integrated with a PC, and no two of them handled it the bus the same way. The PC in particular, would cut on and off the driver in the middle of bits. No one put a bias on the bus, so it was indeterminate when no one was driving. It was a horrible failure.

Every time I've seen this discussed, the driver control has been an issue.

> The reception of the last byte from a slave is not finished until the
> stop bit has been properly received by the master - that means at least
> half-way through the sending of the stop bit.

That's not sufficient. Everyone's halfway is a bit different and start bit detection may not be enabled on some device when the next driver outputs a start bit, or the last driver may not be turned off when the next driver starts.

> Then there is a delay
> before the data gets sent back to the host PC, a delay through the
> kernel and drivers before it reaches the user program, time for the
> program to handle that message, time for it to prepare the next message,
> delays through the kernel and drivers before it gets to the USB bus,
> latency in the USB device that receives the USB message and then starts
> transmitting. There can be no collision unless all that delay is less
> than half a bit time. And no matter how fast your computer is, you are
> always going to need at least one full USB polling cycle for all this,
> which for USB 2.0 is 0.125 us. That means that if you have a baud rate
> of 16 kbaud or higher, there is no possibility of a collision.

If your numbers are accurate, that might be ok, but I'm looking for data rates closer to 1 Mbps. Admittedly, I have not done an analysis of what will actually be required, but 128 UUT, or possibly 256, can do a lot of damage to a shared bus. At 1 Mbps, 128 UUT results in an effective bit rate maximum of 7.8 kbps. With 256 UUTs, that's 3.9 kbps. No, I don't think this will work properly at much slower speeds than 1 Mbps. At 16 kbps, the effective rate to each UUT is just 62.5 bps, not kbps.

> > The tests are of two types, most of them are setting up a state and
> > reading a signal. This can go pretty fast and doesn't take too many
> > commands. Then there are the audio tests where the FPGA sends
> > digital data to the UUT, which does it's thing and returns digital
> > data which is crunched by the FPGA. This takes some small number of
> > seconds and presently the protocol is to poll the status until it is
> > done. That's a lot of messages, but it's not necessarily a slow
> > point. The same test can be started on every UUT in parallel, so the
> > waiting is in parallel. So maybe the serial port won't need to be
> > any faster.
> >
> > Still, I want to use RS-422 or RS-485 to deal with ground noise since
> > this will be spread over multiple boards that don't have terribly
> > solid grounds, just the power cable really.
> >
> > I'm thinking out loud here as much as anything. I intended to simply
> > ask if anyone had experience with RS-485 that would be helpful.
> > Running two wires rather than eight would be a help. I'll probably
> > use a 10 pin connector just to be on the safe side, allowing the
> > transceivers to be used either way.
> >
> You need to do some calculations to see if you can get enough telegrams
> and enough data through a single serial port. You'll be hard pushed to
> find a USB serial port device of any kind that goes above 3 Mbaud, and
> you need to be careful about your selection of RS-485 drivers for those
> kinds of rates. You will also find that much of your bandwidth is taken
> up with pauses between telegrams and reply latency, unless you make your
> telegrams quite large.

I assume by "telegrams", you mean the messages. They will be small by necessity. The protocol is interactive with a command message and a reply message. Read a register, write a register.

> When we have made testbenches that required serial communication to
> multiple parallel devices, we typically put a USB hub in the testbench
> and use multiple FDTI USB to serial cables. You only make one (or
> possibly a few) of the testbenches - it's much cheaper to use
> off-the-shelf parts than to spend time designing something more
> advanced. You can buy a /lot/ of hubs and USB cables for the price of
> the time to design, build and program a custom card for the job. It
> also makes the system more scalable, as the communication to different
> devices runs in parallel.

USB hubs are a last resort. I've found many issues with such devices, especially larger than 4 ports.

> We have also done systems where there is a Raspberry Pi driving the hub
> and multiple FTDI converters. The PC is connected to the Pi by Ethernet
> (useful for galvanic isolation), and the Pi runs forwarders between the
> serial ports and TCP/IP ports.

There is a possibility of using an rPi on an Ethernet cable to the PC with direct comms to each test fixture board, but that's more work that I'm interested in.

> To be fair, I don't recall any testbenches we've made that needed more
> than perhaps 8 serial ports. If I needed to handle 80 lines, I would
> probably split things up - a Pi handling 8-10 lines from a local
> program, communicating with a PC master program by Ethernet.

That's the advantage of the shared bus. No programming required, other than extending the protocol to move from "selecting" a device on the FPGA, to selecting the FPGA as well.

--

Rick C.

+ Get 1,000 miles of free Supercharging
+ Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<tjul46$18dkn$3@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1109&group=comp.arch.embedded#1109

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Wed, 2 Nov 2022 21:49:10 +0100
Organization: A noiseless patient Spider
Lines: 249
Message-ID: <tjul46$18dkn$3@dont-email.me>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me>
<b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 2 Nov 2022 20:49:11 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="456a077520b9f8076427452b68dcf6ab";
logging-data="1324695"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+JIKTp4XUP3v8cPK/mHcyaa011crqGz9c="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.2.2
Cancel-Lock: sha1:rbFlaPvFdnkyqru55Wwlgfa+i+I=
Content-Language: en-GB
In-Reply-To: <b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
 by: David Brown - Wed, 2 Nov 2022 20:49 UTC

On 02/11/2022 20:20, Rick C wrote:
> On Wednesday, November 2, 2022 at 5:28:21 AM UTC-4, David Brown
> wrote:
>> On 02/11/2022 06:28, Rick C wrote:
>>> I have a test fixture that uses RS-232 to communicate with a PC.
>>> It actually uses the voltage levels of RS-232, even though this
>>> is from a USB cable on the PC, so it's only RS-232 for maybe four
>>> inches. lol
>>>
>>> I'm redesigning the test fixtures to hold more units and fully
>>> automate a few features that presently requires an operator.
>>> There will now be 8 UUTs on each test fixture and I expect to
>>> have 10 to 20 test fixtures in a card rack. That's 80 to 160 UUTs
>>> total. There will be an FPGA controlling each pair of UUTs, so 80
>>> FPGAs in total that the PC needs to talk to.
>>>
>>> Rather than working on a way to mux 80 RS-232 interfaces, I'm
>>> thinking it would be better to either daisy chain, or connect in
>>> parallel all these devices. The protocol is master-slave where
>>> the master sends a command and the slaves are idle until they
>>> reply. The four FPGAs on a test fixture board could be connected
>>> in parallel easily enough. But I don't think I want to run TTL
>>> level signals between so many boards.
>>>
>>> I could do an RS-422 interface with a master to slave pair and a
>>> slave to master pair. The slaves do not speak until spoken to,
>>> so there will be no collisions.
>>>
>> RS-422 is normally a point-to-point interface. It is one line in
>> each direction, but using balanced pairs instead of a TTL signal.
>> You would not normally connect multiple receivers or transmitters
>> to an RS-422 bus, as the standard practice is that each transmitter
>> is always driving the pair it is attached to - there is no
>> multi-drop.
>
> That is simply not true. Data sheets for RS-422 devices often show
> multidrop applications and how to best terminate them.
>

RS-422 is not multidrop. Occasionally you will see multiple receivers
on a bus, but not multiple transmitters.

Of course the same driver chips can be used in different combinations of
wiring and drive enables. An RS-422 driver chip can be viewed as two
RS-485 driver chips - alternatively, a RS-485 driver can be viewed as an
RS-422 driver with the two differential pairs connected together.
Really, all you are talking about is a differential driver and a
differential receiver.

So yes, you can do multidrop using an RS-422 driver chip. But it is not
RS-422, which is a point-to-point serial bus standard.

>
>>> RS-485 would allow all this to be over a single pair of wires.
>>> But the one big issue I see people complain about is getting PC
>>> software to not clobber the slaves, or I should say, to get the
>>> master to wait long enough that it's not clobbering it's own
>>> start bit by overwriting the stop bit of the slave. I suppose
>>> someone, somewhere has dealt with this on the PC and has a
>>> solution that doesn't impact bus speed. I run the single test
>>> fixture version of this at about 100 kbps. I'm going to want as
>>> much speed as I can get for 80 FPGAs controlling 160 UUTs. Maybe
>>> I should give that some analysis, because this might not be
>>> true.
>> RS-485 is easy from a PC using appropriate USB devices. We make
>> heavy use of FTDI's chips and cables - they handle the drive
>> enables for the RS-485 automatically so that from the PC side you
>> just read and write to the serial port.
>
> I've yet to be convinced of this. Admittedly, my last interaction
> with RS-485 was many years ago, but there were some four or five
> different devices being integrated with a PC, and no two of them
> handled it the bus the same way. The PC in particular, would cut on
> and off the driver in the middle of bits. No one put a bias on the
> bus, so it was indeterminate when no one was driving. It was a
> horrible failure.
>
> Every time I've seen this discussed, the driver control has been an
> issue.

I can tell you it works perfectly with FTDI's RS-485 cables - every
time, every OS, regardless of the software. Some RS-485 drivers rely on
RTS for the drive enable - this was the standard for RS-232 to RS-485
converters from the old days of 9-pin and 25-pin serial ports on PC's.
With such drivers, it is certainly possible to get things wrong. With
the drive enable handled directly by the UART hardware on the USB chip,
it is /far/ harder to get it wrong.

I would expect there to be many alternatives to FTDI that work similarly
well, but that's the ones we generally use.

<https://ftdichip.com/product-category/products/cables/?series_products=55>

>
>> The reception of the last byte from a slave is not finished until
>> the stop bit has been properly received by the master - that means
>> at least half-way through the sending of the stop bit.
>
> That's not sufficient. Everyone's halfway is a bit different and
> start bit detection may not be enabled on some device when the next
> driver outputs a start bit, or the last driver may not be turned off
> when the next driver starts.
>

"At least half-way" means "at least 50% of the bit time". As long as
the start bit from the next message is not sent until at least 50% of a
bit time after the stop bit is detected, it will not conflict and all
listening devices will be ready to see the start bit. (Devices that
needed two stop bits haven't existed in the last 50 years.)

You asked specifically about bus turnaround at the host side - I assume
that is because on the slave devices, you have control of the drive
enables and bus turnaround happens with negligible latency.

>
>> Then there is a delay before the data gets sent back to the host
>> PC, a delay through the kernel and drivers before it reaches the
>> user program, time for the program to handle that message, time for
>> it to prepare the next message, delays through the kernel and
>> drivers before it gets to the USB bus, latency in the USB device
>> that receives the USB message and then starts transmitting. There
>> can be no collision unless all that delay is less than half a bit
>> time. And no matter how fast your computer is, you are always going
>> to need at least one full USB polling cycle for all this, which for
>> USB 2.0 is 0.125 us. That means that if you have a baud rate of 16
>> kbaud or higher, there is no possibility of a collision.
>
> If your numbers are accurate, that might be ok, but I'm looking for
> data rates closer to 1 Mbps.

USB serial ports generally use the 48 MHz base USB reference frequency
as their source clock to scale down by a baud rate divisor, and common
practice is 16 sub-bit clocks per line bit (so that you can have
multiple samples for noise immunity). Thus baud rates of integer
divisions of 3 MBaud are common. Certainly the FTDI chips handle 1, 2
and 3 MBaud. (I haven't had need of such speeds with RS-485, but have
happily used the common 3v3 TTL cables at 3 MBaud.)

> Admittedly, I have not done an analysis
> of what will actually be required, but 128 UUT, or possibly 256, can
> do a lot of damage to a shared bus. At 1 Mbps, 128 UUT results in an
> effective bit rate maximum of 7.8 kbps. With 256 UUTs, that's 3.9
> kbps. No, I don't think this will work properly at much slower
> speeds than 1 Mbps. At 16 kbps, the effective rate to each UUT is
> just 62.5 bps, not kbps.
>

As long as you are /above/ 16 kbaud, you should be fine (at the PC
side). At 1 Mbaud, you do not need to worry about the PC starting a new
telegram before the last received stop bit is completed.

>
>>> The tests are of two types, most of them are setting up a state
>>> and reading a signal. This can go pretty fast and doesn't take
>>> too many commands. Then there are the audio tests where the FPGA
>>> sends digital data to the UUT, which does it's thing and returns
>>> digital data which is crunched by the FPGA. This takes some small
>>> number of seconds and presently the protocol is to poll the
>>> status until it is done. That's a lot of messages, but it's not
>>> necessarily a slow point. The same test can be started on every
>>> UUT in parallel, so the waiting is in parallel. So maybe the
>>> serial port won't need to be any faster.
>>>
>>> Still, I want to use RS-422 or RS-485 to deal with ground noise
>>> since this will be spread over multiple boards that don't have
>>> terribly solid grounds, just the power cable really.
>>>
>>> I'm thinking out loud here as much as anything. I intended to
>>> simply ask if anyone had experience with RS-485 that would be
>>> helpful. Running two wires rather than eight would be a help.
>>> I'll probably use a 10 pin connector just to be on the safe side,
>>> allowing the transceivers to be used either way.
>>>
>> You need to do some calculations to see if you can get enough
>> telegrams and enough data through a single serial port. You'll be
>> hard pushed to find a USB serial port device of any kind that goes
>> above 3 Mbaud, and you need to be careful about your selection of
>> RS-485 drivers for those kinds of rates. You will also find that
>> much of your bandwidth is taken up with pauses between telegrams
>> and reply latency, unless you make your telegrams quite large.
>
> I assume by "telegrams", you mean the messages. They will be small
> by necessity. The protocol is interactive with a command message and
> a reply message. Read a register, write a register.
>


Click here to read the complete article
Re: Shared Communications Bus - RS-422 or RS-485

<871qql2ezq.fsf@nightsong.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1114&group=comp.arch.embedded#1114

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Wed, 02 Nov 2022 15:00:57 -0700
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <871qql2ezq.fsf@nightsong.com>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: reader01.eternal-september.org; posting-host="a4c277599db1974944373a50bcd7f45b";
logging-data="1335349"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/dXSkC4Rq4Io7Ir5gbrUqk"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:deri23uC02eKdpx8vxsGRt+vFjY=
sha1:OZYsIm5e9oTJHgDS5T6ij6jAK7M=
 by: Paul Rubin - Wed, 2 Nov 2022 22:00 UTC

Rick C <gnuarm.deletethisbit@gmail.com> writes:
> That's 80 to 160 UUTs total. There will be an FPGA controlling each
> pair of UUTs, so 80 FPGAs in total that the PC needs to talk to.

Rather than make a huge shared bus, I wonder if you could move the test
controller from a PC to a small microprocessor board that controls two
FPGA's or whatever. Then use a bunch of separate boards of that type,
communicating with a PC using some method that doesn't have to be
especially fast. The microprocessor board could be something like a
Raspberry Pi Pico, which costs $4 and can run Mecrisp, if that is what
your software is written with. It is quite a powerful little board.

Re: Shared Communications Bus - RS-422 or RS-485

<ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1118&group=comp.arch.embedded#1118

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:a05:620a:430a:b0:6f6:589b:463d with SMTP id u10-20020a05620a430a00b006f6589b463dmr19355122qko.139.1667431654883;
Wed, 02 Nov 2022 16:27:34 -0700 (PDT)
X-Received: by 2002:a5b:c92:0:b0:688:436c:b2b with SMTP id i18-20020a5b0c92000000b00688436c0b2bmr25910798ybq.436.1667431654611;
Wed, 02 Nov 2022 16:27:34 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Wed, 2 Nov 2022 16:27:34 -0700 (PDT)
In-Reply-To: <tjul46$18dkn$3@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me> <b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Wed, 02 Nov 2022 23:27:34 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 19751
 by: Rick C - Wed, 2 Nov 2022 23:27 UTC

On Wednesday, November 2, 2022 at 4:49:16 PM UTC-4, David Brown wrote:
> On 02/11/2022 20:20, Rick C wrote:
> > On Wednesday, November 2, 2022 at 5:28:21 AM UTC-4, David Brown
> > wrote:
> >> On 02/11/2022 06:28, Rick C wrote:
> >>> I have a test fixture that uses RS-232 to communicate with a PC.
> >>> It actually uses the voltage levels of RS-232, even though this
> >>> is from a USB cable on the PC, so it's only RS-232 for maybe four
> >>> inches. lol
> >>>
> >>> I'm redesigning the test fixtures to hold more units and fully
> >>> automate a few features that presently requires an operator.
> >>> There will now be 8 UUTs on each test fixture and I expect to
> >>> have 10 to 20 test fixtures in a card rack. That's 80 to 160 UUTs
> >>> total. There will be an FPGA controlling each pair of UUTs, so 80
> >>> FPGAs in total that the PC needs to talk to.
> >>>
> >>> Rather than working on a way to mux 80 RS-232 interfaces, I'm
> >>> thinking it would be better to either daisy chain, or connect in
> >>> parallel all these devices. The protocol is master-slave where
> >>> the master sends a command and the slaves are idle until they
> >>> reply. The four FPGAs on a test fixture board could be connected
> >>> in parallel easily enough. But I don't think I want to run TTL
> >>> level signals between so many boards.
> >>>
> >>> I could do an RS-422 interface with a master to slave pair and a
> >>> slave to master pair. The slaves do not speak until spoken to,
> >>> so there will be no collisions.
> >>>
> >> RS-422 is normally a point-to-point interface. It is one line in
> >> each direction, but using balanced pairs instead of a TTL signal.
> >> You would not normally connect multiple receivers or transmitters
> >> to an RS-422 bus, as the standard practice is that each transmitter
> >> is always driving the pair it is attached to - there is no
> >> multi-drop.
> >
> > That is simply not true. Data sheets for RS-422 devices often show
> > multidrop applications and how to best terminate them.
> >
> RS-422 is not multidrop. Occasionally you will see multiple receivers
> on a bus, but not multiple transmitters.

Not sure of your point. Multi-drop is multiple receivers on a single transmitter. Multi-point is multiple drivers and receivers. Look at a few references. Even wikipedia says, "RS-422 provides for data transmission, using balanced, or differential, signaling, with unidirectional/non-reversible, terminated or non-terminated transmission lines, point to point, or multi-drop. In contrast to EIA-485, RS-422/V.11 does not allow multiple drivers but only multiple receivers."

> Of course the same driver chips can be used in different combinations of
> wiring and drive enables. An RS-422 driver chip can be viewed as two
> RS-485 driver chips - alternatively, a RS-485 driver can be viewed as an
> RS-422 driver with the two differential pairs connected together.
> Really, all you are talking about is a differential driver and a
> differential receiver.

Sure, but the point is, nothing in RS-422 precludes multiple receivers, and in fact, every reference I've found (not paying for the actual spec) shows multi-drop receivers.

> So yes, you can do multidrop using an RS-422 driver chip. But it is not
> RS-422, which is a point-to-point serial bus standard.

I don't believe that is correct. If you have a copy of the spec to share, I'd love to look at it. I might have one myself, but it would be a paper copy somewhere unknown. The diagrams showing multi-drop RS-422 is so ubiquitous, I expect they are from the standard itself.

> >>> RS-485 would allow all this to be over a single pair of wires.
> >>> But the one big issue I see people complain about is getting PC
> >>> software to not clobber the slaves, or I should say, to get the
> >>> master to wait long enough that it's not clobbering it's own
> >>> start bit by overwriting the stop bit of the slave. I suppose
> >>> someone, somewhere has dealt with this on the PC and has a
> >>> solution that doesn't impact bus speed. I run the single test
> >>> fixture version of this at about 100 kbps. I'm going to want as
> >>> much speed as I can get for 80 FPGAs controlling 160 UUTs. Maybe
> >>> I should give that some analysis, because this might not be
> >>> true.
> >> RS-485 is easy from a PC using appropriate USB devices. We make
> >> heavy use of FTDI's chips and cables - they handle the drive
> >> enables for the RS-485 automatically so that from the PC side you
> >> just read and write to the serial port.
> >
> > I've yet to be convinced of this. Admittedly, my last interaction
> > with RS-485 was many years ago, but there were some four or five
> > different devices being integrated with a PC, and no two of them
> > handled it the bus the same way. The PC in particular, would cut on
> > and off the driver in the middle of bits. No one put a bias on the
> > bus, so it was indeterminate when no one was driving. It was a
> > horrible failure.
> >
> > Every time I've seen this discussed, the driver control has been an
> > issue.
> I can tell you it works perfectly with FTDI's RS-485 cables - every
> time, every OS, regardless of the software. Some RS-485 drivers rely on
> RTS for the drive enable - this was the standard for RS-232 to RS-485
> converters from the old days of 9-pin and 25-pin serial ports on PC's.
> With such drivers, it is certainly possible to get things wrong. With
> the drive enable handled directly by the UART hardware on the USB chip,
> it is /far/ harder to get it wrong.

So, what range of speeds have you used? It is actually the UART hardware that *does* get it very wrong by working off the transmitter empty signal, which changes in the middle of the bit. The control has to be specially designed to transition at the *end* of the stop bit of the transmitted character. Knowing when it is ok to enable the driver has the same problem. The data is "received" in the middle of the stop bit. So the enable has to be a half bit time later, at the end of the stop bit.

None of this matters to me really. I'm going to use more wires, and do the multi-drop from the PC to the slaves on one pair and use RS-422 to multi-point from the slaves to the PC. Since the slaves are controlled by the master, they will never collide. The master can't collide with itself, so I can ignore any issues with this. I will use the bias resistors to assure a valid idle state. I may need to select different devices than the ones I use in the product. I think there are differences in the input load and I want to be sure I can chain up to 32 units.

> I would expect there to be many alternatives to FTDI that work similarly
> well, but that's the ones we generally use.
>
> <https://ftdichip.com/product-category/products/cables/?series_products=55>
> >
> >> The reception of the last byte from a slave is not finished until
> >> the stop bit has been properly received by the master - that means
> >> at least half-way through the sending of the stop bit.
> >
> > That's not sufficient. Everyone's halfway is a bit different and
> > start bit detection may not be enabled on some device when the next
> > driver outputs a start bit, or the last driver may not be turned off
> > when the next driver starts.
> >
> "At least half-way" means "at least 50% of the bit time". As long as
> the start bit from the next message is not sent until at least 50% of a
> bit time after the stop bit is detected, it will not conflict and all
> listening devices will be ready to see the start bit. (Devices that
> needed two stop bits haven't existed in the last 50 years.)

You don't seem to understand that there is nothing timing from the start of the bit. The timing is from the first detected low of the start bit. From there, all timing is done by an internal clock. Check the math, you don't get 50% of the stop bit, guaranteed. That's why they call it "asynchronous" serial.

> You asked specifically about bus turnaround at the host side - I assume
> that is because on the slave devices, you have control of the drive
> enables and bus turnaround happens with negligible latency.

I know the master has the most trouble with this. The slaves tend to not have a problem because they are operated by MCUs and can wait a bit time before replying, or even a character time. I suppose they don't have any magic on turning off the driver though, but early is the easy way and generally doesn't cause a problem. The master has trouble on both ends of it's message, needing to be careful to not turn on the driver too soon and not turning it off too late to clobber the reply.


Click here to read the complete article
Re: Shared Communications Bus - RS-422 or RS-485

<85415d13-1a8c-4f07-8bbf-46564346cf36n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1119&group=comp.arch.embedded#1119

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:ac8:5c8b:0:b0:39b:ff53:bb57 with SMTP id r11-20020ac85c8b000000b0039bff53bb57mr22070950qta.293.1667431893459;
Wed, 02 Nov 2022 16:31:33 -0700 (PDT)
X-Received: by 2002:a05:6902:383:b0:6cb:efa3:9a49 with SMTP id
f3-20020a056902038300b006cbefa39a49mr26099543ybs.71.1667431893236; Wed, 02
Nov 2022 16:31:33 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Wed, 2 Nov 2022 16:31:32 -0700 (PDT)
In-Reply-To: <871qql2ezq.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com> <871qql2ezq.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <85415d13-1a8c-4f07-8bbf-46564346cf36n@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Wed, 02 Nov 2022 23:31:33 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2430
 by: Rick C - Wed, 2 Nov 2022 23:31 UTC

On Wednesday, November 2, 2022 at 6:01:02 PM UTC-4, Paul Rubin wrote:
> Rick C <gnuarm.del...@gmail.com> writes:
> > That's 80 to 160 UUTs total. There will be an FPGA controlling each
> > pair of UUTs, so 80 FPGAs in total that the PC needs to talk to.
> Rather than make a huge shared bus, I wonder if you could move the test
> controller from a PC to a small microprocessor board that controls two
> FPGA's or whatever. Then use a bunch of separate boards of that type,
> communicating with a PC using some method that doesn't have to be
> especially fast. The microprocessor board could be something like a
> Raspberry Pi Pico, which costs $4 and can run Mecrisp, if that is what
> your software is written with. It is quite a powerful little board.

I'm lost. How is this any better? The data collection is running on the PC, so there still has to be communications. If I want to make changes to the test program, it's one place, not 32 places, or 128 places. All they would be doing is acting as a serial port concentrator. They went out 40 years ago!

--

Rick C.

-+ Get 1,000 miles of free Supercharging
-+ Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<87k04c27rt.fsf@nightsong.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1120&group=comp.arch.embedded#1120

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Wed, 02 Nov 2022 17:36:54 -0700
Organization: A noiseless patient Spider
Lines: 21
Message-ID: <87k04c27rt.fsf@nightsong.com>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<871qql2ezq.fsf@nightsong.com>
<85415d13-1a8c-4f07-8bbf-46564346cf36n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: reader01.eternal-september.org; posting-host="1b825525f395ae7931c686911d6726ac";
logging-data="1359306"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18EIOh4Wifq2xOLNNGdeULh"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:/R7Hbb8xnxbNahQnW0FUNp4pMsI=
sha1:77DwQL2ZifS9Hf2QtTdabJzM7FQ=
 by: Paul Rubin - Thu, 3 Nov 2022 00:36 UTC

Rick C <gnuarm.deletethisbit@gmail.com> writes:
> I'm lost. How is this any better? The data collection is running on
> the PC, so there still has to be communications... All they would be
> doing is acting as a serial port concentrator. They went out 40 years
> ago!

Well, I always like doing stuff in software instead of hardware. Serial
port concentrators are still around and I posted a link to one in your
other thread. It seems like a reasonable approach too. Oddly, a quick
web search doesn't find any big cheap serial to ethernet ones, but maybe
you could use USB hubs and FTDI-like cables.

The idea of using an MCU is to move almost everything speed critical
away from the PC. The MCU only has control the FPGA's and transfer
transfer digested data upwards to the PC. By having some fanout you
could potentially control 1000s of UUT instead of 80 from a single PC,
without having to build anything special. It would just mean plugging
some off the shelf boxes together, and writing some code.

You're more comfortable with hardware than I am, so maybe that approach
has less attraction for you than it does for me.

Re: Shared Communications Bus - RS-422 or RS-485

<cbbd68d3-c4bf-4ae4-b063-a14ba488a22dn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1121&group=comp.arch.embedded#1121

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:a05:6214:248c:b0:4b8:fbe7:35a0 with SMTP id gi12-20020a056214248c00b004b8fbe735a0mr25466971qvb.75.1667451485575;
Wed, 02 Nov 2022 21:58:05 -0700 (PDT)
X-Received: by 2002:a81:7c08:0:b0:373:68da:3a60 with SMTP id
x8-20020a817c08000000b0037368da3a60mr2772557ywc.331.1667451485248; Wed, 02
Nov 2022 21:58:05 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Wed, 2 Nov 2022 21:58:05 -0700 (PDT)
In-Reply-To: <87k04c27rt.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<871qql2ezq.fsf@nightsong.com> <85415d13-1a8c-4f07-8bbf-46564346cf36n@googlegroups.com>
<87k04c27rt.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cbbd68d3-c4bf-4ae4-b063-a14ba488a22dn@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Thu, 03 Nov 2022 04:58:05 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 3288
 by: Rick C - Thu, 3 Nov 2022 04:58 UTC

On Wednesday, November 2, 2022 at 8:37:03 PM UTC-4, Paul Rubin wrote:
> Rick C <gnuarm.del...@gmail.com> writes:
> > I'm lost. How is this any better? The data collection is running on
> > the PC, so there still has to be communications... All they would be
> > doing is acting as a serial port concentrator. They went out 40 years
> > ago!
> Well, I always like doing stuff in software instead of hardware.

What hardware can you replace with software??? You use *different* hardware and then have to add new software. That's not an improvement.

> Serial
> port concentrators are still around and I posted a link to one in your
> other thread. It seems like a reasonable approach too. Oddly, a quick
> web search doesn't find any big cheap serial to ethernet ones, but maybe
> you could use USB hubs and FTDI-like cables.

I'm getting tired of discussing this. Your added hardware solves no problems. Having 32 serial ports just makes the software more complex and saves nothing.

> The idea of using an MCU is to move almost everything speed critical
> away from the PC. The MCU only has control the FPGA's and transfer
> transfer digested data upwards to the PC. By having some fanout you
> could potentially control 1000s of UUT instead of 80 from a single PC,
> without having to build anything special. It would just mean plugging
> some off the shelf boxes together, and writing some code.
>
> You're more comfortable with hardware than I am, so maybe that approach
> has less attraction for you than it does for me.

What hardware??? It's a serial port either way. You want to add a middle man that accomplishes nothing. You talk about controlling 1000's of UUTs, but there is no need for that.

What I need at this point, is the mechanical details of how to design a board to fit into a Eurocard chassis and how to figure out all the bits that go with it.

--

Rick C.

+- Get 1,000 miles of free Supercharging
+- Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<tk09ev$1f0de$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1124&group=comp.arch.embedded#1124

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Thu, 3 Nov 2022 12:42:23 +0100
Organization: A noiseless patient Spider
Lines: 460
Message-ID: <tk09ev$1f0de$1@dont-email.me>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me>
<b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me>
<ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 3 Nov 2022 11:42:23 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="a9e1ce2246d9fa9dbb9199e2ffd342f9";
logging-data="1540526"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX196Nn71Z86xsFiua+C7TB4JYiZE2CdaRLY="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Cancel-Lock: sha1:m/Oh9UE7NmHR0C/q8LJ5aeQq6yU=
Content-Language: en-GB
In-Reply-To: <ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
 by: David Brown - Thu, 3 Nov 2022 11:42 UTC

On 03/11/2022 00:27, Rick C wrote:
> On Wednesday, November 2, 2022 at 4:49:16 PM UTC-4, David Brown wrote:
>> On 02/11/2022 20:20, Rick C wrote:
>>> On Wednesday, November 2, 2022 at 5:28:21 AM UTC-4, David Brown
>>> wrote:
>>>> On 02/11/2022 06:28, Rick C wrote:
>>>>> I have a test fixture that uses RS-232 to communicate with a PC.
>>>>> It actually uses the voltage levels of RS-232, even though this
>>>>> is from a USB cable on the PC, so it's only RS-232 for maybe four
>>>>> inches. lol
>>>>>
>>>>> I'm redesigning the test fixtures to hold more units and fully
>>>>> automate a few features that presently requires an operator.
>>>>> There will now be 8 UUTs on each test fixture and I expect to
>>>>> have 10 to 20 test fixtures in a card rack. That's 80 to 160 UUTs
>>>>> total. There will be an FPGA controlling each pair of UUTs, so 80
>>>>> FPGAs in total that the PC needs to talk to.
>>>>>
>>>>> Rather than working on a way to mux 80 RS-232 interfaces, I'm
>>>>> thinking it would be better to either daisy chain, or connect in
>>>>> parallel all these devices. The protocol is master-slave where
>>>>> the master sends a command and the slaves are idle until they
>>>>> reply. The four FPGAs on a test fixture board could be connected
>>>>> in parallel easily enough. But I don't think I want to run TTL
>>>>> level signals between so many boards.
>>>>>
>>>>> I could do an RS-422 interface with a master to slave pair and a
>>>>> slave to master pair. The slaves do not speak until spoken to,
>>>>> so there will be no collisions.
>>>>>
>>>> RS-422 is normally a point-to-point interface. It is one line in
>>>> each direction, but using balanced pairs instead of a TTL signal.
>>>> You would not normally connect multiple receivers or transmitters
>>>> to an RS-422 bus, as the standard practice is that each transmitter
>>>> is always driving the pair it is attached to - there is no
>>>> multi-drop.
>>>
>>> That is simply not true. Data sheets for RS-422 devices often show
>>> multidrop applications and how to best terminate them.
>>>
>> RS-422 is not multidrop. Occasionally you will see multiple receivers
>> on a bus, but not multiple transmitters.
>
> Not sure of your point. Multi-drop is multiple receivers on a single transmitter. Multi-point is multiple drivers and receivers. Look at a few references. Even wikipedia says, "RS-422 provides for data transmission, using balanced, or differential, signaling, with unidirectional/non-reversible, terminated or non-terminated transmission lines, point to point, or multi-drop. In contrast to EIA-485, RS-422/V.11 does not allow multiple drivers but only multiple receivers."
>

OK. I have always associated "multidrop" with multiple receivers /and/
transmitters - I have never come across a need for multiple receivers on
a serial bus without them also needing to transmit (such as in your
case), or a distinction between "multi-drop" meaning multiple receivers
and "multi-point" meaning multiple transmitters.

The term "multi-drop" is more commonly taken to mean "multiple devices
connected directly to the same bus, transmitting and receiving". The
bus has no explicit direction on the electrical connections. Examples
include RS-485, CAN, co-ax Ethernet.

"Multi-point" is more general and can be any kind of network where there
are multiple nodes that can send and receive to all other nodes. That
would include a switched Ethernet network as well as the subclass of
"multi-drop" networks.

But whatever the terms, I think we agree on how RS-422 works.

>
>> Of course the same driver chips can be used in different combinations of
>> wiring and drive enables. An RS-422 driver chip can be viewed as two
>> RS-485 driver chips - alternatively, a RS-485 driver can be viewed as an
>> RS-422 driver with the two differential pairs connected together.
>> Really, all you are talking about is a differential driver and a
>> differential receiver.
>
> Sure, but the point is, nothing in RS-422 precludes multiple receivers, and in fact, every reference I've found (not paying for the actual spec) shows multi-drop receivers.
>

Yes, it seems that is entirely possible. The only uses I have seen for
RS-422 is as a kind of long-range alternative to RS-232. And the only
use I have seen for multiple receivers is - like for RS-232 - for
monitoring and debugging communication.

Still, multiple receivers are not going to help you in your testbench
unless they can also transmit.

>
>> So yes, you can do multidrop using an RS-422 driver chip. But it is not
>> RS-422, which is a point-to-point serial bus standard.
>
> I don't believe that is correct. If you have a copy of the spec to share, I'd love to look at it. I might have one myself, but it would be a paper copy somewhere unknown. The diagrams showing multi-drop RS-422 is so ubiquitous, I expect they are from the standard itself.
>
>
>>>>> RS-485 would allow all this to be over a single pair of wires.
>>>>> But the one big issue I see people complain about is getting PC
>>>>> software to not clobber the slaves, or I should say, to get the
>>>>> master to wait long enough that it's not clobbering it's own
>>>>> start bit by overwriting the stop bit of the slave. I suppose
>>>>> someone, somewhere has dealt with this on the PC and has a
>>>>> solution that doesn't impact bus speed. I run the single test
>>>>> fixture version of this at about 100 kbps. I'm going to want as
>>>>> much speed as I can get for 80 FPGAs controlling 160 UUTs. Maybe
>>>>> I should give that some analysis, because this might not be
>>>>> true.
>>>> RS-485 is easy from a PC using appropriate USB devices. We make
>>>> heavy use of FTDI's chips and cables - they handle the drive
>>>> enables for the RS-485 automatically so that from the PC side you
>>>> just read and write to the serial port.
>>>
>>> I've yet to be convinced of this. Admittedly, my last interaction
>>> with RS-485 was many years ago, but there were some four or five
>>> different devices being integrated with a PC, and no two of them
>>> handled it the bus the same way. The PC in particular, would cut on
>>> and off the driver in the middle of bits. No one put a bias on the
>>> bus, so it was indeterminate when no one was driving. It was a
>>> horrible failure.
>>>
>>> Every time I've seen this discussed, the driver control has been an
>>> issue.
>> I can tell you it works perfectly with FTDI's RS-485 cables - every
>> time, every OS, regardless of the software. Some RS-485 drivers rely on
>> RTS for the drive enable - this was the standard for RS-232 to RS-485
>> converters from the old days of 9-pin and 25-pin serial ports on PC's.
>> With such drivers, it is certainly possible to get things wrong. With
>> the drive enable handled directly by the UART hardware on the USB chip,
>> it is /far/ harder to get it wrong.
>
> So, what range of speeds have you used? It is actually the UART hardware that *does* get it very wrong by working off the transmitter empty signal, which changes in the middle of the bit. The control has to be specially designed to transition at the *end* of the stop bit of the transmitted character. Knowing when it is ok to enable the driver has the same problem. The data is "received" in the middle of the stop bit. So the enable has to be a half bit time later, at the end of the stop bit.

For RS-485, my usage has usually been quite slow (9600 baud is very
common). Other colleagues have used faster rates. But as I said, it is
the slow baud rates that are at higher risk.

However, without knowing exact implementation details of all UART
hardware, I think you are wrong. There are two "finished byte" signals
that are common in UART transmission hardware.

The first is "transmit buffer empty" which is set when a byte is
transferred from the buffer into the transmitter shift register - most
UARTs are at least double-buffered to improve flow. This signal comes a
whole character before the end of the transmission - it is useful for
the software, but not the hardware. If you have a transmitter that is
not double-buffered, this signal would likely come at the beginning of
the stop bit, or at the end of the stop bit (depending on how the state
machines were made).


Click here to read the complete article
Re: Shared Communications Bus - RS-422 or RS-485

<tk0e27$1f1rv$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1126&group=comp.arch.embedded#1126

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: pozzu...@gmail.com (pozz)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Thu, 3 Nov 2022 14:00:56 +0100
Organization: A noiseless patient Spider
Lines: 55
Message-ID: <tk0e27$1f1rv$1@dont-email.me>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me>
<b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me>
<ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
<tk09ev$1f0de$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 3 Nov 2022 13:00:55 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="4f048a7ddb7495bb4e4cfd37eb720b13";
logging-data="1542015"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+t7YBT618kV8xdYyBwLl+I1Hhm8gG9Tzs="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.4.1
Cancel-Lock: sha1:GXRaaMdntvKTD8efA8CwuOemung=
In-Reply-To: <tk09ev$1f0de$1@dont-email.me>
 by: pozz - Thu, 3 Nov 2022 13:00 UTC

Il 03/11/2022 12:42, David Brown ha scritto:
> On 03/11/2022 00:27, Rick C wrote:
>> On Wednesday, November 2, 2022 at 4:49:16 PM UTC-4, David Brown wrote:
>>> On 02/11/2022 20:20, Rick C wrote:
>>>> On Wednesday, November 2, 2022 at 5:28:21 AM UTC-4, David Brown
>>>> wrote:
>>>>> On 02/11/2022 06:28, Rick C wrote:

> You are correct that reception is in the middle of the stop bit
> (typically sub-slot 9 of 16).  The first transmitter will be disabled at
> the end of the stop bit, and the next transmitter must not enable its
> driver until after that point - it must wait at least half a bit time
> after reception before starting transmission.  (It can wait longer
> without trouble, which is why faster baud rates are less likely to
> involve any complications here.)

Do you mean that RX interrupt triggers in the middle of the stop bit and
not at the end? Interesting, but are you sure this is the case for every
UART implemented in MCUs?

I wouldn't be surprised if the implementation was different for
different manufacturers.

>> None of this matters to me really.  I'm going to use more wires, and
>> do the multi-drop from the PC to the slaves on one pair and use RS-422
>> to multi-point from the slaves to the PC.  Since the slaves are
>> controlled by the master, they will never collide.  The master can't
>> collide with itself, so I can ignore any issues with this.  I will use
>> the bias resistors to assure a valid idle state.  I may need to select
>> different devices than the ones I use in the product.  I think there
>> are differences in the input load and I want to be sure I can chain up
>> to 32 units.
>>
>
> OK.  I have no idea what such a hybrid bus should technically be called,
> but I think it should work absolutely fine for the purpose and seems
> like a solid solution.  I would not foresee any issues with 32 nodes on
> such a bus, especially if it is relatively short and you have
> terminators at each end.

In my experience, termination resistors at each end of the line could
introduce other troubles if they aren't strictly required (because of
signal integrity on long lines at high baud rates).

The receiver input impedance of all the nodes on the bus are in parallel
with the two terminators. If you have many nodes, the equivalent
impedance on the bus is much small and the partition with bias resistors
could reduce the differential voltage between A and B at idle to less
than 200mV.

If you don't use true fail-safe transceivers, a fault start bit could be
seen by these kind of receivers.

Re: Shared Communications Bus - RS-422 or RS-485

<tk0mih$1g2fh$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1127&group=comp.arch.embedded#1127

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Thu, 3 Nov 2022 16:26:09 +0100
Organization: A noiseless patient Spider
Lines: 83
Message-ID: <tk0mih$1g2fh$1@dont-email.me>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me>
<b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me>
<ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
<tk09ev$1f0de$1@dont-email.me> <tk0e27$1f1rv$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 3 Nov 2022 15:26:09 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="a9e1ce2246d9fa9dbb9199e2ffd342f9";
logging-data="1575409"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19WX8vvc7Ww2Fcs+tMHKL2X305TFMk83Fs="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.9.1
Cancel-Lock: sha1:YlDMy/oisOnogDC8Ure3yxQpJm8=
In-Reply-To: <tk0e27$1f1rv$1@dont-email.me>
Content-Language: en-GB
 by: David Brown - Thu, 3 Nov 2022 15:26 UTC

On 03/11/2022 14:00, pozz wrote:
> Il 03/11/2022 12:42, David Brown ha scritto:
>> On 03/11/2022 00:27, Rick C wrote:
>>> On Wednesday, November 2, 2022 at 4:49:16 PM UTC-4, David Brown wrote:
>>>> On 02/11/2022 20:20, Rick C wrote:
>>>>> On Wednesday, November 2, 2022 at 5:28:21 AM UTC-4, David Brown
>>>>> wrote:
>>>>>> On 02/11/2022 06:28, Rick C wrote:
>
>
>> You are correct that reception is in the middle of the stop bit
>> (typically sub-slot 9 of 16).  The first transmitter will be disabled
>> at the end of the stop bit, and the next transmitter must not enable
>> its driver until after that point - it must wait at least half a bit
>> time after reception before starting transmission.  (It can wait
>> longer without trouble, which is why faster baud rates are less likely
>> to involve any complications here.)
>
> Do you mean that RX interrupt triggers in the middle of the stop bit and
> not at the end? Interesting, but are you sure this is the case for every
> UART implemented in MCUs?

Of course I'm not sure - there are a /lot/ of MCU manufacturers!

UART receivers usually work in the same way, however. They have a
sample clock running at 16 times the baud clock. The start bit is edge
triggered to give the start of the character frame. Then each bit is
sampled in the middle of its time slot - usually at subbit slots 7, 8,
and 9 with majority voting. So the stop bit is recognized by subbit
slot 9 of the tenth bit (assuming 8-bit, no parity) - the voltage on the
line after that is irrelevant. (Even when you have two stop bits,
receivers never check the second stop bit - it affects transmit timing
only.) What purpose would there be in waiting another 7 subbits before
triggering the interrupt, DMA, or whatever?

>
> I wouldn't be surprised if the implementation was different for
> different manufacturers.
>

I've seen a bit of variation, including 8 subbit clocks per baud clock,
wider sampling ranges, re-sync of the clock on edges, etc. And of
course you don't always get the details of the timings in datasheets
(and who bothers measuring them?) But the key principles are the same.

>
>>> None of this matters to me really.  I'm going to use more wires, and
>>> do the multi-drop from the PC to the slaves on one pair and use
>>> RS-422 to multi-point from the slaves to the PC.  Since the slaves
>>> are controlled by the master, they will never collide.  The master
>>> can't collide with itself, so I can ignore any issues with this.  I
>>> will use the bias resistors to assure a valid idle state.  I may need
>>> to select different devices than the ones I use in the product.  I
>>> think there are differences in the input load and I want to be sure I
>>> can chain up to 32 units.
>>>
>>
>> OK.  I have no idea what such a hybrid bus should technically be
>> called, but I think it should work absolutely fine for the purpose and
>> seems like a solid solution.  I would not foresee any issues with 32
>> nodes on such a bus, especially if it is relatively short and you have
>> terminators at each end.
>
> In my experience, termination resistors at each end of the line could
> introduce other troubles if they aren't strictly required (because of
> signal integrity on long lines at high baud rates).
>

RS-485 requires them - you want to hold the bus at a stable idle state
when nothing is driving it. You also want to have a bit of load so that
you have some current on the bus, and thereby greater noise immunity.

> The receiver input impedance of all the nodes on the bus are in parallel
> with the two terminators. If you have many nodes, the equivalent
> impedance on the bus is much small and the partition with bias resistors
> could reduce the differential voltage between A and B at idle to less
> than 200mV.
>
> If you don't use true fail-safe transceivers, a fault start bit could be
> seen by these kind of receivers.
>

Receiver load is very small on modern RS-485 drivers.

Re: Shared Communications Bus - RS-422 or RS-485

<d6523819-5f08-4dad-9032-aa3ada86f989n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1128&group=comp.arch.embedded#1128

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:a37:9246:0:b0:6fa:6e0c:e12 with SMTP id u67-20020a379246000000b006fa6e0c0e12mr5225466qkd.92.1667489348665;
Thu, 03 Nov 2022 08:29:08 -0700 (PDT)
X-Received: by 2002:a0d:e2ca:0:b0:36c:4402:bf6d with SMTP id
l193-20020a0de2ca000000b0036c4402bf6dmr28183970ywe.14.1667489348346; Thu, 03
Nov 2022 08:29:08 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Thu, 3 Nov 2022 08:29:08 -0700 (PDT)
In-Reply-To: <tk0e27$1f1rv$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=63.114.57.174; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 63.114.57.174
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me> <b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me> <ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
<tk09ev$1f0de$1@dont-email.me> <tk0e27$1f1rv$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d6523819-5f08-4dad-9032-aa3ada86f989n@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Thu, 03 Nov 2022 15:29:08 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 7978
 by: Rick C - Thu, 3 Nov 2022 15:29 UTC

On Thursday, November 3, 2022 at 9:01:00 AM UTC-4, pozz wrote:
> Il 03/11/2022 12:42, David Brown ha scritto:
> > On 03/11/2022 00:27, Rick C wrote:
> >> On Wednesday, November 2, 2022 at 4:49:16 PM UTC-4, David Brown wrote:
> >>> On 02/11/2022 20:20, Rick C wrote:
> >>>> On Wednesday, November 2, 2022 at 5:28:21 AM UTC-4, David Brown
> >>>> wrote:
> >>>>> On 02/11/2022 06:28, Rick C wrote:
>
>
> > You are correct that reception is in the middle of the stop bit
> > (typically sub-slot 9 of 16). The first transmitter will be disabled at
> > the end of the stop bit, and the next transmitter must not enable its
> > driver until after that point - it must wait at least half a bit time
> > after reception before starting transmission. (It can wait longer
> > without trouble, which is why faster baud rates are less likely to
> > involve any complications here.)
> Do you mean that RX interrupt triggers in the middle of the stop bit and
> not at the end? Interesting, but are you sure this is the case for every
> UART implemented in MCUs?

No, I have not tested every MCU UART ever made. This was the case when I tried using RS-485 many years ago and was in every UART chip available. I forget the number, but there was a particular part made by Western Digital that became the "standard". It blossomed into a family of devices with small improvements in each (typically adding a FIFO and the size of the FIFO). I never saw one of that family which changed this "feature". It's because the purpose of this signal was not to control a driver, but to signal to a CPU the buffer condition. The UART timing is to first align to the middle of the start bit, then continue marking the time for bit centers. When it times the middle of the stop bit, the receiver or transmitter is done and flags the received character is available or the transmitter register is empty. The stop bit is the default value of the line, so nothing further has to be done in the UART, other than the receiver entering the start bit hunt mode.

If a modern UART has a separate signal that flags the end of the stop bit time, that would be great, but I have no reason to think this is available in every case, or any particular case, unless it is documented, *well* documented. Have you seen any parts that specifically indicate they flag the end of the stop bit of characters received or transmitted?

I recall the 8251 USART by Intel was full of bugs and this flag was no exception.

> I wouldn't be surprised if the implementation was different for
> different manufacturers.

Of course. The trouble is knowing which ones have what!

> >> None of this matters to me really. I'm going to use more wires, and
> >> do the multi-drop from the PC to the slaves on one pair and use RS-422
> >> to multi-point from the slaves to the PC. Since the slaves are
> >> controlled by the master, they will never collide. The master can't
> >> collide with itself, so I can ignore any issues with this. I will use
> >> the bias resistors to assure a valid idle state. I may need to select
> >> different devices than the ones I use in the product. I think there
> >> are differences in the input load and I want to be sure I can chain up
> >> to 32 units.
> >>
> >
> > OK. I have no idea what such a hybrid bus should technically be called,
> > but I think it should work absolutely fine for the purpose and seems
> > like a solid solution. I would not foresee any issues with 32 nodes on
> > such a bus, especially if it is relatively short and you have
> > terminators at each end.
> In my experience, termination resistors at each end of the line could
> introduce other troubles if they aren't strictly required (because of
> signal integrity on long lines at high baud rates).
>
> The receiver input impedance of all the nodes on the bus are in parallel
> with the two terminators. If you have many nodes, the equivalent
> impedance on the bus is much small and the partition with bias resistors
> could reduce the differential voltage between A and B at idle to less
> than 200mV.

That depends on the details of the receivers and drivers. I have control over that other than the USB cable. To assure I'm using appropriate RS-422 devices, I could use a TTL cable and on the first test fixture board use a separate connector with TTL level signaling. This would then be buffered on this first board to RS-422 for the rest of the chain. I could do all this with RS232, but it doesn't provide for tristate on the outputs. Not that I recall anyway.

> If you don't use true fail-safe transceivers, a fault start bit could be
> seen by these kind of receivers.

Sorry, I don't know what you mean by "fail-safe" transceivers. Are you talking about the driver or the receiver? Do you mean the internal bias some receivers have, so with zero volts across the input pair they are in a defined state? That can be done through external resistors as well.

I'm expecting to use shorting jumpers for setting various modes on these test fixtures. Do they make any shorting jumpers that are more than just two pins? I've never seen that. I suppose I could make one using a connector and wire.

I think my biggest problem is going to be the mechanical parts of the chassis. I need the boards to be very strong to withstand many insertion removal cycles of the UUTs from these boards. We currently do burn in using production Eurocard format units. They are very stiff with a rail on the front.. I just realized, they probably get a lot of stiffening from the massive Eurocard connectors on the back and similar connectors on the front panel. I was planning to use a front panel, but maybe I need to add board stiffeners as well. In the "old" days, when DIPs roamed the earth, these were a combination of power decoupling capacitor and board stiffener. They probably don't even make them anymore. I really need the board to be solid so it doesn't suffer damage from the strain of repeated use. Maybe I just need to bolt a hunk of metal to the card.

--

Rick C.

++ Get 1,000 miles of free Supercharging
++ Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<87pme4c6wv.fsf@nightsong.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1129&group=comp.arch.embedded#1129

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Thu, 03 Nov 2022 09:57:36 -0700
Organization: A noiseless patient Spider
Lines: 8
Message-ID: <87pme4c6wv.fsf@nightsong.com>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<871qql2ezq.fsf@nightsong.com>
<85415d13-1a8c-4f07-8bbf-46564346cf36n@googlegroups.com>
<87k04c27rt.fsf@nightsong.com>
<cbbd68d3-c4bf-4ae4-b063-a14ba488a22dn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: reader01.eternal-september.org; posting-host="1b825525f395ae7931c686911d6726ac";
logging-data="1590085"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/SQNJp+wsSr4AT38/VriIJ"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:qZ41DIiyT6QdvdwQiY2YnsB0nUQ=
sha1:uCoQCzag9SoIA7L/hm8nuamJtn4=
 by: Paul Rubin - Thu, 3 Nov 2022 16:57 UTC

Rick C <gnuarm.deletethisbit@gmail.com> writes:
> What hardware can you replace with software??? You use *different*
> hardware and then have to add new software. That's not an
> improvement.

The idea is to avoid BUILDING hardware. Plugging cables into a box is
not building. There is no soldering iron, oscilloscope, or anything
like that in the picture. If you already avoid that, then great.

Re: Shared Communications Bus - RS-422 or RS-485

<87zgd83pph.fsf@nightsong.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1130&group=comp.arch.embedded#1130

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Thu, 03 Nov 2022 10:36:26 -0700
Organization: A noiseless patient Spider
Lines: 10
Message-ID: <87zgd83pph.fsf@nightsong.com>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me>
<b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me>
<ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
<tk09ev$1f0de$1@dont-email.me> <tk0e27$1f1rv$1@dont-email.me>
<d6523819-5f08-4dad-9032-aa3ada86f989n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: reader01.eternal-september.org; posting-host="1b825525f395ae7931c686911d6726ac";
logging-data="1596638"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ZEjLF5qbjWghLvD9nyGQq"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:xldRl9XQjM3OUdig0RmCfq4mCc4=
sha1:+JfUcKIleRk+vhZz9tynuT2K/XI=
 by: Paul Rubin - Thu, 3 Nov 2022 17:36 UTC

Rick C <gnuarm.deletethisbit@gmail.com> writes:
> I think my biggest problem is going to be the mechanical parts of the
> chassis. I need the boards to be very strong to withstand many
> insertion removal cycles of the UUTs from these boards.

I wonder if you can use some kind of low-force connector or cable on the
card, instead of plugging and unplugging the card from a chassis.

E.g. something like https://www.adafruit.com/product/5468 depending on
how many conductors are needed.

Re: Shared Communications Bus - RS-422 or RS-485

<9326ffa5-8d5b-42d7-ba8d-0dea3e5d1dc2n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1131&group=comp.arch.embedded#1131

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:a05:620a:bc1:b0:6ef:2e0:d8c1 with SMTP id s1-20020a05620a0bc100b006ef02e0d8c1mr23164137qki.351.1667502123345;
Thu, 03 Nov 2022 12:02:03 -0700 (PDT)
X-Received: by 2002:a5b:c92:0:b0:688:436c:b2b with SMTP id i18-20020a5b0c92000000b00688436c0b2bmr30254122ybq.436.1667502123014;
Thu, 03 Nov 2022 12:02:03 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Thu, 3 Nov 2022 12:02:02 -0700 (PDT)
In-Reply-To: <87pme4c6wv.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<871qql2ezq.fsf@nightsong.com> <85415d13-1a8c-4f07-8bbf-46564346cf36n@googlegroups.com>
<87k04c27rt.fsf@nightsong.com> <cbbd68d3-c4bf-4ae4-b063-a14ba488a22dn@googlegroups.com>
<87pme4c6wv.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <9326ffa5-8d5b-42d7-ba8d-0dea3e5d1dc2n@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Thu, 03 Nov 2022 19:02:03 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 38
 by: Rick C - Thu, 3 Nov 2022 19:02 UTC

On Thursday, November 3, 2022 at 12:57:41 PM UTC-4, Paul Rubin wrote:
> Rick C <gnuarm.del...@gmail.com> writes:
> > What hardware can you replace with software??? You use *different*
> > hardware and then have to add new software. That's not an
> > improvement.
> The idea is to avoid BUILDING hardware. Plugging cables into a box is
> not building. There is no soldering iron, oscilloscope, or anything
> like that in the picture. If you already avoid that, then great.

You seem to misunderstand. I AM building hardware. There's no choice in that matter. You want me to add other hardware and also software that adds nothing, improves nothing, and just creates more potential problems. This all seems to be because you can't understand the very, very simple nature of a master-slave shared bus and a polling protocol.

The bottom line is, you don't know much about the application, but think you can design it better. Why are you doing this?

The only way to "improve" this, might be to use RS-232 instead of RS-422. But that loses the noise immunity of the differential signaling and would require adding analog switches to the slave transmit outputs. It is also very unspecified, so I'd have to do more engineering to be sure it will work. So RS-422 is looking pretty good to me.

The connectors will be RJ-45 8P8C connectors. They are cheap and easy to plug/unplug. They mount securely to the board and can even be integrated into the front panel rather than hanging out the back. I still need to figure out how to distribute power. It's probably going to be plugs like they use on PC laptop supplies. This will most likely be supplied by a laptop supply, so I'll need a board that splits out the one PSU to 16 power cables. Sounds like a job for perf board and a small, plastic case. The supply on my laptop is 300W. That should do the trick easily.

--

Rick C.

--- Get 1,000 miles of free Supercharging
--- Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<ebce990e-0ff7-4bb4-baa9-ede4df631fc4n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1132&group=comp.arch.embedded#1132

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:ad4:5ca4:0:b0:4bb:fa37:866 with SMTP id q4-20020ad45ca4000000b004bbfa370866mr20876424qvh.22.1667503959428;
Thu, 03 Nov 2022 12:32:39 -0700 (PDT)
X-Received: by 2002:a81:8b46:0:b0:373:3ba2:61ba with SMTP id
e6-20020a818b46000000b003733ba261bamr15643761ywk.508.1667503959129; Thu, 03
Nov 2022 12:32:39 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Thu, 3 Nov 2022 12:32:38 -0700 (PDT)
In-Reply-To: <87zgd83pph.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=63.114.57.174; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 63.114.57.174
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me> <b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me> <ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
<tk09ev$1f0de$1@dont-email.me> <tk0e27$1f1rv$1@dont-email.me>
<d6523819-5f08-4dad-9032-aa3ada86f989n@googlegroups.com> <87zgd83pph.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ebce990e-0ff7-4bb4-baa9-ede4df631fc4n@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Thu, 03 Nov 2022 19:32:39 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2680
 by: Rick C - Thu, 3 Nov 2022 19:32 UTC

On Thursday, November 3, 2022 at 1:36:31 PM UTC-4, Paul Rubin wrote:
> Rick C <gnuarm.del...@gmail.com> writes:
> > I think my biggest problem is going to be the mechanical parts of the
> > chassis. I need the boards to be very strong to withstand many
> > insertion removal cycles of the UUTs from these boards.
> I wonder if you can use some kind of low-force connector or cable on the
> card, instead of plugging and unplugging the card from a chassis.
>
> E.g. something like https://www.adafruit.com/product/5468 depending on
> how many conductors are needed.

How about something like this?

https://www.digikey.com/en/products/detail/amphenol-cs-commercial-products/RJHSE538B02/1979553

That's what I'm going to use. I'd run the power through it as well, but even with the low power I'll be using, 28 ga is a bit small. I'm just not a big fan of the typical barrel power connectors. I'd be happy if they had a detent so they won't fall out. The nylon shell connectors are a pain to remove.

--

Rick C.

--+ Get 1,000 miles of free Supercharging
--+ Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<tk15a0$usu$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1133&group=comp.arch.embedded#1133

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!exK6Qtha8nqZIk8Be/wGrA.user.46.165.242.91.POSTED!not-for-mail
From: drn...@nadler.com (Dave Nadler)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Thu, 3 Nov 2022 15:37:37 -0400
Organization: Aioe.org NNTP Server
Message-ID: <tk15a0$usu$1@gioia.aioe.org>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="31646"; posting-host="exK6Qtha8nqZIk8Be/wGrA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.4.1
Content-Language: en-US
X-Notice: Filtered by postfilter v. 0.9.2
 by: Dave Nadler - Thu, 3 Nov 2022 19:37 UTC

On 11/2/2022 1:28 AM, Rick C wrote:
> I have a test fixture that uses RS-232 to communicate with a PC. It actually uses the voltage levels of RS-232, even though this is from a USB cable on the PC, so it's only RS-232 for maybe four inches. lol
>
> I'm redesigning the test fixtures to hold more units and fully automate a few features that presently requires an operator. There will now be 8 UUTs on each test fixture and I expect to have 10 to 20 test fixtures in a card rack. That's 80 to 160 UUTs total. There will be an FPGA controlling each pair of UUTs, so 80 FPGAs in total that the PC needs to talk to.
>
> Rather than working on a way to mux 80 RS-232 interfaces, I'm thinking it would be better to either daisy chain, or connect in parallel all these devices. The protocol is master-slave where the master sends a command and the slaves are idle until they reply. The four FPGAs on a test fixture board could be connected in parallel easily enough. But I don't think I want to run TTL level signals between so many boards.
>
> I could do an RS-422 interface with a master to slave pair and a slave to master pair. The slaves do not speak until spoken to, so there will be no collisions.
>
> RS-485 would allow all this to be over a single pair of wires. But the one big issue I see people complain about is getting PC software to not clobber the slaves, or I should say, to get the master to wait long enough that it's not clobbering it's own start bit by overwriting the stop bit of the slave. I suppose someone, somewhere has dealt with this on the PC and has a solution that doesn't impact bus speed. I run the single test fixture version of this at about 100 kbps. I'm going to want as much speed as I can get for 80 FPGAs controlling 160 UUTs. Maybe I should give that some analysis, because this might not be true.
>
> The tests are of two types, most of them are setting up a state and reading a signal. This can go pretty fast and doesn't take too many commands. Then there are the audio tests where the FPGA sends digital data to the UUT, which does it's thing and returns digital data which is crunched by the FPGA. This takes some small number of seconds and presently the protocol is to poll the status until it is done. That's a lot of messages, but it's not necessarily a slow point. The same test can be started on every UUT in parallel, so the waiting is in parallel. So maybe the serial port won't need to be any faster.
>
> Still, I want to use RS-422 or RS-485 to deal with ground noise since this will be spread over multiple boards that don't have terribly solid grounds, just the power cable really.
>
> I'm thinking out loud here as much as anything. I intended to simply ask if anyone had experience with RS-485 that would be helpful. Running two wires rather than eight would be a help. I'll probably use a 10 pin connector just to be on the safe side, allowing the transceivers to be used either way.
>

Hi Rick - I have an RS-485 system on my desk using an implementation of
the old Intel BitBus. Works fine for a handful of nodes, limited
distance, and very simple cabling - but only 62.5kbaud. Good solid
technology for 1994 when I designed it...

Why would you use RS-485 instead of CAN? A million chips out there
support CAN with no fuss, works at decent speeds over twisted pair, not
hard to use.

BTW, another option for interfacing to RS-485 from USB is XR21B1411
which is what I happen to have on my desk.

Hope that helps!
Best Regards, Dave

Re: Shared Communications Bus - RS-422 or RS-485

<87fsez4xxk.fsf@nightsong.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1134&group=comp.arch.embedded#1134

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Thu, 03 Nov 2022 12:53:27 -0700
Organization: A noiseless patient Spider
Lines: 5
Message-ID: <87fsez4xxk.fsf@nightsong.com>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<871qql2ezq.fsf@nightsong.com>
<85415d13-1a8c-4f07-8bbf-46564346cf36n@googlegroups.com>
<87k04c27rt.fsf@nightsong.com>
<cbbd68d3-c4bf-4ae4-b063-a14ba488a22dn@googlegroups.com>
<87pme4c6wv.fsf@nightsong.com>
<9326ffa5-8d5b-42d7-ba8d-0dea3e5d1dc2n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: reader01.eternal-september.org; posting-host="1b825525f395ae7931c686911d6726ac";
logging-data="1619298"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Ehfibc5RpiFaZOfBoAmyE"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:2VH41A3cNvcFfD+6N86WpI5c/ys=
sha1:4+p/lgcBspyRUq5fJiOoRCDh+RU=
 by: Paul Rubin - Thu, 3 Nov 2022 19:53 UTC

Rick C <gnuarm.deletethisbit@gmail.com> writes:
> The bottom line is, you don't know much about the application, but
> think you can design it better. Why are you doing this?

You asked for suggestions and I gave some.

Re: Shared Communications Bus - RS-422 or RS-485

<87bkpn4x8p.fsf@nightsong.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1135&group=comp.arch.embedded#1135

  copy link   Newsgroups: comp.arch.embedded
Path: i2pn2.org!i2pn.org!aioe.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.arch.embedded
Subject: Re: Shared Communications Bus - RS-422 or RS-485
Date: Thu, 03 Nov 2022 13:08:22 -0700
Organization: A noiseless patient Spider
Lines: 21
Message-ID: <87bkpn4x8p.fsf@nightsong.com>
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me>
<b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me>
<ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
<tk09ev$1f0de$1@dont-email.me> <tk0e27$1f1rv$1@dont-email.me>
<d6523819-5f08-4dad-9032-aa3ada86f989n@googlegroups.com>
<87zgd83pph.fsf@nightsong.com>
<ebce990e-0ff7-4bb4-baa9-ede4df631fc4n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: reader01.eternal-september.org; posting-host="1b825525f395ae7931c686911d6726ac";
logging-data="1619298"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+5IcXZ3C8HdqIoSl0wUjvK"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:mndaGN3eY3ROByPJrJ4QVKLDzw0=
sha1:8swH4dgxiiHz/fGFHcvpNOA62wA=
 by: Paul Rubin - Thu, 3 Nov 2022 20:08 UTC

Rick C <gnuarm.deletethisbit@gmail.com> writes:
> How about something like this?
>
> https://www.digikey.com/en/products/detail/amphenol-cs-commercial-products/RJHSE538B02/1979553

That appears to be an RJ45 like ethernet cables use. The little locking
tabs break off all the time, and also the cable gets kinked up after
repeated flexing where it goes into the connector. Strain relief helps
but it happens anyway. You might buy some ready made ethernet cables
rather than putting those connectors on yourself. At least with cheap
crimpers, the ready made cables are often more reliable than DIY ones.

They do make those magnetic connectors with varying numbers of pins.

Here is a CAN cable, no idea if that is of interest, but it uses the
OBD connector found in cars: https://www.adafruit.com/product/4841

XLR or DIN style plugs/sockets might also be something to consider.

There is also this style, popular with the mechanical keyboard crowd:
https://www.pchcables.com/aviationplugs.html

Re: Shared Communications Bus - RS-422 or RS-485

<34f51ec8-9265-4cfa-93ff-c65eb0050fbbn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1136&group=comp.arch.embedded#1136

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:a05:620a:897:b0:6fa:1bf8:6de with SMTP id b23-20020a05620a089700b006fa1bf806demr19950596qka.537.1667507557613;
Thu, 03 Nov 2022 13:32:37 -0700 (PDT)
X-Received: by 2002:a25:bc02:0:b0:695:652e:72b5 with SMTP id
i2-20020a25bc02000000b00695652e72b5mr30986065ybh.21.1667507557339; Thu, 03
Nov 2022 13:32:37 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Thu, 3 Nov 2022 13:32:37 -0700 (PDT)
In-Reply-To: <tk15a0$usu$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com> <tk15a0$usu$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <34f51ec8-9265-4cfa-93ff-c65eb0050fbbn@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Thu, 03 Nov 2022 20:32:37 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 6876
 by: Rick C - Thu, 3 Nov 2022 20:32 UTC

On Thursday, November 3, 2022 at 3:37:43 PM UTC-4, Dave Nadler wrote:
> On 11/2/2022 1:28 AM, Rick C wrote:
> > I have a test fixture that uses RS-232 to communicate with a PC. It actually uses the voltage levels of RS-232, even though this is from a USB cable on the PC, so it's only RS-232 for maybe four inches. lol
> >
> > I'm redesigning the test fixtures to hold more units and fully automate a few features that presently requires an operator. There will now be 8 UUTs on each test fixture and I expect to have 10 to 20 test fixtures in a card rack. That's 80 to 160 UUTs total. There will be an FPGA controlling each pair of UUTs, so 80 FPGAs in total that the PC needs to talk to.
> >
> > Rather than working on a way to mux 80 RS-232 interfaces, I'm thinking it would be better to either daisy chain, or connect in parallel all these devices. The protocol is master-slave where the master sends a command and the slaves are idle until they reply. The four FPGAs on a test fixture board could be connected in parallel easily enough. But I don't think I want to run TTL level signals between so many boards.
> >
> > I could do an RS-422 interface with a master to slave pair and a slave to master pair. The slaves do not speak until spoken to, so there will be no collisions.
> >
> > RS-485 would allow all this to be over a single pair of wires. But the one big issue I see people complain about is getting PC software to not clobber the slaves, or I should say, to get the master to wait long enough that it's not clobbering it's own start bit by overwriting the stop bit of the slave. I suppose someone, somewhere has dealt with this on the PC and has a solution that doesn't impact bus speed. I run the single test fixture version of this at about 100 kbps. I'm going to want as much speed as I can get for 80 FPGAs controlling 160 UUTs. Maybe I should give that some analysis, because this might not be true.
> >
> > The tests are of two types, most of them are setting up a state and reading a signal. This can go pretty fast and doesn't take too many commands. Then there are the audio tests where the FPGA sends digital data to the UUT, which does it's thing and returns digital data which is crunched by the FPGA. This takes some small number of seconds and presently the protocol is to poll the status until it is done. That's a lot of messages, but it's not necessarily a slow point. The same test can be started on every UUT in parallel, so the waiting is in parallel. So maybe the serial port won't need to be any faster.
> >
> > Still, I want to use RS-422 or RS-485 to deal with ground noise since this will be spread over multiple boards that don't have terribly solid grounds, just the power cable really.
> >
> > I'm thinking out loud here as much as anything. I intended to simply ask if anyone had experience with RS-485 that would be helpful. Running two wires rather than eight would be a help. I'll probably use a 10 pin connector just to be on the safe side, allowing the transceivers to be used either way.
> >
> Hi Rick - I have an RS-485 system on my desk using an implementation of
> the old Intel BitBus. Works fine for a handful of nodes, limited
> distance, and very simple cabling - but only 62.5kbaud. Good solid
> technology for 1994 when I designed it...
>
> Why would you use RS-485 instead of CAN? A million chips out there
> support CAN with no fuss, works at decent speeds over twisted pair, not
> hard to use.
>
> BTW, another option for interfacing to RS-485 from USB is XR21B1411
> which is what I happen to have on my desk.

I'm using RS-422 because I don't need to learn how to use a "chip". It's the same serial protocol I'm using now, but instead of RS-232 voltage levels, it's RS-422 differential. The "change" is really the fact that it's not just one slave. So the bus will be split into a master send bus and a slave reply bus. The master doesn't need to manage the tri-state output because it's the only talker. The slaves only talk when spoken to and the UART is in an FPGA, (no CPU), so it can manage the tri-state control to the driver chip very easily.

CAN bus might be the greatest thing since sliced bread, but I am going to be slammed with work and I don't want to do anything I don't absolutely have to.

A lot of people don't understand that this is nearly the same as what I'm using now and will only require a very minor modification to the message protocol, to allow the slaves to be selected/addressed. It would be hard to make it any simpler and this would all still have to be done even if adding the CAN bus. The slaves still need to be selected/addressed.

Thanks for the suggestions. The part I'm worried about now are the more mechanical bits. I am thinking of using the Eurocard size so I can use the rack hardware, but I know very little about the bits and bobs. There will be no backplane, just card guides and the front panels on the cards to hold them in place. I might put the cabling on the front panel to give it easy access, but then it needs machining of the front panel. I could simplify that by cutting out one large hole to expose all the LEDs and connectors. I want to make the design work as simple as possible and mechanical drawings are not my forte.

--

Rick C.

-+- Get 1,000 miles of free Supercharging
-+- Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<6dfec8f3-0100-4fe3-8d67-3eeb456f3e48n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1137&group=comp.arch.embedded#1137

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:a05:6214:d65:b0:4bc:8cd:6d6b with SMTP id 5-20020a0562140d6500b004bc08cd6d6bmr19473251qvs.19.1667507615391;
Thu, 03 Nov 2022 13:33:35 -0700 (PDT)
X-Received: by 2002:a81:8081:0:b0:367:8284:d3c9 with SMTP id
q123-20020a818081000000b003678284d3c9mr31250764ywf.345.1667507615082; Thu, 03
Nov 2022 13:33:35 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Thu, 3 Nov 2022 13:33:34 -0700 (PDT)
In-Reply-To: <87fsez4xxk.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<871qql2ezq.fsf@nightsong.com> <85415d13-1a8c-4f07-8bbf-46564346cf36n@googlegroups.com>
<87k04c27rt.fsf@nightsong.com> <cbbd68d3-c4bf-4ae4-b063-a14ba488a22dn@googlegroups.com>
<87pme4c6wv.fsf@nightsong.com> <9326ffa5-8d5b-42d7-ba8d-0dea3e5d1dc2n@googlegroups.com>
<87fsez4xxk.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6dfec8f3-0100-4fe3-8d67-3eeb456f3e48n@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Thu, 03 Nov 2022 20:33:35 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1875
 by: Rick C - Thu, 3 Nov 2022 20:33 UTC

On Thursday, November 3, 2022 at 3:53:32 PM UTC-4, Paul Rubin wrote:
> Rick C <gnuarm.del...@gmail.com> writes:
> > The bottom line is, you don't know much about the application, but
> > think you can design it better. Why are you doing this?
> You asked for suggestions and I gave some.

Ok, thank you for your suggestions.

--

Rick C.

-++ Get 1,000 miles of free Supercharging
-++ Tesla referral code - https://ts.la/richard11209

Re: Shared Communications Bus - RS-422 or RS-485

<cc65d39e-a1d3-4198-8485-64297d9b889an@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=1138&group=comp.arch.embedded#1138

  copy link   Newsgroups: comp.arch.embedded
X-Received: by 2002:a05:6214:27c5:b0:4bb:e819:6a5a with SMTP id ge5-20020a05621427c500b004bbe8196a5amr23568257qvb.81.1667508003664;
Thu, 03 Nov 2022 13:40:03 -0700 (PDT)
X-Received: by 2002:a0d:cd02:0:b0:341:a401:4630 with SMTP id
p2-20020a0dcd02000000b00341a4014630mr30324912ywd.293.1667508003380; Thu, 03
Nov 2022 13:40:03 -0700 (PDT)
Path: i2pn2.org!rocksolid2!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch.embedded
Date: Thu, 3 Nov 2022 13:40:03 -0700 (PDT)
In-Reply-To: <87bkpn4x8p.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=65.207.89.54; posting-account=I-_H_woAAAA9zzro6crtEpUAyIvzd19b
NNTP-Posting-Host: 65.207.89.54
References: <6b8c6b92-a2ca-4849-ba68-f03060bc41fcn@googlegroups.com>
<tjtd7g$145er$1@dont-email.me> <b4a93d7d-3d6f-4b23-86b1-f1066b6b72ebn@googlegroups.com>
<tjul46$18dkn$3@dont-email.me> <ec91ddbe-6777-494f-8001-cf57fc15deeen@googlegroups.com>
<tk09ev$1f0de$1@dont-email.me> <tk0e27$1f1rv$1@dont-email.me>
<d6523819-5f08-4dad-9032-aa3ada86f989n@googlegroups.com> <87zgd83pph.fsf@nightsong.com>
<ebce990e-0ff7-4bb4-baa9-ede4df631fc4n@googlegroups.com> <87bkpn4x8p.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <cc65d39e-a1d3-4198-8485-64297d9b889an@googlegroups.com>
Subject: Re: Shared Communications Bus - RS-422 or RS-485
From: gnuarm.d...@gmail.com (Rick C)
Injection-Date: Thu, 03 Nov 2022 20:40:03 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 3661
 by: Rick C - Thu, 3 Nov 2022 20:40 UTC

On Thursday, November 3, 2022 at 4:08:28 PM UTC-4, Paul Rubin wrote:
> Rick C <gnuarm.del...@gmail.com> writes:
> > How about something like this?
> >
> > https://www.digikey.com/en/products/detail/amphenol-cs-commercial-products/RJHSE538B02/1979553
> That appears to be an RJ45 like ethernet cables use. The little locking
> tabs break off all the time, and also the cable gets kinked up after
> repeated flexing where it goes into the connector. Strain relief helps
> but it happens anyway. You might buy some ready made ethernet cables
> rather than putting those connectors on yourself. At least with cheap
> crimpers, the ready made cables are often more reliable than DIY ones.

The cable will be three inches long. I can make more.

> They do make those magnetic connectors with varying numbers of pins.
>
> Here is a CAN cable, no idea if that is of interest, but it uses the
> OBD connector found in cars: https://www.adafruit.com/product/4841

If you are talking about the big, black connector, it is bigger than the board. This will be a Eurocard rack with 4HP or 0.8 inch spacing. RJ-45 barely fits.

> XLR or DIN style plugs/sockets might also be something to consider.

DIN? You mean those things that are used on Eurocards with some 96 pins? What would mate with it? What's actually wrong with RJ-45?

> There is also this style, popular with the mechanical keyboard crowd:
> https://www.pchcables.com/aviationplugs.html

Way too much work. This is a jumper connector to go between boards that are 0.8 inches on centers. It simply doesn't require that much effort. They will be plugged and unplugged, on average, 1.1 times a day. I think RJ-11 will hack it. I'd rather have something that breaks and is very easy to replace, than something that breaks less often, but is much harder to repair or replace.

--

Rick C.

+-- Get 1,000 miles of free Supercharging
+-- Tesla referral code - https://ts.la/richard11209

Pages:1234
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor