At Mega 8535

40
 ATMEGA8535 Posted by iswanto AVR termasuk kedalam jenis mikrokontroler RISC (  Reduced Instruction Set Computing ) 8 bit. Berbeda dengan mikrokontroler keluarga MCS-51 yang berteknologi CISC (Complex  Instruction Set Computing ). Pada mikrokontroler dengan teknologi RISC semua instruksi dikemas dalam kode 16 bit (16 bits words) dan sebagian besar instruksi dieksekusi dalam 1 clock, sedangkan pada teknologi CISC seperti yang diterapkan pada mikrokontroler MCS-51, untuk menjalankan sebuah instruksi dibutuhkan waktu sebanyak 12 siklus clock. AVR atau sebuah kependekan dari  Alf and Vegard’s Risc Processor merupakan chip mikrokontroler yang diproduksi oleh Atmel, yang secara umum dapat dikelompokkan ke dalam 4 kelas : ATtiny ATMega AT90Sxx AT86RFxx Perbedaan yang terdapat pada masing-masing kelas adalah kapasitas memori, peripheral, dan fungsinya. Dalam hal arsitektur maupun instruksinya, hampir idak ada perbedaan sama sekali. Dalam hal ini ATMEGA8535 dapat beroperasi pada kecepatan maksimal 16MHz serta memiliki 6 pilihan mode sleep untuk menghemat penggunaan daya listrik. Lebih jelas tentang ATMEGA8535, download disini

Transcript of At Mega 8535

Page 1: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 1/40

 

ATMEGA8535

Posted by iswanto 

AVR termasuk kedalam jenis mikrokontroler RISC ( Reduced Instruction Set Computing ) 8 bit.

Berbeda dengan mikrokontroler keluarga MCS-51 yang berteknologi CISC (Complex Instruction Set Computing ). Pada mikrokontroler dengan teknologi RISC semua instruksidikemas dalam kode 16 bit (16 bits words) dan sebagian besar instruksi dieksekusi dalam 1clock, sedangkan pada teknologi CISC seperti yang diterapkan pada mikrokontroler MCS-51,untuk menjalankan sebuah instruksi dibutuhkan waktu sebanyak 12 siklus clock.

AVR atau sebuah kependekan dari Alf and Vegard’s Risc Processor merupakan chipmikrokontroler yang diproduksi oleh Atmel, yang secara umum dapat dikelompokkan ke dalam4 kelas :

• ATtiny• ATMega• AT90Sxx• AT86RFxx

Perbedaan yang terdapat pada masing-masing kelas adalah kapasitas memori, peripheral, danfungsinya. Dalam hal arsitektur maupun instruksinya, hampir idak ada perbedaan sama sekali.Dalam hal ini ATMEGA8535 dapat beroperasi pada kecepatan maksimal 16MHz serta memiliki6 pilihan mode sleep untuk menghemat penggunaan daya listrik. Lebih jelas tentangATMEGA8535, download disini

Page 2: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 2/40

 

BAB I

Konstruksi dasar ATMega8535

PENDAHULUAN

Mikrokontroler merupakan chip cerdas yang menjadi tren dalam

pengendalian dan otomatisasi, terutama di kalangan mahasiswa. Dengan banyak

 jenis keluarga, kapasitas memori, dan berbagai fitur, mikrokontroler menjadi pilihan

dalam aplikasi prosesor mini untuk pengendalian skala kecil.

Beberapa vendor populer seperti Intel, Atmel, Motorola, Microchip, dan Harris

telah memasarkan beberapa jenis mikrokontroler ke pasar di seluruh dunia dalam

berbagai bentuk dan fiturnya.

MIKROKONTROLER AVR

Mikrokontroler AVR (Alf and Vegard’s Risc processor) dari Atmel ini

menggunakan arsitektur RISC (Reduced Instruction Set Computer ) yang artinya

prosesor tersebut memiliki set instruksi program yang lebih sedikit dibandingkan

dengan MCS-51 yang menerapkan arsitektur CISC (Complex Instruction Set 

Computer).

Hampir semua instruksi prosesor RISC adalah instruksi dasar (belum tentu

sederhana), sehingga instruksi-instruksi ini umumnya hanya memerlukan 1 siklus

mesin untuk menjalankannya. Kecuali instruksi percabangan yang membutuhkan 2

Page 3: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 3/40

 

siklus mesin. RISC biasanya dibuat dengan arsitektur Harvard , karena arsitektur ini

yang memungkinkan untuk membuat eksekusi instruksi selesai dikerjakan dalam

satu atau dua siklus mesin, sehingga akan semakin cepat dan handal. Proses

downloading programnya relatif lebih mudah karena dapat dilakukan langsung pada

sistemnya.

Sekarang ini, AVR dapat dikelompokkan menjadi 6 kelas, yaitu keluarga

ATtiny, keluarga AT90Sxx, keluarga ATmega, keluarga AT90CAN, keluarga

AT90PWM dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas

adalah memori, peripheral, dan fungsinya, sedangkan dari segi arsitektur dan

instruksi yang digunakan, mereka hampir sama. Sebagai pengendali utama dalam

pembuatan robot ini, digunakan salah satu produk ATMEL dari keluarga ATmega

yaitu ATmega8535.

ARSITEKTUR ATMEGA8535

Mikrokontroler ATmega8535 memiliki fitur-fitur utama, seperti berikut.

1. Saluran I/O sebanyak 32 buah yaitu Port  A, Port B, Port  C, dan

Port D.

2. ADC 10 bit sebanyak 8 saluran.

3. Tiga unit Timer/Counter dengan kemampuan pembandingan.

4. CPU yang terdiri atas 32 buah register.

5. Watchdog Timer dengan osilator internal.

6. SRAM sebesar 512 byte.

7. Memori Flash sebesar 8 kbytes dengan kemampuan Read While

Write.

Page 4: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 4/40

 

8. Unit interupsi internal dan eksternal.

9. Port antarmuka SPI.

10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.

11. Antarmuka komparator analog.

12. Port USART untuk komunikasi serial.

Mikrokontroler AVR ATMega8535 merupakan mikrokontroler produksi Atmel

dengan 8 KByte In-System Programmable-Flash, 512 Byte EEPROM dan 512 Bytes

Internal SRAM. AVR ATMega8535 memiliki seluruh fitur yang dimiliki AT90S8535.

Selain itu, konfigurasi pin AVR ATMega8535 juga kompatibel dengan AT90S8535.

Diagram blok arsitektur ATmega8535 ditunjukkan oleh Gambar 2.3. Terdapat

sebuah inti prosesor ( processor core) yaitu Central Processing Unit , di mana terjadi

proses pengumpanan instruksi (fetching) dan komputasi data. Seluruh register

umum sebanyak 32 buah terhubung langsung dengan unit ALU (  Arithmatic and 

Logic Unit ). Tedapat empat buah port masing-masing delapan bit dapat difungsikan

sebagai masukan maupun keluaran.

Media penyimpan program berupa Flash Memory , sedangkan penympan data

berupa SRAM (Static Ramdom Access Memory ) dan EEPROM (Electrical Erasable

Programmable Read Only Memory ). Untuk komunikasi data tersedia fasilitas SPI

(Serial Peripheral Interface), USART (Universal Synchronous and Asynchronous

serial Receiver and Transmitter ), serta TWI (Two-wire Serial Interface).

Di samping itu terdapat fitur tambahan, antara lain AC ( Analog Comparator ),

8 kanal 10-bit ADC (  Analog to Digital Converter ), 3 buah Timer/Counter , WDT

(Watchdog Timer ), manajemen penghematan daya (Sleep Mode), serta osilator

internal 8 MHz. Seluruh fitur terhubung ke bus 8 bit. Unit interupsi menyediakan

Page 5: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 5/40

 

sumber interupsi hingga 21 macam. Sebuah stack pointer  selebar 16 bit dapat

digunakan untuk menyimpan data sementara saat interupsi.

Gambar 1.1. Arsitektur ATmega8535

Page 6: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 6/40

 

Mikrokontroler ATmega8535 dapat dipasang pada frekuensi kerja hingga 16

MHz (maksimal 8MHz untuk versi ATmega8535L). Sumber frekuensi bisa dari luar

berupa osilator kristal, atau menggunakan osilator internal.

Keluarga AVR dapat mengeksekusi instruksi dengan cepat karena

menggunakan teknik “memegang sambil mengerjakan” (fetch during execution).

Dalam satu siklus clock , terdapat dua register independen yang dapat diakses oleh

satu instruksi.

1.1. KONFIGURASI PIN

ATMega8535 terdiri atas 40 pin dengan konfigurasi seperti pada tabel 1.1.

Tabel 1.1. Deskripsi pin

Nama Pin Fungsi

VCC Catu daya

GND Ground 

Port A

(PA7..PA0)

 Port I/O 8-bit dua arah dengan resistor  pull-up internal.

Juga berfungsi sebagai masukan analog ke ADC (ADC0 s.d. ADC7)

Port B

(PB7..PB0)

 Port I/O 8-bit dua arah dengan resistor  pull-up internal .Fungsi khusus masing-masing pin :Port Pin Fungsi lain

PB0 T0 (Timer/Counter0 External Counter Input )PB1 T1 (Timer/Counter1 External Counter Input )PB2 AIN0 ( Analog Comparator Positive Input )PB3 AIN1 ( Analog Comparator Negative Input )PB4 SS (SPI Slave Select Input )PB5 MOSI (SPI Bus Master Output/Slave Input )PB6 MISO (SPI Bus Master Input/Slave Output )PB7 SCK (SPI Bus Serial Clock )

Port C

(PC7..PC0)

 Port I/O 8-bit dua arah dengan resistor  pull-up internal .

Dua  pin yaitu PC6 dan PC7 berfungsi sebagai oscillator  luar untuk Timer/Counter2.

Port D

(PD7..PD0

)

 Port I/O 8-bit dua arah dengan resistor  pull-up internal .Fungsi khusus masing-masing pin :Port Pin Fungsi lain

PD0 RXD (UART Input Line)PD1 TXD (UART Output Line)PD2 INT0 ( External Interrupt 0 Input )PD3 INT1 ( External Interrupt 1 Input )

Page 7: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 7/40

 

PD4 OC1B (Timer/Counter1 Output CompareB Match Output )PD5 OC1A (Timer/Counter1 Output CompareA Match Output )PD6 ICP (Timer/Counter1 Input Capture Pin)PD7 OC2 (Timer/Counter2 Output Compare Match Output )

RESET Masukan reset. Sebuah reset terjadi jika pin ini diberi logika rendah melebihi periode minimum yang diperlukan.

XTAL1 Masukan ke inverting oscillator amplifier  dan masukan ke rangkaian clock internal.

XTAL2 Keluaran dari inverting oscillator amplifier .

AVCC Catu daya untuk  port A dan ADC.

AREF Referensi masukan analog untuk ADC.

AGND Ground analog.

Gambar 1.2. Konfigurasi pin ATMega 8535

1.2. PETA MEMORI

Arsitektur AVR terdiri atas dua memori utama, yaitu Data Memori dan

Program Memori. Sebagai tambahan fitur dari ATMega8535, terdapat EEPROM 512

byte sebagai memori data dan dapat diprogram saat operasi.

ATMega8535 terdiri atas 8k byte On-chip In-System Reprogrammable Flash

memory untuk penyimpan program. Karena seluruh instruksi AVR dalam bentuk 16

bit atau 32 bit, maka Flash dirancang dengan komposisi 4K x 16. Untuk mendukung

keamanan software atau program, Flash Program Memori dibagi menjadi dua

bagian yaitu bagian Boot Program dan bagian  Application Program. Gambar 1.3

mengilustrasikan susunan Memori Program Flash ATMega8535.

Page 8: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 8/40

 

Gambar 1.3. Peta memori program

Memori data terbagi menjadi 3 bagian, yaitu 32 buah register  umum, 64

buah register I/O, dan 512 byte SRAM Internal. Konfigurasi memori data ditunjukkan

oleh Gambar 1.4

Register AlamatR0 $0000R1 $0001R2 $0002

........ ........

R29 $001D

R30 $001ER31 $001FRe ister I/O

$00 $0020$01 $0021$02 $0022

........ ........

$3D $005D$3E $005E$3F $005F

Internal SRAM$0060$0060........

$025E$025F

Gambar 1.4. Peta memori data

1.3. STACK POINTER

   A  p  p l i  c  a  t i  o  n

  F l  a  s  h  S  e  c  t i  o  n

Boot Flash

Section

$FFF

$00

0

Page 9: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 9/40

 

Stack pointer  merupakan suatu bagian dari AVR yang berguna untuk

menyimpan data sementara, variabel lokal, dan alamat kembali dari suatu interupsi

ataupun subrutin. Stack pointer  diwujudkan sebagai dua unit register, yaitu SPH

dan SPL.

Saat awal, SPH dan SPL akan bernilai 0, sehingga perlu diinisialisasi terlebih

dahulu. SPH merupakan byte atas (MSB), sedangkan SPL merupakan byte bawah

(LSB). Hal ini hanya berlaku untuk AVR dengan kapasitas SRAM lebih dari 256 byte.

Bila tidak, maka SPH tidak didefinisikan dan tidak dapat digunakan.

1.4. KOMUNIKASI SERIAL DENGAN UART

AVR ATMega8535 memiliki 4 buah register  I/O yang berkaitan dengan

komunikasi UART, yaitu UART I/O Data Register (UDR), UART Baud Rate Register

(UBRR), UART Status Register (USR) dan UART Control Register (UCR).

1.7.1.REGISTER DATA I/O UART (UDR)

Proses pengiriman data secara serial dapat dimulai setelah UDR diberi karakter

data. Pada sisi penerima, UART memiliki buffer sehingga UDR dapat dibaca ketika

sebuah data baru sedang digeser masuk.

1.7.2.REGISTER BAUD RATE UART (UBRR)

UBRR digunakan untuk menentukan clock  yang dibangkitkan oleh baud rate

generator . Nilai baud rate ditentukan dengan mengisi register UBRR sesuai

persamaan 1.1

Page 10: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 10/40

 

  1*16

−=

baud 

  fclock UBRR  (1.1)

Misal, diinginkan baud rate sebesar 9600 bps. Dengan kristal 11.059.200 Hz

maka register UBRR akan bernilai 71.

1.7.3.REGISTER STATUS UART (USR)

Register USR menyimpan berbagai flag status seperti interupsi, overflow, dan

framing error . Susunan bit register USR ditunjukkan dalam Gambar 1.5.

bit 7 6 5 4 3 2 1 0

RXC TXC UDRE FE OR - - -

Gambar 1.5. Register status UART 

Penjelasan bit-bit register USR adalah sebagai berikut

1. RXC (Receive Complete) ; bernilai 1 otomatis setelah UART menerima sebuah

karakter secara lengkap,

2. TXC (Transmit Complete) ; bernilai 1 jika sebuah karakter telah selesai digeser

keluar dari register geser kirim,

3. UDRE (UART Data Register Empty ) ; bernilai 1 jika UDR kosong,

4. FE (Framing Error ) ; bernilai 1 jika Stop Bit tidak diterima dengan benar, yaitu

 jika Stop Bit terbaca 0,

5. OR (Overrun) ; bernilai 1 jika ada karakter yang dipindahkan dari register geser

terima ke UDR sebelum karakter yang diterima sebelumnya dibaca.

1.7.4.REGISTER KONTROL UART (UCR)

Register UCR mengendalikan berbagai fungsi penerima dan pengirim, serta

interupsinya. Susunan bit register UCR ditunjukkan dalam Gambar 1.6.

bit 7 6 5 4 3 2 1 0

Page 11: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 11/40

 

RXCIE TXCIE UDRIE RXEN TXEN CHR9 RXB8 TXB8

Gambar 1.6. Register  kendali UART

Penjelasan bit-bit register UCR adalah sebagai berikut

1. RXCIE (Receive Complete Interrupt Enable) ; jika bernilai 1, UART akan

membangkitkan interupsi ketika sebuah karakter selesai diterima,

2. TXCIE (Transmit Complete Interrupt Enable) ; bernilai 1 setelah karakter

terkirim dan membangkitkan interupsi,

3. UDRIE (UART Data Register Empty Interrupt Enable) ; jika bernilai 1, sebuah

interupsi terjadi ketika UDR kosong (bit UDRE bernilai 1),

4. RXEN (Receiver Enable) ; jika bernilai 1, penerima UART diaktifkan dan pin RxD

menjadi pin input yang terhubung ke UART,

5. TXEN (Transmitter Enable) ; jika bernilai 1, pengirim UART diaktifkan dan pin

 TxD menjadi pin output dari pengirim UART,

6. CHR9 (9-Bit Characters) ; jika bernilai 1, ukuran karakter yang dikirim menjadi

9-bit, dan bit ke-9 berada pada bit RXB8 dan TXB8,

7. RXB8 (Receive Data Bit 8) ; jika CHR9 bernilai 1, bit ini adalah bit ke-9 dari data

yang diterima,

8. TXB8 (Transmit Data Bit 8) ; jika CHR9 bernilai 1, bit ini adalah bit ke-9 dari

data yang dikirim, jadi TXB8 harus diisi sebelum pengiriman.

1.5. TIMER ATMEGA8535

AVR ATmega8535 memiliki tiga buah timer, yaitu Timer/Counter0 (8 bit),

Timer/Counter1 (16 bit), dan Timer/Counter2 (8 bit).

Page 12: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 12/40

 

1.8.1.TIMER/COUNTER0 

Timer/Counter0 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur dari

Timer/Counter0 pada ATmega8535 adalah sebagai berikut.

a. Counter 1 kanal.

 b. Timer di-nol-kan saat proses pembandingan tercapai (compare match).

c. Sebagai pembangkit gelombang PWM.

d. Sebagai pembangkit frekuensi.

e. Clock prescaler 10 bit.

f. Sumber interupsi dari compare match (OCF0) dan overflow (TOV0).

Pengaturan Timer/Counter0 diatur oleh TCCR0 (Timer/Counter Control

Register0) yang dapat dilihat pada Gambar 1.7

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00

Gambar 1.7. Register TCCR0

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.

a. Bit 7 – FOC0: Force Output Compare

 b. Bit 6,3 –WGM01:WGM00: Waveform Generation Unit 

Bit ini mengontrol kenaikan dari counter , sumber dari nilai maksimum counter ,

dan tipe dari jenis timer/counter  yang dihasilkan, yaitu mode normal, clear 

timer , mode compare match, dan dua tipe dari PWM (Pulse Width Modulation).

Berikut ini tabel pengaturan pada bit WGM01 dan WGM00 untuk menghasilkan

mode tertentu.

Tabel 1.2. Pengaturan Bit WGM01 dan WGM00

Page 13: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 13/40

 

Mode WGM01

(CTC0)

WGM00

(PWM0)

Mode operasi

Timer/Counter 

TOP Update

OCR0

Bendera

TOV0

diset saat

nilai

0 0 0 Normal 0xFF   Immediate MAX  

1 0 1 PWM, phase

correct  

0xFF TOP BOTTOM  

2 1 0 CTC OCR0  Immediate MAX  

3 1 1  Fast PWM 0xFF TOP MAX  

c. Bit 5, 4 – COM01:COM00: Compare Match Output Mode

Bit ini mengontrol pin OC0 (pin Output Compare). Apabila kedua bit ini nol atau

clear, maka pin OC0 berfungsi sebagai pin biasa. Bila salah satu bit set, maka

fungsi pin ini tergantung pada pengaturan bit pada WGM00 dan WGM01. Berikut

daftar tabel pengaturan bit COM01 dan COM00 sesuai pengaturan bit pada

WGM00 dan WGM01.

Tabel 1.3. Pengaturan Bit COM01 dan COM00 Mode Non-PWM

COM01 COM00 Keterangan

0 0 Operasi port normal, OC0 tidak dihubungkan.

0 1 Toggle OC0 saat proses pembandingan tercapai.

1 0 Clear OC0 saat proses pembandingan tercapai.

1 1 Set OC0 saat proses pembandingan tercapai.

Tabel 1.4. Pengaturan Bit COM01 dan COM00 Mode Fast PWM

COM01 COM00 Keterangan

0 0 Operasi port normal, OC0 tak dihubungkan.

0 1  Reserved 

1 0 Clear OC0 saat proses pembandingan tercapai, set OC0 pada nilai TOP.

1 1 Set OC0 saat proses pembandingan tercapai, clear OC0 pada nilai TOP.

Page 14: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 14/40

 

Tabel 1.5. Pengaturan Bit COM01 dan COM00 Mode Phase Correct PWM

COM01 COM00 Keterangan

0 0 Operasi port normal, OC0 tak dihubungkan.0 1  Reserved 

1 0

Clear OC0 saat proses pembandingan tercapai, yaitu ketika hitungan naik.

Set OC0 saat proses pembandingan tercapai, yaitu ketika hitungan turun.

1 1

Set OC0 saat proses pembandingan tercapai, yaitu ketika hitungan naik.

Clear OC0 saat proses pembandingan tercapai, yaitu ketika hitungan turun.

d. Bit 2, 1, 0 – CS02, CS01, CS00: Clock Select 

Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh

Timer/Counter0.

Tabel 1.6. Konfigurasi Bit Clock Select  

CS02 CS01 CS00 Keterangan

0 0 0 Tanpa sumber  clock (timer/counter tidak difungsikan).

0 0 1 clk  I/O /1 (tanpa prescaling )

0 1 0 clk  I/O /8 (dari prescaler)

0 1 1 clk  I/O /64 (dari prescaler )1 0 0 clk  I/O /256 (dari prescaler )

1 0 1 clk  I/O /1024 (dari prescaler )

1 1 0 Sumber  clock eksternal pada pin T0. Clock pada falling edge.

1 1 1 Sumber  clock eksternal pada pin T0. Clock pada rising  edge.

1.8.2.TIMER/COUNTER1

Timer/Counter1 adalah Timer/Counter 16 bit yang memungkinkan program

pewaktuan lebih akurat. Fitur-fitur dari Timer/Counter1 ini adalah sebagai berikut.

a. Desain 16 bit, sehingga memungkinkan untuk menghasilkan PWM 16 bit.

b. Dua buah unit pembanding.

c. Dua buah register pembanding.

Page 15: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 15/40

 

d. Satu buah input capture unit.

e. Timer di-nol-kan saat proses pembandingan tercapai (match compare).

f. Dapat menghasilkan gelombang PWM. 

g. Periode PWM yang dapat diubah-ubah.

h. Sebagai pembangkit frekuensi.

i. Empat buah sumber interupsi (TOV1, OCF1A, OCF1B dan ICF1).

Pengaturan Timer/Counter1 diatur oleh TCCR1A (Timer/Counter1 Control

Register A) dan TCCR1B (Timer/Counter1 Control Register B).

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10

Gambar 1.8. Register TCCR1A

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.

a. Bit 7, 6 – COM1A1, COM1A0: Compare Output Mode untuk kanal A

 b. Bit 5, 4 – COM1B1, COM1B0: Compare Output Mode untuk kanal B

COM1A1, COM1A0, COM1B1, dan COM1B0 mengatur pin pembanding

keluaran (Output Compare pins), yaitu pin OC1A dan OC1B. Jika salah satu atau

keduanya dari COM1A1 dan COM1A0 diset 1, maka OC1A akan terhubung (aktif)

sebagai pin keluaran. Begitu juga jika salah satu atau keduanya dari COM1B1

dan COM1B0 diset 1, maka OC1B akan terhubung (aktif) sebagai pin keluaran.

Sebelum mengaktifkan OC1A dan OC1B, pin-pin yang bersangkutan tersebut

harus diatur sebagai keluaran atau DDR (Data Direction Register) dari pin

tersebut diset sebagai keluaran. Pengaturan COM1A1, COM1A0, COM1B1, dan

COM1B0 harus menyesuaikan pengaturan bit WGM13, WGM12, WGM11, dan

Page 16: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 16/40

 

WGM10 terlebih dahulu. Pengaturan bit-bit tersebut dapat dilihat pada tabel

berikut ini.

Tabel 1.7. Pengaturan Bit COM1Ax dan COM1Bx Mode Non-PWM

COM1A1/

COM1B1/

COM1A0/

COM1B0/

Keterangan

0 0 Operasi port normal, OC1A/OC1B tidak dihubungkan.

0 1 Toggle OC1A/OC1B saat proses pembandingan tercapai.

1 0 Clear OC1A/OC1B saat proses pembandingan tercapai (set keluaran

ke aras rendah).

1 1 Set OC1A/OC1B saat proses pembandingan tercapai (set keluaran ke

aras tinggi).

Tabel 1.8. Pengaturan Bit COM1Ax dan COM1Bx Mode Fast PWM

COM1A1/

COM1B1/

COM1A0/

COM1B0/

Keterangan

0 0 Operasi port normal, OC1A/OC1B tidak terhubung.

0 1

WGM13:0=15, toggle OC1A saat proses pembandingan tercapai

dan OC1B tidak terhubung. Untuk semua pengaturan WGM1 yang

lain, maka operasi port normal atau OC1A/OC1B tidak terhubung.

1 0 Clear  OC1A/OC1B saat proses pembandingan tercapai, set

OC1A/OC1B pada nilai TOP.1 1 Set OC1A/OC1B saat proses pembandingan tercapai, clear 

OC1A/OC1B pada nilai TOP.

Tabel 1.9. Pengaturan Bit COM1Ax dan COM1Bx Mode Phase Correct PWM

COM1A1/

COM1B1/

COM1A0/

COM1B0/

Keterangan

0 0 Operasi port normal, OC1A/OC1B tak dihubungkan.

0 1

WGM13:0=9, toggle OC1A saat proses pembandingan tercapai dan

OC1B tidak terhubung. Untuk semua pengaturan WGM1 yang lain,

maka operasi port normal atau OC1A/OC1B tidak terhubung.

1 0

Clear OC1A/OC1B saat proses pembandingan tercapai, yaitu ketika

hitungan naik. Set OC1A/OC1B saat proses pembandingan tercapai,

yaitu ketika hitungan turun.

Page 17: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 17/40

 

1 1

Set OC1A/OC1B saat proses pembandingan tercapai, yaitu ketika

hitungan naik. Clear  OC1A/OC1B saat proses pembandingan

tercapai, yaitu ketika hitungan turun.

c. Bit 3, 2 – FOC1A, FOC1B: Force Output Compare untuk kanal A dan B.

Bit ini harus diset 0 ketika TCRR1A dioperasikan sebagai fungsi PWM.

d. Bit 1, 0 – WGM11, WGM10: Waveform Generation Mode

Bit-bit ini satu kesatuan dengan WGM13, WGM12 yang terdapat pada register

  TCCR1B. Bit-bit tersebut mengatur urutan penghitungan dari counter,

menentukan nilai TOP (nilai maksimal dari pengaturan counter ), dan

menentukan pilihan tipe pengoperasian Timer/Counter1.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

ICNC1 ICES1 - WGM13 WGM12A CS12 CS11 CS10

Gambar 1.9. Register TCCR1B

Dari register tersebut, bit-bit yang berperan dalam pengaturan PWM adalah bit

4, bit 3, bit 2, bit 1, dan bit 0.

a. Bit 2, 1, 0 – CS12, CS11, CS00: Clock Select 

Ketiga bit tersebut untuk memilih sumber clock  yang akan digunakan oleh

Timer/Counter1.

Tabel 1.10. Konfigurasi Bit Clock Select Register TCCR1B

CS12 CS11 CS10 Keterangan

0 0 0 Tanpa sumber  clock (timer/counter tidak difungsikan).

0 0 1 clk  I/O /1 (tanpa prescaling )

0 1 0 clk  I/O /8 (dari prescaler)

0 1 1 clk  I/O /64 (dari prescaler )

Page 18: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 18/40

 

1 0 0 clk  I/O /256 (dari prescaler )

1 0 1 clk  I/O /1024 (dari prescaler )

1 1 0 Sumber  clock eksternal pada pin T1. Clock pada falling edge.

1 1 1 Sumber  clock eksternal pada pin T1. Clock pada rising  edge.

 b. Bit 4, 3 – WGM13, WGM12: Waveform Generation Mode

Bit-bit ini satu kesatuan dengan bit WGM11 dan bit WGM10 yang terdapat pada

register TCCR1A. Seperti pada bit WGM11 dan bit WGM10, bit WGM13 dan bit

WGM12 berfungsi mengatur urutan penghitungan dari counter, menentukan nilai

TOP (nilai maksimal dari pengaturan counter ), dan menentukan pilihan tipe

pengoperasian Timer/Counter1. Pengaturan bit-bit ini dapat dilihat pada Tabel

2.10.

Tabel 1.11. Pengaturan Bit WGM12, WGM11, dan WGM10

Mode WGM12 WGM11 WGM10 Mode Operasi

Timer/Counter 

TOP 

Update

OCR1x

saat

Bendera

TOV1

diset saat

0 0 0 0 Normal 0xFFFF   Immediate MAX 

1 0 0 1 PWM, Phase Correct , 8 bit 0x00FF TOP BOTTOM  

2 1 1 0 PWM, Phase Correct , 9 bit 0x01FF TOP BOTTOM  

3 1 1 1 PWM, phase correct , 10 bit 0x03FF TOP BOTTOM  

4 1 1 1 CTC OCR1A  Immediate MAX  

5 1 1 1  Fast PWM, 8 bit 0x00FF TOP TOP  

6 1 1 1  Fast PWM, 9 bit 0x01FF TOP TOP  

7 1 1 1  Fast PWM, 10 bit 0x03FF TOP TOP  

8 1 1 1 PWM, Phase and FrequencyCorrect 

ICR1  BOTTOM BOTTOM  

9 1 1 1 PWM, Phase and FrequencyCorrect 

OCR1A  BOTTOM BOTTOM  

10 1 1 1 PWM, Phase Correct  ICR1 TOP BOTTOM  

11 1 1 1 PWM, Phase Correct  OCR1A TOP BOTTOM  

12 1 1 1 CTC ICR1  Immediate MAX  

13 1 1 1  Reserved  - - -

14 1 1 1  Fast PWM ICR1 TOP TOP  15 1 1 1  Fast PWM OCR1A TOP TOP  

1.8.3.TIMER/COUNTER2 

Page 19: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 19/40

 

Timer/Counter2 adalah Timer/Counter  8 bit yang multifungsi. Fitur-fitur

untuk Timer/Counter2 pada ATmega8535 adalah sebagai berikut.

a. Sebagai counter 1 kanal.

b. Timer di-nol-kan saat proses pembandingan tercapai (match compare).

c. Dapat mengahasilkan gelombang PWM.

d. Sebagai pembangkit frekuensi.

e. Clock prescaler 10 bit.

f. Sumber interupsi dari compare match (OCF0) dan overflow (TOV0).

Pengaturan Timer/Counter2 diatur oleh TCCR2 (Timer/Counter2 Control

Register).

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

FOC2 WGM20 COM21 COM20 WGM21 CS22 CS21 CS20

 

Gambar 1.10.Register TCCR2

Penjelasan untuk tiap bit-bitnya adalah sebagai berikut.

a. Bit 7 – FOC2: Force Output Compare

 b. Bit 6,3 –WGM21, WGM20: Waveform Generation Unit 

Bit ini mengatur kenaikan dari counter , sumber nilai maksimum counter , dan

tipe jenis timer/counter yang dihasilkan, yaitu mode normal, clear timer , mode

compare match, dan dua tipe PWM. Berikut tabel pengaturan pada bit WGM

untuk menghasilkan mode tertentu. Pengaturan bit-bit ini dapat dilihat pada

 Tabel 2.12.

Tabel 1.12. Pengaturan Bit WGM21 dan WGM20

Page 20: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 20/40

 

Mode WGM21

(CTC2)

WGM20

(PWM2)

Mode Operasi

Timer/Counter 

TOP Update

OCR2

Bendera

TOV2

diset saat

nilai

0 0 0 Normal 0xFF  Immediate MAX  

1 0 1 PWM, Phase

Correct  

0xFF TOP BOTTOM  

2 1 0 CTC OCR2  Immediate MAX  

3 1 1  Fast PWM  0xFF TOP BOTTOM  

c. Bit 5, 4 – COM21, COM20: Compare Match Output Mode

Bit ini mengatur pin OC2 (Output Compare). Apabila kedua bit ini nol atau clear,

maka pin OC2 berfungsi sebagai pin biasa, tetapi apabila salah satu bit diset,

maka fungsi pin ini tergantung dari pengaturan bit pada WGM20 dan WGM21.

Berikut daftar tabel pengaturan bit COM21 dan COM20 sesuai pengaturan bit

pada WGM20 dan WGM21.

Tabel 1.13. Pengaturan Bit COM21 dan COM20 Mode Non-PWM

COM21 COM20 Keterangan

0 0 Operasi port normal, OC2 tidak dihubungkan.

0 1 Toggle OC2 saat proses pembandingan tercapai.

1 0 Clear OC2 saat proses pembandingan tercapai.1 1 Set OC2 saat proses pembandingan tercapai.

Tabel 1.14. Pengaturan Bit COM21 dan COM20 Mode Fast PWM

COM21 COM20 Keterangan

0 0 Operasi port normal, OC2 tak dihubungkan.

0 1  Reserved 

1 0 Clear OC2 saat proses pembandingan tercapai, set OC2 pada nilai

TOP.

1 1 Set OC2 saat proses pembandingan tercapai, clear OC2 pada nilai

TOP.

Tabel 1.15. Pengaturan Bit COM21 dan COM20 Mode Phase Correct PWM

COM21 COM20 Keterangan

Page 21: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 21/40

 

0 0 Operasi port normal, OC2 tak dihubungkan.

0 1  Reserved 

1 0 Clear OC2 saat proses pembandingan tercapai, yaitu ketika hitungan

naik. Set OC2 saat proses pembandingan tercapai yaitu, ketika

hitungan turun.

1 1 Set OC2 saat proses pembandingan tercapai, yaitu ketika hitungannaik. Clear OC2 saat proses pembandingan tercapai, yaitu ketika

hitungan turun.

d. Bit 2, 1, 0 – CS22, CS21, CS20: Clock Select 

Ketiga bit ini untuk memilih sumber clock  yang akan digunakan oleh

Timer/Counter2. Pengaturan dari bit-bit ini dapat dilihat pada Tabel 2.16.

Tabel 1.16. Pengaturan Bit Clock Select  

CS02 CS01 CS00 Keterangan

0 0 0 Tanpa sumber  clock (timer/counter tidak difungsikan).

0 0 1 clk  I/O /1 (tanpa prescaling )

0 1 0 clk  I/O /8 (dari prescaler)

0 1 1 clk  I/O /64 (dari prescaler )

1 0 0 clk  I/O /256 (dari prescaler )

1 0 1 clk  I/O /1024 (dari prescaler )

1.6. INTERUPSI

ATMega8535 memiliki 21 buah sumber interupsi. Interupsi tersebut bekerja jika bit I

pada Register status atau Status Register  (SREG) dan bit pada masing-masing

register bernilai 1. Penjelasan sumber interupsi terdapat pada tabel 1.17

Tabel 1.17. Vektor interupsi ATMega 8535

No. Alamat Sumber Keterangan

1. 0x000 RESET Hardware Pin, Power-on Reset and 

Watchdog Reset 

2. 0x001 INT0  External Interrupt Request 0

3. 0x002 INT1  External Interrupt Request 1

Page 22: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 22/40

 

4. 0x003 TIMER2 COMP Timer/Counter 2 Compare Match

5. 0x004 TIMER2 OVF Timer/Counter2 Overflow

6. 0x005 TIMER1 CAPT Timer/Counter1 Capture Event 

7. 0x006 TIMER1 COMPA Timer/Counter1 Compare Match A

8. 0x007 TIMER1 COMPB Timer/Counter1 Compare Match B

9. 0x008 TIMER1 OVF Timer/Counter1 Overflow

10. 0x009 TIMER0 OVF Timer/Counter0 Overflow11. 0x00A SPI, STC SPI Serial Transfer Complete

12. 0x00B UART, RX UART, RX Complete

13. 0x00C UART, UDRE UART, Data Register Empty

14. 0x00D UART, TX UART, TX Complete

15. 0x00E ADC  ADC Conversion Complete

16. 0x00F EE_RDY  EEPROM Ready

17. 0x010 ANA_COMP  Analog Comparator 

18. 0x011 TWI Two Wire Serial Interface

19. 0x012 INT2  External Interrupt Request 2

20. 0x013 TIMER0 COMP Timer/Counter Compare Match

21. 0x014 SPM RDY Store Program Memory Ready

1.7. FITUR

1.10.1. ANALOG TO DIGITAL CONVERTER (ADC)

ADC pada ATmega8535 merupakan ADC 10-bit tipe Successive

 Approximation, yang terhubung ke sebuah multiplekser analog yang akan memilih

satu dari delapan kanal. Untuk menjaga validitas data, terdapat untai Sample and 

Hold . Tegangan suplai ADC terpisah dari tegangan suplai mikrokontroler, tetapi

selisihnya tidak boleh lebih dari 0,3 V. Untuk mengatasinya, digunakan untai filter

LC seperti ditunjukkan pada Gambar 1.11.

 Terdapat 8 kanal ADC masing-masing selebar 10 bit. ADC dapat digunakan

dengan memberikan masukan tegangan pada port ADC, yaitu port A.0 sampai

dengan port A.7.

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

running. Pada mode single conversion, pengguna harus mengaktifkan setiap kali

ADC akan digunakan. Sedangkan pada mode free running, pengguna cukup sekali

mengaktifkan, sehingga ADC akan terus mengkonversi tanpa henti.

Page 23: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 23/40

 

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 1.11. Koneksi dengan filter LC pada suplai ADC

 Terdapat beberapa register I/O yang 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). Gambar1.18 menunjukkan isi register

ADMUX.

Gambar 1.12.Register ADMUX

a. ADCSRA ( ADC Control and Status Register A)

Register ADCSRA berisi bit-bit yang mengatur nilai  prescaler 

(ADPS2:0), bit aktivasi interupsi selesainya ADC (ADIE), bit penanda (flag)

Page 24: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 24/40

 

selesainya konversi (ADIF), bit aktivasi penyulut otomatis ADC (ADATE), bit

pemulai konversi (ADSC), dan bit aktivasi ADC (ADEN). Gambar 1.13

menunjukkan isi register ADCSRA.

Gambar 1.13.Register ADCSRA

b. SFIOR (Special Function Input/Output Register )

Register SFIOR berisi beberapa bit yang terlibat dalam ADC, dan

beberapa bit yang terlibat dalam fitur lain. Bit-bit yang terlibat dalam ADC

adalah bit-bit pemilih sumber penyulut otomatis (ADTS2:0). Gambar 1.14

menunjukkan isi register SFIOR.

Gambar 1.14.Register SFIOR

c. ADCH ( ADC High-byte data)

Register ADCH berisi data hasil konversi. Bentuk penyajiannya

ditentukan oleh bit ADLAR. Jika dibiarkan bernilai 0 (clear ), register ini berisi

bit MSB dan MSB-1 dari data hasil konversi.

d. ADCL ( ADC Low-byte data)

Register ADCL berisi data hasil konversi. Bentuk penyajiannya

ditentukan oleh bit ADLAR. Jika dibiarkan bernilai 0 (clear ), register ini berisi

bit LSB+7 hingga LSB dari data hasil konversi.

Page 25: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 25/40

 

Dalam mengakses ADC, terdapat proses pengaturan register-register I/O

yang terlibat dalam ADC. Proses pengaturan tersebut meliputi :

a. menentukan sumber tegangan referensi

Referensi pada ADC merupakan batas rentang representasi nilai digital hasil

konversi. Hasil konversi pada mode single ended conversion dirumuskan sebagai

berikut :

 REF 

 IN 

V  ADC 

1024⋅

= (2.2)

dengan  IN  V   = tegangan masukan analog pada kanal ADC yang aktif 

 REF V   = tegangan referensi yang dipilih

Ada tiga sumber referensi yang dapat digunakan, dan dipilih dengan mengatur

bit REF1:0 (Reference Selection Bit1:0) pada register ADMUX. Tabel 1.18

menunjukkan pengaturan bit-bit tersebut dan pilihan referensi yang tersedia.

Tabel 1.18. Pemilihan Tegangan Referensi pada ADC

REF1 REF0 Tegangan Referensi yang Dipilih

0 0 Tegangan pada pin AREF

0 1 Tegangan pada pin AVCC, dengan kapasitor

eksternal pada pin AREF

1 0 Dilarang

1 1 Tegangan referensi internal 2,56 V, dengan

kapasitor eksternal pada pin AREF

Page 26: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 26/40

 

 b. menentukan bentuk penyajian data ADC

Bentuk penyajian data pada register ADCL dan ADCH ditentukan oleh bit

ADLAR ( ADC Left Adjusted Result ) pada register ADMUX. Data hasil konversi

memiliki panjang 10 bit, sedangkan setiap register data dapat menampung 8 bit.

Artinya jika sebuah register diisi penuh, maka register lain tidak penuh berisi.

 Jika bit ADLAR dibiarkan tetap ‘0’ (clear ), delapan bit rendah disimpan di

ADCL, dan ADCH sisanya. Dan sebaliknya. Gambar1.15 menunjukkan konfigurasi

bit ADLAR dan pengaruhnya pada register ADCL dan ADCH.

Gambar 1.15.Pengaruh Konfigurasi bit ADLAR pada Register Data ADC

c. 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 1.19 menunjukkan konfigurasi bit-bit

tersebut.

Page 27: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 27/40

 

d. menentukan mode ADC

Mode single conversion atau free running ditentukan dengan menulisi bit

ADATE ( ADC Auto Trigger Enable) pada register ADCSRA. Jika dibiarkan ‘0’

(clear ), maka mode single conversion

Tabel 1.19. Konfigurasi Bit-bit ADMUX4:0

MUX4 MUX3 MUX2 MUX1 MUX0 Kanal yang

Aktif 

0 0 0 0 0 ADC0

0 0 0 0 1 ADC1

0 0 0 1 0 ADC2

0 0 0 1 1 ADC3

0 0 1 0 0 ADC4

0 0 1 0 1 ADC5

0 0 1 1 0 ADC6

0 0 1 1 1 ADC7

yang dijalankan. Apabila diberi logika ‘1’ (set ), ADC beraksi dalam mode free

running. Sebagai catatan, register SFIOR dibiarkan apa adanya (default setting).

Apabila ADC diinginkan disulut oleh sumber lain, maka bit-bit ADTS2:0 ( ADC

  Auto Trigger Source2:0) di register SFIOR harus diberi nilai. Tabel 1.20

menunjukkan konfigurasi bit-bit pemilih sumber penyulut ADC.

Tabel 1.20. Konfigurasi Bit-bit ADTS2:0

Page 28: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 28/40

 

ADTS2 ADTS1 ADTS0 Sumber Penyulut

0 0 0 Mode free running

0 0 1  Analog Comparator 

0 1 0 Sumber interupsi eksternal INT0

0 1 1 Compare match pada Timer/Counter0

1 0 0 Limpahan (overflow) Timer/Counter0

1 0 1 Compare match B pada Timer/Counter1

1 1 0 Limpahan (overflow) Timer/Counter1

1 1 1 Rekam kejadian (capture event ) pada

Timer/Counter1

e. menentukan prescaler (clock ADC)

Prescaler  merupakan faktor pembagi yang diterapkan pada clock 

mikrokontroler agar untai successive approximation ADC mampu menerima

clock yang cukup sehingga data hasil konversi cukup valid. Untuk ketelitian ADC

10 bit, rentang frekuensi clock  yang diperbolehkan adalah 50 kHz hingga 200

kHz. Frekuensi clock yang lebih tinggi dapat digunakan jika resolusi lebih rendah

dari 10 bit.

Nilai prescaler ditentukan oleh bit-bit ADPS2:0 ( ADC Prescaler Select Bits2:0).

 Tabel 1.21 menunjukkan konfigurasi bit-bit tersebut.

Tabel 1.21. Konfigurasi Bit-bit ADPS

ADPS2 ADPS

1

ADPS0 Nilai Prescaler 

0 0 0 2

Page 29: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 29/40

 

0 0 1 2

0 1 0 4

0 1 1 8

1 0 0 16

1 0 1 32

1 1 0 64

1 1 1 128

f. inisialisasi ADC

Untuk mengaktifkan ADC, bit ADEN ( ADC Enable) harus diberi logika ‘1’. 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 faktor pengali hasil konversi terendah 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 

Page 30: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 30/40

 

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

akurasi absolut sebesar ±2 LSB.

1.10.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), serta autoreload 

timer (Clear Timer on Compare/CTC). Dengan lebar 16 bit, Timer/Counter1 dapat

digunakan secara fleksibel untuk berbagai tujuan yang berkaitan dengan waktu dan

pembangkit gelombang.

Register-regiser yang terlibat pada operasi Timer/Counter1 antara lain :

a. TCCR1A (Timer/Counter Control Register A)

Register TCCR1A berisi bit-bit yang menentukan mode pembangkitan

gelombang (WGM11:0), bit-bit yang memaksa keadaan Compare Match (FOC1A,

FOC1B), serta bit-bit yang mengatur perubahan keadaan pin OC1A:B saat terjadi

Compare Match (COM1A1:0, COM1B1:0). Gambar 1.16 menunjukkan isi register

 TCCR1A.

Gambar 1.16.Register TCCR1A

Page 31: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 31/40

 

b. TCCR1B (Timer/Counter Control Register B)

Register TCCR1B berisi bit-bit yang menentukan sumber clock  yang

digunakan Timer/Counter1,  bit-bit yang menentukan mode pembangkitan

gelombang (WGM13:2), bit yang menentukan tepi mana pada pin ICP1 yang

digunakan untuk menyulut perekam kejadian (ICES1), serta bit yang mengatur

aktivasi penghilang derau pada mode Input Capture (ICNC1). Gambar 1.17

menunjukkan isi register TCCR1B.

Gambar 1.17.Register TCCR1B

c. TCNT1H (Timer/Counter1 High-byte) dan TCNT1L (Timer/Counter1 Low-byte)

Kedua register ini berisi nilai Timer/Counter1, seperti ditunjukkan pada

Gambar 1.18. Operasi baca (read ) maupun tulis (write) dapat diterapkan pada

kedua register ini.

Gambar 1.18.Register TCNT1H dan TCNT1L

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

(Output Compare Register 1 B High-byte/Low-byte)

Page 32: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 32/40

 

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 1.19 menunjukkan

isi register-register tersebut.

Gambar 1.19.Register OCR1AH/L dan OCR1BH/L

e. 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 1.20 menunjukkan isi register

ICR1H/L.

Gambar 1.20. Register ICR1H/L

f. TIMSK (Timer/Counter Interrupt Mask Register )

Page 33: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 33/40

 

Register TIMSK mempunyai tugas khusus yang berkaitan dengan interupsi

pada Timer/Counter0, Timer/Counter1, dan Timer/Counter2. Bit-bit yang

berkaitan dengan Timer/Counter1 adalah bit aktivasi interupsi karena waktu

melimpah (overflow) register TCNT1 (TOIE1), bit-bit yang mengaktifkan interupsi

karena compare match register OCR1A/B (OCIE1A/B), serta bit aktivasi interupsi

rekam kejadian (TICIE1). Gambar 1.21 menunjukkan isi register TIMSK.

Gambar 1.21.Register TIMSK 

g. TIFR (Timer/Counter Flag Register )

Register TIFR hanya berisi status (flag) khusus yang berkaitan dengan

kejadian pada Timer/Counter0, Timer/Counter1, dan Timer/Counter2. Bit-bit

yang berkaitan dengan Timer/Counter1 antara lain bit yang berlogika ‘1’ saat

terjadi limpahan (overflow) register TCNT1 (TOV1), bit yang berlogika ‘1’ jika

terjadi compare match register OCR1A/B (OCF1A/B), serta bit yang berlogika ‘1’

bila terjadi perekaman kejadian pada pin ICP1 (ICF1). Gambar 1.22

menunjukkan isi register TIFR.

Page 34: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 34/40

 

Gambar 1.22.Register TIFR

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.

 Terdapat 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 16 bit. Dalam mode PWM,

nilai register OCR1A/B ini yang 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 di sini 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 mode yang lain,

Timer/Counter1 akan mencacah turun ketika terjadi limpahan, sehingga segitiga

berbentuk sama kaki dengan puncak pada nilai TOP. Perbedaan utama pada mode

PCPWM dan PFCPWM adalah waktu perbaruan nilai OCR1A/B. Mode PCPWM

memperbarui OCR1A/B saat nilai TOP, sedangkan pada PFCPWM saat nilai BOTTOM.

Page 35: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 35/40

 

Gambar 1.23 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 terhadap periode PWM disebut duty cycle, yang nilainya

maksimal 100 %.

Gambar 1.23. Fast Pulse Width Modulation 

Dalam mengakses PWM, terdapat proses pengaturan register-register I/O

yang terlibat. Proses pengaturan tersebut meliputi :

a. menentukan aksi terhadap pin OC1A/B saat compare match

OCR1A

TCNT1

PWM pada

 

T PWM

t

t

t ON

t OFF

nilai maks (TOP) TCNT1

Page 36: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 36/40

 

Aksi yang dimaksud adalah inverting atau non-inverting pada keluaran

OC1A/B. Jika diatur inverting, maka waktu ON adalah ketika OCR1A lebih rendah

daripada nilai TCNT1. Aksi non-inverting menyebabkan aksi yang berlawanan.

Gambar 1.24 menunjukkan mode inverting dan non-inverting. Aksi tersebut

ditentukan oleh bit COM1A1:0 (Compare Output Mode for Channel A) dan bit

COM1B1:0 (Compare Output Mode for Channel B) pada register TCCR1A. Tabel

2.5 menunjukkan konfigurasi bit-bit tersebut.

Gambar 1.24.Mode Inverting dan Non-Inverting

b. menentukan jenis gelombang yang dibangkitkan

 Tergantung pada bit-bit WGM13:0 (Waveform Generation Mode 13:0)

yang sebagian terletak di register TCCR1A dan sebagian lagi di register TCCR1B,

unit Timer/Counter1 dapat menghasilkan beberapa macam bentuk gelombang.

Mode operasi ini ditunjukkan pada Tabel1.22.

Page 37: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 37/40

 

Tabel 1.22. Konfigurasi Bit-bit COM1A1:0 dan COM1B1:0 pada Mode FPWM

COM1A1

/

COM1B1

COM1A0/

COM1B0

Penjelasan

0 0 Operasi port normal, pin OC1A/OC1B tidak

berfungsi

0 1 Balik (toggle) kondisi logika pin OC1A saat

compare match, dan OC1B tidak berfungsi.

Pengaturan tersebut hanya berlaku jika nilai

bit WGM13:0 = 15 (0b1111). Jika tidak,

pengaturan sama dengan operasi portnormal, pin OC1A/OC1B tidak berfungsi

1 0 Logika ‘0’ (clear ) saat compare match, logika

‘1’ (set ) saat mencapai TOP (non-inverting)

1 1 Logika ‘1’ (set ) saat compare match, logika

‘0’ (clear ) saat mencapai TOP (inverting)

Tabel 1.23. Konfigurasi Bit-bit WGM13:0

Mod

e

WGM

13

WGM

12

WGM

11

WGM

10

Mode

Operasi

Nilai

Maks

(TOP)

Pembaru

an OCR1x

saat

TOV1

set 

saat

0 0 0 0 0 Normal $FFFF segera MAX

1 0 0 0 1 PCPWM,

8 bit

$00FF TOP BOTTOM

2 0 0 1 0 PCPWM,

9 bit

$01FF TOP BOTTOM

3 0 0 1 1 PCPWM,

10 bit

$03FF TOP BOTTOM

4 0 1 0 0 CTC OCR1A segera MAX

Page 38: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 38/40

 

5 0 1 0 1 FPWM,

8 bit

$00FF TOP TOP

6 0 1 1 0 FPWM,

9 bit

$01FF TOP TOP

7 0 1 1 1 FPWM,

10 bit

$03FF TOP TOP

8 1 0 0 0 PFCPWM ICR1 BOTTOM BOTTOM

9 1 0 0 1 PFCPWM OCR1A BOTTOM BOTTOM

10 1 0 1 0 PCPWM ICR1 TOP BOTTOM

11 1 0 1 1 PCPWM OCR1A TOP BOTTOM

12 1 1 0 0 CTC ICR1 segera MAX

13 1 1 0 1 Dilarang - - -

14 1 1 1 0 FPWM ICR1 TOP TOP

15 1 1 1 1 FPWM OCR1A TOP TOP

c. menentukan sumber dan frekuensi clock yang digunakan 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 1.24 menunjukkan pilihan

frekuensi yang tersedia dan bit-bit yang menentukannya.

Tabel 1.24. Konfigurasi Bit-bit CS12:0

CS12 CS11 CS10 Penjelasan

0 0 0 Tanpa sumber clock (Timer/Counter1 berhenti)

0 0 1 clkI/O/1 (tanpa prescale)

0 1 0 clkI/O/8

0 1 1 clkI/O/64

Page 39: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 39/40

 

1 0 0 clkI/O/256

1 0 1 clkI/O/1024

1 1 0 Sumber clock eksternal di pin T1, saat transisi turun(falling edge)

1 1 1 Sumber clock eksternal di pin T1, saat transisi naik

(rising edge)

d. menentukan nilai OCR1A/B sebagai pemodulasi

Untuk memperoleh duty cycle yang diinginkan, pengguna harus

menentukan nilai OCR1A/B. Dalam mode non-inverting, semakin besar nilai

OCR1A/B, semakin 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).

e. menentukan nilai prescaler 

Nilai  prescaler  merupakan pembagi langsung frekuensi sistem, yang

bersama-sama dengan nilai TOP akan menentukan frekuensi PWM. Persamaan

(2.3) menunjukkan perhitungan untuk menentukan frekuensi PWM pada mode

FPWM.

Page 40: At Mega 8535

5/13/2018 At Mega 8535 - slidepdf.com

http://slidepdf.com/reader/full/at-mega-8535-55a752edb75bf 40/40

 

( )( )TOP  N 

  f    f  

XTAL

 FPWM +

=

1(2.3)