BAB II LANDASAN TEORI 2.1 Microcontroller ATmega32

21
5 BAB II LANDASAN TEORI 2.1 Microcontroller ATmega32 Microcontroller dan microprocessor mempunyai beberapa perbedaan. Jika ditelaah dari artinya maka, microprocessor adalah pengolah mikro sedangkan microcontroller adalah pengendali mikro. Dari pengertian diatas sebenarnya sudah bisa diketahui perbedaannya dimana microprocessor yang terdapat pada komputer seperti Intel Pentium, hanya dapat bekerja apabila terdapat komponen pendukung seperti RAM (Random Access Memory), hard disk, motherboard, perangkat I/O, dan sebagainya. Komponen-komponen tersebut diperlukan karena microprocessor hanya dapat melakukan pengolahan data, namun tidak dapat menyimpan data, menyimpan program, menerima masukan dari user secara langsung, ataupun menyampaikan data hasil pemrosesan ke keluaran. Berbeda dengan microprocessor, microcontroller sudah dilengkapi dengan komponen- komponen yang dikemas dalam satu chip seperti memori, perangkat I/O, timer, ADC (Analog to Digital Converter), dan lain-lain. Hal ini membuat microcontroller lebih tepat untuk digunakan pada aplikasi embedded system. (Putra, 2010). Microcontroller AVR (Alf and Vegard’s Risc processor) standar memiliki arsitektur 8bit, dimana semua instruksi dikemas dalam kode 16-bit, dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC (Reduced Instruction Set Computing). AVR dapat dikelompokkan menjadi empat

Transcript of BAB II LANDASAN TEORI 2.1 Microcontroller ATmega32

5

BAB II

LANDASAN TEORI

2.1 Microcontroller ATmega32

Microcontroller dan microprocessor mempunyai beberapa perbedaan. Jika

ditelaah dari artinya maka, microprocessor adalah pengolah mikro sedangkan

microcontroller adalah pengendali mikro. Dari pengertian diatas sebenarnya

sudah bisa diketahui perbedaannya dimana microprocessor yang terdapat pada

komputer seperti Intel Pentium, hanya dapat bekerja apabila terdapat komponen

pendukung seperti RAM (Random Access Memory), hard disk, motherboard,

perangkat I/O, dan sebagainya. Komponen-komponen tersebut diperlukan karena

microprocessor hanya dapat melakukan pengolahan data, namun tidak dapat

menyimpan data, menyimpan program, menerima masukan dari user secara

langsung, ataupun menyampaikan data hasil pemrosesan ke keluaran. Berbeda

dengan microprocessor, microcontroller sudah dilengkapi dengan komponen-

komponen yang dikemas dalam satu chip seperti memori, perangkat I/O, timer,

ADC (Analog to Digital Converter), dan lain-lain. Hal ini membuat

microcontroller lebih tepat untuk digunakan pada aplikasi embedded system.

(Putra, 2010).

Microcontroller AVR (Alf and Vegard’s Risc processor) standar memiliki

arsitektur 8bit, dimana semua instruksi dikemas dalam kode 16-bit, dan sebagian

besar instruksi dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC

(Reduced Instruction Set Computing). AVR dapat dikelompokkan menjadi empat

6

kelas, yaitu keluarga ATtiny, keluarga ATSOSxx, keluarga ATmega, dan

AT86RFxx. Pada dasarnya, yang membedakan masing-masing kelas adalah

memori, anda dapat mencoba ATmega8 atau ATtiny2313 dengan ukuran Flash

Memory 2KB dengan dua input analog. Berikut adalah fitur yang terdapat pada

microcontroller ATmega32 yaitu:

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

2. ADC (Analog to Digital Converter) 10 bit sebanyak 8 channel.

3. Tiga buah Timer/Counter.

4. CPU yang terdiri dari 32 buah register.

5. Memiliki 131 instruksi yang membutuhkan 1 siklus clock.

6. Watchdog timer dengan osilator internal.

7. Dua buah timer/counter 8 bit, satu buah timer/counter 16 bit.

8. Tegangan operasi 2.7 V – 5.5 V pada ATmega 16L.

9. Internal SRAM sebesar 1 KB.

10. Memori flash sebesar 32KB dengan kemampuan Read While Write.

11. Unit interupsi internal dan external.

12. Port antarmuka SPI.

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

14. Antarmuka komparator analog.

15. 4 channel PWM.

16. 32x8 general purpose register.

17. Hampir mencapai 16 MIPS pada Kristal 16 MHz.

18. Port USART yang dapat diprogram untuk komunikasi serial.

7

2.1.1. Konfigurasi PIN

Konfigurasi pin microcontroller ATmega32 dan bentuk modul minimum

system ATmega32 terdapat pada Gambar 2.1 dan Gambar 2.2.

Gambar 2.1 Modul Minimum System ATmega32

(Sumber: Innovative Electronics, 2011)

Gambar 2.2 Konfigurasi pin microcontroller ATmega32. (Sumber: ATMEL, 2003)

Fungsi umum dari susunan pin microcontroller ATmega32 adalah sebagai

berikut:

1. VCC merupakan catu daya positif.

2. GND sebagai pin ground catu daya negatif.

8

3. Port A (PAO..PA7) merupakan pin I/O dua arah dan dapat diprogram

sebagai pin dari ADC.

4. Port B (PBO..PB7) merupakan pin I/O dua arah dan fungsinya sebagai,

timer/counter, komparator analog, dan SPI.

5. Port C (PCO..PC7) merupakan pin I/O dua arah dan fungsinya sebagai,

TWI, komparator analog, dan timer osilator.

6. Port D (PDO..PD7) merupakan pin I/O dua arah dan fungsinya sebagai,

komparator analog, interupsi eksternal dan komunikasi serial.

7. Reset merupakan pin yang digunakan untuk me-reset microcontroller.

8. XTAL 1 dan XTAL 2 sebagai pin clock eksternal. Pada microcontroller

membutuhkan sumber (clock) agar dapat mengeksekusi instruksi yang ada

di memori. Semakin tinggi nilai kristalnya, maka semakin cepat

microcontroller tersebut.

9. AVCC sebagai pin tegangan untuk ADC.

10. AREF sebagai pin tegangan referensi.

9

Gambar 2.3 Diagram blok Atmega32 (Sumber: ATMEL, 2003)

Pada Gambar 2.3 dalam datasheet didasarkan pada simulasi dan

characterization microcontrollers AVR, nilai tegangan pada ATmega32 adalah

CMOS 8-bit daya rendah. Maka microcontroller akan meningkatkan Arsitektur

RISC, dengan mengeksekusi instruksi dalam satu siklus. ATmega32 mencapai

throughputs mendekati 1 MIPS per MHz memungkinkan system ini untuk

mengoptimalkan konsumsi daya pada pengolahan kecepatan. (ATMEL, 2003).

10

2.2 Media Penyimpanan EEPROM AT24C16A

EEPROM AT24C16A adalah media penyimpanan eksternal yang

memiliki kapasitas sebesar 524.288 bit atau 65.536 bit. Memori ini cukup efisien

dalam penggunaan pin dengan microcontroler. AT24C16 dikenal dengan nama 2-

wire serial EEPROM menggunakan teknologi I2C.

2.2.1 Konfigurasi PIN

AT24C01A/02/04/08A/16A menyediakan bit 1024/2048/4096/8192/16384

seri elektrik dihapus dan diprogram Read Only Memory (EEPROM) disusun

sebagai 128/256/512/1024/2048 per-kata 8 bit. Alat ini dioptimalkan untuk

digunakan dalam banyak aplikasi dimana daya rendah tegangan operasi sangat

penting. AT24C01A/02/04/08A/16A tersedia dalam 8 PDIP, 8 Jedec Soic, 8

alamat, 5 SOT23 (AT24C01A/AT24C02/AT24C04), 8 TSSOP, dan 8 BGA2

paket dan diakses melalui dua jalur serial. Selain itu, (EEPROM) mempunyai catu

daya 2.7V (2.7V ke 5.5V) dan 1.8V (1.8V untuk 5.5V).

Gambar 2.4 Konfigurasi pin AT24C16 (Sumber: ATMEL, 2005)

Pada Gambar 2.4 fungsi umum dari susunan pin EEPROM AT24C16

adalah sebagai berikut:

1. Serial Clock (SCL)

2. Serial Data (SDA)

3. Pengalamatan (A2, A1, A0A)

11

4. AT24C04 menggunakan input pin A1 dan pin A2

5. AT24C08A hanya menggunakan input pin A2. Pin A0 dan pin A1 tidak

terhubung.

6. AT24C16A tidak menggunakan alamat pin A0, pin A1, dan pin A2.

7. Perlindungan penulisan (WAP)T: 24C01A/02/04/08A/16A digunakan untuk

menyediakan perlindungan data. Untuk melindungi data, pada format tulis dan

baca, maka EEPROM harus terhubung ke pin (GND). Ketika menulis data,

maka EEPROM harus terhubung ke pin (VCC) untuk mengaktifkan

perlindungan penulisan data tersebut.

Gambar 2.5 Diagram blok AT24C16A (Sumber: ATMEL, 2005)

Pada Gambar 2.5 AT24C16A memiliki 2 pin SCL (serial clock) dan SDA

(serial data). Operasi pada I2C, memori ini juga memiliki pin untuk tujuan

pengalamatan yaitu A1 dan A0 sehingga memungkinkan untuk penggunaan secara

paralel hingga 4 unit sekaligus. AT24C16 dapat dipasang secara paralel dengan

menggunakan jalur I2C, untuk mendapatkan hasil secara maksimal sebesar 256

kByte. Memori ini juga dilengkapi dengan pengaman bila terjadi kesalahan

12

prosedur yang dapat menghilangkan isinya, yaitu memiliki pin WP (write

protect). Jika pin ini dihubungkan ke (VCC) maka operasi tulis akan diabaikan.

Memori AT24C16A memiliki alamat internal 1010H. Pada saat

melakukan operasi pengalamatan pada LSB harus ditambahkan sesuai dengan pin

A1 dan A0. Format pengalamatan unit memori ini dapat dilihat pada Gambar 2.6.

Gambar 2.6 Format pengalamatan memori (Sumber: ATMEL, 2005) AT24C16A dapat dijalankan untuk operasi baca maupun tulis. Pada

operasi menulis disediakan 2 mode, yaitu byte write atau penulisan isi memori

per-byte dan page write yaitu penulisan memori per halaman dengan jumlah data

tiap halaman adalah 128 byte.

2.3 American Standard Codes for International Interchange (ASCI)

ASCII singkatan dari American Standard Code for Informasi Interchange.

Komputer hanya dapat memahami nomor, maka kode ASCII adalah representasi

numerik dari karakter seperti 'a', '@'. ASCII dikembangkan dengan karakter non-

printing. Karakter ASCII yang termasuk dalam deskripsi pertama 32 karakter non-

13

printing, ASCII dirancang untuk digunakan dengan teletypes sehingga dapat

ditampilkan dengan penulisan yang tidak jelas. Maka dapat mengkopi file ke

dalam alamat yang ditujukan. Tabel 2.1 kode extended ASCII.

Tabel 2.1 Tabel ASCII

Karakter Nilai Unicode

(heksadesimal) Nilai ANSI

ASCII

(desimal)

Keterangan

NUL 0000 0 Null (tidak tampak)

SOH 0001 1 Start of heading (tidak tampak) STX 0002 2 Start of text (tidak tampak)

ETX 0003 3 End of text (tidak tampak)

EOT 0004 4 End of transmission (tidak tampak)

ENQ 0005 5 Enquiry (tidak tampak)

ACK 0006 6 Acknowledge (tidak tampak)

BEL 0007 7 Bell (tidak tampak) BS 0008 8 Menghapus satu karakter di

belakang kursor (Backspace) HT 0009 9 Horizontal tabulation

LF 000A 10 Pergantian baris (Line feed)

VT 000B 11 Tabulasi vertikal

FF 000C 12 Pergantian baris (Form feed)

CR 000D 13 Pergantian baris (carriage return)

SO 000E 14 Shift out (tidak tampak)

SI 000F 15 Shift in (tidak tampak) DLE 0010 16 Data link escape (tidak tampak)

DC1 0011 17 Device control 1 (tidak tampak)

DC2 0012 18 Device control 2 (tidak tampak)

DC3 0013 19 Device control 3 (tidak tampak)

DC4 0014 20 Device control 4 (tidak tampak)

NAK 0015 21 Negative acknowledge (tidak tampak)

SYN 0016 22 Synchronous idle (tidak tampak)

ETB 0017 23 End of transmission block (tidak tampak)

CAN 0018 24 Cancel (tidak tampak)

EM 0019 25 End of medium (tidak tampak)

SUB 001A 26 Substitute (tidak tampak)

ESC 001B 27 Escape (tidak tampak)

FS 001C 28 File separator

GS 001D 29 Group separator RS 001E 30 Record separator

US 001F 31 Unit separator

SP 0020 32 Spasi

! 0021 33 Tanda seru (exclamation)

14

" 0022 34 Tanda kutip dua

# 0023 35 Tanda pagar (kres)

$ 0024 36 Tanda mata uang dolar % 0025 37 Tanda persen

& 0026 38 Karakter ampersand (&)

‘ 0027 39 Karakter Apostrof

( 0028 40 Tanda kurung buka

) 0029 41 Tanda kurung tutup

* 002A 42 Karakter asterisk (bintang)

+ 002B 43 Tanda tambah (plus) , 002C 44 Karakter koma

- 002D 45 Karakter hyphen (strip)

. 002E 46 Tanda titik

/ 002F 47 Garis miring (slash)

0 0030 48 Angka nol

1 0031 49 Angka satu

2 0032 50 Angka dua

3 0033 51 Angka tiga

4 0034 52 Angka empat

5 0035 53 Angka lima

6 0036 54 Angka enam

7 0037 55 Angka tujuh

8 0038 56 Angka delapan

9 0039 57 Angka sembilan

: 003A 58 Tanda titik dua

; 003B 59 Tanda titik koma

< 003C 60 Tanda lebih kecil

= 003D 61 Tanda sama dengan

> 003E 62 Tanda lebih besar

? 003F 63 Tanda tanya

@ 0040 64 A keong (@)

A 0041 65 Huruf latin A kapital

B 0042 66 Huruf latin B kapital

C 0043 67 Huruf latin C kapital

D 0044 68 Huruf latin D kapital

E 0045 69 Huruf latin E kapital

F 0046 70 Huruf latin F kapital G 0047 71 Huruf latin G kapital

H 0048 72 Huruf latin H kapital

I 0049 73 Huruf latin I kapital

J 004A 74 Huruf latin J kapital

K 004B 75 Huruf latin K kapital

L 004C 76 Huruf latin L kapital M 004D 77 Huruf latin M kapital

N 004E 78 Huruf latin N kapital

O 004F 79 Huruf latin O kapital

15

P 0050 80 Huruf latin P kapital

Q 0051 81 Huruf latin Q kapital

R 0052 82 Huruf latin R kapital S 0053 83 Huruf latin S kapital

T 0054 84 Huruf latin T kapital

U 0055 85 Huruf latin U kapital

V 0056 86 Huruf latin V kapital

W 0057 87 Huruf latin W kapital

X 0058 88 Huruf latin X kapital

Y 0059 89 Huruf latin Y kapital Z 005A 90 Huruf latin Z kapital

[ 005B 91 Kurung siku kiri

\ 005C 92 Garis miring terbalik (backslash)

] 005D 93 Kurung sikur kanan

^ 005E 94 Tanda pangkat

_ 005F 95 Garis bawah (underscore)

` 0060 96 Tanda petik satu

A 0061 97 Huruf latin a kecil

B 0062 98 Huruf latin b kecil

C 0063 99 Huruf latin c kecil

D 0064 100 Huruf latin d kecil

E 0065 101 Huruf latin e kecil

F 0066 102 Huruf latin f kecil

G 0067 103 Huruf latin g kecil

H 0068 104 Huruf latin h kecil

I 0069 105 Huruf latin i kecil

J 006A 106 Huruf latin j kecil

K 006B 107 Huruf latin k kecil

L 006C 108 Huruf latin l kecil

M 006D 109 Huruf latin m kecil

N 006E 110 Huruf latin n kecil

O 006F 111 Huruf latin o kecil

P 0070 112 Huruf latin p kecil

Q 0071 113 Huruf latin q kecil

R 0072 114 Huruf latin r kecil

S 0073 115 Huruf latin s kecil

T 0074 116 Huruf latin t kecil U 0075 117 Huruf latin u kecil

V 0076 118 Huruf latin v kecil

W 0077 119 Huruf latin w kecil

X 0078 120 Huruf latin x kecil

Y 0079 121 Huruf latin y kecil

Z 007A 122 Huruf latin z kecil { 007B 123 Kurung kurawal buka

¦ 007C 124 Garis vertikal (pipa)

} 007D 125 Kurung kurawal tutup

16

~ 007E 126 Karakter gelombang (tilde)

DEL 007F 127 Delete

0080 128 Dicadangkan 0081 129 Dicadangkan

0082 130 Dicadangkan

0083 131 Dicadangkan

IND 0084 132 Index

NEL 0085 133 Next line

SSA 0086 134 Start of selected area

ESA 0087 135 End of selected area

0088 136 Character tabulation set

0089 137 Character tabulation with justification

008A 138 Line tabulation set

PLD 008B 139 Partial line down

PLU 008C 140 Partial line up

008D 141 Reverse line feed

SS2 008E 142 Single shift two

SS3 008F 143 Single shift three

DCS 0090 144 Device control string

PU1 0091 145 Private use one

PU2 0092 146 Private use two

STS 0093 147 Set transmit state

CCH 0094 148 Cancel character

MW 0095 149 Message waiting

0096 150 Start of guarded area

0097 151 End of guarded area

0098 152 Start of string

0099 153 Dicadangkan

009A 154 Single character introducer

CSI 009B 155 Control sequence introducer

ST 009C 156 String terminator

OSC 009D 157 Operating system command

PM 009E 158 Privacy message

APC 009F 158 Application program command

00A0 160 Spasi yang bukan pemisah kata

¡ 00A1 161 Tanda seru terbalik

¢ 00A2 162 Tanda sen (Cent) £ 00A3 163 Tanda Poundsterling

¤ 00A4 164 Tanda mata uang (Currency)

¥ 00A5 165 Tanda Yen

¦ 00A6 166 Garis tegak putus-putus (broken

bar)

§ 00A7 167 Section sign

¨ 00A8 168 Diaeresis

© 00A9 169 Tanda hak cipta (Copyright)

ª 00AA 170 Feminine ordinal indicator

17

« 00AB 171 Left-pointing double angle

quotation mark

¬ 00AC 172 Not sign

00AD 173 Tanda strip (hyphen)

® 00AE 174 Tanda merk terdaftar

¯ 00AF 175 Macron

° 00B0 176 Tanda derajat

± 00B1 177 Tanda kurang lebih (plus-minus)

² Kodok 178 Tanda kuadrat (pangkat dua)

³ 00B3 179 Tanda kubik (pangkat tiga)

´ 00B4 180 Acute accent

µ 00B5 181 Micro sign

¶ 00B6 182 Pilcrow sign

· 00B7 183 Middle dot

(Sumber: lookuptables, 2010)

2.4 Liqiud Cristal Display (LCD)

Gambar 2.7 Bentuk fisik LCD (Sumber: Hawkins, 2012)

Pada Gambar 2.7 LCD merupakan salah satu komponen elektronika yang

berfungsi untuk menampilkan data, baik karakter, huruf ataupun grafik. Di

pasaran LCD sudah tersedia dalam bentuk modul yaitu layar LCD beserta

rangkaian pendukungnya termasuk ROM dan lain-lain. LCD mempunyai pin

DATA, kontrol catu daya, dan pengatur kontras tampilan seperti pada Tabel 2.2.

Tabel 2.2 Konfigurasi pin dari LCD 2x16 M1632

Nomor PIN Nama Fungsi Deskripsi

1. Vss Power GND

2. Vdd Power + 5 V

3. Vee Contras Adj. (-2) 0 – 5 V

18

4. RS Command Register Select

5. R atau W Command Read atau Write

6. E Command Enable (Strobe)

7. D0 I atau O Data LSB

8. D1 I atau O Data

9. D2 I atau O Data

10. D3 I atau O Data

11. D4 I atau O Data

12. D5 I atau O Data

13. D6 I atau O Data

14. D7 I atau O Data MSB

(Sumber: Hawkins, 2012)

Gambar 2.8 Konfigurasi dari LCD (Sumber: Hawkins, 2012)

Fungsi dari pin-pin pada konfigurasi dari LCD yaitu:

1. Pin DATA dapat dihubungkan dengan bus data dari rangkaian lain seperti

microcontroller dengan lebar data 8 bit.

2. Pin RS (Register Select) berfungsi sebagai indikator atau yang

menentukan jenis data yang masuk, apakah data atau perintah. Logika low

menunjukan yang masuk adalah perintah, sedangkan logika high

menunjukan data.

3. Pin R atau W (Read Write) berfungsi sebagai instruksi pada modul jika

low tulis data, sedangkan high baca data.

4. Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.

Data Bus Control Supply

D0 D1 D2 D3 D4 D5 D6 D7 RS R atau W E VCC Gnd VLCD

19

5. Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin

ini dihubungkan dengan variabel resistor 5 kOhm, jika tidak digunakan

dihubungkan ke ground, sedangkan tegangan catu daya ke LCD sebesar 5

Volt.

LCD telah dilengkapi dengan microcontroller HD44780 yang berfungsi

sebagai pengendali. LCD ini juga mempunyai CGROM (Character Generator

Read Only Memory), CGRAM (Character Generator Random Access Memory)

dan DDRAM (Display Data Random Access Memory).

2.4.1. Display Data Random Access Memory (DDRAM)

DDRAM merupakan memori tempat karakter yang akan ditampilkan

berada. Contoh, untuk karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka

karakter tersebut akan tampil pada baris pertama dan kolom pertama dari LCD.

Apabila karakter tersebut ditulis di alamat 40, maka karakter tersebut akan tampil

pada baris kedua kolom pertama dari LCD.

2.4.2. Character Generator Random Access Memory (CGRAM)

CGRAM adalah memori untuk menggambarkan pola sebuah karakter

dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. Namun

memori ini akan hilang saat power supply tidak aktif, sehingga pola karakter akan

hilang.

2.4.3. Character Generator Read Only Memory (CGROM)

CGROM adalah memori untuk menggambarkan pola sebuah karakter

dimana pola tersebut sudah ditentukan secara permanen dari HD44780, sehingga

pengguna tidak dapat mengubahnya. Karena ROM bersifat permanen, maka pola

karakter tersebut tidak akan hilang walaupun sumber tegangan tidak aktif.

20

Pada Tabel 2.3 terlihat pola-pola karakter yang tersimpan dalam lokasi-

lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H

yang tersimpan pada DDRAM, maka HD44780 akan mengambil data di alamat

41H (0100 0001) yang ada pada CGROM yaitu pola karakter A.

Tabel 2.3 Karakter Pada CGROM M1632 LCD

(Sumber: Hawkins, 2012)

2.5 Inter Integrated Circuit (I2C)

Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi

serial dua arah menggunakan dua saluran yang didesain khusus untuk mengirim

maupun menerima data. I2C merupakan bus standar yang didesain oleh Philips

pada awal tahun 1980-an untuk memudahkan komunikasi antar komponen pada

suatu rangkaian. I2C merupakan singkatan dari Inter IC atau komunikasi antar IC,

sering disebut juga IIC atau I2C. Pada awalnya, kecepatan komunikasi

maksimumnya atur pada 100kbps karena pada awalnya kecepatan tinggi belum

dibutuhkan pada transmisi data. Untuk yang membutuhkan kecepatan tinggi, ada

mode 400kbps dan sejak 1998 ada mode kecepatan tinggi 3,4Mbps. I2C tidak

hanya digunakan pada komponen yang terletak pada satu board, tetapi juga

digunakan untuk menghubungkan komponen yang terhubung melalui kabel.

21

Kesederhanaan dan fleksibilitas merupakan ciri utama dari I2C, kedua hal

tersebut membuat bus ini mampu menarik penggunaanya dalam berbagai aplikasi.

Fitur-fitur signifikan dari bus ini adalah :

1. Hanya 2 jalur/kabel yang dibutuhkan.

2. Tidak ada aturan baud rate yang ketat seperti pada RS232, di bus ini IC yang

berperan sebagai master akan mengeluarkan bus clock.

3. Hubungan master/slave berlaku antara komponen satu dengan yang lain, setiap

perangkat yang terhubung dengan bus mempunyai alamat unik yang diset

melalui software.

4. IC yang berperan sebagai master mengontrol seluruh jalur komunikasi dengan

mengatur clock dan menentukan siapa yang menggunakan jalur komunikasi.

Jadi IC yang berperan sebagai slave tidak akan mengirim data kalau tidak

diperintah oleh Master.

5. I2C merupakan bus yang mendukung multi-master yang mempunyai

kemampuan arbitrasi dan pendeteksi tabrakan data.

2.5.1. Mekanisme Hubungan Antar Komponen

I2C hanya membutuhkan dua jalur/kabel yaitu SDA dan SCL. SCL/serial

clock merupakan jalur clock, digunakan untuk mensinkronkan data transfer antara

Master dan Slave dalam I2C bus. SDA/Serial Data merupakan jalur komunikasi

data dua arah. SDA dan SCL dihubungkan ke seluruh komponen dalam bus I2C.

Selain kedua jalur/kabel masih ada jalur/kabel ketiga yaitu Ground/0 volt serta

jalus Vcc/5v untuk menghidupkan perangkat/komponen. Baik SDA maupun SCL

merupakan tipe open drain. Maksud dari open drain adalah chip bisa membuat

outputnya berlogika 0, tapi tidak bisa membuat outputnya berlogika 1. Sehingga

22

agar mampu memberikan output 1, diperlukan pull up resistor yang dihubungkan

ke suplai 5v. Jadi kita harus memberikan resistor pull up pada jalur SDA dan SCL

yang ujung satunya dihubungkan ke 5v. Kita hanya memerlukan 1 buah resistor

per jalur untuk seluruh I2C bus, tidak perlu satu-persatu untuk tiap perangkat.

Ilustrasinya adalah terlihat pada Gambar 2.9.

Gambar 2.9 Ilustrasi SCL dan SDA (Sumber: I2C_Tutoria, 2000)

Dari referensi, didapat bahwa ada yang memakai resistor dengan nilai

mulai 1k8 (1800 Ohm) sampai 47k (47000 Ohm). Untuk penulisan, berdasar

pengalaman cenderung memilih nilai 4k7 (4700 Ohm). Pemilihan nilai lain pun

tidak masalah, asal masih dalam rentang tersebut karena berdasar pada spesifikasi

bus I2C yang dirilis oleh NXP pada 2001, pull up device tergantung pada bus

load. Jika bus load mencapai 200pF, maka pull up bisa berupa resistor, jika bus

load antara 200-400pF (fast mode) maka pull up device bisa berupa sumber arus

(min 3mA) atau switched resistor circuit. Jika tidak memberikan pull up device

(resistor/sumber arus) maka jalur SDA dan SCL akan selalu berlogika rendah,

hampir 0 volt, dan I2C bus tidak dapat bekerja.

Rumus hukum Ohm :

1. Untuk mengukur besar kuat arus listrik dengan rumus I = Q T

23

keterangan :

I = nilai arus

Q = nilai muatan listrik

T = nilai waktu

2. Untuk mengukur besar tegangan listrik dengan rumus V = I * R keterangan :

V = nilai tegangan

I = nilai arus

R = nilai resistansi

Diketahui nilai V = 5 volt, nilai R = 4K7 atau (4700 Ohm)

jadi nilai I = V R I = 5 4700 I = 0,00106 A

nilai diubah ke mA I = 1,06 mA

2.5.2. Protokol Fisik I2C

Ketika master (controller) ingin berkomunikasi dengan slave, master akan

mulai mengirim start sequence pada bus I2C. Start sequence adalah salah satu

dari dua sequence spesial pada bus I2C, sequence spesial lainnya adalah stop.

Start sequence dan stop sequence merupakan tahap spesial dimana merupakan

kondisi dimana SDA (jalur data) boleh berubah ketika SCL (jalur clock) dalam

kondisi naik (1). Start sequence menandai awal dari transaksi data dengan

perangkat slave. Stop sequence menandai akhir transaksi data dengan perangkat

slave seperti pada Gambar 2.10.

24

Gambar 2.10 Transaksi pada data SCL dan SDA (Sumber: I2C_Tutoria, 2000)

Data ditransfer dalam rangkaian/sequence 8bit. Bit dikirim lewat jalur

SDA dimulai dengan MSB (Most Significant Bit). Jalur SCL kemudian dipulsakan

naik (1) kemudian turun (0). Tanpa pull-up device, chip tidak bisa mengubah garis

ke kondisi naik (1). Untuk setiap 8 bit yang ditransfer, perangkat penerima data

mengirim balik bit acknowledge (ACK), jadi ada 9 clock SCL untuk tiap transfer

dari 8 bit data. Jika perangkat penerima mengirim balik sebuah low ACK bit

(ACK=0) maka perangkat tersebut telah menerima data dan siap menerima data

berikutnya. Jika perangkat penerima mengirim balik naik ACK bit (ACK=1)

berarti perangkat tersebut tidak bisa lagi menerima data selanjutnya, sehingga

master harus mengakhiri transfer data dengan mengirim stop sequence seperti

pada Gambar 2.11.

Gambar 2.11 Alamat pengiriman pada SCL dan SDA

(Sumber: I2C_Tutoria, 2000)

Kecepatan serial clock (SCL) untuk I2C mencapai 100KHz. Untuk yang

membutuhkan kecepatan tinggi, ada fast mode dimana clock bisa mencapai

400Khz dan sejak 1998 ada mode kecepatan tinggi dimana clock bisa mencapai

3,4MHz. Untuk aplikasi seperti robot dan modul embedded yang non vital

25

biasanya clock yang digunakan masih dibawah 100KHz. Berdasarkan I2C

specification terbaru yang dikeluarkan NXP/Phillips, untuk transmisi data pada

clock diatas 1Mhz dibutuhkan delay beberapa uS diantara setiap byte yang

ditransfer.