The serial input data-receive register is 16 bits wide. It contains the 8 or 9 bit input data and status bits. The data is received, one bit at a time, into an internal serial-to-parallel shift register . When the proper number of bit times have elapsed, the contents of this register are transferred to the serial data read register (SERDATR) shown in Table 8-10, and you are signaled that there is data ready for you. Immediately after the transfer of data takes place, the receive shift register again becomes ready to accept new data. After receiving the receiver-full interrupt, you will have up to one full character-receive time (8 to 10 bit times) to accept the data and clear the interrupt. If the interrupt is not cleared in time, the OVERRUN bit is set. Table 8-9 shows the definitions of the various bit positions within SERDATR. Table 8-9: SERDATR / ADKCON Registers SERDATR ------- Bit Number Name Function ------ ---- -------- 15 OVRUN OVERRUN (Mirror -- also appears in the interrupt request register.) Indicates that another byte of data was received before the previous byte was picked up by the processor. To prevent this condition, it is necessary to reset INTF_RBF (bit 11, receive-buffer-full) in INTREQ . 14 RBF READ BUFFER FULL (Mirror -- also appears in the interrupt request register.) When this bit is 1, there is data ready to be picked up by the processor. After reading the contents of this data register, you must reset the INTF_RBF bit in INTREQ to prevent an overrun. 13 TBE TRANSMIT BUFFER EMPTY (Not a mirror -- interrupt occurs when the buffer becomes empty.) When bit 14 is a 1, the data in the output data register ( SERDAT ) has been transferred to the serial output shift register , so SERDAT is ready to accept another output word. This is also true when the buffer is empty. This bit is normally used for full-duplex operation. 12 TSRE TRANSMIT SHIFT REGISTER EMPTY When this bit is a 1, the output shift register has completed its task, all data has been transmitted, and the register is now idle. If you stop writing data into the output register ( SERDAT ), then this bit will become a 1 after both the word currently in the shift register and the word placed into SERDAT have been transmitted. This bit is normally used for half-duplex operation. 11 RXD Direct read of RXD pin on Paula chip. 10 Not used at this time. 9 STP Stop bit if 9 data bits are specified for receive. 8 STP Stop bit if 8 data bits are specified for receive. OR DB8 9th data bit if 9 bits are specified for receive. 7-0 DB7-DB0 Low 8 data bits of received data. Data is TRUE (data you read is the same polarity as the data expected). ADKCON -------- Bit Number Name Function ------ ---- -------- 15 SET/CLR Allows setting or clearing individual bits. If bit 15 is a 1 specified bits are set. If bit 15 is a 0 specified bits are cleared. 11 UARTBRK Force the transmit pin to zero.
[Back to Amiga Developer Docs]