Kamis, 11 Februari 2010

Interfacing Serial Port PC dengan ATMEGA8535

ATMEGA8535
    Atmel salah satu vendor yang bergerak dibidang mikroelektronika,telah mengembangkan AVR (Alf and Vegard's Risc processor) Sekitr tahun 1997. Berbeda dengan mikrokontroler MCS51,AVR menggunakan arsitektur RISC (Reduce Instruction Set Computer) yang mempunyai lebar bus data 8 bit.
    Perbedaan ini bisa dilihat dari frekuensi kerjanya . MCS51 memiliki frekuensi kerja seperduabelas kali frekuensi kerja osilator sedangkan frekuensi kerja AVR sama dengan frekuensi kerja osilator. Jadi dengan frekuensi osilator. Jadi dengan frekuensi osilator yang sama,kecepatan AVR duabelas kali lebih cepat dibandingkan dengan kecepatan MCS51. Secara umum AVR dibagi menjadi 4 kelas,yaitu Attiny,AT90Sxx,ATMEGA dan AT86RFxx. Perbedaannya hanya terletak pada fitur-fitur yang ditawarkan,sementara dri segi arsitektur dan set intruksi yang digunakan hampir sama.
(dikutip dari buku Pemrograman Bahasa C untuk Mikrokontroler ATMEGA8535 oleh M.Ary Heryanto,ST dan Ir.Wisnu Adi P.)

Konfigurasi Pin ATMEGA8535
    Untuk melihat konfigurasi pin dari ATMEGA8535 ini sebaiknya anda membaca langsung datasheetnya. Salah satunya di alldatasheet.com.


Gambar 1. Pin I/O Atmega 8535

    Dan untuk rangkaian Sistem Minimal dari ATMEGA8535 dapat anda lihat gambar 2.

Gambar 2. Sistem Minimum ATMEGA8535

    Dari gamabar kita bisa melihat jika PORT A akan kita hubungkan pada rangkaian LED yang akan kita buat.

Pemrograman Bahasa C
    Disini saya hanya akan membahas sebagian kecil dari bahasa C ini.
Contoh Listing Program C.

#include

// Standard Input/Output functions

// Declare your global variables here

void main(void)
{
// Declare your local variables here


while (1)
      {
      // Place your code here

        };
}

 Struktur penulisan bahasa C pada dasaranya terdiri dari 4 bagian utama yakni :
•    Header, berisi include file yang akan kita gunakan.Sebagai contoh dari program diatas kita menggunakan file  "#include ". Yang merupakan library dari file mega8535.
•    Deklarasi Variabel secara global
•    Fungsi prosedur
•    Program utama

    Sebenarnya pada programan C ini kita cukup menuliskan program utamanya saja. Dan juga untuk mempermudah kita,kita cukup gunakan software Bantu seperti Codevision AVR.
    Dan saya sendiri tidak akan mengajarkan tentang pemrograman ini. Jujur hal ini dikarenakan saya sendiri masih kurang menguasai bahasa C ini. Jadi maaf jika nanti banyak kurangnya.


Port Serial

    Anda dapat membaca tentang Port Serial pada artikel sebelumnya. "Interfacing Serial Port DB 9"


Rangkaian Sistem Interfacing Serial Port dan ATMEGA8535

Sebelum menghubungkan Pin pada Serial Port DB9,kita juga membutuhkan sebuah IC yaitu ICMAX232. Fungsi IC ini adalah mengubah bentuk sinyal/logika  RS232 yang merupakan output dari port serial menjadi sinyal/logika TTL (Transistor-transistor Logic) dan sebaliknya.  Dan sebaiknya anda terlebih dahulu membaca datasheetnya. Anda juga dapat mendownloadnya di Alldatasheet.com.
    Untuk Konfigurasi yang lebih jelas mengenai IC MAX232 ini dapat kita lihat gambar 3. IC Max232 ini terdapat dua transmitter dan dua receiver.Anda juga dapat menggunkan IC lain yang memiliki fungsi yang sama dengan IC ini seperti DS1489 sebagai transmitter dan DS1448 fungsi sebagai receiver. Sehingga anda harus menggunkan IC ini sedara bersamaan.

Gambar 3. IC MAX232
    Dan kita akan menghubungkan ATMEGA8535 dan Port serial menggunkan IC ini. Bisa kita lihat gambar rangkaiannya pada gambar 4.


Gambar 4.Diagram Rangkaian Sistem


Aplikasi Interfacing Serial Port dan ATMEGA8535

•    Mengendalikan Led
        Untuk percoban pertama ini kita akan melakukan uji coba menggunakan rangkaian Led. Karena pada dasarnya Led akan menjadi indikator dari input yang akan kita gunkan. Jika berhasil maka Led akan menyala atau mati sesuai logika yang kia berikan.
        Untuk gambar rangkaian yang lengkap dapat kita lihat pada gambar 5.  Kita lihat jika rangkaian led yang kita gunakan akan kita hubungkan pada PORTA 0-7 pada ATMEGA8535. Nilai resistor yang akan kita pakai sebaiknya bernilai 220-470 Ω.


Gambar 5.Rangkaian Sistem Interfacing
Sebelum kita memulai terlebih dahulu kita membuat sebuah program dengan bahasa c yang akan kita downloadkan pada ATMEGA8535 milik kita nantinya. Disini saya akan menggunakan Codevision AVR sebagai software yang akan membantu saya. Codevision ini memiliki banyak kelebihan yang tentunya akan sangat berguna kedepannya.

•    Buka software Codevision AVR anda. Tentunya sudah anda instal di komputer anda. (Disini saya sebagai penulis telah menganggap jika anda telah mampu menggunakan program ini dengan baik).


Gambar 6. Layout CodevisionAVR

•    Klik file>>new atau klik icon create new project  dan akan muncul form seperti gambar 7.

Icon New Project


Gambar 7. Form Create New Project

•    Pilih poject dan klik ok
•    Dan akan muncul Form konfirmasi. Klik Yes.



Gambar 8. Form Konfirmasi

•    Dan Akan muncul form CodewizardAVR


                                         Gambar 9. CodeWizardAVR                                                                            

  Gambar 10.  Tab Port


•    Pilih Chip ATMEGA8535 dengan Clock 11.059200 MHz (Gambar 9).
•    Klik Tab Ports. Pilih PortA dan klik in dan akan menjadi Out (Gambar 10).


•    Pilih Tab USART dan beri centang receiver dan juga transmitter. Baud rate 9600.parameter komunikasi 8 data,1 stop bit,no parity dan juga mode asynchronous (Gambar 11).


Gambar 11. Tab USART


•    Klik file>>generate,saveandexit. Selanjutnya beri nama uart di ketiga form yang muncul nanti klik save.
•    Atur seperti listing program ini
•    include
•   
•    // Standard Input/Output functions
•    #include
•   
•    // Declare your global variables here
•   
•    void main(void)
•    {
•    // Declare your local variables here
•   
•    // Input/Output Ports initialization
•    // Port A initialization
•    // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
•    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
•    PORTA=0x00;
•    DDRA=0xFF;
•    //codewizard yang lain
•   
•    // USART initialization
•    // Communication Parameters: 8 Data, 1 Stop, No Parity
•    // USART Receiver: On
•    // USART Transmitter: On
•    // USART Mode: Asynchronous
•    // USART Baud Rate: 9600
•    UCSRA=0x00;
•    UCSRB=0xD8;
•    UCSRC=0x86;
•    UBRRH=0x00;
•    UBRRL=0x47;
•   
•    while (1)
•          {
•          // Place your code here
•          
•           PORTA=UDR;
•          };
•    }



•    Buka terminal yang ada pada CodeVisionAVR.dan tekan sembarang tombol keybord atao isikan nilai hex pada tempat yang tersedia. Lihat Led anda. Jika menyala sesuai nilai maka program telah benar. Contoh:
    A= 61hex maka led yang menyala 0110 0001 (atau led pertama,enam dan     tujuh).










7 komentar:

  1. makasih ya tutorialnya....

    BalasHapus
  2. Your welcome...Alias sama-sama

    BalasHapus
  3. Nice.....great tutorial

    BalasHapus
  4. pas sama bahasan q bos... makasih ya. hehehe....

    BalasHapus
  5. thebe

    • UCSRB=0xD8;
    • UCSRC=0x86;
    • UBRRH=0x00;
    • UBRRL=0x47;

    bisa jelasin gg ni maksudnya apa???

    BalasHapus
  6. Pak apa bedanya kalau kita klik "Rx dan Tx Interrupt" dengan kitak tidak mengklik keduanya?

    BalasHapus
  7. @Insinyur Pikun: Jelas ada bedanya pak, Klo Fungsi Interrupt di Aktifkan maka saat proses Transfer dan Eksekusi data dapat terjadi Proses Interupsi tergantung dari program yang anda buat. CMIIW

    BalasHapus

Need Your Comments, Please !!!