20-668-0003 Rabbit Semiconductor, 20-668-0003 Datasheet - Page 139

IC CPU RABBIT2000 30MHZ 100PQFP

20-668-0003

Manufacturer Part Number
20-668-0003
Description
IC CPU RABBIT2000 30MHZ 100PQFP
Manufacturer
Rabbit Semiconductor
Datasheet

Specifications of 20-668-0003

Processor Type
Rabbit 2000 8-Bit
Speed
30MHz
Voltage
2.7V, 3V, 3.3V, 5V
Mounting Type
Surface Mount
Package / Case
100-MQFP, 100-PQFP
Data Bus Width
8 bit
Maximum Clock Frequency
30 MHz
Operating Supply Voltage
0 V to 5.5 V
Maximum Operating Temperature
+ 85 C
Mounting Style
SMD/SMT
Minimum Operating Temperature
- 40 C
Number Of Programmable I/os
40
Number Of Timers
8 & 10 bit
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Features
-
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
Other names
20-668-0003
316-1062

Available stocks

Company
Part Number
Manufacturer
Quantity
Price
Part Number:
20-668-0003
Manufacturer:
Rabbit Semiconductor
Quantity:
10 000
12.7.5.2 Parity, Extra Stop Bits with 8 Data Bit Characters
In order to receive parity with 8 data bits, a check is made on each character for a 9th bit
low. The 9th bit, or parity bit, is low if bit 6 of the serial port status register is set to a "1"
after the character is received. If the 9th bit is not a zero, then the serial port treats it as an
extra stop bit. So if the 9th bit low flag is not set, it should be assumed that the parity bit is
a "1."
No special precautions are necessary to receive extra stop bits, nor does the serial port
check for stop bits beyond one. If the first stop bit is missing, it is treated as a 9th (or 8th)
bit low and will be received as a 9-bit (8-bit) character.
Sending a 9th bit or an extra stop bit is easier with revisions A–C of the Rabbit 2000 chip,
which have a long stop register as described in Section B.2.3. It was more difficult to
transmit an extra stop bit or a parity bit of value "1" with the original Rabbit 2000 chip.
The difficulty arose because there is no one solution that applies to every case, although
there is a solution for every case. To send an extra stop bit or parity bit of value "1" using
the original Rabbit 2000 chip, it is necessary to delay sending the next character so that the
stop bit will be extended to a length of at least 2 baud times. In order to delay the next
character by an additional baud time, the program has to wait for the transmitter idle inter-
rupt, which takes place after the data register empty interrupt. The data register ready
interrupt request is terminated by writing to the status register. After the transmitter idle
interrupt, which takes place at the trailing edge of the stop bit, the interrupt routine must
not load the next character for another baud time, for example, 8.6 µs at 115,200 bps or
104 µs at 9600 bps. At the highest baud rates it makes sense to use a busy wait loop in the
interrupt routine to time out a baud step before loading the data register with the next char-
acter. The busy wait loop may be very brief since the delay can be partially made up from
the time used to save the registers on entry to the interrupt and the time used in fetching
the next character to be sent from the transmit buffer. Of course the busy wait loop runs on
the processor clock, which is subject to being throttled up and down, so the loop count
must be coordinated with the current processor speed.
A busy wait loop can still be used at slower baud rates, but then there will be a deleterious
effect on the interrupt latency unless interrupts are re-enabled in the interrupt routine. This
can certainly be done provided that the receiver and transmitter interrupts are properly dis-
patched to separate routines because the receiver and transmitter interrupts share the same
interrupt vector. In addition, when interrupts are re-enabled in the interrupt routine, there
must be coordination with the real-time kernel or the operating system (if there is one).
This coordination typically involves a nesting count of interrupt routines that much be
adjusted by each interrupt routine that re-enables interrupts before it returns. If a busy wait
loop is used, it can be expected to consume around 10% of the processors compute time
while characters are being transmitted, since it is doing busy waiting for 1 baud out of 11
baud times for each character sent. Using the transmitter idle interrupt to request the next
character will result in gaps between characters that can be as long as the worst-case inter-
rupt latency. Most applications are not bothered by gaps between characters, but certain
Chapter 12 Rabbit Serial Ports
133

Related parts for 20-668-0003