Eşzamansız (Asenkron) Sayıcılar

Uzun zamandır blogumun başına geçmiyordum.Kabul ediyorum,Tembelim😀. Neyse uzatmadan konumuza geçiyorum.Umarım yararlı bir yazı olur.

Eşzamansız(Asenkron) Sayıcılar

Bu yazıyı yazarken birkaç farklı kaynaktan yararlandım.İşin garibi bazı kitaplarda yeterli bilgiyi bulamadım. İncelediklerim " The Art of Electronics ",Morris Mano "Digital Design"bu kitaplarda yeterli bilgi yok.Mano'nun kitabı konuyu bir örnek ile anlatmış."The Art of Electronics" kitabı da bu konuda yetersiz. Bunların aksine önerebileceğim bir MEGEP dokümanı var."Sayıcı ve Kaydedici Devreleri"bu kitabı kesinlikle incelemelisiniz.Bunun yanında All About Circuits'in "Digital "isimli ücretsiz kitabı.Bu iki kitabı incelemelisiniz.
Neyse artık konuya giriyorum.Eşzamansız sayıcılara "seri sayıcılar"da denir.Her bir flip flop diğerini tetikler.aslında yaptığımız bir frekans bölücü devresidir.Hocamız bu konuyu anlatırken şuna benzer cümleler kurmuştu."Aslında biz frekans bölücü devreleri hile,hurda ile sayıcılara dönüştürüyoruz😂."Bu devrenin gecikmesi ise çıkışa kadar olan flip-flopların toplamı kadardır.yani ilk flip-flopun çıkışındaki gecikme 10 ns ise ikinci çıkışta bu gecikme 20 ns oluyor.Tabi bir flip-flopun çıkışındaki gecikmeyi veri belgelerinden bakmalısınız.Buna standar bir değer vermek yanlış olur.Bu konuyu anlamak için J-K flip-flopların nasıl çalıştığını bilmelisiniz.J ve K girişlerinie 5 volt verdiğinizde flip- flop toggle modunda çalışır.

Eşzamansız Sayıcı Türleri

  1. İleri Sayan Sayıcı
  2. Geri Sayan Sayıcı
1.İleri Sayan Sayıcı

İleri sayan sayıcılar 0'dan başlar ve istediğimiz sayıya kadar gider.Burada önemli olan kısım hangi tabanda sayma işlemi yapacağımızdır.Mod 10'a göre sayma işlemini yapıyorsak 9'dan sonra sistem birler basamağını sıfırlamalı onlar basamağını bir arttırmalıdır(BCD sayılarda).

2.Geri Sayan Sayıcı

Bu sayıcılar en yüksek değerden en düşük değere kadar sayma işlemini gerçekleştirir.)9'dan 0'a sayma işlemi yapan bir sistem eşzamansız sayıcılar ile mümkün değildir(hocamdan gelen bir mail üzerine bunun mümkün olduğunu öğrendim.😅).Bunun tasarımının eşzamanlı sayıcılar ile yapılması gerekmektedir.Bunun sebebi 0-9 sayıcının ikilik tabanda  1001'den geriye sayması gerektiğidir.Eş zamansız tasarımda bunu yapmak mümkün değildir.

Saat Sinyali

Sayıcılar çalışmak için bir saat sinyaline ihtiyaç duyarlar.Bunu kare dalga üreteci ile sağlayabiliriz.Eğer 1 Hz'lik bir saat sinyali uygularsak sistem saniyede 1 kere sayma yapar.Bu sayede sayıcılar ile dijital saat yapabiliriz.

Eşzamansız Sayıcılar

Hocamız bu konuyu anlatırken bunların belirli bir metodu olmadığını,sezgisel olarak tasarım yaptığımızı söylemişti.Bu mümkün ama her zaman kolay değil. Mod 16 BCD sayıcıyı şahsen sezgisel olarak tasarlayamıyorum.Bunun yerine reset girişlerine bağlayacağımız kapıları karnoda çözümlüyorum.Daha kolay oluyor.0-9 BCD  sayıcıda ise karnoya gerek yok.Tek yaptığımız şey sayıcı ikilik tabanda 1010 sayısına eşit olunca flip flopları resetlemek.Reset girişleri lojik 0 olunca sistem yeniden başlamalı.Aşağıdaki tasarımı inceleyiniz.Aşağıda bir 10'luk tabanda ileri sayıcıyı görüyorsunuz.

0-9 BCD İleri Sayıcı

Buradaki amaç sistemde istediğimiz değer oluştuğunda sistemi yeniden başlatmak.Bunun için B ve D çıkışlarını Ve Değil kapısına girip sonucun sistemi yeniden başlatmasına izin veriyoruz.Peki bunu yerine A ve C 'yi VE kapısına girseydik sistem çalışır mıydı?Hayır çalışmazdı.Kendinize neden çalışmayacağını sorun ve düşünün.Sonra yazıyı kaldığınız yerden devam edin.Düşünüp geri geldiğinizi varsayıyorum.Sonucu bulamadıysanız endişe etmeyin.0-9 ve arasındaki tüm sayıların ikilik tabandaki karşılıklarını bir kağıda yazın ve incelemeye başlayın.5 rakamının ikilik tabandaki karşılığı 0101 olduğundan A ve C çıkışlarını VE DEĞİL kapısına girip çıkışı reset pinlerine bağlarsanız sistem mod5 olarak çalışır ve her 5 rakamda bir sistemi yeniden başlatır.Aynı metodu mod 16 BCD sayıcıda uygulamak çok zordur.Daha karmaşık bir mantık devresi gereklidir.Bundan ötürü birazdan karno tablosu ile bunu nasıl tasarlayabileceğinizi göstereceğim.Bu sistem aslında 10 sayısına gelince sistemi sıfırlar.Bu o kadar küçük bir zaman aralığıdır ki bunu göremezsiniz.Aşağıdaki resmi incelerseniz 0-9 BCD sayıcının nasıl çalıştığını daha iyi anlarsınız.  

Zamanlama Diagramı

Tasarım Yaparken Çıkan Zorluklar

Bu tasarımları yaparken bazı etkenler bizi zorlar.Bunlarda bir tanesi şudur;
BCD sayılar ile ikilik tabandaki sayılar 9'dan sonra birbirinden farklı bir hal alıyor.Buda şu anlama geliyor. Sistemin tasarımını yaparken bir tane fazla flip flop kullanmamız gerekiyor.Tabi sayıları mod10'a göre okumak istiyorsak 16'lık tabanda işlem yapacaksak işler bu kadar zor olmaz.7 parçalı gösterge sürücüleri 16'lık sayı tabanında çıkış verirler.Bu yüzden sayıcı saymaya başladığında uygun değerleri gösterir.Aşağıda 16'lık tabanda bir ileri sayıcı var.


Hex İleri Sayıcı

 Bu devrede 9 rakamından sonra sistem A,B.. şeklinde saymaya devam eder. F'ye geldiğinde otomatik kendini yeniden başlatır.Neden hiç bir mantık kapısı olmadığı halde kendini yeniden başlatıyor?Aslında cevap zor değil.Sayıcı F sayısına gelince çıkışlar 1111 olur.Bir sonraki tetikleme sinyalinde flip-floplar  1 0000 değerini alır.En yüksek değerlikli bit sistemde bağlı olmadığından sistem 0000'dan saymaya devam eder.

Geri Sayan Sayıcılar

Şimdiye kadar verdiğim örneklerde ileri doğru sayan devreleri inceledik.Birazda Geri sayan devrelere bakalım.İşin içine geriye doğru sayan sayıcılar girdiğinde flip-flopların çıkış bacaklarında değişiklik yapmak gerekiyor.Karmaşık değil önceden çıkışı Q'dan alıyorduk.Şimdi Q'nun değilin den çıkış alıyoruz.


Bu sayede çıkışlar sistem ilk çalıştığında 1111 değerini alır.Saat sinyali geldiğinde son durundan  bir çıkarır.Bu sayede geriye doğru sayma yapar.

BCD mod 16 Sayıcının Tasarımı

Bu işin zorluğu sistemin 7 parçalı göstergelerde gösterilmesidir.Günlük hayatta onluk sayı sistemini kullanırız.Bu devreyi sezgisel olarak tasarlamak zordur.Bu yüzden istediğimiz durumlarla ilgili bir doğruluk tablosu yapıyoruz ve Sistemi buradan çıkan sonuca göre yeniden başlatıyoruz.Bu konuyu anlamak için karno haritalarını bilmeniz lazım.



Yukarıda gördüğünüz karno haritasını aktif 1'e göre tasarladım.Oysaki devredeki flip-flopların reset ucu aktif 0 ile tetikleniyor.Bu sorunu ortadan kaldırmak için reset girişlerine DEĞİL kapısı bağladım.İsterseniz sistemin karno tablolarını aktif 0'a göre tasarlayabilirsiniz.Gördüğünüz üzere bu sayıcı devresini sezgisel olarak tasarlamak zor ama bu yöntem ile işler kolaylaşıyor.Yararlı bir yazı olduğunu düşünüyorum.eğer yazıda hata var ise bana ulaşabilirsiniz.  

Kaynaklar:
M.Morris Mano "Digital Design"
MEGEP "Sayıcılar ve Kaydediciler"
All About Circuits "Digital"


Yorumlar

Bu blogdaki popüler yayınlar

Ege MYO Ders Notları:Ölçme Tekniği 1.hafta

DEĞİL Kapısı