Maker Pro
Maker Pro

Discrete custom design of RS485 driver

I still think that you are trying to solve the wrong problem.

By using some add-hoc driver design, you are most likely going to
create much more compatibility issues with devices from various
vendors.

Since the RS-485 standard requires a +/-200 mV swing between the
receiver terminal, with 54 ohm total load, the driver must be able to
supply _at_lest_ +/-3.7 mA.

With +/- 2V Tx voltage swing, the total loop resistance should be
below 540 ohms, i.e 240 ohms in a single conductor, so at least 0.3 mm
wire diameter is required for 1000 m.
[snip]

Which reminds me... somewhere in the basement of my mind I remember
working on a bus driver which was CURRENT-drive.

Upsidedown's comments suggest doing just that plus adding a voltage
limiter.

...Jim Thompson

I usually try to analyze a point-to-point RS-422 circuit as a bipolar
current loop with at least +/- 1.7 mA loop current through the 120 ohm
receiver termination resistance. Compare this to the unipolar 0..20 mA
(or even 0..60 mA) Teletype era unipolar current loops. RS-485
multidrop circuits are a bit more complicated.

At higher data rates, the bus must be analyzed as a section of (more
or less) matched transmission line.
 
Whether a specific system needs that much common-mode tolerance is another
issue.

In countries using the IEC TN-C or TN-C-S mains wiring conventions,
this is a day to day issue.

If there is a 4 Vrms voltage drop in the neutral conductor, the
potential difference between grounded sockets ground terminal can be
more than 7 Vpeak, thus causing harm to data transfer.
 
J

Joerg

Jan 1, 1970
0
miso said:
Is it possible the VC is going to stupid internet social media garbage?
Ya think?

In part, yes. Med has become less attractive, social media is all the
rage. Different investors though but that's where the money flows to.
Well, the money that's not kept piled in money market funds.

Why build a market for a hardware device, which hey, is work, when you
can sell nonsense. The current mania is photographs that disappear, when
it used in sexting. Hey, I know of a few congressmen who could have used
such a service.

Social media is the next bubble that will go *KABLAM* on the financial
markets.

I herewith predict that :)
 
J

Joerg

Jan 1, 1970
0
Note: I don't see a spec for the FDV304P's trr. Body diodes' trr can
be horrendously slow--at least once upon a time on power FETs they
often were...

Datasheets aren't what they used to be, lots of specs lacking. The
question that needs to be pondered though is, does trr really matter in
Klaus' case? RS485 isn't exactly like a Maserati so even if ringing
pings the body diodes a little it probably won't matter.
 
W

whit3rd

Jan 1, 1970
0
The standard RS485 drivers available has a minimum voltage of 3V and a rarther large drop voltage when loaded with the defined bus load ...
So, we are thinking about designing our own driver in discrete components, so we can reduce the supply down to 2V and still comply with minimum 1.5V differential voltage into 54ohms.

RS-485 is a multidrop bus, with termination resistors; do you control
the termination resistors, or are they external to your design?

Your 'supply down to 2V' circuitry will have to be capable of safely handling the RS-485 bus
signal range, -7V to +12V, or you can discard the standard entirely, and use something
more appropriate to low-power implementation.
 
K

Klaus Kragelund

Jan 1, 1970
0
Datasheets aren't what they used to be, lots of specs lacking. The

question that needs to be pondered though is, does trr really matter in

Klaus' case? RS485 isn't exactly like a Maserati so even if ringing

pings the body diodes a little it probably won't matter.

Very likely not, like Tim pointed out.

Our max speed is 115k, which corresponds to 9us. The drivers are allowed todrift by 2%, so for 11 bits, that would be a single character drift at theend of the bit stream of close to 25% from the ideal mid bit sampling. So it could probably tolerate plenty of ringing after the bit transition.

Some UARTS today implement averaging, oversampling the RX by 8 to 16 times,so ringing can affect the data quality closer to the transition, but nowhere near the 100ns switching times as discussed

Regards

Klaus
 
K

Klaus Kragelund

Jan 1, 1970
0
I must say, I am really impressed by those specs.



However, you have to play the Devil's advocate to select a usable

product.



A quick look suggests that you have to use at least Vcc > 3.0 V to be

within RS-485 common mode range. I have not looked at other

parameters.

Actually the device we are using now is an Intersil part and we have had the FAE visit and in direct contact with the design engineers. They suggested that part, but it only works at 1.8V with no load (no termination resistors)

Cheers

Klaus
 
K

Klaus Kragelund

Jan 1, 1970
0
RS-485 is a multidrop bus, with termination resistors; do you control

the termination resistors, or are they external to your design?

No, that is up to the system configurator/responsible
Your 'supply down to 2V' circuitry will have to be capable of safely handling the RS-485 bus

signal range, -7V to +12V, or you can discard the standard entirely, and use something

more appropriate to low-power implementation.

As long as I supply minimum 1.5V (A-B or B-A) within the compliance range, I should be ok.

Since I have galvanic isolation the output (TX) should be well behaved. As for the RX I will use a commercial part for the detection that has the required compliance.

Cheers

Klaus
 
Define "slow".  This is the one I'm currently using (Trr=40ns) for a
power supply.  I'm going to have to go to a 60V device, though.

http://www.ti.com/lit/ds/symlink/csd18501q5a.pdf

40nS is fast. Slow? Well, if they don't specify, you've got to
measure. I don't remember the figure, but I got burned on a proto
trying to use a body diode as a flyback rectifier once upon a time.
It worked, but it got HOT and wasted a lot of power. A schottky fixed
it.
 
Is it possible the VC is going to stupid internet social media garbage?
Ya think?

Why build a market for a hardware device, which hey, is work, when you
can sell nonsense. The current mania is photographs that disappear, when
it used in sexting. Hey, I know of a few congressmen who could have used
such a service.

Sounds like a weiner^H^H^H^Hinner!
 
FYI, note their switching speed measurements specify "RG=0", which really
just means the figures they give are utterly meaningless.

My experience is, t_rr is roughly proportional to Vds(max), and usually
about 2-3 times the rating of the fastest junction diode of comparable
ratings.

Example:
- The above does 60V and 100A, and the body diode is specified at 25A.
There aren't any junction diodes available to compare with that, they're
all schottky.  (A plain old UF4001 is rated 50V, 1A, and 50ns, but it'sin
the same bracket as UF4004, which ought to be 50ns.  A true, optimized
UF4001 should be quite fast indeed, basically 3-4 x 1N914 in parallel.)
- A better comparison would be made between, say, 200V, 600V and 1200V
devices.  Offhand, I think the ratings for something like a 200V, 10A
MOSFET will be maybe 100ns, and a 200V, 10A diode, 50ns; at 600V 10A, more
like 250ns and 100ns; and at 1200V 10A, around 350ns and 150ns.

My basic assumption is that if a MOSFET's trr isn't spec'd, it's
probably not good. If they do spec it, then there's nothing to worry
about.

I've seen they're making lots of the big FETs' body diodes fast these
days, I'm just not sure about the little guys, like Klaus' FDV30P.
Anyway, he's got clamp diodes; my point was that he might well need
them.
 
Very likely not, like Tim pointed out.

Our max speed is 115k, which corresponds to 9us. The drivers are allowed to drift by 2%, so for 11 bits, that would be a single character drift at the end of the bit stream of close to 25% from the ideal mid bit sampling. So it could probably tolerate plenty of ringing after the bit transition.

Some UARTS today implement averaging, oversampling the RX by 8 to 16 times, so ringing can affect the data quality closer to the transition, but nowhere near the 100ns switching times as discussed

Good point. Agreed. So, if you forge ahead, you might be able to
save a few clamp diodes.
 
40nS is fast. Slow? Well, if they don't specify, you've got to
measure. I don't remember the figure, but I got burned on a proto
trying to use a body diode as a flyback rectifier once upon a time.
It worked, but it got HOT and wasted a lot of power. A schottky fixed
it.

Well, the body diode is a Si P-N junction so it's going to be .7-1V,
vs the .3-.5ish for the Schottky. The Schottky saves energy? Well,
yeah. So does turning on the FET (Vf*Id < Rds(on) * Id^2). ;-)
 
J

John S

Jan 1, 1970
0
I will get back to you after i reread some of my TIA-485 standard. I
don't think you understand it properly.

?-)

The reason that you do not understand it is that you eat too much shit.
 
Just use a cmos quad xor gate; two paralleled sections for one phase, twofor the other, with maybe 3.3 volt supply and 30 ohm source terminations. There's no need to use discrete fets.

I'm working on a project that's so far not found a viable stock RS-485 transceiver (max13451, sn65hvd24, and max3292 all fail in various ways), so thinking about designing a discrete transmitter.

The quirk of my design is that (by requirement) the RS-485 rides capacitively coupled over the 0-36V DC lines, and the wire isn't twisted, it's just regular "lamp cord". The baud rate (dynamic 500Kbps-4Mbps in powers of 2, preamble autobauds the receiver) is fast enough to avoid "sag", and the datais manchester encoded anyway. However, the more units on the bus, the funkier the waveform. My goal is to come up with something that actually works.

The max13451 is a pretty straight xcvr, but the waveform would start to massively struggle to rise/fall, with it actually losing ground and causing spurious transitions on the receiver. The sn65hvd24 was not able to compensate for that with its receive equalizer (that I could tell).

The max3292 has pre-emphasis, but once the pre-emph is done the base drive lets the bus sag into nothing of note, and the receivers tend to get badly confused.
The downstream junk is selectable line driver equalization, to partially correct for CAT5 cable losses. This runs up to 125 MHz.

(fair warning: my analog skills are ... lacking)

My thought here would be to actually take each of the 3 inverter outputs and rather than bussing them together, drive different parts of the EQ circuit directly from each and *then *bus* them together: (ignore the values)

https://www.circuitlab.com/circuit/jqmsj8/screenshot/540x405/

Even better, if those are tri-state gates, you can drive the OE's of each gate independently in order to change which chains are active. The RS-485 DE function consists of turning all the OE's off.

AFAICT the Line_Driver.PDF circuit drives directly at all times, then can switch the 2 different EQ'd forms in on top of that. If my idea above works, you'd have 8 options instead of just 3.

That make any sense or am I just smoking something?
 
The quirk of my design is that (by requirement) the RS-485 rides
capacitively coupled over the 0-36V DC lines, and the wire isn't twisted,
it's just regular "lamp cord". The baud rate (dynamic 500Kbps-4Mbps in
powers of 2, preamble autobauds the receiver) is fast enough to avoid "sag",
and the data is manchester encoded anyway.
However, the more units on the bus, the funkier the waveform.
My goal is to come up with something that actually works.

If you are going to use lamp cord, _use_ a modulation method suitable
for lamp cords, i.e. PLC/PLT Power line communication. These are
usually DMT/COFDM style multitone modulation methods with a large
number (tens to hundreds) subcarrier in the MF or lower HF band. Each
subcarrier carry only a limited amount bits in order to keep the
symbol rate low. The total bit stream is divided and interleaved among
the subcarriers and a strong error correction coding is used.

In a multitone system with say 256 subcarriers, the 4 Mbit/s is
divided into the 16 kbit/s each, the 1/4 wave problems will start only
after a few kilometers.

In a single carrier system, e.g. the cabling to a light switch cause a
1/4 wave stub, distorting the waveform, but in multitone will only
take out individual subcarriers, with the redundancy, the ECC can
reconstruct the lost bits.

Trying to use some primitive Manchester/single carrier modulation
methods is not going to work if the network is large and there are a
lot of branches. The reflection will distort the waveform to useless
levels. At 4 Mbit/s with PVC insulation, the 1/4 wavelength is about
12 m.
 
J

Joerg

Jan 1, 1970
0
Don't have the old thread anymore, they roll of after two months on my
PC. But let me try.

I'm working on a project that's so far not found a viable stock
RS-485 transceiver (max13451, sn65hvd24, and max3292 all fail in
various ways), so thinking about designing a discrete transmitter.

The quirk of my design is that (by requirement) the RS-485 rides
capacitively coupled over the 0-36V DC lines, and the wire isn't
twisted, it's just regular "lamp cord". The baud rate (dynamic
500Kbps-4Mbps in powers of 2, preamble autobauds the receiver) is
fast enough to avoid "sag", and the data is manchester encoded
anyway. However, the more units on the bus, the funkier the
waveform. My goal is to come up with something that actually works.

The max13451 is a pretty straight xcvr, but the waveform would start
to massively struggle to rise/fall, with it actually losing ground
and causing spurious transitions on the receiver. The sn65hvd24 was
not able to compensate for that with its receive equalizer (that I
could tell).

The max3292 has pre-emphasis, but once the pre-emph is done the base
drive lets the bus sag into nothing of note, and the receivers tend
to get badly confused.

Careful with the stock situations at distributors if this is for
production. Doesn't look too great IMHO. The SN65HVD24 looks ok though.

(fair warning: my analog skills are ... lacking)

If it's any comfoert, my programming skills are ... lacking :)

My thought here would be to actually take each of the 3 inverter
outputs and rather than bussing them together, drive different parts
of the EQ circuit directly from each and *then *bus* them together:
(ignore the values)

https://www.circuitlab.com/circuit/jqmsj8/screenshot/540x405/

Even better, if those are tri-state gates, you can drive the OE's of
each gate independently in order to change which chains are active.
The RS-485 DE function consists of turning all the OE's off.

AFAICT the Line_Driver.PDF circuit drives directly at all times, then
can switch the 2 different EQ'd forms in on top of that. If my idea
above works, you'd have 8 options instead of just 3.

That make any sense or am I just smoking something?


I don't have the PDF link but the stuff in your link can work. I assume
they aren't tied together but driven from different EQ sections. It's
hard on the drivers though because they are seeing two other active
100ohm loads plus the cable. This is where discrete solutions can be
better if you need more amplitude than what chips can deliver. Or
parallel a few for each EQ section.

What I don't know is how you change the EQ settings when the
constellation of other nodes on the line changes. Something has to look
at the transitions and the ringing and change the EQ accordingly.

Also, mind potential *PHUT* situations. For example, what if there is
suddenly a dead short and the line voltage goes from 36V to zero in
nanoseconds? That puts a hard 36V across all device, with a long line
maybe even more. This is going to be a differential transition, not
common mode against many chips would be fairly robust.
 
Top