brontoseno electric

7:35 PM
3
STIK PS2 ATMEGA32 


      Pada kesempatan kali ini saya akan membagikan cara untuk mengakses Stik Ps2 ke mikrokontroler AVR atmega32 . Kontroler stik ps2 ini biasa digunakan untuk mengontrol robot secara manual . Jenis dari komunkisi yang di gunakan adalah jenis komunikasi SPI atau biasa disebut serial periperal interface. nah tidak usah berlama-lama saya akan menjelaskan mulai dari awal pembuatan sampai seting register menggunakan compiler Codevision AVR.agar teman-teman tidak tersesat di tengah jalan saya harap teman-teman bisa mengkikuti langkah-langkah di bawah ini.

Seting Chip & crystal  
Pertama buka CodeWizard seperti pada tampilan diatas,crystal yang kalian gunakan sekarang adalah 8Mhz dengan menggunakan atmega16 atau 32.

Spi seting 

          Kemudian seting Clock phase ke mode Cycle Half , kemudaian clock polaritinya ke mode High , Spi Type sebagai master , data ordernya ke LSB , kemudian SPI clock rate nya kita seting 125.000Khz. Pastikan semua register yang kalian seting sama seperti register diatas. 

seting port


         Berikut adalah pin apa saja yang akan kalian seting untuk Pin4 kalian harus memberi Logic 1 karena pin 4 adalah (psxatt) iddle kondisi , PORTB.7 sebagai (psxSck) , PORTB.6 sebagai (psxData) ,  dan PORTB.5 segabai (psxcmd). kemudian kalian lakukan generate dan save program , dan hasil dari program ini adalah seperti berikut untuk setingan di main programnya .

                                                  //  SPI initialization
                                                  //  SPI Type: Master
                                                  //  SPI Clock Rate: 125.000 kHz
                                                  //  SPI Clock Phase: Cycle Half
                                                  //  SPI Clock Polarity: High
                                                  //  SPI Data Order: LSB First
                                                  //  SPCR=0x7E;
                                                  //  SPSR=0x00;

Pastikan hasil yang kalian generate sama seperti yang diatas , agar lebih memudahkan kalian dalam proses uji coba program.Selanjutnya tulislah listing program sama seperti yang ada di bawah ini.


 while(1)
{
 PORTB.4=0;

 spi(0x01);

 delay_us(1);
 byte1=spi(0x42);
 delay_us(1);

 byte2=spi(0);
 delay_us(1);
 byte3=spi(0);
 delay_us(1);
 byte4=spi(0);
 delay_us(1);
 byte5=spi(0);
delay_us(1);
 byte6=spi(0);
 delay_us(1);
 byte7=spi(0);
 delay_us(1);
 byte8=spi(0);
 delay_us(1);
 PORTB.4=1;
 delay_ms(10);
   
  lcd_clear();
  lcd_gotoxy(0,0);
  sprintf(byte,"%d %d %d %d\n %d %d %d %d",byte1,byte2,byte3,byte4,byte5,byte6,byte7,byte8);
  lcd_puts(byte);
           
  delay_ms(10);
}

        Kemudian saya akan menjelaskan secara detil tentang penjelasan program diatas.Data digital ini bersifat active low , jadi ketika tombol di tekan akan diterima data 0xff(0b11111111). Jika joystik sedang dalam kondisi analog , maka komunikasi dilanjutkan dengan data analog 1, data analog 2 , data analog 3 dan data analog 4, yang saat kondisi netral berupa data 0x7f(127) dengan nilai minimal 0 dan nilai maximal 255.Saat operasi digital byte 6 sampai dengan byte 9 akan selalu memberikan data 0xff.


Pertukaran Data Digital
        Saat kondisi iddle pin Psxatt dalam keadaan High. Untuk menandai dimualinya kondisi pin Psxatt di beri low ,kemudian akan terjadi pertukaran perintah dan data seperti yang telah saya jelaskan diatas. Komunikasi di akhiri dengan membuat Psxatt  kembali High.Kemudian kita lanjutakan dengan membuat rangkaian elektroniknya. Rangkaian elektriknya sangat sederhana dan ikuti langkah-langkah pembuatan seperti contoh dibawah.

Stik Ps2 ke mikrokontroler

        Untuk lebih detilnya diatas terdapat beberapa warna-warna yang ada di dalam kabel stik ps2 yang akan kalian akses datanya.Sebagai catatan untuk Resistor dimasing-masing kaki bisa diganti dengan nilai yang tidak jauh berbeda semisal dengan nilai 330ohm atau 560ohm.Nah untuk lebih detil, saya akan memberikan gambaran tentang beberapa konektor stik p2 ini.



konektor stik ps2

Konektor stik PS2


Nah setelah ini kalian bisa mengakses tombol-tombol dan analog yang ada di dalam Stik Ps2 ini . Untuk lebih lengkapnya silahkan download linknya disini.

Source code stik Ps2 atmega16
Datasheet atmega16



Sekian dan terimakasi dari saya By. andra risciawan
                                 






         


















3 komentar:

  1. Trims infonya,
    sy coba menggunakan atmega 128 knp tidak bisa y? apakah ada yg harus di ubah.
    kalau berkenan boleh d email k aidielpoetra@gmail.com jika menggunakan atmega 128.
    trims.

    ReplyDelete
    Replies
    1. Harusnya bisa mas ... tidak ada yang berbeda dari atemega 128 .. hanya saja mas harus seting crystal dan port yang berbeda saja

      Delete
  2. kak gmn klu kriystal yg di pake tuh 12 mhz

    ReplyDelete