From: djordj on
Hi, coming back after the RS485 bus has been setup.
Going on investigating about possible problems, we've found that we're
defenseless against transmitters collisions: if a slave get stuck in
transmitter mode (DE=1 in SN75176) when the master take the bus
control, we have a fault on the line.

So I made up a test board with two transceivers: the first one fixed
on transmission mode (DE[1]=1 and D=0) and the second one with DE[2]
pin switchable between 0 and 1.
When DE[2] == 0 there's no problem and the supply current is about
5mA.
When we switch DE[2]=1 supply current step up to 200mA.

We're trying a dominant/recessive scheme, based on DS36277 used in
J1708 bus.
From: Tilmann Reh on
djordj schrieb:

> Going on investigating about possible problems, we've found that we're
> defenseless against transmitters collisions: if a slave get stuck in
> transmitter mode (DE=1 in SN75176) when the master take the bus
> control, we have a fault on the line.
>
> So I made up a test board with two transceivers: the first one fixed
> on transmission mode (DE[1]=1 and D=0) and the second one with DE[2]
> pin switchable between 0 and 1.
> When DE[2] == 0 there's no problem and the supply current is about
> 5mA.
> When we switch DE[2]=1 supply current step up to 200mA.
>
> We're trying a dominant/recessive scheme, based on DS36277 used in
> J1708 bus.

RS-485 is pure single master and not capable of a dom/rec scheme. The
drivers are push-pull, you can't even predict what the other devices on
the bus will receive during the collision.

I think you should look at CAN transceivers instead.

Tilmann
From: Tim Wescott on
djordj wrote:
> Hi, coming back after the RS485 bus has been setup.
> Going on investigating about possible problems, we've found that we're
> defenseless against transmitters collisions: if a slave get stuck in
> transmitter mode (DE=1 in SN75176) when the master take the bus
> control, we have a fault on the line.
>
> So I made up a test board with two transceivers: the first one fixed
> on transmission mode (DE[1]=1 and D=0) and the second one with DE[2]
> pin switchable between 0 and 1.
> When DE[2] == 0 there's no problem and the supply current is about
> 5mA.
> When we switch DE[2]=1 supply current step up to 200mA.
>
> We're trying a dominant/recessive scheme, based on DS36277 used in
> J1708 bus.

So why not use the J1708 scheme? From Wiki (master of the infoverse,
dispenser of all knowledge, first in every Google search) pedia on their
J1708 page*:

"The hardware utilized are RS-485 transceivers wired for open collector
operation through the use of a pullup and pulldown of the separate data
lines. Transmission is accomplished by controlling the driver enable pin
of the transceiver. This method allows multiple devices to share the bus
without the need for a single master node. Collisions are avoided by
monitoring the bus while transmitting the MID to ensure that another
node has not simultaneously transmitted a MID with a higher priority."

Assuming that you have your polarities right, and that your driver chips
all have the data pin tied in the same direction, you should be fine.

* http://en.wikipedia.org/wiki/J1708

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: djordj on
On Mar 15, 6:13 pm, Tilmann Reh <usenet2007nos...(a)autometer.de> wrote:

>
> RS-485 is pure single master and not capable of a dom/rec scheme. The
> drivers are push-pull, you can't even predict what the other devices on
> the bus will receive during the collision.
The network is a single-master bus, but I have to face problems
deriving from faulty devices.
What about if a slave get stuck in transmitting mode after its reply
has been sent?
The next time the master get bus control we have two transceivers in
TX mode, and that's a problem.

From: djordj on
On Mar 15, 6:30 pm, Tim Wescott <t...(a)seemywebsite.now> wrote:
> djordj wrote:
> So why not use the J1708 scheme?  From Wiki (master of the infoverse,
> dispenser of all knowledge, first in every Google search) pedia on their
> J1708 page*:
>
This is exactly the solution we're about to try.