ADC (
analog to digital converter)
adalah suatu piranti yang digunakan untuk mengubah isyarat analog
menjadi isyarat digital. Disini akan dibahas ADC yang terdapat pada
mikrokontroler (keluarga AVR). Adapun fitur dari ADC pada ATMega8535
adalah sebagai berikut :
1. Resolusi 10 bit
2. Waktu konversi 65-260 uS
3. 0-VCC
range input ADC
4. Memiliki 8
channel input
5. Tiga mode pemilihan tegangan referensi
Mode Operasi
1. Mode konversi tunggal (
single conversion)
Dalam
mode ini, konversi dilakukan dalam sekali pembacaan sampel tegangan
input. Konversi dimulai ketika bit ADSC di-set dan bit ini tetap di-set
sampai satu kali konversi selesai, setelah itubit ini otomatis di clear
CPU.
2. Mode konversi kontinu (
free running)
Dalam
mode ini, konversi dilakukan secara terus menerus (ADC membaca sampel
tegangan input lalu dikonversi dan hasilnya ditampung di register ADCH
dan ADCL secara terus menerus)
Register pengendali ADC
a. ADC multiplexer selection register (ADMUX)
Bit 7:6 - REFS1:0 (
reference selection bits)
kedua bit ini digunakan untuk memilih tegangan referensi ADC yang akan digunakan.
Bit 5 - ADLAR (
ADC Left Adjust Result)
Bit
ini digunakan untuk memilih mode data keluaran ADC. Bit ini berakibat
pada format data hasil konversi dalam register ADCH:ADCL
Bit 3:0 - MUX3:0 (
Analog Channel Selection Bits)
Bit ini digunakan untuk memilih saluran input ADC.
b. ADC Control and Status Register A (ADCSRA)
Bit 7 - ADEN :
ADC Enable
Bit ini digunakan untuk mengaktifkan ADC, bernilai awal 0, jika bernilai 1 maka ADC aktif.
Bit 6 - ADSC :
ADC Start Conversion
Set bit ini untuk memulai konversi sinyal masukan. Ketika konversi telah selesai, maka otomatis bit ini di
clear.
Bit 5 - ADATE :
ADC Auto Trigger Enable
Bit
ini digunakan untuk mengatur sumber pemicu terjadinya konversi ADC.
Jika bit ini di set maka akan mengaktifkan auto triggering register
SFIOR dan menggunakan mode free running.
Bit 4 - ADIF :
ADC Interupt Flag
Bit
ini di set ketika konversi ADC telah selesai dan data register telah
ter-update. Bit ini otomatis di clear ketika eksekusi interupsi ADC
conversion complete.
Bit 3 - ADIE :
ADC Interupt Enable
Bit ini digunakan untuk mengaktifkan interupsi ADC
conversion complete. Bernilai awal 0. Jika di set dan konversi ADC telah selesai, maka sebuah
interupsi akan dieksekusi sesuai dengan jenis interupsi yang ditulis di program.
Bit 2 - ADPS2:0 :
ADC Prescaler Select Bit
Digunakan untuk menentukan faktor pembagi frekuensi clock CPU yang akan digunakan.
c. ADC Data Register (ADCH:ADCL)
ADCH
dan ADCL (masing-masing 8 bit register) merupakan bit penampung hasil
konversi ADC. Format data hasil konversi berdasarkan setting di ADLAR.
Untuk membaca data di register ADCH:ADCL bisa digunakan perintah lsl,
lsr, rol, dan ror.
d. Spesial Function IO Register (SFIOR)
Register
SFIOR merupakan register 8 bit pengatur sumber pemicu konversi ADC.
Untuk operasiADC, bit ACME, PUD, PSR2, dan PSR10 tidak dipakai.
Bit
ADTS2:0 mengatur pemicu eksternal operasi ADC. Hanya berfungsi jika bit
ADATE pada ADCSRA bernilai 1. Bernilai awal 000 sehingga ADC bekerja
pada mode free running dan tidak ada interupsi yang dihasilkan.