500-003111-000
4-24
PROMPT
LEA
LEA
LEA
LEA
LEA
MOVE.W
MOVE.W
MOVE.W
MOVE.W
CLR.W
BSET
MOVE.W
MOVE.W
JSR
CMP.W
BEQ
BGT
BCLR
SUB.W
BCC
CMP.W
BEQ
MOVE.W
MOVE.W
BSET
MOVE.W
MOVE.W
JSR
CMP.W
BEQ
BGT
BCLR
SUB.W
BCC
DBF
JMP
AUTOCAL
AGAIN
CALZERO
CONT
CALGAIN
CALGAINA
CONTA
ENDSEQ
AUTOMSG
UUT.AZ, A1
UUT.AG, A2
UUT.PGA, A3
UUT.CSR, A4
UUT.ADAT, A5
#$800, (A2)
#$3, D6
#$B, D7
#$0003, (A3)
D5
D7, D5
D5, (A1)
#$7040, D3
AUTORD
#$0800, D3
CALGAIN
CONT
D7, D5
#$1, D7
CALZERO
#$0, D6
ENDSEQ
#$B, D7
#$0000, (A3)
D7, D5
D5, (A2)
#$7340, D3
AUTORD
#$0FF6, D3
ENDSEQ
CONTA
D7, D5
#$1, D7
CALGAINA
D6, AGAIN
MAIN
SHOW DOING AUTOCALIBRATION
GET UUT AUTOZERO DAC ADDR
GET UUT AUTOGAIN DAC ADDR
GET UUT P.G.A. SELECT ADDR
GET UUT CONTROL STATUS ADDR
GET UUT ADC DATA REG ADDR
SET UUT GAIN TO MID RANGE
SET LOOP COUNTER TO START
SET THE BIT COUNTER START
SELECT P.G.A. GAIN = X500
CLEAR ERROR CORRECT REG.
SET NEXT ERROR CORRECT BIT
WRITE ERROR CORRECTION REG
SELECT ZERO TEST REFERENCE
DO ADC READING SUBROUTINE
COMPARE TO EXPECTED READING
IF ZEROED THEN DO CAL GAIN
IF ERROR POSITIVE CONTINUE
IF ERROR NEGATIVE CLR BIT
DECREMENT THE BIT COUNTER
IF BIT COUNTER < 0 CALGAIN
DO CAL ZERO WITHOUT DOING
CAL GAIN ON THE LAST PASS
SET THE BIT COUNTER START
SELECT P.G.A. GAIN = X1
SET NEXT ERROR CORRECT BIT
WRITE ERROR CORRECTION REG
SELECT POSITIVE TEST REF.
DO ADC READING SUBROUTINE
COMPARE TO EXPECTED READING
IF GAIN CALLED THEN DO ENDSEQ
IF ERROR POSITIVE CONTINUE
IF ERROR NEGATIVE CLR BIT
DECREMENT THE BIT COUNTER
IF BIT COUNTER < 0 ENDSEQ
LOOP TILL LOOP COUNTER < 0
END OF AUTO CAL SEQUENCE
DC.B CR, LF
DC.B CR, LF, '*******************************************************
DC.B CR, LF, 'A/D/C AUTOCALIBRATION ROUTINE '
DC.B CR, LF, '*******************************************************
DC.B CR, LF, 'MOVE JUMPER J5 TO THE 2, 3 POSITION TO'
DC.B CR, LF, 'SELECT AUTOGAIN CAL AND JUMPER J38 '
DC.B CR, LF, 'TO THE 2, 3 POSITION TO SELECT AUTO '
DC.B CR, LF, 'ZERO CAL.'
DC.B CR, LF, LF, 'PRESS ANY KEY TO CONTINUE. . . . . . . . . . . ', NUL
AUTOMSG
*********************************************************************************************************************
*********************************************************************************************************************
M3111/F4.8.2-2
*********************************************************************************************************************
*********************************************************************************************************************
*********************************************************************************************************************
MOVE.L
SUB.L
BNE
MOVE.W
MOVE.W
BTST
BEQ
MOVE.W
RTS
#$CFFF, D4
#$1, D4
DELAYA
D3, (A4)
(A4), D2
#15, D2
AUTORDA
(A5), D3
LOAD DELAY FOR DAC SETTLING
NOW, DO THE DAC DELAY
CHECK FOR END OF DELAY
WRITE CONTROL STATUS REG
READ CONTROL STATUS REG
IS NEW DATA READY HI?
IF NOT READ C.S.R. AGAIN
READ AND STORE A/D DATA
RETURN FROM SUBROUTINE
AUTORD
DELAYA
AUTORDA
*********************************************************************************************************************
Figure 4.8.2-2. Program Example - Converter Autocalibration
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com