Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.
1
Pendahuluan Fitur utama dari sistem akuisisi data Karakteristik analog-to-digital converter Karakteristik 16F873A analog-to-digital converter Rangkuman
2
Property
Representasi
Analog Arus / tegangan kontinyu
Presisi
Infinit
Hambatan degradasi
lemah
Pemrosesan Penyimpanan
terbatas Tidak mungkin
Digital
Biner Dibatasi panjang bilangan Toleran ke degradasi sinyal Powerful mungkin 3
Banyak sinyal fisik berupa analog. Sinyal analog dideteksi oleh sensor atau transduser. Contoh: suhu, suara, tekanan, dan lain-lain. Perlu untuk mengkonversi sinyal digital untuk memfasilitasi pemrosesan oleh mikrokontroler. Piranti yang menangani hal ini adalah analogto-digital converter (ADC).
4
1. 2. 3.
Dual ramp (lamban dengan akurasi sangat tinggi, untuk pengukuran yang presisi) Flash converter (cepat, akurasi yang sedikit, untuk video atau radar) Successive approximation (kecepatan dan akurasi medium, untuk aplikasi industrial general-purpose, biasanya ditemukan pada embedded systems)
5
Karakteristik Konversi Jangkah tegangan Vr = Vmaks – 0 Resolusi = Vr / 2n Error kuantisasi = ± Resolusi / 2 = Vr / 2n+1
6
1. 2. 3. 4.
Ambil Sampel Mulai konversi Tunggu Baca nilai digital (pada paralel atau serial) Biasanya memerlukan referensi tegangan
7
1. 2.
Transduser: fisik ke listrik Rangkaian penguat dan offset
◦ Tegangan masukan harus menjalar sebanyak jangkah masukannya ◦ Pergeseran tingkat tegangan juga diperlukan 3. 4. 5.
6.
Filter: menghilangkan komponen sinyal yang tidak diinginkan Multiplexer: memilih satu dari beberapa masukan Sampler: nilai konversi sedikitnya dua kali frekuensi sinyal tertinggi (aturan sampling Nyquist) ADC
8
9
10
11
Berapa waktu akuisisi untuk 10-bit ADC? Tegangan yang harus muncul ≥ Vs – error kuantisasi = Vs - Vs / 2n+1 ≥ Vs(2047/2048) = 0.9995 Vs
VC = Vs {1 − exp(−t/RC)} 0.9995Vs = Vs {1 − exp(−t/RC)} exp(−t/RC) = 1 − 0.9995 −t = RC ln(0.0005) t = 7.6RC 12
Pewaktuan membutuhkan A-to-D conversion
13
Untuk mengoperasikan tingkat akurasi yang bagus, sebuah ADC membutuhkan catu daya dan ground yang bersih dan tidak ada interferensi elektromagnetik. Ketika ADC diintegrasikan di dalam mikrokontroler, maka akan mempengaruhi sumber daya internal derau. Sehingga, ADC yang diintegrasikan tidak sangat akurat, biasanya 8- atau 10-bit.
14
Piranti
Pin
Fitur
16F873A 16F876A
28
3 3 2 2 5 2
port paralel, timer/counter, capture/compare/PWM, serial, 10-bit ADC, komparator
16F874A 16F877A
40
5 3 2 2 8 2
port paralel, timer/counter, capture/compare/PWM, serial, 10-bit ADC, komparator 15
16
Pengendali ADC ADC dikendalikan oleh dua SFR: •ADCON0 (1Fh) •ADCON1 (9Fh) Hasil konversi ditempatkan di: •ADRESH (1Eh) •ADRESL (9Eh)
17
ADCS1:0: CHS2:0: GO/DONE’:
memilih clock konversi memilih saluran analog status konversi ADC interrupt flag ADIF dan interupsi enable ADIE bit dapat juga digunakan
U: ADON:
tidak diimplementasikan A/D On
18
•Konversi 10-bit memakan sekitar 12 TAD siklus •TAD harus sama atau lebih besar 1,6 μs •Minimum 2TAD antara dua successive conversion
•Nilai konversi maksimum adalah 30 kHz, nilainya lebih tinggi dengan pensaklaran TAD setelah mulai konversi
19
ADFM:
memilih format hasil 1 = Right justified 0 = Left justified
ADCS2: U: PCFG3:0:
memilih clock konversi tidak diimplementasikan kendali konfigurasi port
20
21
22
23
tac
= waktu settling penguat + waktu pengisian kapasitor + koefisien suhu
tac
= 2 μs + 7.6RC untuk akurasi 10-bit + (suhu − 25◦C)(0.05 μs/◦C)
24
RSS = 7kΩ, RIC = 1kΩ (VDD = 5V), RS = 0, suhu = 35 ◦C, TAD = 1,6 μs tac
= 2 μs + 7,6(7kΩ + 1kΩ + 0)(120pF) + (35 − 25)(0,05 μs/◦C) = 2 + 7,3 + 0,5 = 9,8 μs Waktu total = tac + 12TAD = 9,8 + 19,2 μs = 29 μs
25
... bsf movlw movwf movlw movwf ...
status,rp0 B'00001011' trisa B'10000100' adcon1
;set port A bit, ;ADC set sebagi masukan ;masukan analog bit 0,1,3 ;hasil right justify
26
... bcf status,rp0 movlw B'01000001' ;set up ADC: clock Fosc/8, ;switch ADC on tetapi tidak mengkonversi, ;seleksi saluran tidak relevan movwf adcon0
27
main_loop movlw B'01000001' ;memilih saluran 0 movwf adcon0 call delay20u ;waktu akuisisi bsf adcon0,go ;mulai konversi btfsc adcon0,go_done ;apakah konversi berakhir? goto $-1 movf adresh,0 ;baca tinggi data keluaran ADC movwf ldr_left_hi bsf status,rp0 movf adresl,0 ;baca rendah data keluaran ADC bcf status,rp0 movwf ldr_left_lo
28
Banyak sinyal dihasilkan oleh transduser adalah analog, sedangkan semua proses dilakukan oleh mikrokontroler berupa digital. Sinyal analog dapat dikonversi ke bentu digital menggunakan analog-to-digital converter (ADC). ADC biasanya membentuk hanya satu bagian sistem akuisisi data yang lebih besar. Perlu hati-hati mengoperasikan ADC dan sistem akuisisi data, menggunakan pengetahuan diantara pewaktuan, sinyal, ground dan penggunaan referensi tegangan. 29
PIC 16F873A mempunyai modul ADC 10-bit yang terdiri fitur sistem akuisisi data. Nilai data perlu diproses lebih lanjut, termasuk offsetting, scaling dan konversi kode. Algoritma standar ada untuk semua termasuk library assembler. Antarmuka sederhana antara analog dan digital adalah komparator, yang digunakan untuk mengklasifikasikan sinyal analog satu dari dua state.
30