BAB III PERANCANGAN SISTEM

dokumen-dokumen yang mirip
BAB IV IMPLEMENTASI DAN EVALUASI

STANDALONE AVR PROGRAMMER

STANDALONE AVR PROGRAMMER

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM. ruangan yang menggunakan led matrix dan sensor PING))). Led matrix berfungsi

BAB III PERANCANGAN DAN REALISASI ALAT

BAB 3 PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM

BAB 3 PERANCANGAN DAN PEMBUATAN SISTEM

MIKROKONTROLER Arsitektur Mikrokontroler AT89S51

BAB III PERANCANGAN SISTEM. 3.1 Pengantar Perancangan Sistem Pengendalian Lampu Pada Lapangan Bulu

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM. secara otomatis. Sistem ini dibuat untuk mempermudah user dalam memilih

BAB II TINJAUAN PUSTAKA

BAB III METODE PENELITIAN. oleh karenanya akan dibuat seperti pada Gambar 3.1.

BAB III PERANCANGAN DAN PEMBUATAN PERANGKAT KERAS

BAB II DASAR TEORI 2.1. Mikrokontroler AVR ATmega32

BAB III DESKRIPSI MASALAH

BAB 3 PERANCANGAN SISTEM

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK

TKC210 - Teknik Interface dan Peripheral. Eko Didik Widianto

BAB III PERENCANAAN PERANGKAT KERAS DAN LUNAK

BAB IV ANALISIS DATA DAN PEMBAHASAN

BAB II DASAR TEORI. Gambar 2.1 Sensor MLX 90614[5]

BAB III PERANCANGAN SISTEM

TEKNIK PEMROGRAMAN MIKROKONTROLER AVR

BAB III METODE PENELITIAN. Penelitian ini dilakukan pada bulan Maret 2015 sampai dengan Agustus

BAB II DASAR TEORI. 2.1 Ethanol

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM

AT89 USB ISP Trademarks & Copyright

BAB III PERANCANGAN ALAT. dibuat. Gambar 3.1. menunjukkan blok diagram alat secara keseluruhan.

BAB III DESKRIPSI DAN PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM. pada sistem pengendali lampu telah dijelaskan pada bab 2. Pada bab ini akan dijelaskan

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III PERANCANGAN ALAT DAN PROGRAM MIKROKONTROLER. program pada software Code Vision AVR dan penanaman listing program pada

BAB III PERANCANGAN ALAT SIMULASI PEGENDALI LAMPU JARAK JAUH DAN DEKAT PADA KENDARAAN SECARA OTOMATIS

MICROCONTROLER AVR AT MEGA 8535

BAB III PERANCANGAN SISTEM

BAB II KONSEP DASAR SISTEM MONITORING TEKANAN BAN

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN ALAT

Akses SD Card & FRAM Menggunakan AVR. Oleh: Tim IE

BAB III TEORI PENUNJANG. Microcontroller adalah sebuah sistem fungsional dalam sebuah chip. Di

BAB III PERANCANGAN DAN PEMBUATAN ALAT

Sistem Minimum Mikrokontroler. TTH2D3 Mikroprosesor

BAB III PERANCANGAN ALAT

BAB III PERENCANAAN DAN REALISASI

APLIKASI HITACHI M1632 LCD PADA SC - AVR

BAB III PERANCANGAN ALAT

BAB II KONSEP DASAR PERANCANGAN

BAB III PERANCANGAN SISTEM

BAB III PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM. Seperti yang telah disampaikan pada bab sebelumnya, pada penelitian ini

Nama : Zulham.Saptahadi Nim : Kelas : 08 Tk 04

BAB III PERANCANGAN STAND ALONE RFID READER. Dalam penelitian ini, perancangan sistem meliputi :

BAB III PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM

BAB III RANCANG BANGUN SISTEM KARAKTERISASI LED. Rancangan sistem karakterisasi LED diperlihatkan pada blok diagram Gambar

III. METODOLOGI PENELITIAN. Penelitian dan perancangan tugas akhir ini telah dimulai sejak bulan Juli 2009

BAB 3 PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA

BAB III METODE PENELITIAN. baik pada perangkat keras maupun pada komputer. Buffer. Latch

BAB III PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM. Bab ini akan membahas tentang perancangan sistem yang digunakan dari alat

BAB III PERENCANAAN DAN PEMBUATAN PERANGKAT LUNAK

MICROCONTROLER AVR AT MEGA 8535

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB 3 PERANCANGAN SISTEM

BAB 3 PERANCANGAN SISTEM. 3.1 Rancangan Perangkat Keras Sistem Penuntun Satpam. diilustrasikan berdasarkan blok diagram sebagai berikut:

BAB III PERANCANGAN ALAT

RANCANG BANGUN SISTEM KEMBANGAN BERBASIS MIKROKONTROLER AT89S5x UNTUK APLIKASI SISTEM KONTROL

Gambar 3.1 Diagram Blok Alat

JOBSHEET I ANTARMUKA MIKROKONTROLER DENGAN LED

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

DT-COMBO AVR-51 STARTER KIT

BAB V PENGUJIAN DAN ANALISIS. dapat berjalan sesuai perancangan pada bab sebelumnya, selanjutnya akan dilakukan

DT-AVR. Application Note AN214

BAB IV PENGUJIAN DAN ANALISA. komponen-komponen sistem yang telah dirancang baik pada sistem (input)

TAKARIR. Akumulator Register yang digunakan untuk menyimpan semua proses aritmatika. Assembler Bahasa pemrograman mikrokontroler MCS-51

BAB IV PENGUJIAN DAN ANALISA DATA

BAB II TINJAUAN PUSTAKA. 2.1PHOTODIODA Dioda foto adalah jenis dioda yang berfungsi mendeteksi cahaya. Berbeda dengan

BAB III PERANCANGAN SISTEM

BAB II DASAR TEORI. open-source, diturunkan dari Wiring platform, dirancang untuk. software arduino memiliki bahasa pemrograman C.

BAB III PERENCANAAN DAN REALISASI SISTEM

AVR USB ISP Trademarks & Copyright

BAB IV PEMBAHASAN Rancangan Mesin Panjang Terpal PUSH BUTTON. ATMega 128 (Kendali Kecepatan Motor Dua Arah)

AN2014 : Pembuatan Jam Digital dengan Development System DST -R8C

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM. Metode penelitian yang digunakan adalah studi kepustakaan dan

BAB II TINJAUAN PUSTAKA. [10]. Dengan pengujian hanya terbatas pada remaja dan didapatkan hasil rata-rata

III. METODE PENELITIAN

BAB III ANALISIS DAN DESAIN SISTEM

BAB III PERANCANGAN. Perancangan tersebut mulai dari: spesifikasi alat, blok diagram sampai dengan

BAB III PERANCANGAN DAN PEMBUATAN ALAT

BAB III PERENCANAAN DAN REALISASI

AVR-51 USB ISP Trademarks & Copyright

METODE PENELITIAN. Penelitian ini dilaksanakan pada bulan Februari 2015 sampai dengan bulan Juli

BAB III PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN

Transkripsi:

BAB III PERANCANGAN SISTEM 3.1 Rancangan Perangkat Keras 3.1.1 Blok Diagram Sistem Blok diagram dari sistem AVR standalone programmer adalah sebagai berikut : Tombol Memori Eksternal Input I2C PC SPI AVR Programmer ISP AVR Socket (Target) Output (Display) LCD Gambar 3.1 Blok Diagram Sistem 29

3.1.2 Skematik Gambar 3.2 Skematik rangkaian 3.1.3 Penjelasan Sistem AVR ATMega8 sudah dilengkapi dengan sumber clocknya sendiri, yaitu osilator RC internal 1 MHz. Konfigurasi ini bekerja dengan baik untuk kebanyakan proyek kecil di mana masalah pewaktuan tidak terlalu penting, selain itu juga mengurangi jumlah komponen yang diperlukan (1 kristal dan 2 kapasitor). Tetapi sistem AVR standalone programmer ini memerlukan sumber clock yang lebih akurat. Karena itu diperlukan sebuah osilator kristal eksternal 8 MHz. Karena digunakan dua buah AVR, satu sebagai 30

AVR programmer dan satu lagi sebagai AVR socket, maka digunakan dua buah osilator kristal. Sedangkan untuk interface, digunakan sebuah LCD 2x16. Ketika tombol switch ditekan, idealnya pin berubah dari high ke low. Dengan cara ini akan terjadi pembenaman arus ketika switch sedang tidak digunakan dan juga menghemat daya. Switch ini active low karena nilai digital low mewakili aksi menekan tombol. Supaya tombol ini mewakili nilai digital high ketika terbuka dan low ketika ditekan (+5v/ ground), maka switch ini harus dihubungkan dengan resistor pull up seperti pada gambar di bawah. Ketika switch terbuka, nilai masukkan akan ditarik (pull) menjadi bernilai high ke Vcc melalui resistor 10K. Ini dikenal sebagai resistor pull up (konsep yang sama juga digunakan untuk pin reset). Tetapi, ketika tombol ditekan, arus akan mengambil jalur dengan hambatan terkecil dan input akan digroundkan. Dengan mikrokontroler AVR, pin I/O bisa dikonfigurasi untuk menggunakan resistor pull up internal ketika dikonfigurasi sebagai masukan. Karena itu tidak diperlukan rangkaian resistor pull up pada rangkaian ini. Tanpa internal pull up yang dienablekan pada rangkaian, maka tombol akan mengambang ketika terbuka dan diground ketika ditekan. Pada jalur komunikasi SPI antara AVR programmer dan AVR socket ditempatkan tiga buah switch, masing-masing satu switch pada jalur MISO, MOSI, dan SCK (switch s2, s3, dan s4). Pada saat pengiriman file hex dari memory eksternal ke AVR socket, ketiga switch ini dalam kondisi terhubung, sehingga bisa terjalin komunikasi SPI antara AVR programmer dan AVR socket. Tetapi pada saat penyimpanan file hex dari PC ke memory eksternal, ketiga switch ini harus dalam kondisi terbuka. Hal ini perlu dilakukan karena untuk penyimpanan file hex ke memory eksternal, hanya diperlukan AVR 31

programmer. Kalau AVR socket juga ikut tersambung, maka pemrograman yang telah dilakukan pada AVR socket dapat terhapus kembali. Memory eksternal yang digunakan dalam alat ini adalah AT24C128 (2 wire serial EEPROM). Komunikasi antara AVR master dan memory eksternal ini menggunakan komunikasi I2C. Untuk memory eksternal ini hanya digunakan 4 buah pin, yaitu pin Ground, Vcc, SCL, dan SDA. Pin SDA digunakan untuk serial data, dan SCL untuk serial input clock. 3.1.4 Komunikasi antara AVR Programmer dengan PC Berbeda dengan kebanyakan AVR Programmer lainnya di pasaran yang menggunakan serial port, pada penelitian ini digunakan parallel port. Komunikasi antara AVR Programmer dengan PC dilakukan dengan menggunakan kabel STK 200. Detail dan konfigurasi pin kabel STK 200 adalah sebagai berikut: Tabel 3.1 Konfigurasi Pin Pin pada PCB Pin pada AVR Pin pada port parallel 5 MOSI (6) D5 (7) 4 MISO (7) ACK (10) 3 SCK (8) D4 (6) 2 RESET (9) D7 (9) 1 Ground (11) Ground (25) 32

Gambar 3.3 Kabel komunikasi AVR Programmer ke PC Komunikasi antara AVR Programmer dengan PC dilakukan dengan menggunakan komunikasi SPI. Pada modul Standalone AVR Programmer, kabel ini dihubungkan ke pin-pin untuk komunikasi SPI. Sedangkan pada PC, kabel ini dihubungkan ke parallel port. Dalam komunikasi ini, PC bertindak sebagai master dan AVR Progammer sebagai slave. Artinya PC mengirim data melalui jalur MOSI dan mengirim clock melalui jalur SCK. Sedangkan AVR Programmer mengirim data ke PC melalui jalur MISO. Dari sisi AVR Programmer, sebenarnya tidak masalah apakah AVR Programmer bertindak sebagai slave ataupun master dalam komunikasi ini, tetapi pada PC tidak mungkin menjadi slave dalam komunikasi SPI. 3.1.5 Parallel port PC Parallel port pada PC awalnya ditujukan untuk menghubungkan PC dengan printer. Port ini terdiri dari 25 pin, dengan konfigurasi sebagai berikut : 33

Gambar 3.4 Konfigurasi Pin pada Parallel Port Seperti yang terlihat pada gambar di atas, pin-pin pada parallel port dapat dibagi dalam 4 kelompok : 8 buah pin data (D0 sampai D7) 5 buah pin status (S4 sampai S7 dan S3) 4 buah pin kontrol (C0 sampai C3) 8 buah pin ground (pin 18 sampai pin 25) Ketiga kelompok pin ini, pin data, status, dan kontrol, memiliki pengalamatan yang berbeda-beda. Pin data memiliki alamat 378 hex, pin status memiliki alamat 379 hex, dan pin kontrol memiliki alamat 37a hex. Berdasarkan alamat ini, port parallel memiliki lima instruksi yang bisa dilakukan, yaitu 2 instruksi pengiriman dan 3 instruksi pembacaan. Untuk pin data (378 hex), PC mampu melakukan operasi pembacaan nilai pin maupun pengiriman data keluar. 34

Untuk pin status (379 hex), PC hanya bisa melakukan operasi pembacaan nilai pin, tetapi tidak bisa mengirim data. Untuk pin kontrol (37a hex), PC mampu melakukan operasi pembacaan nilai pin maupun pengiriman data keluar. Dari tabel 3.1 tentang konfigurasi pin STK 200, bisa dilihat bahwa jalur MOSI (D5), SCK (D4), dan reset (D7) termasuk dalam kelompok pin data, artinya PC bisa melakukan operasi membaca dan mengirim data pada ketiga pin ini. Sedangkan pin MISO (ACK) termasuk dalam pin status, sehingga PC hanya bisa melakukan instruksi baca. Jalur MISO digunakan oleh Slave untuk mengirim data, dan bagi Master untuk membaca data. Karena pada pin ini PC hanya bisa menerima data saja, berarti dalam komunikasi SPI dengan AVR Programmer PC harus diatur sebagai Master. Sedangkan 3 pin lainnya (MOSI, SCK, reset) dapat digunakan oleh PC untuk mengirim data ke Slave (dalam hal ini adalah AVR Programmer). 3.1.6 Komunikasi antara AVR Programmer dengan Memory Eksternal Memory eksternal yang digunakan dalam penelitian ini adalah memory keluaran Atmel seri 2-wire serial EEPROM AT24C512. Alasan dipilihnya memory ini karena kemudahan dalam pemakaiannya. Untuk berkomunikasi dengan Memory Eksternal ini dilakukan dengan komunikasi I2C, sehingga hanya dipelukan dua jalur saja, yaitu SDA (serial data) dan SCL (Serial Input Clock). 35

Jalur SDA dan SCL pada Memory Eksternal terletak pada pin 5 dan 6. Sedangkan pada AVR Programmer yang dijadikan sebagai SDA adalah pin C1 dan untuk SDA adalah pin C2. Karena Memory Eksternal yang digunakan hanya satu, maka pin A0 dan A1 pada Memory Eksternal dapat dibiarkan tak terhubung. 3.1.7 Komunikasi antara AVR Programmer dengan AVR Socket Komunikasi antara AVR Progammer dengan AVR Socket dilakukan dengan komunikasi ISP (In System Programmer). Konfigurasi pin yang dibutuhkan dalam komunikasi ISP sama dengan komunikasi SPI, yaitu pin MOSI, MISO, SCK, dan reset. Perbedaan antara kedua jenis komunikasi ini terletak pada pin resetnya. Pada komunikasi SPI, pin reset dikendalikan oleh master, dan harus diberi nilai high agar Slave tetap bisa menjalankan fungsi sebagaimana mestinya. Sedangkan dalam komunikasi ISP, master mengirimkan nilai low ke pin reset pada slave. Komunikasi ISP ini digunakan karena AVR Programmer harus memprogram/ menulis ke AVR Socket. Untuk konfigurasi pinnya, hanya dibutuhkan 4 buah pin. Pin MOSI, MISO dan SCK pada AVR Programmer dan AVR Socket masing-masing harus dihubunkan satu sama lain. Sedangkan pin reset pada AVR Socket dihubungkan ke pin C4 pada AVR Programmer. Sehingga setiap kali proses pemrograman AVR Socket dimulai, AVR Programmer pertama-tama harus memberi nilai low pada pin ini, sehingga AVR Socket berada dalam keadaan reset, barulah proses pemrograman bisa dilakukan. Setelah pemrograman selesai, AVR Programmer dapat memberi nilai high kembali pada pin reset 36

AVR Socket supaya AVR Socket dapat menjalankan fungsi/ program yang telah dituliskan tadi. Karena komunikasi antara AVR Programmer dengan PC (dengan komunikasi SPI) dan komunikasi antara AVR Programmer dengan AVR Socket (dengan komunikasi ISP) memanfaatkan pin yang sama pada AVR Programmer, maka harus dipastikan bahwa kedua komunikasi ini tidak akan saling tumpang tindih. Untuk mengamankan, maka pada jalur komunikasi antara AVR Programmer dengan AVR Socket diberi sebuah switch, masing-masing pada jalur MOSI, MISO, dan SCK, total ada 3 buah switch. Pada saat AVR Progammer berkomunikasi dengan PC, maka ketiga switch ini harus dalam keadaan terbuka, supaya AVR Socket tidak ikut terhubung. Ketiga switch ini baru dihubungkan pada saat proses pemrograman ke AVR Socket. Gambar 3.5 Switch penghubung antara AVR Programmer dengan AVR Socket 37

3.1.8 Penggunaan tombol sebagai masukan bagi AVR Programmer Pada modul Standalone AVR Programmer digunakan dua buah push button, satu berfungsi sebagai tombol pemilih, misalnya untuk memilih menu, ataupun memilih file hex dari daftar, dan satu lagi sebagai tombol enter/ OK, jika user sudah menetapkan pilihannya. Tombol pilih dihubungkan ke Pin B3 pada AVR Programmer, dan tombol enter dihubungkan ke Pin B4. Sedangkan pada kedua tombol ini, salah satu kakinya dihubungkan ke pin pada AVR programmer, dan satu kaki lagi dihubungkan ke ground. Kedua tombol yang digunakan ini bersifat normally close, artinya dalam kondisi normal (tidak ada penekanan tombol), tombol ini dalam keadaan tersambung (saklar tersambung). Ketika ada penekanan tombol barulah dalam keadaan terputus. Karena itulah untuk pemakaiannya mula-mula AVR Programmer harus memberi nilai high ke kedua tombol ini. Untuk memeriksa apakah ada penekanan tombol oleh user, AVR Programmer akan memeriksa nilai yang dibacanya pada kedua pin yang terhubung ke tombol. Jika nilainya 1, artinya tidak ada penekanan tombol (tombol dalam keadaan tersambung). Jika nilainya 0, artinya ada penekanan tombol (tombol dalam keadaan terputus). 38

Gambar 3.6 Letak penempatan tombol pilih (atas) dan tombol enter (bawah). Pada gambar di atas tampak ada dua buah kapasitor di sebelah masing-masing tombol. Kedua kapasitor ini dipasang sebagai penghubung antara tombol dengan pin pada AVR Programmer. Kapasitor ini diperlukan untuk mengatasi efek bouncing yang bisa terjadi pada saat penekanan tombol. Karena sifat fisik dari tombol, ketika terjadi penekanan tombol, ada suatu periode di mana sambungan listrik mengalami bounce (bergerak naik turun antara terbuka dan tertutup). Bagi mikrokontroler kondisi bouncing ini bisa diterjemahkan sebagai penekanan tombol berkali-kali. Karena itu diperlukan kapasitor untuk menahan efek bouncing ini. 3.1.9 Tampilan interface dengan LCD Untuk interface tampilan pada modul Standalone AVR Programmer, digunakan sebuah LCD berukuran 16x2. LCD dihubungkan ke port A pada AVR Programmer, dengan konfigurasi pin sebagai berikut : 39

Tabel 3.2 Konfigurasi Pin sambungan antara AVR Programmer dengan LCD Port A pada AVR Programmer Port Bit 0 Port Bit 1 Port Bit 2 Port Bit 3 Port Bit 4 Port Bit 5 Port Bit 6 Port Bit 7 Pin LCD RS RD EN Free DB4 DB5 DB6 DB7 Tabel 3.3 Fungsi pin pada LCD 40

3.2 Rancangan Perangkat Lunak Ada dua program yang digunakan dalam sistem Standalone AVR Programmer ini, yaitu : Program utama, yang disimpan pada AVR Programmer. Program pada AVR Programmer ini dibuat dengan menggunakan bahasa pemrograman Codevision AVR, yang berbasis bahasa C. Program utama ini berfungsi untuk melakukan semua proses dan interface dalam sistem Standalone AVR Progammer. Ada tiga proses utama yang bisa dilakukan oleh AVR Programmer, yaitu: o Mode pemrograman AVR Socket (Programming Mode). Mode ini berfungsi untuk memilih program-program yang tersimpan di memory eksternal, untuk nantinya ditulis ke AVR Socket. o Mode penyimpanan file hex ke Memory Eksternal (PC Mode). Mode ini berfungsi untuk mengambil data hex dari PC dan menyimpannya ke Memory Eksternal. Pada mode ini juga bisa dilakukan proses pembacaan data hex dari memory eksternal, dan dikirimkan ke PC, sehingga user bisa memeriksa apakah pengiriman file hex telah berhasil dengan benar atau terjadi kesalahan. o Mode penghapusan file hex pada Memory Eksternal (Erase Mode). Mode ini berfungsi untuk menghapus file hex yang tersimpan di Memory Eksternal. Penghapusan file hex dilakukan dengan menimpa data hex yang telah dipilih oleh user dengan nilai 0. 41

Program pendukung, yang disimpan pada PC. Program pendukung ini dibuat dengan menggunakan Visual Basic 6.0. Fungsi dari program ini adalah dalam pengiriman file hex dari PC ke modul Standalone AVR Progammer. File hex yang dikirim ini nantinya akan diterima oleh AVR Programmer, yang akan menyimpannya di dalam Memory Eksternal. Selain itu program pendamping ini juga bisa digunakan untuk membaca file hex yang telah tersimpan di Memory Eksternal, mulai dari nama file, panjang data, maupun isi data hexnya sendiri. Dengan begitu kita bisa melihat sendiri bahwa file yang dikirim ke Memory Eksternal telah tersimpan dengan benar. 3.2.1 Diagram Alir Program Utama Program utama pada AVR Programmer dibuat dengan menggunakan state switch case. Program ini akan melakukan proses looping yang secara terus-menerus akan memeriksa state saat ini. User bisa memilih state mana yang diinginkan dengan menggunakan dua buah tombol yang tersedia pada modul Standalone AVR Programmer. Ada 3 mode yang bisa dipilih, yaitu Programming Mode, PC Mode, dan Erase Mode. Fungsi dari setiap mode ini adalah seperti yang telah dijelaskan di atas. Sedangkan untuk cara kerja setiap mode akan dijelaskan secara lebih detail pada penjelasan berikutnya. 42

Gambar 3.7 Diagram Alir Program Utama 3.2.2 Diagram Alir Programming Mode Jika user memilih mode ini, mula-mula AVR Programmer akan membaca jumlah file yang tersimpan di Memory Eksternal. Jika ternyata tidak ada file yang tersimpan di Memory Eksternal, maka AVR Programmer akan menampilkan tulisan di LCD bahwa tidak ada file yang tersedia, dan Programming Mode tidak dapat dilanjutkan lagi. Jika ada file yang tersimpan, maka selanjutnya user dapat memilih file hex mana yang akan ditulis ke AVR Socket dengan menggunakan tombol Select. Jika user sudah menemukan file 43

yang ingin dituliskan, user dapat menekan tombol OK. Setelah user sudah menentukan file yang ingin dituliskan, selanjutnya AVR Programmer akan memeriksa keberadaan AVR Socket dengan mengirimkan perintah Programming Enable. Setelah pengiriman perintah ini, jika AVR Socket terhubung dengan baik, AVR Socket akan membalas dengan mengirimkan nilai 53 hexa. Jika AVR Programmer tidak mendapat nilai balasan ini, berarti AVR Socket tidak terhubung, dan proses penulisan gagal. Jika AVR Programmer mendapat nilai balasan ini, berarti pemrogaman dapat dilanjutkan. AVR Programmer akan mengambil data hex yang tersimpan di Memory Eksternal per byte, dan dituliskan ke memory Flash pada AVR Socket. Setelah itu AVR Programmer akan mengambil data hex yang berikutnya, dan dituliskan lagi ke AVR Socket. Proses ini dilakukan terus menerus sampai seluruh data hex telah dituliskan. Setelah proses penulisan selesai, dilakukan proses verifikasi data dengan membandingkan data yang tersimpan di Memory Eksternal dengan data yang baru saja dituliskan ke AVR Socket. Proses verifikasi ini dilakukan dari byte awal sampai akhir. Jika proses verifikasi ini ternyata tidak sesuai, berarti terjadi gangguan/ kesalahan dalam proses penulisan, dan AVR Programmer akan memberitahukan ke user bahwa proses pemrograman gagal dengan menampilkan ke LCD. Jika tidak ada kesalahan selama verifikasi, berarti Pemrograman telah selesai dengan baik. Untuk penjelasan yang lebih detail tentang algoritma penulisan ke AVR Socket, bisa dilihat penjelasannya pada Gambar 2.8 Diagram Alir algoritma ISP halaman 22. 44

START INISIALISASI DATA Periksa jumlah file di memory eksternal Jumlah file = 0? Ya Tidak Pilih file hex yang ingin diprogram Periksa keberadaan AVR Socket AVR socket terdeteksi? Tidak Cetak Tidak ada data Ya Ambil data file hex dari memory eksternal Tulis ke AVR Socket Alamat ++ Cetak AVR Socket tidak terdeteksi! Penulisan selesai? Tidak Ya Verifikasi data yang telah ditulis ke AVR Socket Tidak Verifikasi sesuai? Ya Cetak Pemrograman gagal Cetak Pemrograman selesai STOP Gambar 3.8 Diagram Alir Programming Mode 45

3.2.3 Diagram Alir PC Mode Dalam PC Mode ini, ada dua proses yang bisa dilakukan oleh AVR Programmer, yaitu proses untuk menyimpan file hex dari PC ke memory eksternal dan program untuk mengirim file hex dari memory eksternal ke PC. AVR Programmer akan memilih proses mana yang harus dijalankan berdasarkan perintah yang dikirimkan dari PC Penyimpanan file hex dari PC ke Memory Eksternal Pada proses ini, AVR Programmer mula-mula akan memeriksa jumlah file hex yang tersimpan dalam Memory Eksternal. Jika file hexnya sudah penuh, maka AVR Programmer akan memberitahukan ke PC, bahwa proses pengiriman tidak bisa diteruskan lagi. Tapi jika file hexnya belum penuh, maka AVR Programmer akan memberitahu ke PC untuk mulai mengirimkan data yang akan dituliskan ke Memory Eksternal. Mula-mula yang dikirimkan adalah nama file, yaitu sebesar 16 byte. Setelah itu baru dikirimkan panjang data. AVR Programmer akan melakukan looping untuk mengambil data dari PC dan menulisnya ke Memory Ekstrenal, dan looping dilakukan sebanyak panjang data yang dikirimkan oleh PC tadi. Setelah pengiriman selesai, maka AVR Programmer akan mengupdate jumlah file yang tersimpan di Memory Eksternal. Dan proses penyimpananpun selesai, AVR Programmer bersiap-siap untuk perintah berikutnya dari PC. 46

Gambar 3.9 Diagram Alir PC Mode untuk Penyimpanan File Hex ke Memory Eksternal 47

Pengiriman file hex dari Memory Eksternal ke PC Pada proses ini mula-mula AVR Programmer akan mengambil nomor index file yang dikirimkan oleh PC. AVR Programmer akan memeriksa di dalam Memory Eksternal apakah file hex dengan index seperti itu tersimpan di dalam Memory Ekstrenal. Jika ternyata tidak ada file yang tersimpan, maka AVR Programmer akan memberitahukan ke PC bahwa file yang diinginkan oleh user tidak ada, dan proses ini dihentikan. Tapi jika ternyata filenya ada di Memory Eksternal, proses akan dilanjutkan oleh AVR Programmer dengan membaca nama file dari Memory Eksternal dan mengirimkan ke PC. Setelah itu AVR Programmer akan membaca panjang data dari Memory Eksternal dan dikirimkan ke PC. AVR Programmer selanjutnya akan melakukan perulangan untuk membaca data dari Memory Eksternal dan mengirimkannya ke PC, sebanyak panjang data yang didapat tadi. Setelah itu proses ini selesai, dan PC bisa mengirimkan perintah berikutnya. 48

Gambar 3.10 Diagram Alir PC mode untuk Pengiriman File Hex dari Memory Eksternal ke PC 49

3.2.4 Diagram Alir Erase Mode Pada mode ini mula-mula AVR Programmer akan mengambil jumlah file hex yang tersimpan di Memory Eksternal. Jika ternyata tidak ada file yang tersimpan di Memory Eksternal, maka AVR Programmer akan menampilkan tulisan di LCD bahwa tidak ada file yang tersedia, dan Programming Mode tidak dapat dilanjutkan lagi. Jika ada file yang tersimpan, maka selanjutnya user dapat memilih file hex mana yang akan dihapus dengan menggunakan tombol Select. Jika user sudah menemukan file yang ingin dituliskan, user dapat menekan tombol OK. Setelah user sudah menentukan file yang ingin dituliskan, selanjutnya AVR Programmer akan menghapus nomor index file dengan mengubahnya menjadi 0. Setelah itu AVR Programmer akan menghapus nama file yang telah tersimpan di Memory Eksternal. Lalu AVR Programmer akan membaca panjang data yang tersimpan di Memory Eksternal, dan melakukan perulangan sebanyak panjang data itu untuk menghapus data yang tersimpan di Memory Eksternal. Setelah proses penghapusan selesai, AVR Programmer akan menampilkan di LCD bahwa penghapusan selesai. 50

51

3.2.5 Diagram Alir Program VB untuk Penyimpanan File Hex dari PC ke Memory Eksternal. Pada proses ini mula-mula user harus mengetikkan nama file yang diinginkan. Nama file ini nantinya digunakan untuk menamai file hex yang tersimpan di Memory Eksternal. Panjang nama file dibatasi maksimal 16 karakter, hal ini dilakuan agar nama file muat dituliskan dalam satu baris di tampilan LCD. Setelah itu user dapat menekan tombol untuk membuka dan memilih file hex yang ingin dikirimkan. Jika user menekan tombol ini, akan muncul sebuat Common Dialog Box yang berfungsi untuk membuka file. Common Dialog Box ini sudah difilter sehingga hanya dapat membuka file yang berekstensi.hex. Program kemudian akan membuka isi file yang telah dipilih tadi dan mengolah datanya. File hex yang dibuka ini tidak semuanya berisi data, karena juga ditambahi beberapa keterangan tambahan dalam format penulisannya. Karena data tambahan ini tidak diperlukan dalam penulisan ke AVR Socket, maka data ini bisa dibuang, sehingga yang tersisa hanyalah isi file hexnya. Isi file hex ini kemudian ditampilkan di sebuah listbox, yaitu List1. Jika tombol kirim ditekan, maka mula-mula program akan memeriksa jumlah file yang tersimpan di Memory Eksternal, yang dikirim oleh AVR Programmer. Jika ternyata jumlah file hexnya sudah maksimal, maka akan muncul sebuah Message Box yang memberitahukan bahwa EEPROM sudah penuh, dan proses pengiriman dihentikan. Tetapi jika jumlah file hex belum penuh, maka PC akan mengirimkan nama file yang telah diisikan user. Setelah itu program akan menghitung panjang data file, dan dikirimkan ke AVR Programmer. Baru diikuti dengan pengiriman data perbyte, sebanyak panjang data tadi. 52

dikirimkan ke AVR Programmer. Baru diikuti dengan pengiriman data perbyte, sebanyak panjang data tadi. Setelah pengiriman selesai, akan muncul sebuah Message Box yang memberitahukan bahwa pengiriman telah selesai. 53

3.2.6 Diagram Alir Program VB untuk Penyimpanan File Hex dari PC ke Memory Eksternal. Untuk proses ini mula-mula user harus memilih index file yang ingin dibaca, dengan menggunakan sebuah Combo Box. Setelah user menekan tombol Baca, program akan mengirimkan index file yang baru saja dipilih user ke AVR Programmer. Program kemudian akan memeriksa balasan dari AVR Programmer. Jika balasan dari AVR Programmer adalah 0, artinya di Memory Eksternal tidak ada file dengan index seperti yang telah dipilih user. Maka program akan memunculkan sebuah Message Box dengan pesan bahwa data tidak ada. Jika balasan dari AVR Programmer bukan 0, berarti file yang diinginkan tersimpan di Memory Eksternal. Dan program bersiap-siap menerima data yang dikirimkan dari AVR Programmer. Urutan pengiriman data ini adalah nama file, panjang data, dan isi data hexnya. Semua ini kemudian ditampilkan di sebuah listbox, yaitu List2. 54

Gambar 3.13 Diagram Alir Program VB untuk pengiriman file hex dari Memory Eksternal ke PC 55

3.2.7 Diagram alir penulisan file hex dari AVR Programmer ke Memory Eksternal Penulisan data dari AVR Programmer ke Memory Eksternal dilakukan dengan menggunakan komunikasi I2C. Untuk memulai komunikasi dengan Memory eksternal, mula-mula AVR Programmer harus mengirimkan perintah I2C Start. Berikutnya diikuti dengan pengiriman alamat alat dan instruksi tulis, yaitu 0xa0. Alamat alat ini memang sudah ditentukan pada saat pembuatan IC, sehingga alamat untuk Memory Eksternal selalu bernilai 0xa0. Untuk perintah tulis, bit ke 0 diberi nilai 0. Jadi yang akan dikirimkan ke MemoryEksternal adalah 0xa0. Kapasitas memory pada AT24C512 adalah sebesar 512 Kilobit, artinya untuk pengalamatan memory diperlukan 16 bit alamat. Pengiriman alamat memory dilakukan sebanyak dua kali, pertama adalah pengiriman byte pertama dari alamat, diikuti dengan pengiriman byte kedua. Setelah itu baru diikuti dengan pengiriman 8 bit data yang ingin disimpan ke Memory Eksternal. Untuk menutup/ menyudahi operasi penulisan dikirimkan instruksi I2C Stop. Penulisan data ke Memory Eksternal memerlukan waktu tunda untuk menjamin bahwa proses penulisan data berhasil dilakukan dengan benar. Jika waktu tunda ini belum selesai, tapi sudah dilanjutkan dengan operasi penulisan data berikutnya, maka penulisan ke Memory Eksternal bisa mengalami kesalahan. Pada datasheet AT24C512, waktu tunda maksimum untuk operasi penulisan adalah sebesar 10 ms. 56

Gambar 3.14 Diagram alir penulisan file hex dari AVR Programmer ke Memory Eksternal 57

3.2.8 Diagram alir pembacaan memory eksternal oleh AVR programmer Berbeda dengan operasi penulisan, pada AT24C512 tidak bisa dilakukan operasi pembacaan pada sembarang lokasi memory. AT24C512 hanya bisa membaca data pada alamat yang tersimpan pada address counter. Karena itu untuk melakukan operasi pembacaan harus dilakukan dengan mengirim operasi tulis. Urutannya sama seperti pada operasi tulis, yaitu I2C Start, kirim alamat alat dan perintah tulis (0xa0), dan diikuti dengan pengiriman alamat data. Setelah AT24C512 menerima alamat ini, maka address counter juga akan berubah sesuai dengan alamat yang dikirimkan tadi. Barulah operasi baca bisa dilakukan, dengan mengirimkan kembali perintah I2C Start, dan alamat alat beserta instruksi baca. Untuk instruksi baca, bit ke 0 diberi nilai 1, sehingga instrusi yang dikirimkan adalah 0xa1. Setelah itu AT24C512 akan mengirimkan 8 bit data yang diinginkan. Operasi baca ditutup dengan mengirimkan perintah I2C Stop. 58

Gambar 3.15 Diagram alir pembacaan memory eksternal oleh AVR programmer 59

3.3 Format Penyimpanan file hex di Memory Eksternal Dalam penyimpanan file hex, memory eksternal dibagi-bagi menjadi 4 blok data. Masing-masing blok data berukuran sebesar 9 KiloByte. Kalau ditulis dalam bilangan hexadesimal, 9 kilobyte ini besarnya adalah 2800 hexa. Tempat penulisan file hex ke memory eksternal dimulai dari alamat 0x2800. File hex berikutnya disimpan di alamat 0x5000, dan seterusnya, masing-masing berukuran 0x2800. Alamat Jumlah file 0 0x2800 Blok file 1 0x5000 Blok file 2 0x7800 Blok file 3 0xA000 Blok file 4 0xC800 0xFFFF Gambar 3.16 Pembagian memory eksternal 60

Sedangkan format penulisan file hex ke blok memory adalah sebagai berikut : Tabel 3.4 Format penulisan file hex per blok memory Data yang Disimpan Besar Data Awal Penulisan Index File 1 Byte Base Address Nama File 16 Byte Base Address + 1 Panjang File 2 Byte Base Address + 17 Isi Data Tergantung Panjang File Base Address + 19 Alamat 0 digunakan untuk menyimpan jumlah file yang ada di dalam Memory eksternal. Ketika ada pengiriman file hex dari PC ke AVR Programmer, mula-mula AVR Programmer akan memeriksa nilai yang tersimpan di alamat 0. Jika nilainya mencapai 4, berarti memory eksternal sudah penuh, sehingga tidak bisa ditulisi lagi. Jika masih ada tempat penulisan (belum mencapai 4), maka AVR Programmer akan memeriksa blok file mulai dari blok terakhir, dan mencari blok pertama yang belum terisi. Penulisan file akan dilakukan di blok ini, dengan format penulisan seperti yang terlihat di tabel atas. Setelah selesai penulisan file, nilai jumlah file yang tersimpan di alamat 0 akan diupdate. Pemeriksaan untuk blok memory dilakukan dengan membaca index file dari tiap blok memory. Jika bernilai 0 berarti blok memory tersebut belum terisi. Selain untuk mengetahui apakah suatu blok memory sudah terisi atau belum, index file juga digunakan untuk menentukan urutan pemanggilan file. File hex yang pertama kali disimpan akan memiliki index file 1, dan file berikutnya yang disimpan akan memiliki index yang semakin besar. Ketika user memilih Programming Mode ataupun Erase Mode, file-file 61

yang tersimpan di memory eksternal akan ditampilkan berurutan sesuai dengan index filenya, mulai dari nilai 1 sampai yang terbesar. Jika user memilih Erase Mode, dan menghapus salah satu file, maka index file pada blok memory tempat penyimpanan file tersebut akan diubah menjadi 0. Jumlah file juga akan diupdate, yaitu dengan dikurangi 1. Selain itu index file pada blok memory lainnya juga akan diupdate. Blok memory dengan index file yang lebih besar dari pada index file hex yang dihapus, nilainya akan dikurangi 1. Misalnya, pada memory eksternal sudah ada 4 file yang tersimpan. Kemudian user memilih untuk menghapus sebuah file yang memiliki index 2. Maka index file yang dihapus ini akan diubah menjadi 0. Jumlah file yang tersimpan di alamat 0 juga berubah menjadi 3. Sedangkan file hex lainnya, yang memiliki index file 3 dan 4, nilai indexnya akan diupdate, masing-masing menjadi 2 dan 3. Sehingga file hex yang tadinya memiliki index 3 akan menjadi 2, dan seterusnya. 3.4 Interface Program VB Program VB ini dibuat untuk pengiriman file hex dari PC ke AVR Programmer, yang berikutnya akan disimpan ke Memory Eksternal. Ada dua tugas yang bisa dilakukan oleh program ini, yaitu pengiriman file hex ke Memory Eksternal, dan pembacaan file hex dari Memory Eksternal. Untuk pengiriman file hex, beberapa hal yang diperlukan yaitu: File Name: digunakan untuk memberi nama file hex yang akan dikirimkan ke Memory Eksternal. Nama file inilah yang akan ditampilkan pada LCD 62

ketika pemakai memilih file yang tersimpan di Memory Eksternal. Panjang maksimum nama file adalah 16 karakter. Hex File: digunakan untuk menampilkan direktori dari file hex yang akan dikirimkan. Hex File ini tidak bisa diisikan secara manual oleh user. Hex file ini akan terisi secara otomatis setelah user memilih file hex. Tombol Open File : ketika user menekan tombol ini, maka akan muncul sebuah kotak dialog yang bisa digunakan oleh user untuk memilih file hex yang akan dikirimkan ke Memory Eksternal. Kotak dialog ini sudah dipasang filter sehingga hanya bisa digunakan untuk membuka file dengan ekstensi.hex. Setelah user memilih file hex yang diinginkan, maka direktori file yang telah dipilih akan ditampilkan di text box Hex File. Sedangkan isi data file hex akan ditampilkan di listbox1. Tombol Send : tombol ini digunakan untuk memulai proses pengiriman file hex dari PC ke AVR Programmer. Untuk pembacaan file hex, hal yang diperlukan yaitu: EEPROM Index File: index file digunakan untuk memilih file hex yang ingin dibaca di Memory Eksternal sesuai dengan index file yang tersimpan di Memory Eksternal. Tombol Read : tombol ini digunakan untuk memulai proses pembacaan file hex dari memory eksternal. Data-data dari file hex, seperti nama file, panjang file, dan isi file akan ditampilkan di listbox2. 63

Gambar 3.17 Interface Program VB 3.5 Verifikasi Hasil Tulis ke Memory Eksternal Verifikasi hasil tulis ke Memory Eksternal dilakukan pada program interface pada PC. Komunikasi antara PC dan AVR Programmer dilakukan dengan menggunakan komunikasi SPI. Dengan menggunakan teknik komunikasi ini, maka PC dan AVR Programmer dapat saling mengirim data secara bersamaan. Pada saat pemakai menekan tombol Send, maka PC akan mengirim data hex per byte. Ketika AVR Programmer menerima byte data ini, maka AVR Programmer akan menyimpannya ke Memory Eksternal. Pada saat pengiriman byte data berikutnya, AVR Programmer akan 64

mengirimkan kembali byte data yang telah diterima sebelumnya. PC melakukan verifikasi penulisan dengan cara memeriksa data balasan dari AVR Programmer dan membandingkannya dengan data byte yang dikirimkan sebelumnya. Jika terjadi perbedaan antara kedua data ini, berarti penulisan ke Memory Eksternal telah mengalami kegagalan, dan akan mengirimkan pesan kesalahan Pengiriman gagal!!! Gambar 3.18 Contoh terjadinya kegagalan pada verifikasi hasil penulisan ke Memory Eksternal 65

3.6 Pemeriksaan File Hex User dapat memilih file hex yang ingin dikirim ke Memory Eksternal dengan menggunakan tombol Open File. Setelah tombol ditekan, akan muncul sebuah dialog box, di mana user dapat membuka file hex yang ingin dipilih. Dialog box ini sudah dipasang filter sehingga hanya bisa membuka file dengan ekstensi.hex. Setelah user memilih file yang diinginkan, maka program pada PC akan memeriksa file hex yang dipilih user dan hanya akan mengambil data hexnya saja. Data hex ini kemudian akan ditampilkan di listbox pada interface program, lengkap dengan alamat dari data hex. Gambar 3.19 tampilan program setelah user memilih file hex 66

Jika user menekan tombol Send, maka mula-mula program akan memeriksa apakah ukuran file hex yang dipilih oleh user tidak melebihi 8 KByte. Jika ternyata ukuran file hexnya melebihi 8 KByte, maka pengiriman file hex ke Memory Eksternal akan gagal dan ditampilkan kotak pesan kesalahan, Ukuran file hex tidak boleh melebihi 8 KByte!!! Gambar 3.20 tampilan pesan kesalahan ketika ukuran file hex melebihi batas maksimum 67