Instruction Manual
AN88
10 AN88Rev2
;*************************************************************************************
;* Routine - write_register
;* Input - COMMANDBYTE, HIGHBYTE, MIDBYTE, LOWBYTE
;* Output - none
;*
;* This subroutine instructs the CS5525/6/9 to write to an internal register.
;*************************************************************************************
write_register BCF PORTA,CS ; Clear Chip Select
MOVF COMMANDBYTE,0 ; Load W with COMMANDBYTE
CALL send_spi ; transfer byte
MOVF HIGHBYTE,0 ; Load W with HIGHBYTE
CALL send_spi ; transfer byte
MOVF MIDBYTE,0 ; Load W with MIDBYTE
CALL send_spi ; transfer byte
MOVF LOWBYTE,0 ; Load W with LOWBYTE
CALL send_spi ; transfer byte
BSF PORTA,CS ; Set Chip Select
RETURN ; Exit Subroutine
;*************************************************************************************
;* Routine - read_register
;* Input - COMMANDBYTE
;* Output - HIGHBYTE, MIDBYTE, LOWBYTE
;* This subroutine reads an internal register of the ADC.
;*************************************************************************************
read_register BCF PORTA,CS ; Clear Chip Select
MOVF COMMANDBYTE,0 ; Load W with COMMANDBYTE
CALL send_spi ; transfer byte
CALL receive_spi ; receive byte
MOVWF HIGHBYTE ; Move W to HIGHBYTE
CALL receive_spi ; receive byte
MOVWF MIDBYTE ; Move W to MIDBYTE
CALL receive_spi ; receive byte
MOVWF LOWBYTE ; Move W to LOWBYTE
BSF PORTA,CS ; Set Chip Select
RETURN ; Exit Subroutine