[comp.sys.amiga] Serial port speed

garvin@ncsuvx.ncsu.edu (Michael A. Garvin) (06/23/88)

     I'm trying to find out the speed of the Amiga's serial port; i.e.,
what is the top baud rate it can handle.  I've heard allusions as to
112kbaud, which seems normal and reasonable, but can it go higher?
Also, PAULA handles the interfacing, doesn't it?
     Thanks for any help.

-------------------------------------------------------------------------
garvin@ncsuvx.ncsu.edu     Mike Garvin    NCSU    Raleigh, NC
Insert disclaimer and witty comment here...
-------------------------------------------------------------------------

dillon@CORY.BERKELEY.EDU (Matt Dillon) (06/23/88)

>     I'm trying to find out the speed of the Amiga's serial port; i.e.,
>what is the top baud rate it can handle.  I've heard allusions as to
>112kbaud, which seems normal and reasonable, but can it go higher?
>Also, PAULA handles the interfacing, doesn't it?
>     Thanks for any help.

	For NTSC Amiga's, a 15 bit value in SERPER controls the baud rate
at N+1 color clocks @ 279.4ns/tick = maximum baud rate of 3.5MBits/sec.
REALISTICALLY, however, don't count on better than 262KBaud with any reasonable
accuracy (since it is all based on the 279.4ns tick) communicating with
some other machine.

	For asynchronoius communications, there is also a problem with
being able to receive at high speeds... the 68000 can't always handle the
receive interrupt in time so you really can't go above 19.2KBaud on the
receive without loosing characters (this will hopefully be fixed in 1.4,
I know Bryce has found several nasty spots in EXEC where interrupts are
disabled for too long).

	I personally, have successfully received asynch at 76.8 KBaud, but it
required disabling multitasking (Forbid()) for long periods of time, and
I had to write my own serial interrupt handler.  Even then I get one or
two overruns over a 30 second period of continuous incomming data.

	synchronous communication is another matter entirely.  For instance,
if each byte is handshaked, there are no longer any timing constraints and
a standard task could talk over the serial port with an agregate of 
>>262KBaud.  If one is going Amiga to Amiga, you could probably max out the
serial port.  This would also work for a network..  For example, the 
receiving machine inverts an 'ack' line for every byte received.

	In anycase, theoretically, never tested, assuming 8N1 (10 bits/byte)
@3.579098 MBits/sec, synchronous comm, plus 4 bit times for ack-tx-next-char,
I figure one can go at about 255KBytes/sec from a normal task on a lightly
loaded Amiga with all system functions working normally.

					-Matt