[comp.dcom.modems] Problems with MNP on a MultiTech 224EH

mbr@aoa.UUCP (Mark Rosenthal) (05/10/88)

I have installed two MultiTech 224EH 2400 baud modems on our VAX 8650 running
Ultrix 2.0.  The processes which talk to the modems are either tip or uucico.
The modems are configured to talk at 4800 bps out the serial port, and use CTS
to tell the VAX to stop transmission temporarily when they are in danger of
overrunning the speed of the phone line.  The VAX software respects CTS (as
verified by watching the led's on a breakout box).  The modem is supposed to
negotiate speed (and possibly MNP level) with the remote modem.

Things seem to work fine in "normal" mode (i.e. with MNP turned off).  This
gets me 300, 1200, and 2400 bps.  The problem comes when I turn on "reliable"
mode (i.e. the modem does MNP level 4 error correction all the time) or
"auto-reliable" mode (i.e. the modem will do MNP level 4 error correction if
the remote modem can handle it).  With error correction turned on however, the
modems freeze up.

Has anybody else run into similar problems?  Any suggestions?
-- 
	Mark of the Valley of Roses
	...!{harvard,ima}!bbn!aoa!mbr

mbr@aoa.UUCP (Mark Rosenthal) (05/11/88)

In article <221@aoa.UUCP> I wrote about problems I have encountered trying to
use MultiTech 224EH 2400 baud modems with error correction turned on.  I
neglected to mention the firmware rev of the modems.  Here are the responses
the modem gives to the "ATI" commands:

	modem ID #
	ATI0	244

	firmware rev #
	ATI1	606

	firmware for error correction
	ATI2	506

MultiTech tells me that these are the latest revisions.
-- 
	Mark of the Valley of Roses
	...!{harvard,ima}!bbn!aoa!mbr

steveg@ritcsh.UUCP (in stereo where available) (05/13/88)

I had a similar problem though I was running with XON/XOFF flow control
and was loosing data.  My problem was that I was allowing XON XOFF codes to
pass thru and thus when I hit an XON if the other end modems buffer was
full, since my modem passed the XON through to the other end thus
hitting the computer, the computer would output data even though
it's modem may of XOFFED it and did not want any more data, thus the loss.

By doing much testing I found the correct settings are:

     &E1 if you want auto reliable compressed mode

     &E4 for hardware flow control 

     &E5 for XON/XOFF flow control

     &E6 do not pass incomming flow control through phone line
         only act upon it.

     &E8 is default and I did not want to mess with this setting.

     &E11 in normal mode modem will support flow control

     &E13 support pacing / flow control

     &E15 support data compression if remote modem supports it

In my setup I use XON XOFF I would suspect that if you wish hardware
flow control the only setting that need be changed is the one dealing
with the type of flow control being used.

If you are doing binary data transfer you do not want to use XON XOFF
flow control.
-- 
   ___      ___     ___   Steve Good       ...uunet!ccicpg!cci632!ritcsh!steveg
|@/o o\@| @/- -\@ @/o o\@ Network Administrator         BITNET%"SNGDCO@RITVAXD"
| \ o / |  / o \   \/-\/  Rochester Institute of Technology       (716)475-2702
 \ --- /  | --- |  /---\  "I hear nothing, I see nothing, I say nothing" Shultz

NU013809@NDSUVM1.BITNET (Greg Wettstein) (05/26/88)

I have just received a Multitech MT-224EH modem and am setting it for
reliable (MNP Class 5/compressed mode) communications with another MT-224EH.
I have read the manual thoroughly and have wired an RS-232 cable which
supports all nine lines (SEND, RECEIVE, GND, RTS, CTS, RI, DSR, DTR, CD).
I have written my own terminal emulator (MSC C 5.0 + assembler) which
supports interrupt driven asynchronous communications.  I run the terminal
emulator on a Zenith Z-159 and use the MT-224EH to dial into an ITT
XTRA (with another MT-224EH) running SCO XENIX.

My desire is to run both modems at 4800 baud to take complete advantage
of the increased throughput provided by the MNP protocol as well as
data compression.  Since one of my desires is binary file transfers using
the IMODEM protocol my interpretation is that hardware handshaking using
CTS/RTS control pairs is the only feasible method of flow control.

The problem that I am having with CTS/RTS control pairs is with the initial
state of the control signals.  I have set the internal jumper so that
RTS is not forced high (functions normally) and have correctly set SWITCH 1
on the internal four pole switch so that CTS follows the RTS signal.  Even
though my terminal emulator raises RTS in its initialization procedure the
modem refuses to acknowledge with CTS and of course this hangs an emulator
using CTS/RTS control pairs.  It apprears that the Multitech modem will not
raise CTS (even in the presence of RTS) unless a valid carrier detect is
available.  I have a copy of QMODEM 3.1 and it also complains that CTS is
not available when it attempts to initialize the serial port.

My question is whether or not I have missed some control switch setting or
perhaps some internal jumper is still mis-configured.  The manual that
comes with the modem is pretty good but I do not think that the section
describing hardwire flow control does a good job of documenting exactly
what has to be done.  I am in the middle of a catch-22 because I cannot
initiate a call without a valid CTS and I cannot seem to get a valid CTS
until a valid connection is achieved.  The only thing I have been able
to think of is to write code into my terminal emulator which does not
attempt RTS/CTS flow control until a valid DSR signal is elicited by the
modem.

Any suggestions, comments or questions would be greatly appeciated.  I have
a pretty fair background in PC's and asynchronous communications so responses
at any level of expertise would be gratefully accepted.  I will summarize
all responses back to the net.  Thanks in advance to all respondents.


                                        As always,
                                        G.W. Wettstein
                                        NU013809@NDSUVM1

mbr@aoa.UUCP (Mark Rosenthal) (06/01/88)

In article <1211NU013809@NDSUVM1> NU013809@NDSUVM1.BITNET (Greg Wettstein) writes:
>The only thing I have been able
>to think of is to write code into my terminal emulator which does not
>attempt RTS/CTS flow control until a valid DSR signal is elicited by the
>modem.

I have gone over the modem settings in detail myself, and have not found any
way to get the modem to assert CTS while dialing and then use that pin for
flow control only after the connection has been established.  I believe that
'tip' and 'uucp' work because they are written to ignore the state of CTS until
a call has been established (i.e. DCD is asserted).
-- 
	Mark of the Valley of Roses
	...!{harvard,ima}!bbn!aoa!mbr

NU013809@NDSUVM1.BITNET (Greg Wettstein) (06/02/88)

I received a reply from an individual who said he was using several (I assume
MNP modems) in error-correcting (compressed?) mode using RTS/CTS pairs for
flow control.  This individual said that it was not intuitive but that
CTS forcing was the method of getting these modems to work properly.  I went
back to the Multitech manual and re-read the documentation and I have the
following obserations:

The switch in concern if I interpret the commenter correctly is the four
pole dip switch located inside the modem near the front leds.  This switch
selects asynchronous/synchronous communications, leased/dial-up lines,
blind dialing/wait-for-dial-tone and normal/forced CTS.  I read the
description of this switch and the normal/forced mode is, I believe,
somewhat misleading.  It helps to refer to the section which describes the
8 pole dip switch which is externally accessible.  The 8-pole DIPSW has a
setting which allows DSR/CD to be forced on in command mode.  The explanation
of the DSR/CD forcing as well as the CTS forcing seem to suggest that this
forcing takes effect only when the modem is in command mode.  I assumed that
if CTS flow control is selected (through the AT&E1-15 commands) the modem
will properly assert CTS when the modem detects a valid carrier and connects.

I opened up the MT-224E last night and selected CTS forcing using the
internal 4-pole switch.  In the process I powered down the modem and so
it was reset to its default configurations (I have never set any control
options in the firmware).  After powering everything back up QMODEM and my
own terminal emulator no longer complain that CTS is not asserted when the
terminal emulators go through their initialization.  Using the AT&E1-15
control switches I turned on CTS flow control, normal mode flow control and
and pacing.  I also turned off baud rate conversion (AT$BA0) and set the
serial port speed to 9600 baud (AT&SB9600).  I set my terminal emulator to
run at 9600 baud and dialed into our IBM-3081 through a PACX/IBM-7171 front
end and everything seemed to work just fine.  I'm not sure that any
significant pacing or flow-control would occur under these circumstances
but at least everything functioned.

I am in the process of enhancing the flow control in my own terminal emulator
and as part of the enhancements I am adding an indicator on the status
display which will indicatee the state of CTS.  Hopefully with this
enhancement I will be able to see when the modem asserts/de-asserts CTS
flow control.  The best test of course would have been to try an IMODEM
file transfer but our one local bulletin board which supports MNP-based
connections was busy.  I will report back the results of these further
tests when they are available.

The next challenge will be to properly configure XENIX to do speed
conversion and use CTS/RTS control pairs to pace the MT-224E which will
be on that end.  I was re-reading the XENIX documentation last night and
I noticed in the addendum that the CTSFLOW and RTSFLOW keywords have been
added as valid arguements to the getty command.  I will experiment with
this and report these results as well.

To summarize it appears that the CTS forcing option only forces CTS when
the modem is in command mode and normal CTS operation resumes when a
valid connection occurs.  If anyone has a different interpretation of the
manual or has experienced different results I would be interested in
hearing from them.  I would like to thank everyone who has taken time to
pass on their comments.

                                   As always,
                                   G.W. Wettstein
                                   NU013809@NDSUVM1

P.S.: Before I tried the CTS forcing I fixed the problem with my terminal
      emulator by teaching the interrupt handlers to only assert/acknowledge
      RTS/CTS control pairs when CD/DSR control signals were present.

davidsen@steinmetz.ge.com (William E. Davidsen Jr) (06/06/88)

  On many UNIX systems there are two (or more) names for every serial
device. These are just diferrent minor devices, and one uses CTS, the
other doesn't. For instance, on my Xenix/386 system, the line with CTS
is tty2A, and the one without is tty2a. The dialer used by cu and uucico
uses the second line to send dialing commands, then the line with CTS
enabled is used for data transmission.

  Several other systems, such a Wicat have much the same scheme,
although the name are diferrent.

  Obviously your system may not be setup this way.
-- 
	bill davidsen		(wedu@ge-crd.arpa)
  {uunet | philabs | seismo}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me