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

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
an exception to be aware of when a serial port has to operate at an extremely high speed. At
115,200 bps, the highest speed of a PC serial port, the interrupts must be serviced in 10 baud
times, or 86 µs, in order not to lose the received characters. If all four serial ports were operat-
ing at this receive speed, it would be necessary to service the interrupt in less than 21.5 µs to
assure no lost characters. In addition, the time taken by other interrupts of equal or higher
priority would have to be considered. A receiver service routine might appear as follows
below. The byte at
essary to save and increment this byte because characters could be handled out of order if
two receiver interrupts take place in quick succession.
This routine gets the interrupts turned on in about 68 clocks or 3.5 µs at a clock speed of
20 MHz. Although two characters may be handled out of order, this will be invisible to a
higher level routine checking the status of the input buffer because all the interrupts will
be completed before the higher level routine can perform a check on the buffer status.
A typical way to organize the buffers is to have an in-pointer and an out-pointer that incre-
ment through the addresses in the data buffer in a circular manner. The interrupt routine
manipulates the in-pointer and the higher level routine manipulates the out-pointer. If the in-
pointer equals the out-pointer, the buffer is considered full. If the out-pointer plus 1 equals
the in-pointer, the buffer is empty. All increments are done in a circular fashion, most easily
accomplished by making the buffer a power of two in length, then anding a mask after the
increment. The actual memory address is the pointer plus a buffer base address.
130
receive:
PUSH HL
PUSH DE
LD HL,STRUCT
LD A,(HL)
LD E,A
INC HL
CMP A,(HL)
JR Z,roverrun
INC A
AND A,MASK
DEC HL
LD (HL),A
IOI LD A,(SCDR) ; 11 get data register port C, clears interrupt request
IPRES
; 68 clocks to here
; to level before interrupt took place
; more interrupts could now take place,
; but receiver data is in registers
; now handle the rest of the receiver interrupt routine
LD HL,BUFBASE
LD D,0
ADD HL,DE
LD (HL),A
POP DE
POP HL
POP AF
RET
; 117 clocks to here
bufptr
; 10 save hl
; 10 save de
; 6
; 5 getin-pointer
; 2 save in pointer in e
; 2 point to out-pointer
; 5 see if in-pointer=out-pointer (buffer full)
; 5 go fix up receiver over run
; 2 incement the in pointer
; 4 mask such as 11110000 if 16 buffer locs
; 2
; 6 update the in pointer
; 4 restore the interrupt priority
; 6
; 6
; 2 location to store data
;
;7
; 7
; 7
; 8 from interrupt
6 put away the data byte
is used to address the buffer where data bits are stored. It is nec-
Rabbit 2000 Microprocessor User’s Manual

Related parts for 20-668-0003