Selasa, 21 Mei 2013

Perkenalan Pemrograman C dalam Mikrokontroler

Code vision AVR merupakan software untuk membuat code program microcontroller AVR. Software ini bisa kita download versi demonya di www.hpinfotech.ro . Dari yang saya tahu, kebanyakan programmer memakai software ini karena fasilitas-fasilitas yang disediakan CodeVision AVR memudahkan programmer dalam membuat code. Kesulitan – kesulitan yang biasa ditemui saat memprogram yaitu belum bisa menggunakan menu -menu di CodeVision AVR, karena belum familiar. Dalam artikel ini saya coba memberi gambaran singkat bagaimana cara menulis program di CodeVision AVR, merubah konfigurasi Compiler dan cara mendownload program ke dalam microcontroller. 1. Membuat Project
Buka aplikasi CodeVision AVR , pilih menu: File –>New
Maka akan muncul message box Create New File, pilih Project atau source lalu klik OK

Setelah itu akan muncul message box Confirm, pilih NO. Message box ini menanyakan apakah kita akan menggunakan CodeWizardAVR??



CodeWizard AVR merupakan tools untuk menghasilkan code program secara otomatis. Hal ini memudahkan programmer karena gak perlu repot-repot menulis code program. Tapi untuk beginner sebaiknya jangan menggunakan fasilitas ini, Saya sarankan tulis program dari awal agar lebih memahami setiap code program.
Berikutnya muncul box Create New Project , pada kotak file name ketikkan nama file. Sebagai contoh beri nama: Coba1 Lalu muncul box Configure Project, pada box ini terdapat Files, C Compiler dan After Make Tab Files digunakan untuk menyertakan file source code yang akan digunakan dalam project. Setiap project membutuhkan minimal satu file source. File source merupakan file bahasa C yang kita tulis.

Biarkan dulu setting awal tab Files ini. Kita akan atur kemudian
Tab C Compiler digunakan untuk meng edit konfigurasi compiler. Tampilan tab C Compiler seperti berikut

Menu Chip untuk menentukan chip yang digunakan. Ubah chip ke ATmega8535 jika kita menggunakan ATmega 8535.Menu Clock untuk menentukan frequency xtal yang digunakan microcontroller. Pastikan nilainya sesuai. Saya menggunakan xtal 4 Mhz.
Menu (s)printf features: untuk menentukan konfigurasi fungsi printf dan sprintf .
Menu (s)scanf features: untuk menentukan konfigurasi fungsi scanf dan sscanf .
Tab After Make digunakan untuk menentukan aplikasi yang dijalankan CodeVosion AVR setelah program di compile.

Pilih (centang) Program the Chip, hal ini berarti CodeVision akan memprogram chip(micro) setelah program di compile.
Lalu klik OK
Setelah kita melakukan langkah satu diatas maka tampilan pada CodeVision AVR seperti berikut:

Langkah pertama tadi adalah langkah untuk membuat Project. Ingat!! setiap project membutuhkan minimal satu file source. Nah… Berikutnya kita akan membuat file source.
2. Membuat Source
Buka aplikasi CodeVision AVR , pilih menu: File –>New Maka akan muncul message box Create New File, pilih Source lalu klik OK Simpan file source, pilih menu: File –> Save As
Beri nama file source. Misal: Coba1
Setelah anda melakukan langkah-langkah diatas, tampilan CodeVision AVR seperti berikut:
3. Memasukkan File Source ke dalam Project
File source yang kita buat harus kita masukkan kedala projet. Caranya:
Pilih menu: Project –> Configure
Pada tab Files, klik Add (1).Lalu akan muncul box Add File To Project
Pilih file source yang akan disertakan, dalam hal ini file sourcenya Coba1 (2)
Klik Open (3)Kemudian klik OK (4)
Nachh!!! sekarang project telah siap kita gunakan. Sebagai awal tuliskan code program sederhana dulu
seperti:
#include
void main()
{
DDRA=0xff
PORTA=0x0f
}
Penjesan dari program diatas adalah:
#include
//menyertakan file library untuk chip ATmega8535
DDRA=0xff
//Port A, dijadikan sebagai output
PORTA=0x0f
/*
Mengeluarkan output ke Port A dengan nilai 0x0f ( f Heksa) atau 0b00001111. Berarti logic dari Port A saat program dijalankan:
1. Port A.0 —-> HIGH (1)
2. Port A.1 —-> HIGH (1)
3. Port A.2 —-> HIGH (1)
4. Port A.3 —-> HIGH (1)
5. Port A.5 —-> low (0)
6. Port A.6 —-> low (0)
7. Port A.7 —-> low (0)
8. Port A.8 —-> low (0)
*/

Compile program dengan menekan F9,,,
Pasti ERROR.. he..he..heee….. ^_^

Perhatikan tampilan diatas, terdapat informasi error di dalam Message Box.
Error: D:\…..\…..\…..\Coba1.c(6): missing ‘;’
Maksud dari pesan error di atas adalah:
D:\…..\…..\….\ adalah alamat file

Coba1.c adalah nama file (6) adalah nomor baris yang error
Perlu diingat walau nomor baris yang error adalah baris ke 6, error juga bisa terjadi karena kesalahan (error) pada baris sebelumnya.
: missing ‘;’ adalah deskrpisi error
Deskripsi error diatas yaitu error terjadi karena tidak adanya(missing) karakter ; (titik koma). Setiap akhir baris dalam penulisan code harus diakhiri dengan ; (titik koma)
Compile lagi program dengan menekan F9, lihat apakah ada error?? jika tidak ada tekan Shift F9 untuk mengcompile ulang dan klik Program untuk mendownload program ke micro.

Gak bisa ya…………..tuh karena kita blum mengatur setting programmer yang akan digunakan.
4. Mengatur Setting Programmer
Pilih menu: Setting —> Programmer

Jika anda menggunakan downloader yang terhubung ke port parallel / port printer. Contoh: downloader DT-HiQ AVR ISP produksi innovative electronics, pastikan Programmer Type nya:
Kanda Systems STK200+/300
Printer Port :
LPT1: 378h

Jika anda menggunakan dowloader tipe lain misal yang terhubung ke USB, setting Programmer Type disesuaikan dengan keterangan di user manual bawaan downloader anda.
Yupz… sekarang tekan Shift F9 lalu klik Program.

Cara Membuat PCB dengan EAGLE

Langkah langkahnya adalah sebagai berikut:
  1.  Buka Eagle pada Shortcut desktop
  2. kemudian pilih File > New > Project
  3. Beri nama project yang akan dibuat (terserah anda)
  4. Klik kanan pada Project yang anda buat untuk membuat file skematik (*sch).
  5. Setelah itu akan muncul Jendela skematik rangkaian yang akan anda buat.
  6. Nah sampai disini anda telah berhasil membuat Project yang berisi skematik, berikutnya adalah pengenalan fungsi dari masing-masing toolbar yang ada.
  7. untuk keterangan-keterangan yang lain akan dibahas pada saat proses pembuatan. atau dapat anda pelajari sendiri.
  8. Berikutnya adalah menggambar skematik dari suatu rangkaian. disini saya menggunakan contoh rangkaian USBASP dapat dilihat di www.fischl.de/usbasp. apabila anda ingin mencoba rangkaian yang lain juga gak papa..
  9. berikut penampakannya :
    Rangkaian USBASP
  10. lalu pilih Add Component untuk memasukkan komponen yang diperlukan untuk membuat rangkaian skematik.
  11. Tool add komponen
    Jendela Add Komponen
    Komponen yang dibutuhkan untuk rangkaian USBASP adalah (beserta Library) :
    7 resistor            (R-EU_0207/7)
    2 led                 (LED 3MM)
    1 connector USB printer female (PN61729-S)
    2 dioda zener         (ZENER-DIODEDO34-7)
    3 kapasitor mylar         (C-US025-025X050)
    1 kapasitor elektrolit (elco)         (CPOL-USE2.5-6)
    1 kristal osilator                 (CRYSTALHC49S)
    1 header 1x6         (PINHD-1X6)
    3 jumper                 (JP1Q)
    1 socket IC 28 PIN         (DIL28-3)

    Untuk memudahkan mencari komponen dapat dilakukan dengan cara search library komponen yang dicari maka akan keluar komponen beserta footprintnya.
    fasilitas Search Komponen
    atau kalau belum tahu persis librarynya dapat dicari secara manual satu persatu (hehe .. lama-lama pasti hapal) .. 
    Prinsipnya adalah anda tahu bentuk konkret (ukuran) komponen yang akan digunakan untuk mengantisipasi terjadinya ketidakcocokan (kebesaran/kekecilan) dari komponent terhadap footprint.
  12. Untuk memudahkan peletakan komponen dan pada saat menghubungkan wire maka dibutuhkan grid. untuk mengaktifkan grid dapat dilakukan dengan cara Klik tool Grid seperti gambar di bawah atau dengan tombol 'F6' pada keyboard. Sesuaikan ukuran dengan satuan mm agar memudahkan dalam menghitung panjang dan lebar wire dll.
  13. Tools Grid
    Pengaturan Grid dan satuan yang digunakan
  14. Oke setelah semua komponen lengkap berikutnya adalah menyusun komponen . sesuaikan dengan gambar dan posisi antar komponen yang terhubung tidak terlalu jauh.
  15. Pengaturan Posisi Komponen
  16. Hubungkan Komponen yang terhubung dengan memilih Wire pada Toolbar Kiri.
  17. Tool Wire
    Wiring Komponen

  18. Jika semua komponen telah di-Wiring , berikutnya adalah memberi nama dan nilai masing-masing komponen sebagai acuan dalam pemasangan komponen nantinya.

  19. Tool untuk memberi nama dan value
    Memberi nilai Komponen
    Memberi nama komponen


  20. Setelah semua complete simpan skematik. File >save 
Sebelum kita mengkonversikan ke dalam board, terlebih dahulu harus kita cek apakah terdapat error yang nantinya bisa berpengaruh pada rangkaian saat diujicoba.
Error yang paling sering terjadi adalah wire yang kita hubungkan kadang tidak Konek dengan baik atau biasanya terjadi hubung singkat pada beberapa wire yang seharusnya tidak terhubung. 
hal tersebut biasa terjadi apabila kita kurang teliti terhadap rangkaian yang kita buat.
Untuk cara mengecek rangkaian tersebut sebelum dikonversikan kedalam board adalah sebagai berikut :

  1. Dengan cara manual yaitu memanfaatkan tool Show Wire
  2. Dengan tools ini kita akan tahu wire mana yang terhubung dan mana yang tidak. untuk wire yang terhubung maka wire akan berwarna lebih terang daripada wire yang lain.
    Jika ternyata memang ada kesalahan maka delete wire yang hubung singkat tersebut dan atur ulang agar tidak terjadi hubung singkat lagi.
    Cek konektivitas wire
  3. Dengan menggunakan ERC (Electrical rule check).

dengan memanfaatkan tools ini maka kita akan tahu error dan warning yang terjadi. setelah kita klik tool tersebut akan muncul pemberitahuan terjadinya error seperti gambar di bawah
Pemberitahuan ERC
Peringatan bahwa PORT JP4 tidak diberi nilai (dapat diabaikan)
Dari keterangan diatas kita tahu bahwa terjadi 3 warning pada rangkaian skematik yang artinya terjadi missing pada junction NET N$2. nah untuk memastikan apakah pada NET N$2 butuh junction kita dapat mengacu pada cara nomer 1 yaitu dengan cara show wire pada junction yang diindikasikan terjadi Missing junction. jika setelah kita cek ternyata NET tersebut telah konek maka peringatan tersebut dapat kita abaikan.
sedangkan untuk peringatan  berikutnya menandakan bahwa jumper nomer 4(JP4) dan PORT USB CONNECTOR tidak diberi nilai. hal tersebut dapat kita abaikan karena Jumper dan konektor memang tidak diberi nilai. 
Ok.. setelah kita memastikan bahwa rangkaian skematik yang kita buat telah benar dan tidak  terdapat error maka selanjutnya adalah mengkonversikan kedalam board PCB.
Sebelum itu, ada baiknya kita merencanakan PCB ini nanti-nya akan dibuat dalam ‘single layer’, ‘double layer’, atau ‘multi layer’. Pada EAGLE versi gratis hanya menyediakan ‘single dan 'double layer’ saja dimana pada ‘single layer’ menggunakan PCB dengan satu lapisan tembaga (bawah saja) sedangkan pada ‘double layer’ menggunakan PCB dengan dua lapisan tembaga (atas-bawah). Karena pada tutorial ini akan dibuat rangkaian elektronika sederhana dan tidak memiliki banyak komponen, maka kita pilih ‘single layer’. Yang berarti bagian bawah PCB (yang terdapat tembaga) digunakan sebagai jalur rangkaian, dan bagian atas PCB digunakan sebagai tempat penempatan komponen.

Baiklah sekarang saatnya menyusun komponen dengan memasukkan-nya ke dalam kotak yang ada disamping kanan-nya. Kotak tersebut merupakan ‘Dimension’ atau kotak pembatas dari papan PCB yang akan digunakan. Gunakan perintah ‘Move’ untuk memindahkan setiap komponen. Sebelumnya tekan ‘F6’ pada keyboard untuk menampilkan grid agar mempermudah pekerjaan kita. 


Langkah-langkahnya adalah sebagai berikut :

Cari pada toolbar Board kemudian klik
Convert to board
biasanya akan muncul notifikasi yang artinya adalah "apakah anda ingin membuat board dari skematik yang telah anda buat?" klik Yes.
Notifikasi
berikutnya akan muncul hasil board yang telah kita buat dari file skematik tadi. selanjutnya adalah move semua komponen ke dalam area kerja (worksheet). caranya adalah klik group > kemudian blog semua komponen tersebut > lalu klik move > kemudian klik kanan pada area komponen > move Group
Worksheet
Tool Group
Grouping

Tool Move
Move Group
lalu pindahkan seluruh komponen kedalam area kerja (worksheet) yang kita tentukan.
Worksheet
Nah disinilah anda dituntut untuk berimajinasi untuk penempatan Posisi masing-masing komponen (jangan berimajinasi yang lain)  .ada bagian ini kita akan menyusun komponen-komponen tersebut menurut posisi yang paling proporsional dan rapi.  perkirakanlah jarak antar komponen . Usahakan jangan terlalu dekat,karena biasanya kalau terlalu dekat dapat menyulitkan pemasangan.
Pengaturan Posisi Komponen
Berikutnya setelah semua komponen tersusun kini saatnya Routing . Eagle memiliki beberapa fasilitas dalam melakukan routing yaitu dengan cara manual atau secara otomatis.
untuk memilih sistem routing yang digunakan biasanya dilihat dari tingkat kompleksitas dari rangkaian tersebut. jika rangkaian terlalu rumit dan akan makan waktu lama bila dilakukan secara manual maka pilihlah yang automatis routing.
caranya yaitu pilih tools > auto > kemudian akan tampil pengaturan Routing.
auto Route
Pengaturan Autorouter
Karena disini yag digunakan adalah 'single layer' maka pada setting Preferred Direction kita atur seperti gambar. Pada bagian top layer Pilih 'N/A' dan bagian Bottom Pilih * . Artinya hanya bagian Bottom layer saja yang diaktifkan sedangkan layer lain dinonaktifkan.
Untuk setting Routing Grid Pilih 0,8 mm maksudnya adalah jarak minimal antar Routing adalah 0,8 mm ,jika disetting terlalu besar maka tingkat keberhasilan autorouter sangat kecil (banyak Jumper). Untuk via shape (bentuk dari via) Pilih sesuka anda.
Setelah itu Pilih OK dan Komputer akan merouting secara Otomatis. Cepat lambatnya Autorouting tergatung dari tingkat kerumitan dari rangkaian.
hasil Aoutorouter
Nah jika dilihat dari hasil autorouter diatas terdapat dua wire yang tidak terouting maka anda dapat menambahkan jumper untuk menghubungkan wire tersebut.
Jika dilihat dari hasil di atas mungkin sedikit kurang rapi dan kurang memuaskan. saya Pribadi sich lebih suka menggunakan manual routing karena jalur wire dapat kita susun terserah kita walaupun sdikit lama (itung-itung game Puzzle gratis nyusun wire..hehe).

Untuk cara manual dapat dilakukan dengan cara berikut:

Klik route pada Side toolbar sebelah kiri.
untuk pengaturan lebar jalur dan lain-lain dapat diatur pada toolbar bagian atas (Width,Via dll)

Untuk memilih jenis sudut (45°, 90°, atau melingkar) pada jalur PCB yang akan dibuat hanya klik-kanan pada saat kita membuat jalur, atau dengan menggunakan fitur ‘Wire bend’ pada toolbar yang muncul ketika kita memilih fungsi ‘Route’.
Untuk cara pemberian jumper dapat dilakukan dengan cara :
pertama tambahkan via pada jalur yang tidak terouting sehingga kesannya nanti kita membuat PCB double layer.
Klik Via pada side toolBar
Kemudian Place dijalur Route yang belum terouting .
Setelah itu Route dengan menggunakan jalur 'Top Layer'.




Dan Inilah kurang lebih Hasilnya .


hasil diatas adalah Board tanpa Polygon. Agar hasil PCB yang kita buat lebih istimawa maka biasanya board yang kita buat dalam bentuk blok, untuk membuat blok pada board kita dapat memanfaatkan fasilitas “polygon”, Klik pada side toolbar > Polygon atau dengan Script ketik POLYGON kemudian enter. dan jika ingin menggabungkan Wire tertentu dengan Polygon maka Scriptnya adalah POLYGON [diikuti nama Wire] contoh jika ingin menggabungkan dengan wire Ground (GND) yaitu : POLYGON GND
Polygon pada ToolBar


Polygon dengan Script

Pengaturan Polygon

Atur Isolate agar jarak antara Polygon dengan jalur tidak terlalu rapat (semakin kecil ukurannya maka semakin rapat). Disini saya memakai ukuran 1.016 mm.
Berikutnya tarik garis polygon mengelilingi Board yang ada.
Garis pada Polygon

Klik ratsnest pada side ToolBar

Ratsnest

Maka hasilnya adalah sebagai berikut..

Hasil Akhir

Nah akhirnya Board yang anda buat telah selesai , sekarang tinggal bagaimana cara mencetak dalam bentuk PrintOut
Untuk mecetak Board maka yang akan ditampilkan hanya  bagian bottom , Vias dan pad 
untuk pengaturannya ada di bagian side ToolBar > Display
Display

Unselect semua kecuali bagian Bottom,Vias ,dan Pad

Select part to Display

Hasil Akhir Siap print........
Bila anda ingin belajar merancang PCB dengan software EAGLE, silahkan download versi gratis nya di website ini http://www.cadsoftusa.com/download-eagle/