User manual
Initialization
Initializing the chip requires knowledge of the UART's register set. The first step is to set the baud rate
divisor. You do this by first setting the DLAB (Divisor Latch Access Bit) high. This bit is Bit 7 at Base
Address +3. In C code, the call would be:
outportb(BASEADDR +3,0x80);
You then load the divisor into Base Address +0 (low byte) and Base Address +1 (high byte). The
following equation defines the relationship between baud rate and divisor:
desired baud rate = (crystal frequency) / (32 * divisor)
The UART clock frequency is 1.8432MHz. The following table lists popular divisor frequencies.
Table 5-2: Baud Rate Divisors
Baud
Rate
Divisor Divisor (Factory
Option)
Notes Max. Diff’l.
Cable Length*
460800 1 550
230400 2 1400
115200 1 4 3000 ft.
57600 2 8 4000 ft.
38400 3 12 4000 ft.
28800 4 16 4000 ft.
19200 6 24 4000 ft.
14400 8 32 4000 ft.
9600 12 48 Most Common 4000 ft.
4800 24 96 4000 ft.
2400 48 192 4000 ft.
1200 96 384 4000 ft.
*These are theoretical maximums based on typical conditions and good quality cables based on the EIA
485 and EIA 422 standard for balanced differential drivers.
In C, the code to set the chip to 9600 baud is:
outportb(BASEADDR, 0x0C);
outportb(BASEADDR +1,0);
The second initializing step is to set the Line Control Register at Base Address +3. This register defines
word length, stop bits, parity, and the DLAB.
Bits 0 and 1 control word length and allow word lengths from 5 to 8 bits. Bit settings are
extracted by subtracting 5 from the desired word length.
Manual 104-ICOM-2S, 104-COM-2S 19