• Tidak ada hasil yang ditemukan

BAB II DASAR TEORI

2.1 Mikrokontroller ATMega8535

2.1.1 Fitur Yang Dimiliki ATMEGA8535

2.1.1.1 Analog To Digital Converter (ADC)

ADC pada ATMega8535 merupakan ADC 10-bit tipe Successisve

Approximation, yang terhubung ke sebuah multiplekser analog yang akan

memilih satu dari delapan kanal. Untuk menjaga validasi data, terdapat untai

Sampel and Hold. Tegangan suplai ADC terpisah dari tegangan mikrokontroler,

tetapi selisihnya tidak boleh lebih dari 0,3 V. Untuk mengatasinya, digunakan untai filter LC seperti ditunjukkan Gambar 2.1.

Terdapat 8 kanal ADC masing-masing selebar 10 bit, ADC dapat digunakan dengan memberikan masukkan tegangan pada port ADC, yaitu portA.0 sampai portA.7.

Ada dua mode ADC yang dapat digunakan, yaitu single conversion dan

kali ADC akan digunakan. Sedangkan pada mode free running, pengguna cukup sekali mengaktifkan, sehingga ADC akan terus mengkonversi tanpa henti.

Dalam kemasan TQFP (Thin Quad Flat Package) terdapat fasilitas tambahan, yaitu kanal diferensial dan kanal diferensial dengan penguatan, yang memungkinkan dua kanal ADC digunakan sekaligus. Kemasan PDIP tidak menyediakan fasilitas ini.

Gambar 2.1. Koneksi dengan filter RC pada suplai ADC

Terdapat beberapa register I/Oyang terlibat dalam proses konversi ADC, antara lain: ADMUX (ADC Multiplexer Selection Register). Register ADMUX berisi bit-bit yang mengatur pilihan kanal (MUX4:0), bit pengatur penyajian data (ADLAR), dan bit-bit pemilih tegangan referensi (REFS1:0). Gambar register ADMUX dapat dilihat pada gambar 2.2.

Gambar 2.2. Gambar. Register ADMUX

Dalam akses ADC, terdapat proses pengaturan register-register I/O yang terlibat dalam ADC. Proses pengaturan tersebut meliputi:

a. Menetukan sumber tegangan referensi

Referensi pada ADC merupakan batas rentang representasi nilai digital hasil konversi. Hasil konversi pada mode single ended cenversion

dirumuskan sebagai berikut:

REF IN

V

V

ADC =1024

...(2.1)

dengan VIN = tegangan masukkan analog pada kanal ADC yang

aktif

VREF = tegangan referansi yang dipilih

b. Memilih kanal yang aktif (satu dari delapan)

Kanal yang aktif ditentukan oleh bit-bit MUX4:0 (Analog Channel

and Gain Selection Bits) pada register ADMUX. Tabel 2.1

Tabel 2.1. Konfigurasi Bit-bit ADMUX4:0

c. Menetukan prescaler (clockADC)

Prescaler merupakan factor pembagi yang diterapkan pada clock

mikrokontroler menerima clock yang cukup sehingga data hasil konversi cukup valid. Untuk ketelitian ADC 10 bit, rentang frekuensi

clock yang diperbolehkan adalah 50kHz hingga 200kHz. Frekuensi

clockyang lebih tinggi dapat digunakan jika resolusi lebih rendah dari

10bit. Nilai prescaler ditentukan oleh bi-bit ADPS2:0 (ADCPrescaler

Select Bits2:0). Tabel 2.2 menunjukan konfigurasi bit-bit tersebut.

Tabel 2.2. Konfigurasi Bit-bit ADPS

d. Inisialisasi ADC

Untuk mengaktifkan ADC, bit ADEN (ADC Enable) harus diberi logika ‘1’ (set). Dan untuk memulai ADC, logika ‘1’ juga harus diberikan pada bit ADSC (ADC Start Conversion). Kedua bit ini

terletak pada register ADCSRA. Waktu yang diperlukan untuk satu konversi adalah 25 siklus clock ADC pada konversi pertama, dan 13 siklus clock ADC untuk konversi berikutnya.

Idealnya, ADC dapat melakukan konversi secara linear antara GND dan VREF dalam 2n langkah. Sehingga factor pengali hasil konversi terndah adalah 0, dan tertinggi 2n-1. indeks n menunjukkan resolusi ADC (8,9, atau 10 bit). Tetapi terdapat beberapa hal yang menyebabkan ADC tidak mencapai kondisi ideal, yaitu galat yang terjadi saat konversi, antara lain:

a. Offset error

b. Gain error

c. Integral non-linearity

d. Differential non- linearity

e. Quantization error

Dengan adanya galat-galat tersebut, pada akhirnya fasilitas ADC memiliki akurasi

absolute sebesar ± 2 LSB. [1]

2.1.1.2 Pulse Width Modulation (PWM)

Mikrokontroler ATMega8535 menyediakan fitur Timer/Counter1 yang dapat diatur sebagai timer, pencacah (counter), perekam waktu kejadian (even

occurance time capture), pembangkit isyarat PWM (Pulse Width Modulation),

Timer/Counter1 dapat digunakan secara fleksibel untuk berbagai tujuan yang berkaitan dengan waktu dan pembangkit gelombang.

a. OCR1AH/L (Output Compare Register 1 A High-byte/Low-byte) dan OCR1BH/L (Output Compare Register 1 B High-byte/Low-byte)

Register OCR1AH/L dan register OCR1BH/L berisi data yang terus-menerus dibandingkan dengan isi register TCNT1H/L. Hasilnya dapat digunakan untuk membangkitkan gelombang pada pin OC1A/B. Gambar 2.3 menunjukan isi register-register tersebut.

Gambar 2.3. Register OCR1H/L dan OCR1H/L

b. ICR1H/L (Input Capture Register 1 High-byte/Low-byte)

Register ICR1H/L selalu diperbarui nilainya dengan nilai register TCNT1H/L setiap kali terjadi kejadian yang terdeteksi. Register ini dapat digunakan untuk menentukan nilai puncak (TOP Value). Gambar 2.4 menunjukan isi register ICR1K/L.

Gambar 2.4. Register ICR1H/L

Isyarat PWM merupakan hasil modulasi isyarat segitiga oleh isyarat konstan. Pengubahan amplitudo isyarat konstan akan mengubah lebar pulsa hasil modulasi. Sementara pengubahan amplitudo isyarat segitiga (dengan bentuk segitiga sebangun dengan segitiga awal) akan mengubah frekuensi PWM.

Terjadi dua register OCR1A/B (Output Compare Register1A/B) yang isinya secara kontinyu dibandingkan dengan isi register Timer/Counter1. Register-register ini dapat diisi oleh pengguna, selebar masing-masing bit. Dalam mode PWM, nilai register OCR1A/B ini menjadi isyarat pemodulasi.

Lebar register data Timer/Counter1 adalah 16 bit, sehingga dapat mencacah nilai dari $0000 hingga $FFFF. Dalam operasi PWM, nilai

Timer/Counter1 ini yang menjadi isyarat segitiga. Sebagai catatan, istilah segitiga

disini tidak berarti segitiga dalam bidang geometri, tetapi isyarat yang meningkat amplitudonya secara berlangkah sehingga bentuknya menyerupai segitiga.

Fasilitas PWM yang disediakan memiliki resolusi 8 hingga 10 bit. Mode operasinya meliputi Fast PWM (FPWM), Phase Correct PWM(PCPWM), dan

Phase and Frequency Correct PWM (PFCPWM). Pada mode Fast PWM, Timer/

Counter1 akan mencacah ulang dari nol (BOTTOM) setiap kali terjadi limpahan

(overflow). Segitiga yang terjadi adalah segitiga siku-siku. Sedangkan pada dua

sehingga segitiga berbentuk sama kaki dengan puncak pada nilai TOP. Perbedaan utama pada mode PCPWM da PFCPWM adalah waktu perbaruan nilai OCR1A/B. Mode PCPWM memperbarui OCR1A/B saat nilai TOP, sedangkan pada PFCPWM saat nilai BOTTOM.

Gambar 2.5 menunjukkan modulasi nilai TCNT1 oleh OCR1A pada mode FPWM. Perubahan nilai OCR1A menjadi lebih kecil menunjukkan pulsa yang menyempit pula. Durasi pulsa saat nilai OCR1A lebih besar daripada nilai TCNT1 disebut waktu ON (tON). Sebaliknya, ketika nilai OCR1A lebih kecil, disebut waktu OFF (tOFF). Perbandingan tON erhadap periode PWM disebut duty cycle, yang nilainya maksimal 100%.

Gambar 2.5. Fast Pulse Width Modulation

Dalam mengakses PWM, terdapat prose pengaturan register-register I/O yang terlibat. Proses pengaturan tersebut meliputi:

a. Menetukan sumber dan frekuensi clock yang digunakkan Timer/Counter1

Frekuensi getar Timer/Counter1 dapat diperoleh dari osilator yang digunakan mikrokontroler, dengan faktor pembagi. Tersedia juga pin T1

untuk sumber clock eksternal. Sumber dan frekuensi clock ini ditentukan oleh bit-bit CS12:0 (Clock Select) pada register TCCR1B. Tabel 2.3 menunjukkan pilihan frekuensi yang tersedia dan bit-bit yang menentukkannya.

Tabel 2.3. Konfigurasi Bit-bit CS12:0

b. Menentukan nilai OCR1A/B sebagai pemodulasi

Untuk memperoleh duty cycle yang diinginkan, penggunaan harus menentukkan nila OCR1A/B. Dalam mode non-inverting, semakin besar nilai OCR1A/B, semakin besar lebar waktu nyala (tON), sehingga semakin besar duty cycle. Dan sebaliknya. Sebagai contoh, untuk memperoleh duty

cycle sebesar 50%, maka OCR1A/B harus diisi dengan nilai setengah dari

nilai maksimum Timer/Counter1.

Pengguna dapat menentukan nilai OCR1A/B dengan memasukkan langsung nilai yang diinginkan ke dalam register tersebut, karena register OCR1A/B mempunyai kemampuan operasi tulis (write).

c. Menentukan nilai prescaler

Nilai prescaler merupakan pembagi langsung frekuensi sistem, yang bersama-sama dengan nilai TOP akan menentukan frekuensi PWM. Persamaan (2.2) menunjukkan perhitungan untuk menentukan frekuensi PWM pada mode FPWM.[1]

))

1

(

(N TOP

f

f

FPWM XTAL

+

=

………..(2.2)

Dokumen terkait