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 Analog Digital Representasi Presisi Hambatan degradasi Arus / tegangan kontinyu Infinit lemah Biner Dibatasi panjang bilangan Toleran ke degradasi sinyal Pemrosesan terbatas Powerful Penyimpanan Tidak mungkin 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. Dual ramp (lamban dengan akurasi sangat tinggi, untuk pengukuran yang presisi) 2. Flash converter (cepat, akurasi yang sedikit, untuk video atau radar) 3. Successive approximation (kecepatan dan akurasi medium, untuk aplikasi industrial general-purpose, biasanya ditemukan pada embedded systems) 5
Karakteristik Konversi Jangkah tegangan V r = V maks 0 Resolusi = V r / 2 n Error kuantisasi = ± Resolusi / 2 = V r / 2 n+1 6
1. Ambil Sampel 2. Mulai konversi 3. Tunggu 4. Baca nilai digital (pada paralel atau serial) Biasanya memerlukan referensi tegangan 7
1. Transduser: fisik ke listrik 2. Rangkaian penguat dan offset Tegangan masukan harus menjalar sebanyak jangkah masukannya Pergeseran tingkat tegangan juga diperlukan 3. Filter: menghilangkan komponen sinyal yang tidak diinginkan 4. Multiplexer: memilih satu dari beberapa masukan 5. Sampler: nilai konversi sedikitnya dua kali frekuensi sinyal tertinggi (aturan sampling Nyquist) 6. ADC 8
9
10
11
Berapa waktu akuisisi untuk 10-bit ADC? Tegangan yang harus muncul V s error kuantisasi = V s - V s / 2 n+1 V s (2047/2048) = 0.9995 V s V C = V s {1 exp( t/rc)} 0.9995V s = V s {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 16F874A 16F877A 28 3 port paralel, 3 timer/counter, 2 capture/compare/pwm, 2 serial, 5 10-bit ADC, 2 komparator 40 5 port paralel, 3 timer/counter, 2 capture/compare/pwm, 2 serial, 8 10-bit ADC, 2 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 : U: ADON: memilih clock konversi memilih saluran analog status konversi ADC interrupt flag ADIF dan interupsi enable ADIE bit dapat juga digunakan tidak diimplementasikan A/D On 18
Konversi 10-bit memakan sekitar 12 T AD siklus T AD harus sama atau lebih besar 1,6 μs Minimum 2T AD antara dua successive conversion Nilai konversi maksimum adalah 30 khz, nilainya lebih tinggi dengan pensaklaran T AD setelah mulai konversi 19
ADFM: ADCS2: U: PCFG3:0: memilih format hasil 1 = Right justified 0 = Left justified memilih clock konversi tidak diimplementasikan kendali konfigurasi port 20
21
22
23
t ac = waktu settling penguat + waktu pengisian kapasitor + koefisien suhu t ac = 2 μs + 7.6RC untuk akurasi 10-bit + (suhu 25 C)(0.05 μs/ C) 24
R SS = 7kΩ, R IC = 1kΩ (V DD = 5V), R S = 0, suhu = 35 C, T AD = 1,6 μs t ac = 2 μs + 7,6(7kΩ + 1kΩ + 0)(120pF) + (35 25)(0,05 μs/ C) = 2 + 7,3 + 0,5 = 9,8 μs Waktu total = t ac + 12T AD = 9,8 + 19,2 μs = 29 μs 25
... bsf status,rp0 movlw B'00001011' ;set port A bit, movwf trisa ;ADC set sebagi masukan movlw B'10000100' ;masukan analog bit 0,1,3 movwf adcon1 ;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