Oleh SGO Aplikasi Mikrkontroler (DTG2K3) ANALOG COMPARATOR Oleh SGO Aplikasi Mikrkontroler (DTG2K3)
Tujuan Instruksional Menjelaskan register-register pengendali analog comparator Mengoperasikan analog comparator
Pengertian Analog comparator adalah sebuah modul dalam chip yang bertugas membandingkan tegangan analog pada pin positif AIN0 dengan pin negatif AIN1. Ketika tegangan pada pin AIN0 lebih tinggi dari AIN1, maka akan menge-set flag bit ACO yang dapat dimanfaatkan untuk membangkitkan interupsi.
Blok Analog Comparator Tegangan catu terhadap comparator analog dikendalikan oleh bit ACD
Register Pengendali Analog Comparator Special Function I/O Register-SFIOR Bit ke 3ACME: Analog Comparator Multiplexer Enable Jika di-set dan ADC dimatikan (bit-ADEN dalam register ADCSRA di-clear), maka masukan ke pin AIN1 berasal dari salah satu pin ADC. Jika bit ACME ini di-clear maka AIN1 lah yang bertindak sebagai pin masukan. Lebih jelas simak tabel berikut
Tabel Alternatif PIN Masukan AIN1 ACME ADEN MUX2..0 Input (AIN1) Analog Comparator X XXX AIN1 1 000 ADC0 001 ADC1 010 ADC2 011 ADC3 100 ADC4 101 ADC5 110 ADC6 111 ADC7
Register Pengendali Analog Comparator 2. Analog Comparator Control and Status Register – ACSR
Bit ke-7 – ACD : Analog Comparator Disable mengatur saklar catuan comparator, ketika di set maka comparator dimatikan Bit ke-6 – ACBG: Analog Comparator Bandgap Select ketika bit ini di-set maka tegangan referensi di pin AIN0 nilainya 1,23 Volt. Jika di-clear maka tegangan referensi akan sesuai dengan tegangan masukan
Bit ke-4 – ACI: Analog Comp. Interupt Flag otomatis akan set ketika ada perbedaan tegangan. Bit ke-3 – ACIE: Analog Comparator Interupt Enable Mengaktifkan interupsi analog comparator (ACIE=0, disable dan ACIE=1, enable) Bit ke-2 – ACIC: Analog Comparator Input Capture Enable digunakan untuk capture Timer 1
Mode Inetrupsi (Bit-ACO) Bit 1,0 – ACIS1 dan ACIS0: Analog Comparator Interupt Mode Select Kedua bit ini menentukan triger interupsi analog comparator. ACIS1 ACIS0 Mode Inetrupsi (Bit-ACO) Toggle 1 Tidak digunakan Falling Edge Rising Edge
Prosedur Penggunaan Analog Comparator Pilih saluran input Pilih non/aktif analog comparator Pilih bandgap/tidak Pilih interupsi analog comparator/tidak Pilih output analog comparator ke capture timer 1 / tidak Pilih triger
Contoh Inisialisasi Analog Comparator SFIOR = (0<<ACME) ; //pilih saluran input //jika menggunakan saluran ADC, setting ADMUX ACSR = (0<<ACD) //aktifkan analog comp |(0<<ACBG) //pakai bandgap atau tidak |(0<<ACIE) // non/aktif interupsi analog comp |(0<<ACIC) // digunakan untuk capture T1 / tidak |(0<<ACIS1)|(0<<ACIS0); //pilih triger Kemudian buat aliran program untuk mengecet flag ACI While(1){ loop_until_bit_is_set(ACSR,ACI); // tunggu interupsi ACSR =(0<<ACI) ; //clear ACI //lakukan sesuatu }