RS485 Questions (Full Duplex vs Half Duplex, Bidirectional vs Unidirectional, Multi-drop vs multi-point)
Does RS-485 2-wire mode actually require only 2 wires?
officially confused - in RS-485 shall we use ground or not?
RS485: two twisted pairs better than one?
Videos
Factsheet
Approved: March 3, 1998
Reaffirmed: December 7, 2012
Approved: March 3, 1998
Reaffirmed: December 7, 2012
I'm working with RS485 between a PI and a STM32. I thought I had a grasp on this until I decided I wanted full duplex so I could read and write at the same time so the protocol I'm making on top of the rs485 layer wouldn't have to wait for responses for validity. The wiring is confusing. Before, I had a half-duplex setup that required a DE pin to operate.
The (old) setup:
| PI | Transceiver | Transceiver | STM32 |
|---|---|---|---|
| TX --> | DI | DI | <-- TX |
| RX <-- | DO | DO | --> RX |
| DE --> | DE | DE | <-- DE |
| A <-- | --> A | ||
| B <-- | -- >B |
This worked, but it wasn't really what I needed. With the new chip (max3077e), I want to go full duplex. I'm confused though because it doesn't have a DE pin. It just has DI, DO, AB, YZ.
The (new) setup:
| PI | Transceiver | Transceiver | STM32 |
|---|---|---|---|
| TX --> | DI | DI | <-- TX |
| RX <-- | DO | DO | --> RX |
| A | <-- Y | ||
| B | <-- Z | ||
| Y --> | A | ||
| Z --> | B |
So now I supposedly have full-duplex capability. Here are my questions:
1.) Now that I have full duplex capability, shouldn't I be able to send and receive at the same time?
2.) This (I think) qualifies as a multi-drop network setup, but since I want a slave to be able to talk to the master at any time (ie not in response to a packet, asynchronously), how do I know a slave won't talk over another slave at the same time? Is this where RTS/CTS are needed?
3.) Am I misunderstanding multi-drop vs multi-point? I thought multi-drop meant 1 sender and X receivers on the line, does this require blocking read/writes to slaves in order to stop slaves from talking over eachother?
Multi-point should mean any device can communicate with any other device on the line, but I don't really need that. I just need the clients to be able to communicate with host at any time, not requiring the host to talk first. So I guess I'm sorta confused on where my use case fits into these standards.
Edit: After thinking about this more, I feel like I'm just recreating ethernet. Would UDP packets over ethernet be a better way to achieve what I want? I feel like the "being able to write while you read" part of a full-duplex rs485 would only be useful if I didn't have to wait for responses from clients. But I still have to wait for responses (use blocking write/reads) to make sure that clients don't talk over eachother. Am I missing something?
hi All
I keep reading conficting info on the internet and it gets my head spinning clockwise or anticlockwise.
please explain to me in plain words - do we need a ground for RS485 networks or not?
it keep reading its a must where there is high noise but is tight intervowen pair of wires keeps canceling the the impact because both lines are going UP or DOWN and only the difference matters.
Then i read that the ground has to be used for decoding so if both A and B voltages are moved too high then decoding will not work or something will get burn.
Then i keep reading and connecting ground to all slave and master can be a recipe for the disaster because if there are different potentials there will be a ground loops and flowing current.
Can anybody explain me his or her understanding please?
ps. to cover the topic shall we use shield or not ? this is less confusing in that if it is connected only on 1 end there will be no ground loops.