Anda di halaman 1dari 27

ADC in Microcontoller

Sistem Mikroprosesor – ELS3202


Week 10 Session 1
Analog Digital Converter
• Analog to Digital Converter atau ADC adalah fitur dal
am mikrokontroler yang memiliki fungsi untuk meng
gonversi (merubah) sinyal masukan analog (dari per
anti masukan eksternal) menjadi sinyal masukan digi
tal.
• Pada mikrokontroler, ADC dapat digunakan untuk be
rkomunikasi antara mikrokontroler dengan peranti-p
eranti eksternal (sensor) yang memiliki gelombang si
nyal keluaran berupa gelombang sinyal analog (sinu
s).
Analog Digital Converter
Register Pengatur ADC Mikrokontroler AVR
ATMEGA
• ADC Multiplexer Selection Register (ADMUX)
• ADC Control & Status Register A (ADCSRA)
• ADC Data Register (ADCL dan ADCH)
• Special Function I/O Register (SFIOR)
Spesifikasi ADC Mikrokontroler AVR ATMEGA32

• Resolusi ADC= 10-bit


• Akurasi mencapai ± 2LSB
• Memiliki 8 kanal ADC
• Rentang tegangan input = 0 volt – Vcc
• Tegangan referensi internal = 2,56 volt
• Terdapat 2 mode kerja, yaitu:
a) Konversi tunggal (single conversion)
b) Konversi terus-menerus (free running)
Spesifikasi ADC Mikrokontroler AVR ATMEGA32

• Konversi ADC dimulai ketika mendapat auto trigger dari sumbe


r interupsi.
• Lengkapnya proses konversi ADC dapat menjadi pemicu interup
si.
• Nilai minimum ADC = 0 volt (GND)
• Nilai maksimum ADC = tegangan pada pin AREF (minus 1 LSB).
• Sinyal tegangan input ADC tidak boleh melebihi tegangan refer
ensinya.
• Hasil konversi ADC disimpan pada pasangan register ADCH dan
ADCL.
Kode Digital ADC
• ADC mengonversi tegangan input analog menj
adi bilangan (kode) digital selebar 10-bit.

1) Resolusi 10-bit.
ADC = (Vinput/Vref) x 1024

2) Resolusi 8-bit.
ADC = (Vinput/Vref) x 256
Kode Digital ADC
• Contoh perhitungan kode digital ADC:
Misalkan terdapat input kanal ADC beresolusi
8-bit adalah 2,5 volt dan tegangan referensi ya
ng digunakan Vref internal sebesar 2,56 volt, s
ehingga kode digital ADC-nya adalah:
= (2500 mV/2560 mV) x 256
= 250 -  dalam desimal
= FA - dalam heksadesimal
= 11111010 - dalam biner
Kode Digital ADC
• Catatan:
Akurasi ADC tidak sempurna (toleransi ±2LSB),
sehingga kemungkinan kode digital ADC yang
dihasilkan tidak tepat 0xFA, namun bisa di atas
nya (0xFB/0xFC) atau di bawahnya (0xF8/0xF9)
.
Prosedur Pengaturan ADC
• Prosedur 1: Pengaturan register ADMUX

• Berfungsi untuk:
– Memilih kanal ADC yang akan digunakan.
bit MUX0, MUX1, MUX2, MUX3, dan MUX4 (lihat tabel 1).
– Menentukan format data hasil konversi ADC
bit ADLAR. Lihat formatnya pada register ADCH & ADCL.
– Memilih tegangan referensi ADC
bit REFS0 dan REFS1 (lihat tabel 2).
Prosedur Pengaturan ADC
• Memilih kanal ADC
Prosedur Pengaturan ADC
• Memilih tegangan referensi ADC
Prosedur Pengaturan ADC

Register ADCH dan ADCL berfungsi untuk menyimp


an data hasil konversi ADC dengan format yang berg
antung pada nilai bit ADLAR (0 atau 1) pada register
ADMUX (bit ke-5).
Prosedur Pengaturan ADC
• Prosedur 2: Pengaturan register ADCSRA

• Berfungsi untuk:
• Menentukan faktor pembagi (prescaler) frekue
nsi CPU yang digunakan sebagai clock ADC
bit ADPS0, ADPS1, dan ADPS2
Prosedur Pengaturan ADC
• Prosedur 2: Pengaturan register ADCSRA

• Memilih mode operasi ADC


bit ADATE = 1 - Mode single conversion/auto trigger
bit ADATE = 0 - Mode free running conversion
Mengaktifkan auto trigger ADC (bit ADATE = 1), sehingga proses pengonversi
an sinyal analog dimulai. Sumber trigger diatur menggunakan bit ADTS0, AD
TS1, dan ADTS2 pada register SFIOR. Sumber trigger tergantung pada pengat
uran bit ADATE pada register ADCSRA.
• Mengaktifkan ADC (bit ADEN = 1)
• Memulai proses konversi (start conversion) ADC (bit ADSC = 1)
Jika mode single conversion: set ADSC tiap kali akan mengonversi.
Jika mode free running: set ADSC untuk memulai awal konversi.
Prosedur Pengaturan ADC
• Prosedur 2: Pengaturan register ADCSRA

• Jika ADC beroperasi dengan mode single conversion dan mengg


unakan interupsi, maka:
– Aktifkan interupsi ADC (bit ADIE = 1)
– Aktifkan interupsi global mikrokontroler (bit-I pada register SREG = 1) ata
u dengan perintah - sei ();
– Buat fungsi layanan interupsi
Prosedur Pengaturan ADC

Prescaler ADC Pengaturan prescaler frekuensi


clock untuk ADC
Prosedur Pengaturan ADC
• Register SFIOR berfungsi untuk menentukan s
umber auto trigger konversi ADC, yaitu dengan
menentukan nilai dari bit ADTS0, ADTS1, dan A
DTS2
Prosedur Pengaturan ADC
• Pengaturan nilai bit-bit pemilih sumber auto tr
igger ADC
Prosedur Pengaturan ADC
• Catatan untuk register SFIOR:
Efek pengaturan ADTS0, ADTS1, dan ADTS2 berg
antung pada pengaturan bit ADATE pada register
ADCSRA (bit ke-5).

Jika ADATE = 1, maka sumber auto trigger akan


menjadi pemicu otomatis proses konversi ADC.
Jika ADATE = 0, maka pengaturan bit ADTS0 – AD
TS2 tidak akan berdampak apa-apa pada sistem.
Mode Operasi ADC

• Mode Operasi ADC - Single Conversion


• Konversi dilakukan untuk sekali pembacaan sampel sin
yal input.
• Jika ingin membaca lagi harus melakukan sampel sinyal
input lagi, sehingga kita dapat mengonversi sinyal tega
ngan input ketika dibutuhkan saja.
• Konversi tunggal akan dimulai ketika bit-ADSC pada reg
ister ADCSRA di-set. Bit tersebut akan tetap set sampai
satu kali konversi selesai (complete). Setelah konversi s
elesai, maka secara otomatis bit-ADSC akan clear.
Mode Operasi ADC
• Mode Operasi ADC - Single Conversion

Timing diagram ADC, first conversion (single


conversion mode)
Mode Operasi ADC
• Mode Operasi ADC - Single Conversion (Auto triggered)
• Single conversion dengan auto trigger adalah alternatif cara aktivasi konver
si ADC.
• Pada mode auto trigger, proses konversi ADC dapat dipicu secara otomatis
oleh beberapa variasi sumber pemicunya (trigger).
• Mode ini akan aktif dan proses konversi ADC dimulai ketika:
1) Bit ADATE pada register ADCSRA di-set.
2) Sumber pemicu auto trigger dipilih.
    (mengatur bit ADTS0, ADTS1, dan ADTS2 pada register SFIOR)
3) Ada transisi (edge) sinyal positif (0 ke 1) dari sumber trigger.
4) Faktor pembagi clock (prescaler) pada register ADCSRA di atur (ADSP0/1
/2).
5) Bit ADSC pada register ADCSRA di-set.
• Proses konversi baru tidak akan terjadi jika sinyal trigger masih set ketika p
roses konversi ADC selesai (complete).
• Jika terjadi transisi (edge) sinyal positif lain saat proses konversi berlangsu
ng, maka edge sinyal tersebut akan diabaikan.
Mode Operasi ADC
• Mode Operasi ADC - Single Conversion (Auto trig
gered)

Timing diagram auto-trigger ADC


Mode Operasi ADC
• Mode Operasi ADC - Single Conversion (Auto trig
gered)

Logika auto-trigger ADC


Mode Operasi ADC
• Mode Operasi ADC - Free Running
• Penggunaan flag interupsi ADC sebagai sumber trigger membuat pr
oses konversi ADC baru dimulai segera setelah proses konversi yang
sedang berjalan selesai (complete).
• Pada kondisi tersebut, ADC bekerja pada mode free running conversi
on.
• Pada mode free running, konversi dilakukan secara terus-menerus
(ADC membaca sample tegangan input kemudian dikonversi dan has
ilnya disimpan ke dalam register ADCH-ADCL secara terus-menerus).
• Proses konversi ADC harus dimulai dengan men-set bit ADSC pada re
gister ADCSRA.
• Pada mode free running, ADC bekerja secara independen (tidak berg
antung) dari flag interupsi ADC. Apakah ADIF set atau clear, maka tid
ak akan mempengaruhi operasi ADC.
Mode Operasi ADC
• Mode Operasi ADC - Free Running

Timing diagram ADC free running conversion mode

Anda mungkin juga menyukai