2.2.1. Port InputOutput
ATmega128 mempunyai 53 pin IO yang terbagi menjadi tujuh port dan mampu difungsikan sebagai masukan atau keluaran. Setiap pin IO mempunyai tiga register yaitu
DDRxn, PORTxn dan PINxn yang nilainya tergantung dari aplikasi pin IO itu sendiri. Huruf “x” mewakili Port IO tersebut, sedangkan huruf “n” mewakili nomor pin IO yang dituju.
Untuk mengatur sebuah pin IO menjadi sebuah keluaran maka register DDR pada pin tersebut harus diberi logika tinggi, sedangkan agar berfungsi sebagai masukan, maka DDR pada pin
tersebut diberi logika rendah [13]. Saat berfungsi sebagai pin masukan, maka register PINxn digunakan untuk membaca
nilai pada pin tersebut. Sedangkan saat berfungsi sebagai sebuah pin keluaran, register PORTxn digunakan untuk mengatur nilai keluaran pin IO tersebut.
2.2.2. – Two-Wire Serial Communication
Two-wire serial communication TWI adalah salah satu fitur yang sering dipakai pada
aplikasi mikrokontroler. TWI memungkinkan pengguna untuk terhubung dengan 128 perangkat yang berbeda dengan hanya menggunakan dua jalur data, SCL sebagai pengatur
clock dan SDA sebagai jalur utama.
Terdapat lima register yang digunakan untuk mengatur penggunaan TWI, yaitu TWI Bit Rate Register
TWBR, TWI Control Register TWCR, TWI Status Register TWSR, TWI Data Register TWDR, dan TWI Slave Address Register TWAR.
Register TWBR digunakan sebagai pengatur bit rate dari komunikasi serial. Nilai TWBR dapat dihitung dari rumus:
2.4
Register TWCR digunaakn sebagai pengatur operasi TWI. Register ini terdiri dari 8-bit data seperti ditunjukkan gambar 2.11.
Gambar 2.11. Register TWCR
Memberi logika high pada bit TWSTA membuat perangkat menjadi master device pada jalur data. Perangkat akan mendeteksi keberadaan jalur data, apabila jalur data tersedia,
maka perangkat akan menginisialisai kondisi START. Apabila jalur data sedang digunakan oleh perangkat lain, maka perangkat akan menunggu sampai terdeteksi kondisi STOP
kemudian menginisialisasi kondisi START dan mengambil alih jalur data. Sedangkan bit TWSTA digunakan untuk menginisialisasi kondisi STOP pada jalur
data. Apabila perangkat diatur sebagai slave device, maka bit ini dapat digunakan untuk memulihkan kondisi eror.
Bit TWEN digunakan untuk mengaktifkan antarmuka TWI, saat TWEN bernilai 1, maka antarmuka TWI akan mengambil alih pin IO SDA dan SCL dan menggunakannya
sebagai jalur data.
2.2.3. Universal Synchronous and Asynchronous serial Receiver and
Transmitter USART
Universal Synchronous and Asynchronous Serial Receiver and Transmitter USART
merupakan salah satu mode komunikasi serial yang dimiliki ATmega128. USART merupakan komunikasi yang memiliki fleksibilitas tinggi yang dapat digunakan untuk melakukan transfer
data baik antara mikrokontroler maupun dengan modul modul eksternal termasuk PC yang mempunyai fitur UART.
USART memungkinkan transmisi data baik secara synchronous maupun asynchronous sehingga USART kompatibel dengan UART. Pada ATmega128 umumnya pengaturan mode
komunikasi baik synchronous maupun asynchronous adalah sama. Perbedaannya terletak pada sumber clocknya. Pada mode synchronous mempunyai sumber clock sendiri sedangkan pada
asynchronous menggunakan satu sumber clock secara bersamaan. Mode asynchronous secara
hardware hanya membutuhkan dua pin yaitu TXD dan RXD sedangkan untuk mode
synchronous membutuhkan 3 pin yaitu RXD, TXD, dan SCK. Register yang digunakan adalah
USART Data Register UDR. Meskipun register UDR hanya menempati satu lokasi memori yaitu 0x0C 0x02C tetapi sebenarnya register UDR mempunyai dua register IO yaitu RXB
sebagai buffer untuk menyimpan data yang diterima dan TXB sebagai buffer untuk menyimpan data yang dikirim. Bagan UDR dapat dilihat pada gambar 2.12.
Gambar 2.12. USART Data Register
2.2.4. Serial Peripheral Interface SPI
Transfer data pada SPI digunakan antara master dan slave dalam jarak dekat dengan kecepatan cukup tinggi. Terdapat empat buah pin yang mengatur komunikasi serial antara
master dan slave yaitu:
1. SCLK dari master ke slave yang berfungsi sebagai clock.
2. MOSI jalur data dari master yang masuk ke dalam slave.
3. MISO jalur data keluar dari slave dan masuk kedalam master.
4. SS Slave Select merupakan pin yang berfungsi mengaktifkan slave.
Gambar 2.13. Hubungan antara Master-Slave dengan SPI