12. Kh i so sánh t ng t (ANALOG) ươ
Kh i so sánh t ng t là m t OP AMP so sánh có ngõ vào d ng AIN0 (PB2) và ngõ vào âm AIN1 ươ ươ
(PB3). Khi đi n áp AIN0 l n h n AIN1 ng ra b so sánh s b ng 1. Ngõ ra c a b so sánh th s ơ
d ng làm tác đ ng Capture cho Timer/Counter 1. Ngoài ra b so sánh còn có ch năng yêu c u ng t riêng,
tác đ ng so sánh có th b ng c nh lên, c nh xu ng ho c khi đ i tr ng thái. S đ kh i c a b so sánh ơ
trên hình 1.25.
Thanh ghi đi u khi n và tr ng thái b so sánh t ng t - AC ươ SR
Bit 7 - ACD: Analog Comparator Disable
Khi ACD = 1 ngu n c a b so sánh bit ng t, bit này có th xoá b t c th i đi m nào đ t t b so
sánh t ng t . Khi thay đ i ACD c n c m ng t so sánh t ng t b ng cách xoá bit ACIE trong thanh ghiươ ươ
ACSR, n u không mu n kích ho t ch ng trình ng t.ế ươ
Bit 6 - Res: Reserved bit
Bity không s d ng luôn giá tr b ng 0.
Bit 5 - ACO: Analog Comparator Output
ACO n i tr c ti p t ngõ ra c a b so sánh t ng t . ế ơớ ươ
Bit 4 - ACI: Analog Comparator Interrupt Flag
ACI = 1 khi ngõ ra b so sánh c đ ng trong ch đ ng t đ c đ nh nghĩa b ng các bit ACI1 ế ượ
ACI0. Ch ng trình ng t so sánh t ng t s đ c g i khi ACIE = 1 và bit I trong SREG = 1. Bit ACI tươ ươ ượ
đ ng xoá b ng ph n c ng khi ng t đ c th c hi n. Ngoài ra ACI cũng có th xoá b ng cách ghi vào ượ
logic 0.
Bit 3 - ACIE: Analog Comparator Interrupt Enable
Khi ACIE = 1 và I = 1 ng t so sánh t ng t s đ c cho phép. ươ ư ượ
Bit 2 - ACIC: Analog Comparator Input Capture Enable
ACISC = 1 s cho phép ngõ ra b so sánh t ng t tác đ ng capture cho Timer/Counter1. Đ cho ươ
phép ng t ngõ vào Capture Timer/Counter1 c n ph i l p bit TICIE1 trong thanh ghi TIMSK.
Bits 1,0 - ACIS1, ACIS0: Analog Comparator Interrupt Mode Select
c bit này đ nh nghĩa các tác đ ng ng t khác nhau nh trong b ng sau: ư
ACIS1 ACIS0 c đ ng ng t
00 Tác đ ng khi đ i tr ng thái ngõ ra b so sánh
01 Không s d ng
10 Tác đ ng khi ngõ ra có c nh lên
11 Tác đ ng khi ngõ ra có c nh xu ng
Chú ý: Khi thay đ i giá tr c bit ACIS1/ACIS0, c n ph i c m ng t b ng ch xoá bit cho phép ng t
trong thanh ghi ACSR, n u không ng t s x y ra khi các bit thay đ i giá tr . Khi s d ng c l nh SBIế
ho c CBI v i các bit kc trong thanh ghi ACSR cũng có th ghi giá tr 1 vào thanh ghi ACI, nên c n ph i
ki m tra l i, n u nó b ng 1 c n xoá nó đi. ế
13. B bi n đ i t ng t sang s (ADC). ế ươ
B ADC c a MCU AT90S8535 có các đ c tính chính nh sau: ư
• Đ phân gi i 10-bit.
• Đ chính xác ±2 LSB.
Tích phân kng tuy n tính 0.5 LSB.ế
Th i gian bi n đ i 65 - 260 μs. ế
• Có 8 nvào Multiplexed.
• D i ngõ vào Rail-to-Rail.
• Có các ch đ bi n đ i Free Run ho c Single.ế ế
• Có ng t hoàn thành bi n đ i. ế
• Có ch đ ng ch ng nhi u.ế
ADC c a AT90S8535 lo i x p x liên ti p 10 bit, v i 8 ngõ vào ch n b ng ph n m m m i ngõ s ế
t ng ng v i 1 c ng c a PORT A. Ngõ vào ADC có b khu ch đ i l y và gi m u đ m b o cho đi nươ ế
áp ngõ o luôn b ng h ng s trong su t quá trình bi n đ i. S đ kh i c a b ADC đ c t trên ế ơ ượ
hình 1.26.
ADC hai ngu n cung c p riêng, AVCCAGND. Chân AGND c n n i GND còn AVCC không
n sai khác qua 0.3V so v i VCC. Ngoài ra c n ph i cung c p ngu n chu n t i chân AREF, đi n áp này
c n n m trong kho ng AGND – AVCC.
Ho t đ ng.
ADCth ho t đ ng m t trong hai ch đ Single free run. Trong ch đ single ng i s ế ế ườ
d ng s kh i đ ng các chu kỳ bi n đ i. Trong ch đ Free Run, ADC s t đ ng l y các m u bi n đ i ế ế ế
theo các th i h ng c đ nh sau đó c p nh t thông tín vào Thanh ghi d li u c a nó. Bit ADFR trong
ADCSR s chuy n đ i ho t đ ng c a ADC gi a hai ch đ này. ế
Đ cho phép kh i ADC ho t đ ng c n ghi 1 t i bit ADEN trong ADCSR. Chu kỳ bi n đ i đ u ế
tiên s b t đ u ngay sau khi ADEN = 1, tuy nhiên th i gian th c hi n s i h n thông th ng 12 chu kỳ ơ ườ
clock do quá trình kh i đ ng ADC.
M t chu kỳ bi n đ i s b t đ u b ng ch ghi logic 1 t i bit kh i3 đ ng quá trình bi n đ i ế ế
ADSC,bit nay s gi nguyên m c cao trong su t chu kỳ bi n đ i, và t đ ng đ c xoá b ng ph n c ng ế ượ
khi quá trình bi n đ i k t thúc. N u m t ngõ vào khác đ c ch n trong quá trình bi n đ i, ADC s ti pế ế ế ượ ế ế
t c th c hi n xong tr c khi chuy n qua bi n đ i giá tr trênnh m i. ướ ế
10 bit k t qu bi n đ i do ADC t o ra s đ c ghi vào các thanh ghi ADCH và ADCL. C n th cế ế ượ
hi n m t c ch logic b o v d li u s đ m b o n i dung các thanh ghi không b bi n đ i trong khi ơ ế ế
đ c, c ch đó nh sau: ơ ế ư
C n ph i đ c ADCL tr c, m i khi đ c ADCL các thanh ghi d li u s đ c khoá l i, nh v y ướ ượ ư
n u quá trình bi n đ i k t thúc tr c khi đ c ADCH thì không thanh ghi d li u nào b thay đ i ế ế ế ướ
k tqu bi n đ i s không b m t. Sau khi đ c ADCH, c ADCLADCH s đ c cho phép ghi tr l i.ế ế ượ
ADC cũng có m t ng t riêng, bit ADIF s đ c l p sau khi quá trình bi n đ i hn thành, khi truy ượ ế
c p các thanh ghi d li u không đúng, yêu c u ng t v n đ c duy trì ngay c khi d li u b m t. ượ
B ti n chia clock c a ADC.
ADC s d ng m t b ti n chia clock ch c năng chia clock h th ng đ cung c p cho ho t
đ ng bi n đ i c a nó. T n s clock c a ADC trong kho ng t 50 200 kHz. Khi s d ng t n s càng ế
cao, đ chính xác s ng gi m.
c bit ADPS0 - ADPS2 trong ADCSR đ c s d ng đ t o ra t n s clock thích h p cho ADC tượ
b t các th ch anh có t n s trên 100 kHz. B ti n chia s ho t đ ng ngay sau khi ADEN = 1,và nó s
reset khi ADEN = 0.
Khi l p ADSC = 1 quá trình bi n đ i s b t đ u t i c nh lên ti p theo c a chu kỳ clock ADC. ế ế
Quá trình l y m u gi s chi m kho ng 1.5 clock ADC sau khi quá trình bi n đ i b t đ u.K t qu ế ế ế
s đ c ghi vào các thanh ghi d li u sau 13 chu kỳ clock. Trong ch đ Single ADC c n ch thêm ít ư ế
nh t m t chu kỳ clock tr c khi th c hi n chu kỳ bi n đ i ti p theo (hình 1.28). N u ADSC = 1, ADC ướ ế ế ế
s l p t c th c hi n chu kbi n đ i m i. Trong ch đ Free Run v i t n s clock cao nh t 200 kHz s ế ế
cho th i gian bi n đ i th p nh t 65ms t ng đ ng v i 15.4 kSPS. Th i gian bi n đ i c giai ế ươ ươ ế
đo n c a các ch đ khác nhau cho trong b ng sau: ế
Ch đế S chu kỳ
l y m u S chu kỳ đ d li u
s n sàngT ng th i gian bi n ế
đ i (chu kỳ)T ng th i gian bi n ế
đ i (s)
Chu kỳ đ u tiên trong ch đ Free ế
Run
14 25 25 125 – 500
Chu kỳ đ u tiên trong ch đ Single ế 14 25 26 130 – 520
Chu kỳ thông th ng trong ch đườ ế
Free Run
2 13 13 65 – 260
Chu kỳ thông th ng trong ch đườ ế
Single
2 13 14 70 - 280
Ch c năng ch ng nhi u ADC.
Ch c năng ch ng nhi u c a ADCcho phép quá trình bi n đ i th c hi n trong ch đ Idle v i ế ế
ch c năng gi m thi u nhi u bao g m c nhi u t CPU. Đ th c hi n ch c năng này c n th c hi n các
b c sau:ướ
1. ADC đã đ c ch n và không đang trong qtrình bi n đ i. Ch n ch đ Single và cho pheé ng tượ ế ế
ADC.
ADEN = 1
ADSC = 0
ADFR = 0
ADIE = 1
2. Chuy n qua ch đ idle, ADC s b t đ u bi n đ i khi CPU ng ng ho t đ ng. ế ế ư
3. N u không ng t nào x y ra tr c khi quá trình bi n đ i ADC hoàn thành, ng t ADC s đánhế ướ ế
th c MCU và th c hi n ch ng trình ng t ph c v vi c x d li u bi n đ i. ươ ế
Thanh ghi chon ngõ vào ADC - ADMUX
Bits 7..3 - Res: Reserved Bits
c bit này không s d ng và luôn có giá tr b ng 0.
Bits 2..0 - MUX2..MUX0: Analog Channel Select Bits 2-0
Giá tr các bit này s ch n các ngõ vào t ng ng t 0 -7 c a ADC. ươ
ADC Control and Status Register - ADCSR
Bit 7 - ADEN: ADC Enable
ADEN = 1 cho phép ADC ho t đ ng. Khi ADEN = 0 ADC bit c m, n u c m ADC khi đang trong ế
chu kỳ bi n đ i, chu kỳ đó s l p t c k t thúc.ế ế
Bit 6 - ADSC: ADC Start Conversion
Trong ch đ Single ADSC= 1 s kh i đ ng quá trình bi n đ i. Trong ch đ Free Run ADSC = 1ế ế ế
s kh i đ ng chu kỳ bi n đ i đ u tiên. L n đ u tiên ghi ADSC =1 sau khi ADEN = 1 (ho c đ ng th i ế
v i ADEN = 1), ADC s đ c kh i đ ng. ADSC = 1 trong su t quá trình bi n đ i và s b ng 0 khi quá ượ ế
trình bi n đ i k t thúc tr c khi k t qu bi n đ i ghi t i các thanh ghi d li u c a nó,ế ế ướ ế ế đi u này cho
phép b t đ u m t chu kỳ bi n đ i m i tr c khi chu kỳ bi n đ i hi n hành hoàn t t. ế ướ ế
Bit 5 - ADFR: ADC Free Run Select
Khi ghi ADFR = 1 ADC s ho t đ ng trong ch đ Free Run. Trong ch đ này ADC s l y m ế ế
bi n đ i và c p nh t giá tr cho các thanh ghi d li u m t cách liên t c.ế
Bit 4 -ADIF: ADC Interrupt Flag
ADIF = 1 khi đang th c hi n ch ng trình ng t ADC, ch ng trình ng t s th c hi n khi k t qu ươ ươ ế
bi n đ i đ c chuy n t i các thanh ghi d li u và tr c đó ADIE = 1, I = 1. ADIF s t đ ng xoá b ngế ượ ướ
ph n c ng khi th c hi n ch ng trình ng t t ng ng. Ngoài ra ADIF cũng có th xoá b ng l nh. ươ ươ
Bit 3 - ADIE: ADC Interrupt Enable
ADIE = 1 và I= 1 cho phép ng t ADC.
Bits 2..0 - ADPS2..ADPS0: ADC Prescaler Select Bits
c bit xác đ nh h s c a b ti n chia trong ADC.
ADPS2 ADPS1 ADPS0 H s chia
000 1
001 2
010 4
011 8
100 16
101 32
110 64
111 128
Thanh ghi d li u ADC - ADCLADCH
Thanh ghiy ch a k t qu bi n đ i ADC. Trong ch đ Free Run c n ph i đ c ADCL tr c ế ế ế ướ
ADCH.
Quét nhi u kênh.
Do s chuy n nh vào luôn ph i ch cho đ n khi quá trình bi n đ i k t thúc, ch đ Free Run ế ế ế ế
th s d ng đ quét đ ng th i nhi u kênh vào không c n d ng quá trình bi n đ i. Thông th ng ế ư
ng t k t thúc bi n đ i ADC s s d ng đ đ i kênh vào. Tuy nhiên ng i s d ng cũng th th c ế ế ườ
hi n vi c chuy n đ i kênh nh sau: ư
Khi có tác đ ng ng t k t qu bi n đ i đã s n sàng, n u ADMUX đ c thay đ i giá tr ngay sau ế ế ế ượ
khi có tác đ ng ng t quá trình bi n đ i m i s s n sàng v i các thi t l p ADC nh cũ. ế ế ư
K thu t lo i nhi u ADC.
c m ch đi n s bên trong bên ngoài MCU th tác đ ng t i đ chính xác quá trình bi n ế
đ i t ng t . Khi c n đ chínhc l n, chúng ta có th gi m nh h ng nhi u nh sau: ươ ưở ư
1. c kh i li n quan t i tín hi u t ng t c a MCU và t t c c linh ki n liên quan t i tín hi u ươ
t ng t khác c n ph i có đ ng mass 1 l p riêng trên m ch in. Mass t ng t ch n i v iươ ườ ươ
mass s b ng m t đi m xuyên l duy nh t (via).
2. T o đ ng n i tín hi u t ng t ng n nh t có th , đ m b o đ ng tín hi u t ng t ch y song ườ ươ ườ ươ
song v i mass c a nó l p ngu n và tránh xa các đ ng truy n d li u s có t c đ chuy n ườ
m ch cao.
3. Chân AVCC c a MCU c n n i t i ngu n cung c p s VCC thông qua m ch RC nh nh 1.28. ư
4. S d ng ch c năng lo i nhi u ADC đ gi m nhi u nh h ng t CPU. ưở
5. N u m t chân c ng A đ c s d ng làm ngõ vào ra s thì nên tránh tác đ ng chuy n tr ng tháiế ượ
c a nó trong chu kỳ bi n đ i ADC. ế
. Các c ng vào ra s .
T t c c c ng vào ra s c a AVR đ u ch c năng Đ c Thay đ i Ghi (Read-Modify-
Write), nghĩa h ng truy n trên m t chân vào ra không nh h ng t i h ng vào ra c a cướ ưở ướ
chân vào ra khác b ng các l nh SBI và CBI. Chúng ta có th l p t c thay đ i giá tr đ nh nghĩa vào ra cho
c ng ho c c m/cho phép đi n tr kéo lên ngu n choc ngõ vào.
C ng A
C ng A m t c ng vào ra 2 chi u 8 bit, có 3 đ a ch trong ng đ a ch vào ra đ c s d ng cho ượ
c ng A bao g m: Thanh ghi d li u cho c ng A (PORTA - $3B), thanh ghi đ nh h ng truy n cho c ng A ướ
(DDRA - $3A) thanh ghi các chân vào c ng A (PINA - $39). Thanh ghi PINA thanh ghi ch đ c, hai
thanh ghi còn l i th đ c ghi. T t c các chân vào c ng A đ u th ch n đi n tr Pull Up. B
đ m ngõ ra c ng A có th cung c p dòng 20 mA đ cung c p dòng kép LED tr c ti p. Khi c ng A đ c ế ượ
l p trình ngõ vào bên ngoài đ c kéo xu ng th p, chúng tr thành ngu n dòng khi ch n đi n tr ượ
Pull Up bên trong. Khi đ c d li u t c ng A, đ c thanh ghi d li u c ng A (PORT A) b nh
đ m c ng A. Còn khi đ c PINA đ c tr ng thái v t lý th c s trên c ng A.
C ng A th chuy n qua ch c năng làc ngõ vào cho b ADC, n u m t trong các ngõ vào c ng ế
A v n gi ch c năng vào ra, c n ph i tránh tác đ ng thay đ i tr ng thái trong khi ADC đang trong chu kỳ
bi n đ i, tác đ ng này có th m thay đ i k t qu bi n đ i ADC.ế ế ế