Driver to control a TNC2 (or compatible) equipped with 6PACK firmware
eprom. A KISS driver controlling a TNC2 has it's well-known timing problems.
If you have been using KISS, this driver is the matter of choice as it
controls TNC2 under PC/FlexNet with precise timing (other users on your
channel will be happy for this). Before starting, don't forget to program
the file 6PACK.BIN (delivered with this driver) into an eprom and install
in your TNC2.
COM 1-4 can be adressed simply by the COM port number e.g. '6PACK 1'
installs the 6PACK-driver with the default values of the serial port 1,
other port adresses and IRQ numbers are optional; addresses and IRQ numbers
can be given either decimal or prefixed by '0x' for hexadecimal notation.
On PC side, the use of 16550-type UARTS with FIFO-buffer is supported and
generally recommended.
IMPORTANT: In order to work properly, the baudrate between computer
and TNC2 must be at least TWICE the baudrate of the HF communication (e.g.
a 9600bd FSK transmission needs at least a baudrate of 19200bd at the serial
port). In order to have the right timing to FlexNet, the correct RF baudrate
must be set with the 'FSET MODE' command.
Description of channel statistics (output of STAT.EXE):
terr: |
TX-underrun in TNC. TNC may be too slow for HDLC-baudrate, much more
likely the PC isn't fast enough to deliver data in time. Increase baudrate
between PC and TNC if possible. |
rerr: |
RX-underrun in TNC. TNC is too slow for HDLC-baudrate. Should not happen
unless you're trying HDLC data rates of 9600 baud and the like with less
then 9.8 MHz of TNC clock speed. |
rberr: |
Buffer-overflow in TNC. PC is too slow or overloaded with the current
tasks . |
ioerr: |
RX-overrun or transmission error in PC. PC is overloaded; also incremented
every 60 seconds if no TNC is active. |
Errors occuring occasionally are no problem but if they happen frequently,
the PC should be tuned and/or the serial baudrate be increased, so avoiding
a 'hanging' of the RF channel. Decreasing the serial baudrate is not recommended
as it reduces the realtime-capabilities of the connected TNCs. Try enhancing
the PC with a 16550 compatible UART instead.
Controlling several TNCs:
6PACK is capable of controlling up to 8 TNCs. To use this feature,
the serial lines must be connected in a ring. That means the TxD-line of
the PC is connected to the RxD of the first TNC, TxD of the first TNC is
connected to the RxD of the second TNC and so on... The TxD of the last
TNC in the ring is then connected to the RxD of the PC. The channel assignment
is done automatically; the lowest channel number is assigned to the first
TNC in the ring. This alignment is hardware compatible to TNN token ring.
However, in case of 6PACK a completely different protocol (without token)
is used. Watchdog triggering via RTS-toggle is supported.
The number of channels assigned upon installation of the 6PACK driver
should be equal the number of the TNCs in the ring. Nevertheless nothing
will happen if these values differ.