Rs485 differential output looks single ended?

Does anyone have a scope capture of their rs485 output? My b(+) output looks like it stays at 0v with reference to ground, while my a(-) pin looks to be sending out data.
First capture is the opta rs485 output.
Second capture is a generic rs485 usb adapter.

BK000001
BK000003

Please show your circuit diagram. Did you forget termination resistors?

100 ohm termination resistor, no nodes. Just the straight output of the opta.

whats an opta? do you have a link? Oh - let me

oh dear ..
image
the data sheet isnt there.

As far as I can see from the limited info there is no -ve supply; however

RS-485 uses two signal lines, ‘A’ and ‘B’, which must be balanced and differential.

So it would seem they can have a voltage offset.

While the signals are wrong (B should be the inverse of A) there is still a differential signal, so thetranmission should still work.

1 Like

Well, as you already know it's definitely wrong.
I've never used the opta but aren't there quite a few software settings to make it work right?

It's an Arduino PLC, there are three different models:
Opta-WiFi, Opta-RS232, and Opta-Lite.

Opta-WiFi and Opta-RS485 both have RS485 outputs, but Opta-Lite doesn't.

What do you mean by "isn't there"? Did the AFX00001-AFX00002-AFX00003-datasheet.pdf file download when you clicked the button?

The datasheet suggests that it should work without termination resistors.
In industrial applications termination makes a difference to achieve longer distances and higher transmission speeds.


Any termination should be between A and B, not B and GND.

If you think that's what that sketch is telling you, you're wrong. They don't include built-in terminations only because that would require adding external enable/disable features, or having multiple products.
Here's why:
RS485 proper operation requires a terminator at the Master, and a terminator at the far end of a single line of slaves. Missing either compromises the signal quality. Having more than two compromises the driver capabilities, as they're driving heavier and heavier loads as you add terminators. To have a product that has a built-in termination means you've relegated it to either Master, or end-of-chain slave, or you have to have a way to disconnect the internal resistor. I'm not going to point at docs on the web, you can Google it and find various specs that explain this in much more gory detail.

1 Like

Proper termination requires access to the +5V.

For?

Google Profibus

I tried with and without termination resistors, it looks like b(+) won't change state at all. Took a resistance reading out of curiosity (with the opta completely isolated, no wires attached). A(-) to ground floats around a few kilo-ohms, b(+) reads about 2 ohms to ground :(.

Yah, I did. No surprise here. There's two forms of termination, A-B and A or B - 5V. I was talking the former, you're on about the latter.

Here's what one of several had to say:
A Profibus termination is done by inserting a 220 Ω resistor in each end of the Profibus line. So, you insert a 220 Ω resistor in the first and one in the last station. The reason for using a 220 Ω resistor is that the two 220 Ω resistors are connected parallel to each other. The parallel connection of the two resistors make a total resistance of 110 Ω. The loop resistance of the standard Profibus DP cable is 110 Ω/km. Be aware that a standard Profibus PA cable has a loop resistance of 44 Ω/km.

Most Profibus connectors has a termination option. This means that you don’t have to connect your own resistor manually. You can activate or deactivate termination in the connector by flipping the switch, usually placed at the top of the connector. This is useful in two ways. First of all it makes termination very easy, since you can make all your connections and then flip the switches where you need to terminate the Profibus cable. The second reason this is smart is that troubleshooting becomes easier. Without disconnecting anything you can check if the termination is done correct.

Active Termination In Bus Networks

Profibus uses an extended way of terminating called active termination. This is needed when you have very long communication cables. Active termination can be used to increase the line voltage of the bus.

The only difference between normal termination and active termination is that besides the 220 Ω resistor you also have to connect 5V to the termination (between VP(6) and DGND(5)). This will create a defined ground signal when non of the stations are active. You can make active terminations in three ways:

  • In the connector
  • In the station
  • With a seperate terminator

The reason we call this an active termination is that we use the +5 volt in the termination. Usually active termination happens when the termination switch on the connector is flipped. To make that more clear, let us take a look at a scheme for a Profibus connector:

1 Like

There are two different factors.

The termination resistor should match the intrinsic impedance of the cable (not the resistance / km). Improper match will cause reflection. The reflection will 'smear out' the edges of each pulse. The longer the cable, the further the smear. The faster the pulse rate, the sooner the '1's and the'0's can't be read anymore. Cheap cable may not even specify the intrinsic impedance. If it's loose wires from module to module it's anybody's guess, but the distance will be small.

The two other resistors provide DC balance, for which access to +5V is necessary.

rs485-termination-120-ohm

In weirdo557's case it might be a hardware failure.

All this talk about proper termination is fine, but if you're running at low speeds and short range, you don't have to get it right (and this looks like 9600 baud--that's slow). The three-resistor scheme between +5 and Gnd could use much larger resistors and still be fine. It helps to have both a pullup and a pulldown like that if you want to check the signals with a scope.

As for the line that's always low, it looks as if the driver has failed, or there is some conductive path that is causing a short to Gnd. Is anything touching the back of the circuit board?

2 Likes

I agree with Beminetonight, I have never seen such a RS-485 signal, so it must be wrong.

The examples for RS-485 on the Opta use the normal Arduino RS485 library and normal sketches. Therefor I conclude that after running the initial code, the pins are set properly and nothing special has to be turned on.

Is the Opta open-source ?
Is there a schematic of the Opta ? I could not find it for this topic: Opta analog input accuracy

1 Like

Then connect it to another opta and find out whether you can transmit any text, in both directions. Most probably you are using your opta in UART or RS-232 mode, not RS-485 mode.

Makes me think stray wire or solder bridge shorting B to GND - are they perchance adjacent on the screw terminations? Or, has your B wire perchance shorted to shield? That'll do it too.

1 Like

If I had $160 laying around I would. And so far I'm using ladder logic in my program and there doesn't seem to be any option for ttl serial communication.