beautypg.com

An130 – Cirrus Logic AN130 User Manual

Page 8

background image

AN130

8

AN130REV2

MOVLW 0xFF

; Load W for new delay count

CALL

delay

; Delay for Oscillator start-up 158ms

CALL

delay

; Delay for Oscillator start-up 158ms

CALL

delay

; Delay for Oscillator start-up 158ms

CALL

delay

; Delay for Oscillator start-up 158ms

;*** ADC Serial Port Initialization ***

MOVLW 0x0F

; Load W with a value of 15

MOVWF TEMP

; Loop count variable = TEMP

BCF

PORTA, CS

; Clear CS to enable ADC

loop:

MOVLW 0xFF

; Load W with all 1’s

CALL

send_byte

; send all 1’s to ADC

DECFSZ TEMP, 1

; loop through to send 15 bytes of all 1’s

goto

loop

MOVLW 0xFE

; Load W with last byte - ’11111110’

CALL

send_byte

; send final initialize byte to ADC

BSF

PORTA, CS

; Set CS to disable ADC

RETURN

; Exit to "main"

;*****************************************************************************
;* Routine - calibrate
;* Input - none
;* Output - none
;* This subroutine tells the ADC to perform self-offset calibration on Setup 1
;*****************************************************************************

calibrate

MOVLW 0x81

; Command for Self-Offset Calibration

BCF

PORTA, CS

; Enable ADC

CALL

send_byte

; Send Calibration Command to ADC

poll_sdo1:

BTFSC

PORTA, SDO ; Wait until SDO falls to indicate

goto

poll_sdo1

; calibration completion.

BSF

PORTA, CS

; Disable ADC

RETURN

; Exit to "main"

;*****************************************************************************
;* Routine - modify_gain