BAB III PERENCANAAN DAN PEMBUATAN ALAT
3.2 Perencanaan Perangkat Keras (Hardware)
3.3.1 Perencanaan Software untuk Program Utama
28
3.3.3. Perencanaan Software untuk I2C Bus
3.3.3.1. Perencanaan Software untuk I2C Bus LCD
I2C LCD
Kirim Sinyal START
Berhasil
Kirim Address Byte ( 70 H ) ke Accumulator Putar Accumulator ke kiri ( RLC ) 8 kali Data Lengkap 8 bit ? Kirim Sinyal Acknowledge ( ACK )
Kirim Data Byte ke Accumulator Putar Accumulator ke kiri ( RLC ) 8 kali Data Lengkap 8 bit ? Kirim Sinyal Acknowledge ( ACK )
Kirim Sinyal STOP
RET T Y Y T Y T
3.3.3.2. Perencanaan Software untuk I2C Bus Keypad
I2C Keypad
Kirim Sinyal START
Berhasil
Kirim Address Byte ( 73 H ) ke Accumulator Putar Accumulator ke kiri ( RLC ) 8 kali Data Lengkap 8 bit ? Kirim Sinyal Acknowledge ( ACK )
Terima Data Byte
Putar Accumulator ke kiri ( RLC ) 8 kali Data Lengkap 8 bit ? Kirim Sinyal Acknowledge ( ACK )
Kirim Sinyal STOP
RET T Y Y T Y T
30
BAB IV. PRINSIP KERJA DAN PENGUJIAN ALAT
4.1. Prinsip Kerja Alat
4.1.1. Prinsip Kerja AT89C2051 sebagai Master
Adapun sistem yang direncanakan adalah sebuah mikrokontroller AT89C2051 yang bertindak sebagai master yang dihubungkan dengan menggunakan teknologi I2C Bus dengan dua buah PCF8574 (Remote 8-bit
I/O expander for I2C Bus) sebagai komponen bantu dalam pengembangan
portnya. PCF8574 pertama digunakan untuk melayani LCD dan PCF8574 kedua digunakan untuk melayani Keypad Encoder.
Terdapat 2 jenis komunikasi dasar I2C bus yang digunakan dalam pembuatan alat ini, yaitu :
1) Master-transmitter menulis data ke slave-receiver yang teralamati. AT89C2051 sebagai master mengirimkan data dari internal RAM-nya kepada PCF8574 untuk ditampilkan di LCD secara serial menggunakan I2C bus.
2) Master-receiver membaca data dari slave-transmitter yang teralamati. PCF8574 menerima data dari keypad encoder MM74C922 kemudian mengirimkan data kepada AT89C2051 secara serial menggunakan I2C bus.
Setiap IC yang dihubungkan ke I2C bus, dialamatkan secara software sesuai dengan Metode Pengalamatan I2C. Pengalamatan dasar I2C dilakukan dengan mengggunakan Nomor Group dan Nomor Chip dan dijelaskan sebagai berikut:
1) Nomor Group adalah nomor yang diberikan oleh Philips (sebagai pencipta I2C) pada kelompok-kelompok IC I2C. Sebagai contoh nomor group untuk PCF8574 adalah 0100 (biner).
2) Nomor Chip adalah nomor yang diberikan pada masing-masing chip lewat kaki A0..A2 tidak dihubungkan ke kaki IC, tapi dipakai didalam IC untuk menomori register/memori di dalam IC yang bersangkutan.
Setelah Master I2C mengirimkan sinyal START, byte pertama yang dikirim berisi nomor group, nomor chip dan 1 bit lagi sebagai Penentu Arah Data. Mekanisme kerja byte pertama tersebut bisa dijelaskan sebagai berikut:
1) IC pada I2C bus yang mempunyai nomor group sama dengan nomor group dalam byte pertama tersebut akan terpanggil.
2) Berikutnya IC-IC dengan nomor group sama tersebut akan membandingkan nomor chip dalam byte pertama, dalam hal ini ada 2 kemungkinan yaitu:
a) Bagi IC yang mempunyai kaki A0..A2, nomor chip dalam byte pertama tersebut dibandingkan dengan level tegangan kaki A0..A2, bila ternyata sama maka IC bersangkutan akan meneruskan komunikasi melalui I2C bus.
b) Bagi IC yang tidak mempunyai kaki A0..A2, nomor chip dalam byte pertama dipakai untuk menomori register/memori di dalam IC bersangkutan.
3) Bit penentu arah data dipakai untuk memberi tahu IC I2C arah data yang dikehendaki, apakah master akan mengirim data atau master menghendaki kiriman data. Apabila master menginginkan untuk mengirimkan data ke slave maka bit ke-8 dibuat ‘0’ dan sebaliknya dibuat ‘1’ apabila master menginginkan untuk menerima data dari slave.
32
4.1.2. Prinsip Kerja PCF8574 sebagai Slave
4.1.2.1. Prinsip Kerja PCF8574 sebagai Pengendali LCD
LCD akan bekerja apabila master telah mengirimkan sinyal START diikuti alamat PCF8574 yang mengendalikannya. Terdapat 2 macam transmisi yang akan dikirimkan yaitu apakah Master menginginkan data atau instruksi untuk dikirimkan ke LCD. Apabila Master mengirimkan data maka tampilan pada LCD adalah tampilan data yang berasal dari internal RAM AT89C2051, namun jika Master mengirimkan instruksi maka tampilan pada LCD adalah berupa instruksi. Instruksi disini adalah data yang didapatkan dari penekanan tombol keypad yang telah dikonversi oleh master kemudian ditampilkan pada layar LCD.
Alamat hardware LCD adalah 70 H dan master menginginkan PCF8574 yang mengendalikan LCD selalu menerima data, sehingga pada saat pengiriman alamat 8 bit dilakukan, bit penentu arah atau bit ke-8 selalu ‘0’ sehingga alamat untuk LCD pada software tidak berubah.
Transmisi data dari PCF8574 ke LCD menggunakan metode transmisi data 4 bit. Hal ini dilakukan untuk mengatasi keterbatasan kaki IC PCF8574. Jika transmisi data yang dilakukan adalah mode 8 bit maka dibutuhkan 8 kaki untuk data serta 3 kaki masing-masing untuk RS, R/W, dan E. Sedangkan pada PCF8574 hanya memiliki 8 keluaran.
Pada mode transmisi 4 bit ini data akan dikirim per 4 bit secara serial, kemudian diikuti 4 bit berikutnya, data yang dikirimkan harus dari bit yang terbesar (MSB) hingga (LSB).
4.1.2.2. Prinsip Kerja PCF8574 sebagai Pengendali Keypad
Keypad akan bekerja jika master mengirimkan alamat PCF8574 yang mengendalikannya yaitu berupa nomor group, nomor chip serta bit penentu arah transmisi data. Jika transmisi data yang diinginkan telah berhasil maka PCF8574 akan mengirimkan pemberitahuan kepada Master bahwa data telah berhasil dikirim. Jika pengiriman data tidak berhasil
maka PCF8574 akan membuat NAK yaitu membuat pernyataan bahwa data yang dinginkan tidak berhasil diterima dengan baik.
Alamat hardware PCF8574 untuk pengendali keypad adalah 72 H, bit penentu arah atau bit ke-8 dari pengiriman alamat dibuat ‘1’ sehingga alamat dari keypad secara software akan berubah menjadi 73 H karena master menginginkan keypad untuk mengirimkan data yang dibutuhkan. Setelah pengiriman alamat dianggap berhasil oleh master, akan dilanjutkan dengan pengambilan data 8 bit diikuti pengiriman sinyal ACK yang menandakan bahwa data telah diterima oleh master. Pengambilan data akan terus dilakukan sampai master mengirimkan sinyal STOP.
4.2. Pengujian Alat
4.2.1. Pengiriman Sinyal Start dan Stop oleh Master
Transmisi data dilakukan dengan membangkitkan sinyal clock oleh Master, sinyal clock ini berfungsi untuk mendorong data yang ada di SDA dimana sedang tidak terjadi transfer data sedangkan SDA dan SCL harus dalam kondisi “ 1 “. Dengan kondisi ini maka pengiriman atau pengambilan data akan dianggap sah baik oleh master maupun slave.
34
Gambar 4.2. Bentuk Sinyal STOP dari Alat
Jika terjadi perubahan SDA pada saat SCL =’1’, perubahan itu diartikan sebagai sinyal START atau STOP. Sinyal START dan STOP muncul pada saat awal dan akhir pengiriman 1 blok data, setelah penerima data menerima data 8 bit, pada clock yang ke-9 penerima membalas dengan ‘0’ sebagai tanda data 8 bit tadi sudah diterima dengan baik, sinyal ‘0’ ini dinamakan sebagai sinyal ACK.
Sinyal START menandakan master akan mulai mengirim data, sinyal ini terlihat di bagian kiri Gambar 4.1 berupa perubahan tegangan SDA dari ‘1’ menjadi ‘0’ pada saat SCL = ‘1’.
Sinyal STOP menandakan master akan mengakhiri komunikasi data, sinyal ini terlihat di bagian kanan Gambar 4.2 berupa perubahan tegangan SDA dari ‘0’ menjadi ‘1’ pada saat SCL = ‘1’.
4.2.2. Pengiriman Sinyal Acknowledge (ACK)
Gambar 4.3. Bentuk Sinyal Acknowledge (ACK) dari Pengiriman Alamat oleh Master AT89C2051 diterima oleh PCF8574 Pengendali LCD
Gambar 4.4. Bentuk Sinyal Acknowledge (ACK) dari Pengiriman Data oleh PCF8574 Pengendali Keypad ke Master AT89C2051
Kondisi ACK terjadi apabila receiver “menarik” SDA pada kondisi low selama 1 sinyal clock. Kondisi NACK terjadi apabila receiver “membebaskan” SDA pada kondisi high selama 1 sinyal clock.
Kedua gambar diatas memperlihatkan interaksi antara dua peralatan I2C, setelah penerima data menerima data 8 bit, pada clock yang ke-9 penerima
36
data membalas dengan ‘0’ sebagai tanda data 8 bit tadi sudah diterima dengan baik, sinyal ‘0’ ini dinamakan sebagai sinyal ACK.
Sinyal Acknowledge (ACK) terjadi : 1) Dari Slave ke Master Transmitter :
a) Sesudah address byte diterima dengan baik oleh slave. b) Setiap kali slave selesai menerima data byte dengan baik. 2) Dari Master Receiver ke Slave :
Setiap kali master selesai menerima data byte dengan baik. Sedangkan sinyal Negative Acknowledge (NACK) terjadi : 1) Dari Slave ke Master Transmitter :
a) Setelah slave gagal menerima address byte dengan baik. b) Setiap kali slave gagal menerima data byte dengan baik. c) Slave tidak terhubung pada bus.
2) Dari Master Receiver ke Slave :
Setelah master menerima data byte yang terakhir dari slave.
4.2.3. Pengiriman Alamat (Address Byte) Device melalui I2C Bus
Address byte terdiri dari bagian yang tetap dan bagian yang dapat diprogram, bagian yang tetap merupakan bawaan dari IC sedangkan yang dapat diprogram biasanya berupa pin addres IC yang bersangkutan.
4.2.3.1. Pengiriman Alamat untuk PCF8574 Pengendali LCD
Alamat hardware LCD adalah 70 H dan master menginginkan PCF8574 yang mengendalikan LCD selalu menerima data, sehingga pada saat pengiriman data 8 bit dilakukan, bit penentu arah atau bit ke-8 selalu ‘0’ sehingga alamat secara software untuk LCD tidak berubah.
Gambar 4.5. Pengiriman Alamat untuk PCF8574 sebagai Pengendali LCD
4.2.3.2. Pengiriman Alamat untuk PCF8574 Pengendali Keypad
Untuk keypad alamat hardware adalah 72 H, bit penentu arah atau bit ke-8 dari pengiriman alamat dibuat ‘1’ sehingga alamat dari keypad secara software akan berubah menjadi 73 H karena master menginginkan keypad untuk mengirimkan data yang dibutuhkan.
Gambar 4.6. Pengiriman Alamat untuk PCF8574 Pengendali Keypad
4.2.4. Pengiriman Data (Data Byte) melalui I2C Bus
38
1) Clock SCL dibangkitkan oleh master, SDA boleh berubah pada saat SCL = ‘0’.
2) Data di SDA bisa dibangkitkan oleh master maupun slave, tergantung pada arah transmisi data.
3) Pengiriman data dilakukan per 1 byte, digeser serempak dengna SCK bit demi bit yang dimulai dari bit 7 sampai bit 0.
4) Pada hitungan SCK yang ke sembilan, pengirim data harus membuat SDA = ‘1’ dengan maksud agar penerima data bisa mengirimkan sinyal ACK (=’0’) sebagai tanda terima kiriman data.
4.2.4.1. Pengiriman Data (Data Byte) untuk PCF8574 Pengendali LCD
Pengiriman data byte mengikuti pengiriman alamat dan dilanjutkan sinyal ACK. Bit penentu arah adalah ‘0’ maka PCF8574 bertindak sebagai receiver. Data dianggap sebagai keluaran hanya jika byte-byte lengkap diterima dan diacknowledgekan. Keluaran data dianggap valid setelah transisi rendah ke tinggi SCL, selama siklus clock untuk ACK. Jika byte-byte data yang lain terkirim ke slave yang diikuti sinyal ACK, maka slave harus memperbaharui keluaran Port PCF8574 lagi.
4.2.4.2. Pengambilan Data (Data Byte) dari PCF8574 Pengendali Keypad
Gambar 4.8. Pengambilan Data 8 bit dari Keypad
Jika bit R/W tinggi, PCF8574 telah mengontrol jalur SDA dan data dari AT89C2051 adalah data baca dari Port PCF8574. Setiap pengiriman byte data diikuti oleh pengiriman sinyal ACK ke slave-transmitter. Setelah ACK, jika master-receiver menerima kondisi no-stop (tidak berhenti), maka akan mengulang siklus ACK. Bagaimanapun juga, jika AT89C2051 menerima No-Acknowledge (NACK) selama siklus ACK dan menerima kondisi no-stop, maka keadaan itu tidak bisa mengambil data dari Port PCF8574.
4.2.5. Transfer Data Lengkap melalui I2C Bus
Data serial dan clock diterima melalui SDA dan SCL. Setiap menerima byte data PCF8574 akan merespon dengan membangkitkan bit acknowledge. Untuk mengawali proses pengiriman data dari master menuju slave diawali dengan kondisi START dan diakhiri dengan kondisi
40
STOP. Setiap slave akan membaca alamat yang dituju oleh master dan memeriksa apakah alamat tersebut sama dengan alamat Slave tersebut. Byte alamat slave adalah byte pertama yang diterima slave setelah master membangkitkan kondisi START. Byte alamat terdiri dari 7 bit data, untuk PCF8574A byte alamat tersebut adalah 01110000, dan diikuti oleh bit arah (R/W), yang mana untuk penulisan data ke slave adalah 0. Setelah menerima dan menganalisa byte alamat, PCF8574A membangkitkan tanda acknowledge pada jalur SDA. Setelah itu Master dapat mengakhiri proses pengiriman data ataupun melanjutkannya dengan mengirimkan byte data. Untuk mengakhiri proses pengiriman data master membangkitkan kondisi STOP. Proses diatas dikenal dengan Mode Slave-receiver (Master menulis pada Slave).
Gambar 4.9. Bentuk Sinyal Transmisi Data Lengkap untuk LCD Sedangkan untuk Mode Slave-transmitter (Master Membaca Dari Slave) byte pertama diterima dan diolah oleh slave seperti pada mode penerima, tetapi bit arah bernilai 1. PCF8574A mengirimkan data serial pada SDA ketika menerima sinyal clock pada SCL. Untuk memulai prose pengiriman data diawali dengan kondisi START dan diakhiri dengan kondisi STOP. Byte yang berisi data alamat diterima setelah master membangkitkan
kondisi START. Byte alamat PCF8574A terdiri dari 7-bit alamat dan 1 bit arah. Untuk mode ini 7-bit alamat tersebut adalah 01110011 dan bit arah tersebut (R/W) adalah 1 untuk read. Setelah menerima dan mengolah data alamat, PCF8574A akan membalas dengan membangkitkan bit acknowledge pada SDA.
42
BAB V. PENUTUP
5.1. Kesimpulan
Setelah dijelaskan dalam latar belakang pemilihan judul alat ini dan selanjutnya pada tahap perencanaan sampai pembuatan alat dan pengujiannya dapat disimpulkan sebagai berikut :
1) Teknik komunikasi data I2C bus dapat diterapkan pada mikrokontroller AT89C2051 ataupun pada keluarga MCS-51 lainnya.
2) Komunikasi I2C bus dapat memenuhi target desain elektronika saat ini, dengan karakter hardware dan master / slave protocol yang sederhana tetapi tangguh.
3) Teknik komunikasi data I2C bus dapat digunakan untuk menghubungkan keypad dan LCD secara serial dengan mikrokontroller MCS-51 sebagai masternya, sedangkan slave menggunakan komponen bantu PCF8574 yang telah dilengkapi dengan kemampuan I2C secara built-in.
4) PCF8574 dapat digunakan secara bebas baik sebagai masukan maupun keluaran, data masukan dikirim dari Port PCF8574 ke mikrokontroller dengan mode baca dan sebaliknya, ketika keluaran data dikirim dari mikrokontroller ke Port PCF8574 maka dengan mode tulis. PCF8574 tidak dapat mengontrol jalur SCL dianggap sebagai slave.
43
1) Agus Pracoyo, 2001, “MCS-51 8031, 8051, 8751 Architecture,” Program Studi
Teknik Elektronika, Jurusan Teknik Elektro, Politeknik Negeri Malang, Malang
2) Afri, 2003, “Perencanaan Dan Pembuatan Display Informasi Yang Dapat Diubah
Pada Swalayan Dengan Remote Kontrol,” Laporan Akhir, Politeknik Negeri
Malang, Malang.
3) Agfianto Eko Putra, 2002, “Belajar Mikrokontroler AT89C51/52/55”, Penerbit Gava Media, Yogyakarta.
4) Author’s Guide, 1997, “8-Bit Microcontroller With 2K Bytes Flash AT89C2051,” Datasheet, Atmel
5) Author’s Guide, 1997, “Expanding The AT89C2051 Microcontroller,” Application Note, Atmel
6) Author’s Guide, 1995, “The I2C Bus And How To Use It,” Datasheet, Philips
Semiconductors
7) Author’s Guide, 2001, “Improving System Interrupt Management Using The
PCF8574 And PCF8574A I/O Expanders For The I2C Bus,” Application Report,
Texas Instruments, Texas
8) Author’s Guide, 2003, “PCF8574 Remote 8-BIT I/O Expander For I2C Bus,”
Datasheet, Texas Instruments, Texas
9) Author’s Guide, 1987, “Liquid Crystal Display Module M1632,” User Manual, Seiko Instruments Inc, Japan
10) Author’s Guide, 1993, “MM74C922 16-Key Encoder,” Datasheet, National Semiconductors, Japan