APPLICATIONS INFORMATION
; ***************************************************************************
; Files: BSP2KB.ASM ->
; 2kbyte collection into DSKPlus TMS320C542 with Serial Port interface to LTC1402
; first element at 1024, last element at 1023, two middle elements at 2047 and 0000
; bipolar mode
; ***************************************************************************
.width 160
.length 110
.title “sineb0 BSP in auto buffer mode”
.mmregs
.setsect “.text”, 0x500,0 ;Set address of executable
.setsect “vectors”, 0x180,0 ;Set address of incoming 1402 data
.setsect “buffer”, 0x800,0 ;Set address of BSP buffer for clearing
.setsect “result”, 0x1800,0 ;Set address of result for clearing
.text
;.text marks start of code
start:
;Make sure /PWRDWN is low at J1-9 to turn off AC01 adc
tim=#0fh
prd=#0fh
tcr = #10h
; stop timer
tspc = #0h
; stop TDM serial port to AC01
pmst = #01a0h ; set up iptr. Processor Mode STatus register
sp = #0700h ; init stack pointer.
dp = #0
; data page
ar2 = #1800h ; pointer to computed receive buffer.
ar3 = #0800h ; pointer to Buffered Serial Port receive buffer
ar4 = #0h
; reset record counter
call sineinit
; Double clutch the initialization to insure a proper
sinepeek:
; insert debugger break here to view results
call sineinit
; reset. The external frame sync must occur 2.5 clocks
; or more after the port comes out of reset.
wait goto wait
; ————————Buffered Receive Interrupt Routine —————————
breceive:
ifr = #10h
; clear interrupt flags
TC = bitf(@BSPCE,#4000h) ; check which half (bspce(bit14)) of buffer
if (NTC) goto bufull
; if this still the first half get next half
bspce = #(2023h + 08000h) ; turn on halt for second half (bspce(bit15))
return_enable
; ———————mask and shift input data after 2k buffer is full——-
bufull:
b = *ar3+ << -2
; load acc b with BSP buffer and shift right 2
b = #00FFFh & b
; mask out the REF bit and the 3 other tristate bits
b = #00800h ^ b
; invert BIPOLAR MSB. Comment this line in UNIPOLAR mode
*ar2+ = data(#0bh)
; store B to out buffer and advance AR2 pointer
TC = (@ar2 == #02000h) ; output buffer is 2k starting at 1800h
if (TC) goto start
; restart if out buffer is at 1fffh
goto bufull
; —————————dummy bsend return————————————
bsend return_enable
;this is a dummy return to define bsend
;in vector table below
; ——————————— end ISR ——————————————
;initialize buffered serial port
**********************************************************************
* BSP initialization code for the ‘C54x DSKplus
*
* for use with 1402 in standard mode
*
* BSPC and SPC are the same in the ‘C542
*
**********************************************************************
ON
.set 1
OFF
.set !ON
YES
.set 1
NO
.set !YES
BIT_8 .set 2
BIT_10 .set 1
BIT_12 .set 3
BIT_16 .set 0
GO
.set 0x80
**********************************************************************
LTC1402
19