TS-MULTI-104

From embeddedTS Manuals
Revision as of 12:20, 26 November 2012 by Mark (talk | contribs)
TS-MULTI_104
TS-MULTI 104.jpg
Product Page
Documentation
Multitech Universal Socket Products
Operating Temperature
Cold -40C
Hot 70C
Mechanical
96mm X 89mm
Height 9.75mm (approx without baseboard)
Weight 20.4 (approx)

Overview

The TS-MULTI_104 is a PC/104 device that carries Multitech socket modems. It uses a standard 16550 driver, and is designed to work with nearly all PC/104 hosts.

Getting Started

The TS-MULTI_104 will use the standard 16550 driver provided by the host system, but the driver will need to know the COM address and IRQ which are both selected by the onboard jumpers.

This example is for a TS-7800 with only IRQ6 on. If you have K1 populated you should also have the "1.8MHz" jumper on to get started.

# If you are in Debian the next 2 lines will turn on the PC104 bus
. /initrd/ts7800.subr
pc104on
modprobe ts7800_isa16550 irq=6 io=0x3F8

To view if it loaded correctly, run 'dmesg' and you should find a line similar to this:

serial8250: ttyS2 at MMIO 0xee0003f8 (irq = 71) is a 16550A

So in this case the COM device will be /dev/ttyS2. You can use a terminal emulator like minicom or picocom to quickly test communication. Upon typing "AT" and pressing enter, the modem should respond with OK.

Features

COM Port Address

COM I/O COM1 Jumper COM2 Jumper COM3 Jumper
COM1 0x3F8 OFF OFF OFF
COM1 0x3F8 ON OFF OFF
COM2 0x2F8 OFF ON OFF
COM3 0x3E8 OFF OFF ON
COM4 0x2E8 ON OFF ON
COM5 0x3A8 OFF ON ON
COM6 0x2A8 ON ON ON

IRQ Selection

The IRQ can be selected by the jumpers labelled IRQ3 through IRQ7. On most of our SBCs only IRQ5-7 are used.

Faster Data Rates

When used with the GPRS modems and those requiring a maximum baud rate of 115200, you can use the PC104 clock to generate a 18.4MHz clock needed for the 16550. When using faster modems like the H4 for an HSDPA connection, K1 can be populated with a 14.7456MHz crystal. This will allow you to reach baud rates up to 921600. If you have K1 populated, you can set the jumper 1.8MHz to use the PC104 clock for standard baud rates.

To set a custom baudrate in Linux you would typically use the setserial command. When the spd_cust baud rate it set Linux will re-purpose 38400 to use your custom baud rate.

Common Baud Rates
Divisor Rate
1 921600
2 460800
3 307200
4 230400
5 184320
6 153600
7 131657
8 115200

Larger divisors will also work, but this should cover the common range. Using the setserial command you can specify the divisor. For example, to reach 460800

# ttyS4 is an example, but check "dmesg" after loading
# your 16550 driver to get the device
setserial /dev/ttyS4 spd_cust baud_base 921600 divisor 2
Note: Custom baud rates can be up to 5% off of your target baud rate, and communication will still be possible with most devices.

In your linux application you would set the baud rate to 38400, and access it as normal which will actually communicate at your faster speeds. The Linux Documentation Project has more details on serial programming.