English
Language : 

SP2-433-160 Datasheet, PDF (22/27 Pages) Radiometrix Ltd – UHF SpacePort Transceiver
;SUBROUTINE OUT_BYTE
;OUT_BYTE WRITE A BYTE FROM FILE POINTED TO BY FSR TO SP2
;
W IS DESTROYED
;
;
NOTE THIS ROUTINE WILL HANG THE HOST UNTIL THE SP2
;
ACCEPTS THE TRANSFER OF TWO NIBBLES
;
;
WARNING
OUT_BYTE WILL SET THE DATA BUS TO DRIVE AFTER ;
DETECTING A TXA FROM THE SP2.
;
THE CALLING ROUTINE MUST SET 4 DATA LINES
;
BACK TO I/P ON COMPLETION OF PACKET TRANSFER ;
(i.e. call LISTENBUS)
;
OUT_BYTE SWAPF INDF,W
;GET LS NIBBLE FROM FILE (VIA FSR) INTO
;
;BITS 4 to 7 of W
ANDLW B'11110000' ;JUST THE NIBBLE
IORLW B'00000010' ;SET TXR LOW, LEAVE RXA HIGH
MOVWF SP2
;SET TXR LOW, OUTPUT NIBBLE
;
WACCEPT
BTFSC SP2,TXA
;WE GOT A TX ACCEPT BACK YET?
GOTO WACCEPT
;NO, SO LOOP BACK AND WAIT
;
;WE GOT ACCEPTANCE SO IT'S OK TO DRIVE BUS
;
BSF STATUS,RP0 ;SELECT PAGE 1
MOVLW B'00001001' ;DRIVE BUS
MOVWF SP2_DDR
BCF STATUS,RP0 ;SELECT PAGE 0 BUS IS NOW DRIVING
;
BSF SP2,TXR
;REMOVE REQUEST, DATA IS ON BUS
WDUN
BTFSS SP2,TXA
;HAS DATA BEEN READ?
GOTO WDUN
;WAIT TILL SP2 REMOVES ACCEPT
;
;LS NIBBLE OF (FSR) IS SENT , NOW DO MS NIBBLE
;
MOVF INDF,W
;GET MS NIBBLE FROM FILE (VIA FSR)
;
ANDLW B'11110000' ;JUST THE MS NIBBLE
IORLW B'00000010' ;SET TXR LOW (BIT 2), RXA STAYS HIGH
MOVWF SP2
;OUTPUT NIBBLE + TXR LOW
;
WACCEPT1 BTFSC SP2,TXA
;WE GOT A TX ACCEPT BACK YET?
GOTO WACCEPT1 ;NO, SO LOOP BACK AND WAIT
;
BSF SP2,TXR
;REMOVE REQUEST, DATA IS ON BUS
;
WDUN1
BTFSS SP2,TXA
;HAS DATA BEEN READ?
GOTO WDUN1
;WAIT TILL SP2 REMOVES ACCEPT
;
RETURN
;
;
BYTE IS SENT TO SP2
;--------------------------------------------------------------------
; SUBROUTINE - LISTEN_BUS , SET DATA BUS TO INPUT
;
LISTEN_BUS BSF STATUS,RP0 ;SELECT PAGE 1
MOVLW B'11111001' ;BUS TO INPUT
MOVWF SP2_DDR
BCF STATUS,RP0 ;SELECT PAGE 0
RETURN
;
BUS IS LISTENING TO SP2
;--------------------------------------------------------------------
Radiometrix Ltd, SP2 data sheet
page 22