Specifications

Protocol Definitions
C-16
;Initialisation
;*****************************************************************************
SCI_LOADER:
UART_INIT:
;*****************************************************************************
;SCI Initialization
;*****************************************************************************
SCI_INIT: LDP #OCRA>>7
LACC OCRA ; Set up pins as SCI pins.
OR #0003H
SACL OCRA
LDP #SCICCR>>7 ;1 stop bit,no parity,8bits/ch
SPLK #0007h, SCICCR ;async mode,idle–line protocol
LACK #0
SACL SCICTL2 ;Disable RX Int, TX Int.
SACL SCIHBAUD
SACL SCIPRI
;*****************************************************************************
;The SCI module is held in ’reset’ untill we load the parameter
;for the Baud Rate register from the Baud Rate table in SCILBAUD
;So the next line stays commented out!
;*****************************************************************************
; SPLK #0023h, SCICTL1 ;Relinquish SCI from Reset.
;*****************************************************************************
;Baudrate lock protocol with Host
;*****************************************************************************
CLR_VBR_CNTR: POINT_B1
SACL CHAR_RETRY_CNTR ;Clear retry counter
SACL VBR_CNTR ;Clear valid baud rate counter
SACL BAUD_TBL_PTR ;BAUD_TBL_PTR is really only
;the offset from BAUD_TBL.
UI00
SET_BAUD: LACC BAUD_TBL_PTR
ADD #BAUD_TBL
POINT_PF1
SPLK #0013h, SCICTL1 ;Enable TX,RX,internal SCICLK,
TBLR SCILBAUD
SPLK #0023h, SCICTL1 ;Relinquish SCI from Reset.
UI01 CALL KICK_DOG
BIT SCIRXST,BIT6 ;Test RXRDY bit
BCND UI01, NTC ;If RXRDY=0,then repeat loop
LACC SCIRXBUF ;First byte is Lo byte
;Check if Char is as expected
CHECK_CHAR AND #0FFh ;Clear upper byte
SUB #00Dh ;Compare with ”CR”
BCND BAUD_RETRY, NEQ