SAYISAL DEVRE TASARIMI_6 FLIP FLOP

FLİP FLOP konusu biraz karmaşık gibi dursa da Sayısal devrelerde vazgeçilmez devre elemanlarıdır.
Flip FLOP lar kontrollü ya da kontrolsüz olabilir. Ayrıca tek giriş, çift çıkış kontrolü olabildiği gibi çift giriş, çift çıkış kontrollü olabilirler.

Flip floplar butona basıp eliniz kaldırsanız bile son durumu koruma amaçlı devrelerdir. Yani bir kapı devresinde butona bastığınızda çıkış 1 oluyorsa, elinizi kaldırdığınızda çıkış sıfır oluyorsa, ve  devrenizde bir çıkış olarak kalıcılık gerekiyorsa, o zaman flip flop kullanmanız gerekiyor.
Sizler şöyle diyeceksiniz. Ben arduinoya bir buton koyuyorum, basıldığında program onun 1 seviyesi olduğunu saklıyor. Buna ne gerek var? diyebilirsiniz.

Maalesef burada sayısal elektronik olarak Mikrokontrolcülere destek olacak devreler tasarlıyoruz. Mikrokontrolcü devamlı gitsin buton kontrolü yapsın derseniz, onun zamanını boşa harcıyorsunuz demektir. Bundan dolayı bazı işleri sayısal devrelere aktarmanız için bu yazı dizisini oluşturdum. Sizler bu tip devrelerle standart işlemleri mikrokontrolcüden alarak yükünü hafifletmiş olursunuz.

Mesela endüstri de kullanılan yüzey taşlama makinesinde tabla devamlı sağa sola gider. Bunu bir dc motor ya da 2 yönlü bir piston olarak görün. Bu durumda mikrokontrolcüye ihtiyaç yok. 2 tane yön değiştiren anahtar yeter. O zaman böyle bir devre için anahtar basıldığında, yön değiştir derseniz anahtar basılı olduğunda yön değiştirir ama sonrasında anahtardan kurtulduğunda olay devam etmez. Bundan dolayı çıkış durumu değişmeyen bir flip flop kullanmanız yerinde olur. Anahtara basar ve çıkış 0 iken 1 olur ve motor yönü değişir. Anahtar bırakılsa bile çıkış hala 1 olduğundan diğer anahtara kadar hareket devam eder.

Sanırım Flip Flop un ne olduğunu anlatabilmişimdir.

Aşağıda 4 çeşit Flip FLOP göreceksiniz.

1-) S-R Flip Flop
2-) T Flip Flop
3-) J-K Flip Flop
4-) D Flip Flop

Bunlar kendi aralarında birbirine de dönüştürülebilir. Mesela D tipi FF kullanarak S-R FF yapılabilir ya da J-K FF kullanarak T tipi FF yapabiliriz.
Tabii ki FF entegrelerini kullanmasak da, benzer işi yapacak şekilde, Mantıksal kapı devrelerini yapıp kullanabiliriz. İlla ki D FF entegresi ya da J-K entegesi olmak zorunda değil.

Her birinin görevi farklı gibi görünse de bir kontrol mekanizması olarak kabul ederek bulunduğu konumu koruması en belirgin özelliğidir.

Mesela S-R FF bakarsak. S girişi aktif edildiğinde Q çıkışı 1 olur. Fakat S girişi durum değiştirse bile Çıkış yeni komut gelesiye kadar aynı kalır.

Her FF ta 2 çıkış vardır. Q ve Q’ (q değil işareti olarak kolaylık olsun diye ‘ işaretini kullandım) Girişler uygun şekilde bağlanmışsa yalnızca 1 tanesi HIGH seviyesindedir.

Bir de Kontrollü dediğimde CLK palsını anlatmak istiyorum. Bazı FF lar CLK palsi ile giriş ve çıkış arasında bağlantı kurar. Bu CLK palsının hangi kenarını ya da hangi alternansını kullanacağınızı devreniz belirler.

2 çeşit tetikleme vardır. Daha çok Kenar tetiklemeli kullanılır.
EDGE TRIGGERING ( Kenar tetiklemesi)
LEVEL TRIGGERING ( Seviye tetikleme HIGH / LOW)

Yukarıdaki resimde CLK pasının tetikleme durumlarını görüyorsunuz.  Genelde FF lar Kenar tetiklemeli yapılırlar.
RISING EDGE = LOW seviyesinden HIGH seviyesine çıkarken tetikleme yap.
FALLING EDGE= HIGH seviyesinden LOW seviyesine düşerken tetikleme yap.
HIGH LEVEL = Pozitif kısmında tetikleme yap.
LOW LEVEL = Negatif kısımda tetikleme yap.

FF devreleri nerelerde kullanılır diye düşündüğümüzde,

  • Frekans bölücüler (Frequency Dividers)
  • Sayaçlar                 (Counters)
  • Depolama kayıtları  (Storage Registers)
  • Kaydırma kayıtları  (Shift Registers)
  • Veri depolama        (Data Storage)
  • Sıçrama önleme anahtarı  (Bounce elimination switch)
  • Mandal                   (Latch)
  • Veri aktarımı          (Data Transfer)
  • Hafıza                              (Memory)
  • Kayıtlar                  (Registers)

 

 S_R Flip Flop,

Bu FF 2 girişin değişmesine göre çıkışın değişmesini sağlar. Bir saat palsına gerek duymaz ve direkt çıkışı etkiler. O zaman Anahtar konum değiştiğinde eski haline döner diyeceksinizdir.

Tabii ki öyle değil. Aşağıdaki Gerçekleme tablosuna bakarsanız bazı devrelerde S=0,R=0 kullanılmaz. Bazılarında ise S=1, R=1 kullanılmaz. Bu devrenin yapısına göre değişir. Buna göre de sizler anahtarlarınızın hangi konumda olacağına karar verirsiniz.

Yukarıdaki resimde S-R FF NAND kapısıyla ve NOR kapısıyla oluşturulmuştur. NAND kapısıyla oluşturulursa S=0, R=0 kullanılmaz. NOR kapısıyla oluşturulursa S=1, R=1 kullanılmaz.
Kullanıldığında Q ve Q’ çıkışları aynı olur. Bu da FF larda istenmeyen durumdur.

Yukarıdaki resimde sağ taraftaki devrede buton bağlanmış durumu görebilirsiniz. Buton bağlarken Ya +V ye ya da GND ye bağlamak zorundasınız boşta kalamaz. Ya 1 ya da 0 olmak zorundadır. Ayrıca bu resimde bir de Buton çiftleme dediğimiz olayın gerçekleşebilmesine önlem olarak bir devre görüyorsunuz. Bu da en basit çiftleme engellemedir. FF çok hızlı olduğunda çiftleme stabiliteyi bozar. Buna da dikkat etmeniz gerekir. Proteus üzerinde bu görülmese de gerçek devrede bu olabilecektir. Çiftleme buton basarken yada bırakırken olan 2 kez basma olayıdır. Kondansatör önce boşalır yavaş dolacağı için o sırada elimizi çekmiş oluruz ve devre daha stabil çalışır.

S-R sadece bu devre ile sınırlandırılmamıştır. Bazı entegrelerde S ve R olarak yazılır ya da PRESET ve CLEAR olarak yazılır. S=SET=PRESET=Q çıkışı 1 seviyesinde olacaktır. R=RESET=CLEAR= Q çıkışı 0 seviyesine gelir.

S-R FF bir temel yapıdır. Diğer entegreler bunları kendi FF devrelerinde kullanabilir.  Kullanıldığında girişin durumuna bakılmaksızın çıkışları SET ve RESET durumuna göre ayarlar.
S-R FF nerede kullanabilirim derseniz Mikrokontrolcü kullanmadan bir pistonun yönünü, bir motorun yönünü 2 anahtar ile değiştirebilirsiniz.  Bu youtube videosunda makinenin çalışmasını görebilirsiniz. Sağa sola gitmesini sağlayan demir bir kol vardır. Bunun yerine S-R FF konulabilir. Benzer mantıkla çalışmaktadır. Youtube videosu


Standart 2 anahtarla Yön değiştirme için kullanılabilir. Bunun için Mikrokontrolcüye ihtiyacınız olmaz. Zaten, Sayısal devre tasarımı yazılarımın amacı da budur. Devreler kendi görevlerini yapsın. Mikrokontrolcüye iş bırakmasın. Sadece geri bildirim versin.

Proteus şemasında göreceğiniz gibi S-R FF devresinin kapı devreleri ile kurabilirsiniz. Ayrıca J-K FF kullanarak ya da D FF kullanarak da S-R FF yapabilirsiniz.
Proteus kullanmayan kişiler PDF olarak devre şemasını TÜM dosyalar kısmında bulabilir.

T FF devreleri:

T FF devreleri Gösterim şekline göre Aşağıdaki resimdeki gibi Bir T ucuna bir de CLK palsına ihtiyaç duyar. Fakat pratikte bu böyle değildir. Pratikte T girişi ayarlanır ve CLK palsi geldikçe Q ve Q’ çıkışları sırasıyla HIGH ve LOW seviyesine gelir. Bu da bize Tek bir buton basımıyla devrenin çıkışlarını değiştirme imkanı verir.


 Kullanımı şu şekildedir.
T girişi HIGH seviyesine çıkar. Ve devamlı orada beklerken, Butonla CLK girişine önce LOW veririz sonra da HIGH seviyesini veririz. Çıkışlar ise CLK nın LOW seviyesinde değişir HIGH seviyesinde ise ÇIKIŞ etkilenmez. Etkilenmesi için CLK girişini LOW ve HIGH yapmamız gerek. Yani butona basıp bırakırız ve çıkış son durumda bekler. Sonrasında tekrar butona basıp bırakırsak, çıkış konum değiştirir ve o konumda bekler.
Yani Her basıp bıraktığımızda çıkış durumunu değiştirmiş oluruz. Bu bize ne sağlar derseniz bazen bunu kullanmamız gerekir. Ben de Sayısal elektronik yazılarımın devrelerinde kullandım. Tek bir pim ile çıkışı değiştirmem gerektiğinde bunu yaparım. Hem de geciktirme de veririm. Nasıl derseniz, butona basıp bıraktığımda konum değişiyorsa aynı konuma gelmek için 2 pals vermem gerekir. Bu da gecikme sağlar. Yani CLK frekansını yarıya böler. 10 Hz bir frekansta bunu yapsam çıkış 5Hz olacaktır. Bu da frekansı bölmek için bile kullanılır.

T FF için Bir entegre sanırım bulunmuyor. İnternette de baktım yok. Zaten olmasını da beklemiyordum. Diğer FF entegreleriyle kolaylıkla oluşturulabiliyor. En kolay şekli J-K FF entegresi kullanarak yapmak.


Yukarıdaki resimde J-K girişleri HIGH seviyeye çekilir ve CLK girişinden ise 1 pals uygulanır. Çıkış değişir. Tekrar pals uygulanırsa, çıkış durumu yine değişir.

Elimizde J-K entegresi yok ne yaparız derseniz, D FF ile ve Mantık kapılarıyla kendinize T FF hazırlayabileceğiniz gibi Transistörlü olarak da T FF devresi oluşturabilirsiniz.

Proteus şemasında bunun örnekleri var. Fakat orada bir de NOT var. Mesela 2 Tane mantık kapısı analog yapıldı veya eklenmiş buton görebilirsiniz.
Bunlar Proteusun standart çalışmasını ortadan kaldırmak içindir. Bunlar Gerçek devrede olmayacaktır. Gerçek devrede Transistörlerin zamanlaması birbirinden farklı olduğu için transistor ün 1 tanesi önce iletime geçer. Fakat Proteus hesapla çalıştığından 2 transistörü de ÖZDEŞ kabul eder ve hesaplama sonucu çıkışlar kilitlenir. Bunu bozmak için 1 buton geçici olarak transistör beyz ucunu kısa devre eder ve transistörlerin sırayla çalışmasını sağlar. Dediğim gibi gerçek devrede buna ihtiyaç yoktur.

Proteus olmayan kişiler Tüm Dosyalar arasında şemanın PDF dosyasını bulabilirler. Proteus çalışma şeklini de Videoda görebilirsiniz.

J-K Flip Flop:

Bu tip FF lar S-R FF ların daha kararlı çalışması için oluşturulmuşlardır. Birçok sayıcı devresinde bunu görebilirsiniz. Hem ileri sayıcı hem de geri sayıcı olarak da kullanabilirsiniz. J ve K uçları birleştirilerek T FF olarak kullanılabildiği gibi, J ve K uçları kontrol edilerek, S-R FF olarak da kullanılır. Tek farkı bir clk palsı ile devrenin çıkışını değiştirmesi.
S-R uçları varsa Girişe bakmaksızın çıkışlar, CLK palsı olmaksızın değişirken, burada bir CLK palsı ile birlikte çıkış değişir.
J ucunu SET olarak kabul edebilirsiniz ve Q çıkışı 1 olur. K ucu da RESET ucu olarak kullanılır.



Gerçekleme tablosunda göreceğiniz gibi HOLD kısmı çıkış bilgilerini olduğu gibi tutar.
J-K nın 1_1 olduğu durumda da T FF gibi çalışır. TOGGLE çalışma denir.

J-K FF elinizde yoksa bunu da kapı devreleri ile ve D FF entegreleriyle oluşturabilirsiniz.

D Flip Flop:

Bu tip FF lar 1 adet D= data, 1 adet de CLK= clock palsı ile çıkışı değiştirir. Çalışma şekli ise CLK palsı geldiğinde D ucundaki bilgi çıkışa gider.

Bu tip FF lar diğer FF ların oluşturulması için kullanıldığı gibi önemli bir görevi de kilitlemedir.

Mesela 8 bitlik bir kodunuz var. Bu kod değişirken tüm çıkışlar aynı anda değişmez. Bundan dolayı devre çıkışı yanlış tetiklenebilir. Ya da giriş analog değerine ait 8 bitlik veriyse devamlı analog değer değişkenlik gösterir. Böyle durumda. Araya bir 8 bitlik D FF koyarak anlık giriş değişkenlerinin çıkışı etkilemesi önlenmiş olacaktır.

Bir dez avantajı da vardır. DATA ucuna gelen bilgi CLK girişi gelesiye kadar Çıkışa yansımaz. Bu da Kontrol eden devrenin yavaşlamasına sebep olacaktır. Bundan dolayı kontrol devresi CLK ucunu da kontrol etmek zorundadır.
Aslında bu tüm CLK palsı kullanan FF lar için geçerlidir. Mesela kontrolcü 32Mhz de çalışırken D FF 10Mhz clk palsıyla çalışıyorsa Burada bir senkron hatası olabilecektir.  Bundan dolayı D FF asenkron olarak çalışacak ise D ucu ile CLK uçlarının frekanslarının ayarlanması gerekir. Ya da Geri bildirimli çalışma olması gerekiyor. Ya da senkron çalışma gereklidir.  Bu durumu aşağıdaki sinyal görüntüsünde görebilirsiniz. D ucu 1 olsa bile CLK sinyaline denk gelmediği için Q çıkışına yansımıyor.

Bu resimde D=1 olsa bile CLK sinyalinin 0 dan 1 e çıkması durumunda D=0 a denk gelmesinden dolayı Q çıkışı 0 olmuştur. Buna dikkat edilmeli senkronize iletişim seçilmeli ya da geri bildirimli çalışılmalı.

D FF proteus şemasında bir TRI_STATE çıkış entegresi göreceksiniz. Yukarıda demiştim ki, D FF ile 8 bitlik girişte küçük de olsa oynamalar olursa, çıkışa yansımaz. Ancak CLK gelirse çıkış anlık değişir dedim.
Bunu gerçekleştirebilecek entegrelerde piyasa da mevcuttur. TRI STATE çıkışa sahip olan entegreler de bunu yapabiliyor. Bu entegrelerin yapıları değişik olsa da, 8 bitlik bilginin çıkışa yansımasını isterseniz ENABLE girişini aktif etmeniz gerekir.  O zaman giriş çıkışa yansır. Yoksa çıkışta Hiçbir şey görünmez. Ne HIGH Ne de LOW olacaktır.
Bu tip entegrelerle D FF özelliğini karıştırmayın. D FF 8 bitlik veriyi kontrol ediyorsa CLK nın gelmediği sırada bile olsa çıkıştaki bilgiyi korur.
Proteus şemasında ve videoda bu durumu göreceksiniz. Bu karşılaştırmayı D FF avantajlarını görmeniz için verdim.

Flip floplar hakkında internette çok geniş kaynaklar var. Bazılarının çalışma şekli farklı olabiliyor.
Ya da kapı devreleri ile yaparken, farklı yapılar kullanılabiliyor. Bunlar onların yanlış olduğunu göstermez. Fakat internetteki her bilgi gibi, doğru ve yanlışları görebileceksiniz.
Amacım burada sizi doğru bilgilendirmek. Topluca, sayısal devre tasarımında nasıl kullanabileceğinizi anlatmak. Bunu yaparken çok fazla detay ile kafa karışıklığı yaratmamak.
Bazı kaynaklar karno diyagramları ya da yardımcı formüller vererek detaylara girmişler.
Ben ise pratik olarak nasıl oluşturabilirsiniz, nerelerde kullanabilirsiniz, bunu anlatmaya çalıştım.

Şayet yazımda eksik bilgi ya da yanlış bilgi fark ederseniz, lütfen yorum kısmına bırakın. Ya da facebook gruplarından bana bildirin ki düzelteyim.  Bu Yazı dizisi yanlışları içermesin.

TÜM DOSYALARA BURADAN ULAŞABİLİRSİNİZ.

 

S_R FF:

T FF : 

J-K FF:

D FF : 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.