
ATMega8535 memiliki 8 kanal ADC dengan resolusi 10 bit dengan berbagai kombinasi input yang dapat dilakukan yaitu:
- Dua differential input (ADC0 & ADC1 atau ADC2 & ADC3) dengan penguatan yang dapat diatur mulai dari 0dB (1x), 20dB (10x), 46dB (200x)
- Tujuh differential input dengan ADC1 sebagai terminal input negatif dan ADC0, ADC2 – ADC7 sebagai terminal input positif
- Delapan channel analog input biasa dengan GND sebagai terminal input negatif
ADC ini memiliki rangkaian sample and hold yang akan memastikan bahwa tegangan input ADC akan tertahan selama proses konversi ADC berlangsung.
Terdapat pin AVCC yaitu Pin Analog Supply yang menjadi sumber tegangan ADC di mana nilai tegangan harus berada pada VCC+/- 0.3.
Start Konversi
Proses konversi ADC dilakukan dengan mengaktifkan bit ADSC di mana bit ini akan tetap Set selama proses konversi berjalan dan akan clear otomatis saat konversi selesai. Apabila kanal lain dipilih pada saat konversi masih berjalan, maka ADC akan tetap menyelesaikan konversi tersebut sebelum mulai dengan kanal yang lain.
Proses konversi juga dapat dilakukan dengan berbagai sumber seperti terlihat pada gambar berikut

Dengan mengaktifkan bit ADATE di Register ADCSRA maka ADC dapat ditrigger secara otomatis sehingga hanya dibutuhkan sekali trigger saja di bit ADSC untuk mengawali proses konversi. Selanjutnya konversi akan terus berlanjut tanpa harus mentrigger bit ADSC lagi.
Untuk memilih sumber trigger dapat dilakukan dengan mengatur bit ADTS2:0
Prescaling and Conversion Timing

Bagian ADC ini memiliki prescaler yang diatur oleh Bit ADPS2:0 di Register ADCSRA. Prescaler ini akan aktif saat bit ADEN berlogika 1 dan akan reset saat bit ADEN berlogika 0
ADC Noise Canceler
Untuk mereduksi noise, ADC ini memiliki fitur di mana proses konversi dapat dilakukan pada saat CPU dalam kondisi idle.
- Pastikan ADC aktif dan tidak sedang konversi. Atur pada mode Single Conversion dan aktifkan ADC Interrupt
- Masuk ke Mode ADC Noise Reduction atau Idle Mode. ADC akan aktif konversi saat CPU idle
- Apabila tidak ada interupsi lain maka interupsi ADC yang akan membangkitkan CPU dan eksekusi rutin interupsi ADC Conversion Complete. Apabila terdapat interupsi lain sebelum interupsi ADC Conversion Complete, maka interupsi tersebut akan ditangani lebih dahulu dan interupsi ADC Conversion Complete akan ditangani setelah proses konversi selesai. CPU akan tetap aktif sampai perintah sleep dilakukan lagi.
Register-register yang digunakan
ADC Multiplexer Selection Register – ADMUX

Bit 7:6 – REFS1:0 Reference Selection Bits

Bit 5 – ADLAR: ADC Left Adjust Result
Penulisan 1 pada bit ADLAR akan membuat hasil perhitungan ADC menjadi Left Adjust Result
Bit 4:0 – MUX4:0 Analog Channel and Gain Selection Bits


ADC Control Status Register A – ADCSRA

Bit 7 – ADEN ADC Enable
Logika 1 pada bit ini berfungsi untuk mengaktifkan ADC dan logika 0 untuk menon aktifkan ADC
Bit 6 – ADSC ADC Start Conversion
Pada mode single conversion, bit ini berfungsi sebagai start dari setiap konversi. Pada Mode Free Running, bit ini berfungsi sebagai trigger awal.
Bit 5 – ADATE ADC Auto Trigger Enable
Dengan menuliskan logika 1 pada bit ini maka Auto Trigger akan aktif dan ADC akan start konversi pada setiap adanya trigger. Sumber trigger dapat dipilih dengan mengatur ADTS bit
Bit 4 – ADIF ADC Interrupt Flag
Bit ini akan set setiap kali proses konversi selesai dan register data terupdate. Apabila interupsi aktif, maka proses interupsi akan dijalankan dan bit ini akan secara otomatis clear. ADIF dapat di clear dengan menuliskan logika 1 pada bit ini.
Bit 3 – ADIE ADC Interrupt Enable
Apabila bit ini berlogika 1 dan bit Global interrupt di SREG berlogika 1 maka interupsi akan terjadi saat proses konversi selesai.
Bit 2 – ADPS2:0 ADC Prescaler Select Bits
Bit ini berfungsi sebagai prescaler yang merupakan faktor pembagi dari frekwensi kristal dan input clock ADC.

ADC Data Register ADCL dan ADCH


Special Function IO Register – SFIOR

Bit 7:5 – ADTS2:0 ADC Auto Trigger Source
Bit 4 – RES Reserver Bit
Bit ini belum digunakan dan akan selalu terbaca 0
DELTA ELECTRONIC
Paulus Andi Nalwan, ST