--- In ,
"gmaglathlin" m("...","maglathlin");"><> wrote:
>
> I am endeavoring to use the RS-485 driver on a TS-752
driven by a TS-7550 board. I successfully open /dev/pts/1
and can write data to the port which is reflected back to
me, exactly as it should on a two wire RS-485 interface
with the transmitter enabled. My problem is I can not
disable the transmitter (ie place it in the high impedance
state). Using setdiopin 27,0 or setdiopin 27,1 makes no
difference. The data is reflected (ie the transmitter is
enabled) in either case. This is the dio that is supposed
to control the tx enable of the driver. I have tried this
with versions 4, 5 and 6 of the FPGA bitstream. Anyone had
this experience or ideas or know the obvious thing I am
missing.
> Thanks in advance,
> Greg
>
I think you mean you can't disable the receiver, if you
always get what you send. I had a long mail from Kris at
technologic.
We used to use external RS232/485 converters, and with
those you don't get what you send as the receiver is
disabled while you send. On the Ts752, and on our own
board using very similar circuitry, the receiver is not
disabled. Look at the schematic; you will see that the
RXEN is tied low.
Kris said this is deliberate so that you can check that
what you sent was actually sent. If for example there is a
low impedance or short on the D+/D- lines, you can detect
this as won't receive what you send. You can implement
collision detection this way, although it's going to get
complicated in real life.
Although it is possible to work around this in software,
it's a real nuisance for us as our programs that talk to
external devices are sometimes connected using RS232 and
sometimes with RS485. Now the software has to cope with
the possibility that sometimes it receives its output and
sometimes not.
The sensible way to deal with this is an echo-test routine
as the start of the program - send an invalid message, see
if you receive it, set a flag accordingly.
By the way, the ISO485 board (for the TS2750 series) is
really horrible as you have to set RTS low otherwise you
will never receive anything.
Martin