For english version http://dincaysroom.blogspot.com (Not complete yet)
Counter etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Counter etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

11 Temmuz 2009 Cumartesi

Döner Kodlayıcı

Döner kodlayıcı modülünü bitirdim ve önceden yaptığım ileri geri sayan programa ekledim. Program döner kodlayıcı saat yönüne döndükçe ileri, ters yöne döndükçe geri sayıyor.

Döner kodlayıcı modülünü önce kendi bildiğim gibi yapmak istedim. Zıplamaları filtrelemek için 2 tane zıplama önleyici modülü kullanmak istemedim çünkü çok verimsiz bir yol. 2 tane 22 bit register kullanılacak. Onun yerine kendim durum makinası yaptım. Bu şekilde yaptığım modül doğru çalışıyor. Fakat tüm zıplamaları filtrelemek için 9 durum tanımlamak zorunda kaldım. Xilinx'in kendi referans tasarımını düşününce yine çok. O yüzden Xilinx'in referans tasarımını kullanmaya karar verdim. İki tasarım da program kodlarında var.

Döner kodlayıcı modülünü Xilinx'in referans tasarımını biraz değiştirerek yaptım. Referans tasarımına http://www.xilinx.com/products/boards/s3estarter/files/s3esk_rotary_encoder_interface.pdf adresinden ulaşılabilir. Referans tasarımında dönme olduğunu gösteren ve dönmenin yönünü gösteren 2 çıkış var. Ben bunları saat yönünde dönme olduğunu ve saat yönünün tersinde dönme olduğunu göstercek şekilde değiştirdim. Ayrıca modülün iç kısımlarını da kısalttım. Şimdi daha şık duruyor.

Xilinx'in referansında bir hata var. Döner kodlayıcının anahtarları normal durumda devre şemasına göre 1 konumunda (pull-up direncinden dolayı) ama osiloskop ekran görüntüsü 0 olduklarını gösteriyor. Doğru olan şemada gösterilen şekil. Karttaki LED'lerden iki tanesi anahtarların durumunu gösteriyor, normal durumda ikisi de 1. Modül girişleri senkron yaparken bu durumu da düzeltiyor, girişlerin tersini alıyor.

Karttaki LED'lerden iki tanesi döner kodlayıcıdaki iki anahtarın durumlarını gösteriyor. Şaftı çevirirken anahtarların durumlarının değiştiğini gözlemleyebiliyorum. Gerçekten eğlenceli.

Çevre birimleri arasından bir tek LCD ekran kaldı. LDC ekranın modülünü de yaptıktan sonra kendi tasarımlarımı yapmaya başlayabilirim.

Döner kodlayıcı modülüne buradan ulaşılabilir.
Verimsiz döner kodlayıcı modülüne buradan ulaşılabilir.
Program kodlarına buradan ulaşılabilir.

2 Haziran 2009 Salı

İlk program

Yapmayı düşündüğüm programı bitirdim. Program, zıplama önleyicisi ve 7 bölmeli LED sürücüsünü test etmeye yarıyor. Her tuşa basılınca LED'lerdeki sayı bir artıyor. Eğlence olsun diye azalma özelliği de ekledim. Bir anahtar sayma yönünü belirliyor. Bu programı yazdığım çok iyi oldu. Çünkü zıplama önleyicisinde ve LED sürücüsünde önemli hatalar varmış. Şimdi ikisi de çatır çatır çalışıyor. İnternete koyduğum dosyaları da düzelttim.

Zıplama önleyiciye, düzgün simulasyon yapabilmek için reset ekledim.

LED sürücüde basamakların yerleri tersti ve 4 rakamını yanlış basıyordu. İkisini de düzelttim.

Kart kutusundan çıktığında programlama jumperlarının üçü de takılıydı. Bu sayede kartı açar açmaz kart, prom'daki programı kendine yüklüyordu. FPGA'i USB'den programlamak için jumperları sadece ortadaki kalacak şekilde yapmak gerekiyor. Bununla ilgili kullanım kılavuzunda açıklama var.

Program kodlarına buradan ulaşılabilir.

Sayma işlemini tuşla değil de döner kodlayıcı ile yapmak istiyorum. Bir dahaki programda döner kodlayıcıyı kullanacağım. Üstelik döner kodlayıcı için de bir modül yapmış olurum.