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