
SLAA108A
SPI-Based Data Acquisition/Monitor Using the TLC2551 Serial ADC 11
BSR INIT ; Subroutine to initialize SPI registers
BSR SAMPLE ; Subroutine to start transmission
;* ----------------------------------------------------------------------
;* Initialization Subroutine
;* ----------------------------------------------------------------------
INIT:
BSET DDRS, #%11101100 ; Configure PORT S input/ouput:
; SS/CS, SCK, MOSI, MISO, PS3, PS2, TXD, RXD
BSET SP0BR, #%00000000 ; Set Baud Rate
BSET SP0CR1, #%01010100 ; Configure SPI(SP0CR1):
; SPIE, SPE, SWOM, MSTR, CPOL, CPHA, SSOE, LSBF
BSET SP0CR2, #%00000000 ; Configure SPI(SP0CR2):
; -,-,-,-,-,-,SSWAI, SPCO
MOVB #$00, UPPER_BYTE
MOVB #$00, LOWER_BYTE
RTS
;* -------------------------------------------
;* Sample / Convert
;* -------------------------------------------
SAMPLE:
MOVB #$00, PORTS ; Sets ADC CS Lo
MOVB #$00, SP0DR ; Write zero value to data register
; to generate SCLK for ADC
BSR FLAG ; Clear SPIF
LDAA SP0DR ; Load first ADC Sample
MOVB #$00, SP0DR ; Write zero value to data register
; to generate SCLK for ADC
BSR FLAG ; Clear SPIF
LDAB SP0DR ; Load second ADC Sample
STD DATA ; Store ACCA and ACCB in Data
;* ----------------------------------------------------------------------
;* Data Shifting Subroutine
;* ----------------------------------------------------------------------
LDX #$0004 ; Shift data four bits to
; bypass DAC config registers
Comentários a estes Manuais