
Description of the data path
GUPPY Technical Manual
V4.0.1
96
Reading data requires the following series of actions:
1.
Query RDRD flag (buffer ready?) and write the number of bytes the host
wants to read to RBUF_CNT.
2.
Read the number of bytes pending in the receive buffer RBUF_ST (more
data in the buffer than the host wanted to read?) and the number of
bytes left for reading from the receive FiFo in RBUF_CNT (the host
wanted to read more data than were in the buffer?).
3.
Read received characters from SIO_DATA_REGISTER, beginning at char 0.
4.
To input more characters, repeat from step 1.
Writing data requires the following series of actions:
1.
Query TDRD flag (buffer ready?) and write the number of bytes to send
(copied from SIO register to transmit FiFo) to TBUF_CNT.
008h
RECEIVE_BUFFER_STAT
US_CONTRL
RBUF_ST
[0..7]
SIO receive buffer status
RD: Number of bytes pending in receive
buffer
WR: Ignored
RBUF_CNT
[8..15]
SIO receive buffer control
WR: Number of bytes to be read from the
receive FiFo
RD: Number of bytes left for readout
from the receive FiFo
-
[16..31] Reserved
00Ch
TRANSMIT_BUFFER_ST
ATUS_CONTRL
TBUF_ST
[0..7]
SIO output buffer status
RD: Space left in TX buffer
WR: Ignored
TBUF_CNT
[8..15]
SIO output buffer control
RD: Number of bytes written to transmit
FiFo
WR: Number of bytes to transmit
-
[16..31] Reserved
010h
..
0FFh
-
Reserved
100h
SIO_DATA_REGISTER
CHAR_0
[0..7]
Character_0 RD: Read char. from receive
buffer WR: Write char. to transmit buffer
SIO_DATA_REGISTER
CHAR_1
[8..15]
Character_1 RD/WR
SIO_DATA_REGISTER
CHAR_2
[16..23] Character_2 RD/WR
SIO_DATA_REGISTER
CHAR_3
[24..31] Character_3 RD/WR
Offset
Name
Field
Bit
Description
Table 31: SIO CSR