PKP
VS1000 P
ROGRAMMER
’
S
G
UIDE
VSMPG
the transmitter data register empty (or full state) and bit [0] informs the transmitter (shift
register) empty state. A new word must not be written to transmitter data register if it
is not empty (bit [1] = ’0’). The transmitter data register will be empty as soon as it is
shifted to transmitter and the transmission is begun. It is safe to write a new word to
transmitter data register every time a transmit interrupt is generated.
Receiver operates as follows: It samples the RX signal line and if it detects a high to
low transition, a start bit is found. After this it samples each 8 bit at the middle of the
bit time (using a constant timer), and fills the receiver (shift register) LSB first. Finally if
a stop bit (logic high) is detected the data in the receiver is moved to the reveive data
register and the RX_INTR interrupt is sent and a status bit[2] (receive data register full)
is set, and status bit[2] old state is copied to bit[3] (receive data overrun). After that the
receiver returns to idle state to wait for a new start bit. Status bit[2] is zeroed when the
receiver data register is read.
RS232 communication speed is set using two clock dividers. The base clock is the
processor master clock. Bits 15-8 in these registers are for first divider and bits 7-0 for
second divider. RX sample frequency is the clock frequency that is input for the second
divider.
19.4
VS1000 ROM code usage
The ROM code in VS1000 has the following usage for the UART:
UART receive is by default tied to the ROM monitor. If byte 0xef is received, the firmware
jumps to the monitor. This enables debugging via a serial cable using vsemu command
line tool and IDE environment available from VLSI.
The default communication speed of the UART is 115200 bit/s with a 12 MHz crystal.
VS1000 ROM automatically changes the UART divider according to the
uartByteSpeed
variable whenever the PLL setting is changed.
Rev. 0.20
2011-10-04
Page