Digilent BASYS2 7 Segment Kullanımı


Merhabalar Arkadaşlar,

   Bir önceki yazımda sizlere Xilinx ISE 14.7 kurulumunu anlatmıştım. Ayrıca basit bir uygulama ile Digilent BASYS2'yi sizlere göstermiştim. Bu yazımda BASYS2'de 7 segment kullanımından bahsedeceğim. Şuan için çalışmalarımda şematik tasarım üzerinden devam ediyorum. VHDL veya Verilog yazılımları ile de uygulamalarınızı geliştirebilirsiniz.

   İlk olarak ne yapacağımızda kısaca bahsedeyim. BASYS2 üzerinde 8 adet switch ve 4 adet 7 segment display vardır. Bu uygulamada 4 adet switch'i kullanarak bu segmentlerde 0-15 değerleri elde edeceğiz. Öncelikle BASYS2 üzerindeki 7 segment displayler Ortak Anot'tur. Bu durumda segment uçlarına 0 değeri uygulamamız gerekirki gerilim farkı oluşsun ve ledler yansın.

   Xilinx ISE 14.7 programına giriyoruz. Ardından File --> New Project diyoruz. Çıkan pencerede uygulamamızın adını giriyoruz. Altta ise Schematic seçeneğini seçiyoruz. Next diyoruz. Burada değerler bizim kullanacağımız FPGA ile aynı olmalıdır. BASYS2 için bu seçenekler aşağıdaki gibidir.




   Yukarıdaki ayarlardan sonra Next diyoruz ve son olarak Finish'e tıklıyoruz. Proje ekranında sol üstte proje ismimizin bulunduğu yerin altında FPGA ismi görünmektedir. Üzerine geliyoruz sağ tıklıyoruz ve New Source diyoruz. Schematic'i seçiyoruz ve dosya adı giriyoruz. Next ve Finish diyoruz. Tekrar sol üstte schematic dosyasının üstüne gelerek sağ tıklıyoruz ve New Source diyoruz. Burada Implementation Constraints File diyoruz. Dosya adı giriyoruz, Next ve Finish diyoruz. 

   Şematik çizim alanına geliyoruz. Bu adımda sayısal devre bilgisine ihtiyacımız olacaktır. 4 giriş için 7 segment doğruluk tablosu aşağıdaki gibidir. 


   Yukarda hexadecimal değerleri elde etmek için display'e uygulanması gereken değerler vardır. Bu değerlere göre a,b,c,d,e,f ve g için 7 ayrı karnaugh haritası oluşturulur. Burada maxterm yada minterm'e göre değerleri alabilirsiniz. Ardından aşağıdaki gibi bir devre elde edeceksiniz.


   Devre karışık görünüyor. 4 adet giriş var ve her karnaugh için ise 7 adet çıkış vardır. Burada A değeri SW3'ü, B değeri SW2'yi, C değeri SW1'i ve D değeri ise SW0'ı temsil etmektedir. yani A değerini elde etmek için SW2'ü değiştireceğiz. B değeri için ise SW2'yi.

   Şimdi BASYS2'ye baktığımızda displaylerin yanında CA,CB... gibi değerler yazar. Bu değerler şunu ifade eder.
CA --> A ledi pini
CB --> B ledi pini
CC --> C ledi pini
CD --> D ledi pini
CE --> E ledi pini
CF --> F ledi pini
CG -- > G ledi pini

    Burada a karnaugh haritası çıkışını CA'ya, b karnaugh haritasını çıkışını CB'ye veriyoruz. Diğer karnaugh haritalarını ise sırayla CC,CD,CE,CF,CG'ye uyguluyoruz. Önceki yazımda pin adlandırma ve atama işlemlerinden bahsetmiştim.

   Bunları yaptıktan sonra .ucf uzantılı dosyaya giriyoruz. Aşağıdaki gibi değerleri yazıyoruz.

#Giriş Pinleri
NET "SW0"   LOC = "P11";
NET "SW1" LOC = "L3";
NET "SW2" LOC = "K3";
NET "SW3" LOC = "B4";

#7 Segment Girişleri
NET "CA" LOC = "L14";
NET "CB" LOC = "H12";
NET "CC" LOC = "N14";
NET "CD" LOC = "N11";
NET "CE" LOC = "P12";
NET "CF" LOC = "L13";
NET "CG" LOC = "M12";

   Burada pinleri FPGA'e atıyoruz. Buradan sonra işlemlerimiz tamam. Şimdi sırada birkaç işlem var.    Generate Programming File'a gelip sağ tıklıyoruz. Process Properties diyoruz.  Startup Option'a gelip FPGA Start-up Clock'u JTAG Clock yapıyoruz ve OK diyoruz. Şimdi Generate Programming File üstüne gelip fare ile iki kez tıklıyoruz. İşlem basamakları program tarafından yapılıyor. Hepsi yeşil tick olduğunda işlem bitmiş demektir. Şimdi .bit uzantılı dosyayı Adept programı ile BASYS2'ye yüklüyoruz. SW3,SW2,SW1 ve SW0 ile oynayarak değerleri 7 segmentte elde edebilirsiniz.

   Aşağıda SW0 = 1, SW1 =1, SW2 = 1 ve SW3= 0 konumunda FPGA görüntüsünü sizlerle paylaşıyorum. Yani segmentte bu konfigürasyonda 7 değeri elde edilmelidir.



   Kolay gelsin.



Yorumlar

  1. merhabalar bu yapılan çalışma için vhdl kodu mevcut mudur ?

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Basit Bir EKG Nasıl Yapılır?

Yapay Zeka ile Kalp Krizi Teşhisi Part 1 - Matlab