ATEM Camera Converter ATEM Studio Converter - Tactical Fiber
Analog-to-Digital Converter Lecture 4.3. Reference ATD_10B8C Block User Guide V02.10...
-
Upload
emmeline-snow -
Category
Documents
-
view
216 -
download
0
Transcript of Analog-to-Digital Converter Lecture 4.3. Reference ATD_10B8C Block User Guide V02.10...
Method of Successive Approximation
1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 00000V
5V
2.5V
3.75V
3.125V3.4375V Vin = 3.5V
step 1 step 2 step 3 step 4
voltage
1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 00000V
5V
2.5V
3.75V
3.125V3.4375V Vin = 3.5V
step 1 step 2 step 3 step 4
voltage
Control
D/A Converter
V
V
in
DA
Binary OutputC+
-
Implementing Successive Approximation
A/D Converter Registers in the HCS12 Name Register Addr Description
ATD0CTL2 0082 ATD Control Register 2 ATD0CTL3 0083 ATD Control Register 3 ATD0CTL4 0084 ATD Control Register 4 ATD0CTL5 0085 ATD Control Register 5 ATD0STAT 0086 ATD Status Register (H) ATD0STATL 0087 ATD Status Register (L) ADR00H 0090 A/D Result Register 0 ADR01H 0092 A/D Result Register 1 ADR02H 0094 A/D Result Register 2 ADR03H 0096 A/D Result Register 3 ADR04H 0098 A/D Result Register 4 ADR05H 009A A/D Result Register 5 ADR06H 009C A/D Result Register 6 ADR07H 009E A/D Result Register 7
; A/D Converter
atd0ctl2 equ $0082atd0ctl4 equ $0084atd0ctl5 equ $0085atd0stat equ $0086adr00H equ $0090
ad_onldaa #$83 ;8-bit resolution /8 clockstaa atd0ctl4ldaa #$c0 ;set ADPU & AFFCstaa atd0ctl2rts
adconvanda #$07 ;ch. 0 - 7 oraa #$80 ;right just SCAN=0 MULT=0staa atd0ctl5
ad1 ldaa atd0stat ;wait for convanda #$80beq ad1bsr avg4rts
avg4pshx ;save regldx #adr00Hldd 2,x+ ;adr0addd 2,x+ ;+adr1addd 2,x+ ;+adr2addd 2,x+ ;+adr3lsrdlsrd ;divide by 4pulx ;restore regrts
adr00H
adr01H
adr02H
adr03H
; adtest.asm; read channel 2 of adconv; and display as decimal number on screen
org $800outa equ $FF4F ;output ascii char in Aoutcrlf equ $FF5B ;carriage ret, line feed to termbase dw 10dnum rmb 4buff rmb 12pad db 0
org $4000
base
dnum
mainjsr ad_onldd #10std base ;decimalldd #0std dnum ;clear dnumHjsr outcrlf
mn1 ldaa #7 ;channel 7jsr adconv ; convertstd dnum+2 ;save valueldx #padjsr sharps
mn2 ldaa 1,x+jsr outacpx #padblo mn2jsr outcrlfldy #30jsr ms_delaybra mn1
1234/10 = 123 Rem = 4
123/10 = 12 Rem = 3
12/10 = 1 Rem = 2
1/10 = 0 Rem = 1 34
33
32
31
PAD
Figure 12.6 Steps for creating an ASCII number string
base
dnum