SAYISAL DEVRE TASARIMI_3 COUNTER_DEVIDER_ENCODER_DECODER_SHIFT REGISTER

 

Sayısal elektronik yazı dizimin bu bölümünde COUNTERS, ENCODERS, DECODERS, DEVIDERS ve BCD –  DECIMAL dönüştürücüler ile DECIMAL – BCD ve BINARY dönüştürücüleri göreceksiniz. Ayrıca Seri – paralel ve paralel – seri dönüştürücüleri de göreceksiniz.

Bu yazdığım terimleri, Türkçe olarak değil, İngilizce olarak öğrenmeye çalışın.
Çünkü sayısal elektronikte kullanacağınız komponent ve terimler, kataloglarda Türkçe olarak karşınıza çıkmayacak. Counters= Sayıcılar olarak aranırsa sadece Türkçe kaynaklar çıkar ama kataloglarda bu isimde bulamayacaksınız.
Videoda alışkanlık gereği, bazen İngilizce terimler veya Türkçe terimler kullanılıyor olabilir. Fakat sizler öncelikle orijinal terimleri öğrenirseniz, sizin için kolaylık olacaktır.

Bu yazıda 2 adet proteus dosyasında birçok devre bulacaksınız. Çünkü birbiriyle benzer iş yapan bir çok entegre görebilirsiniz. Bunların bazılarıyla, örnek vermek istedim. Tabii ki bu arada, aradaki farklılıklardan da bahsetmek istiyorum. Esas önemli olan, sayıcı devre yapacağım dediğinizde BCD mi? Binary mi? yaksa Decimal mi çıkış alınacak bunu ayırt etmeniz gerekir.

Öncelikle Counters konusuna bakalım. Bu komponentler DECADE denilen, aynı zamanda BCD denilen şekilde 0-9 arası sayılar sayılır. Bunun yanı sıra Binary sayıcılar ise 0-15 sayısına kadar sayar.
Bu şekilde sayıcılar olduğu gibi Johnson decade counter, denilen decimal çıkışlı entegreler de vardır.

Mesela 7490 entegresine bakalım. Bu entegre, DECADE counter olarak geçer. Yani 0-9 arası sayıları sayar. 7 segment display ile kullanılırsa 9 dan 0 a döner ve kolaylık sağlar. Tabii ki bu dönüş sonrası zamanında 2. bir gösterge varsa, ona da bir yükseltmesini söylememiz gerekir. Yani 9-0 a dönerken 2. Digit 1 olacaktır ve gösterge 10 sayısını gösterecektir. Bu dönüşün 2. Entegreye verilme işlemi için bir çıkış olmadığından, 7490 entegresi 9 b=1001 sayısına geldiğinde bir AND kapısı ile 1 olan uçlar birleştirilerek 2. Digit için CLK girişine uygulanır. Ya da 7490 entegresini 0-6 arası saysın dersek. O zaman 6=0110 sayısındaki 1 leri AND kapısına verip çıkışını MR dediğimiz Master Reset ucuna veririz ve 6 dan sonra sıfıra döner.
Bunun yanı sıra 7490 entegresinin çıkışı 4 bit BCD olduğundan, biz decimal çıkış istiyorsak bunu 4028 entegresine vererek 10 adet decimal çıkışı elde ederiz.


Johnson decade counter dediğimiz entegre ise Decimal çıkışlı bir sayıcıdır. Örnek olarak bu entegreyi verebiliriz. 4017 entegresi popüler bir yürüyen ışık devresi entegresidir. Bu entegre çıkışları, her defasında 1 tanesi HIGH olacak şekilde çalışır. Bu şekilde bağlı olan ledler sırayla yanar. CLK frekansını da ayarlayarak hızını ayarlayabilirsiniz.

Counters konusunda değişik sayıcılar var demiştik. DECADE counter olduğu gibi BINARY sayıcılarda vardır. Şekil olarak ilk bakışta Decimal sayıcı gibi görünse de BİNARY olarak sayar.

4514, 74154, 74159 bu entegrelerden bazılarıdır. Bu entegreler arasındaki fark resimde gösterildiği gibi çıkış şeklidir. 1 tanesi LOW çıkışlı, Bir tanesi HIGH çıkışlı, Bir tanesi ise OPEN COLLECTOR çıkışlıdır.


Bu çıkışlara göre Bir led bağlamak istersek, 4514 çıkışına KATOT kısmı gelecek şekilde bağlarsanız. Güç verildiğinde tüm ledler yanar. Bundan dolayı seçilen ledin yanması için ANOT kısmı 4514 çıkışına karşılık gelir.
74154 çıkışına led bağlamak istersek ve KATOT kısmı 74154 çıkışına verilirse bu şekilde seçilen led yanar tersi durumda seçilen led söner ve diğer ledler yanar.
74159 çıkışında ise OPEN COLLECTOR çıkışı mevcuttur. Burada sadece seçilen led GND ye bağlanır. Bundan dolayı KATOT kısmı bu entegrenin çıkışına gelecek şekilde bağlanır. Bu şekilde dizilimde diğer ledler sönük kalır. Resimde OPEN COLLECTOR bağlantı şekli görülmektedir.
Bu tip çıkışta çıkışı sağlayan transistör VCC ye bağlı değildir. Sadece GND ye bağlıdır. Bu bağlantı sayesinde sadece seçilen GND ye bağlanmış olur diğerleri ise AÇIK DEVRE gösterir.

Bu entegrelerde olan girişler, isim olarak değişebilir ya da eksik olabilir. E1 ve E2 olan uçlar Enable uçlarıdır. Bu uçlar ile tüm çıkışlar kapatılabilir. Yani giriş değişse bile çıkış değişmez. Bundan dolayı entegre çıkışları buradan kontrol edilebilir. Bu bazı entegrelerde OE de olabilir ya da STROBE STB gibi uçlar da olabilir bunlar çıkışı kilitler ya da normal çalışmasını sağlarlar. MR=master resettir.
MR: Counter entegrelerini istediğiniz sayıdan geri döndürme işlemine de yarar.

Bunların dışında dikkat edeceğiniz bir başka nokta ise, entegre girişlerinde veya çıkışlarında bulunan “o” şeklindeki yuvarlaktır. Bu normalde NOT kapı çıkış ve girişlerinde görülür. DEĞİL anlamındadır. Fakat entegre INPUT Girişlerinde ve entegre çıkışlarında olduğunda, ACTIVE LOW demektir. Bunun anlamı, çalışması için LOW yani GND ye bağlanması gerekir denmektedir.
Entegrelerde bazen kontroller HIGH ya da LOW durumuna göre çalışır. Bunu bu yuvarlaktan anlayabilirsiniz. Ya da DATASHEET dediğimiz dokümanlardan bakabilirsiniz.
Bazen açıkça belirtilmez ama çalışma sinyal grafiği verildiğinde, orada da NET olarak görülür. Datasheet okuma önemli bir noktadır. Kullanacağınız komponentleri önce çalışma şekli ve sonrasında elektriksel çalışma olarak incelemelisiniz.  Şayet DATASHEET okumayı bilmiyorsanız BURADAN BAŞLAYABİLİRSİNİZ.

Bunlarla birlikte 12- 14 bit  Binary counter var. Bu entegreler 4040 ve 4020 entegreleridir. Bu entegrelerden 4020 entegresine bakarsanız Q13 göreceksiniz. 12 çıkış olduğuna göre nasıl Q13 olur. Q13 varsa Q0 ile birlikte 14 bit sayıcı demektir. Biraz dikkat ederseniz 4020 entegresinde Q1 ve Q2 nin olmadığını görebilirsiniz. 4020 entegresi 14 bit counter 4040 entegresi ise 12 bit counters olarak kullanılır. Hatta 24 bitlik devider entegresi de var. Bu entegredede bazı çıkışlar benzer şekilde gizlenmiş durumdadır. 4521 datasheet bilgisine bakın
Acaba neden entegreyi bu şekilde yaptılar diye düşünüyorsanız okumaya devam edin.


COUNTERS entegreleri hem çıkışı farklı şekilde olan sayıcı entegreleridir hem de DEVIDERS denilen BÖLÜCÜ olarak çalışma şekillerinde kullanılır.
Nedir bu bölücü: Bölücü entegreler yüksek frekansların bölünerek daha küçük frekanslarda çalışmasına olanak sağlar. Mesela 4Mhz bir kristaliniz var. Fakat PWM 100 Khz olması gerekir. Ya da bir entegre 1Mhz den fazla frekansta çalışamıyor ya da 1s lik saat frekansı gerekli olacaktır. O zaman bu COUNTERS entegreleri DEVIDER (Bölücü) olarak kullanılır.
Nasıl kullanılır derseniz, yukarıda anlattığım gibi belli bir sayıdan resetleyerek bu yapılır. Sayıcı entegre 0-9 arasında sayıyor. Fakat ben elimdeki frekansı 50 ye bölmek istiyorum O zaman birinci entegre 10 a böler ikinci entegre de 5 e böler bu şekilde her 10 saymada bir 2. Entegre 1 sayar ve bu şekilde 5×10 sayılmış olur. Bölücüler 1.entegre sayısı x 2. Entegre sayısı şeklinde gider. Bu örnekteki gibi 5 x 10=50 ye bölünmüştür.
Mesela RTC lerde kullandığımız kristaller 32768 Khz frekansındadır. Bu frekanstan 1s lik bir pals oluşturmak istiyoruz. Yani 1Hz oluşturacağız. Bunun için aşağıdaki resimdeki gibi bölme ayarlarız ve 1s lik pals üretmiş oluruz.

Şayet bölücü kullanmasak ve 1s lik bir pals gerekse. Birkaç malzemeyle bir osilatör yapılabilir. Fakat bu tam 1 s üretmeye çalışsa da malzeme toleranslarından dolayı hatalı olacaktır. Şayet 32768 Khz den 1 sn üretirseniz, hata payı çok daha az olacaktır. Hem de kristal kullanıldığı için daha stabil olacaktır. Ayrıca bir devre içerisinde birden fazla frekans kullanılabilir. Bundan dolayı bunları ayarlamak için yüksek frekansı, çeşitli kademelerde bölerek bu saat palslarını sağlayabiliriz.


Bunların yanı sıra kendi kendine saymasa bile BCD ya da BINARY – DECIMAL dönüştürücü entegreler vardır. Bunlar da mikroişlemciler ile çalışmaya uygun entegrelerdir. Mesela mikroişlemci 4 bit çıkışını kullanarak 10-16 adet çıkışı kontrol edebilir. Bu tip entegreler DECODER entegreleridir.
Counters entegreleri hem sayar hem de Binary, BCD, Decimal çıkışlara sahip olur.
Decoder entegreleri Binary Ya da BCD girişine göre Decimal çıkışa sahiptir.
7442, entegresi bu tip entegredir. Bu entegre BCD girişi, Decimal çıkışa çevirir. Fakat buradaki durum bazen sizin işinize gelmez. Her çıkış bir giriş sayısı ile ilişkilendirildiğinden sadece 1 adet çıkış aktiftir. Yani burada aynı anda 2 çıkışa birden bilgi gönderemezsiniz.
Bu tip çalışma devre tasarımınıza uyarsa kullanabilirsiniz uymaz ise değişik konfigürasyonlar için kapı devrelerini kullanabilirsiniz.

Şayet giriş Decimal ve çıkış BCD ya da Binary olacaksa bu tip entegrelere ise ENCODER entegreleri denir. Yine bunlarda da her decimal giriş, bir binary sayıya karşılık gelir. Yani 1. Anahtara bastığınızda çıkışlar sadece 0001 olacaktır.  3. Anahtara basıldıysa 0011 sayısı elde edilecektir. 74147 entegresi, BCD çıkışlı olduğundan 4 bit ve 9=1001 sayısına kadar sayar. 74148 entegresi ise 3 bitlik çıkış olduğundan 7. Anahtara basıldığında çıkışı 111 olacaktır.

Bu Proteus dosyasında son counter tipini göreceksiniz. 30sn geri sayma devresi. Bu tip ise Belirlenen sayıdan aşağı sayma ve yukarı sayma işlemidir. Bu çizimde 30 sn geri sayma devresi yapılmıştır. 40193 entegresi pressetable UP/DOWN Counter olarak çalışır. Burada 4 bitlik başlangıç sayısı ayarlanır ve LOAD girişini HIGH yaparak, verdiğimiz sayıyı çıkışa yükleriz ve CLKD girişinden verdiğimiz saat palsı ile geri saymasını sağlarız.
Devre resminden de göreceğiniz üzere 4 bit 0-15 yani 16 ya kadar sayar. 30 sayısını elde etmek için 2. Entegrede kullanılmıştır. 1. Entegrede geri sayım işlemi bittiğinde TCD ucu HIGH olarak 2. Entegreye CLK olarak uygulanır. Giriş değerleri 0001 1111=32 sayısına karşılık gelir. Yani 30 sayısına geldiğinde 2. Entegrede sıfırlanmış olacaktır. Diğer kapı devreleri ise 30 a kadar saydıktan sonra zaman aşıldıysa BUZZER çaldırmak içindir. En tepedeki buton, BUZZER çalmasını istiyorsanız kullanılacaktır. Çalışırken ses gelmesini istemeyebilirsiniz.
Devrenin solundaki anahtar ise önce girişteki sayının LOAD edilmesini sağlar bu arada CLK palsını durdurur. Anahtar açıldığında ise CLK palsı başlar.  Devrede 74HC386 XOR kapısı kullanılmıştır. XOR entegresinin girişleri eşit ise çıkış 0, eşit değilse çıkış 1 olacak şekilde çalışır. XNOR ise bunun tersi olacaktır. 


Burada Çıkışlarda bulunan İNVERTER kapıları ise BUZZER çalışması için gereken çıkış terslemesini yapar.  Bu çıkışların, illaki böyle olması gerekmez. Siz kendi tasarımınızda daha az kapı devresi veya daha farklı kapı devreleri kullanabilirsiniz. Benim verdiğim örnek devredir.
Ayrıca bu devrede 30 dan yukarı yani 6. Biti devreye alırsanız çalışmaz. Çünkü kapı devreleri ayarlanırken ve çalışması sağlanırken kullanılan yol, 8 bitlik sayının tamamını kapsamıyor. Yani kendi çalışmanıza göre kendi tasarımınızı yapmanız gerekir.


Ayrıca bu tip entegreleri kullanmadan da kendi Binary sayıcınızı J-K F / F entegresini kullanarak yapabilirsiniz.


Ayrıca 8 bit girişli 3 bit Binary çıkışlı bir devreyi kapı devreleriyle kendiniz de oluşturabilirsiniz.


COUNTERS çizim dosyasını PDF olarak görebilirsiniz. 

Bir diğer Proteus şemasında ise mikroişlemci ile çalışırken, tek piminden onlarca anahtar kontrolü yapabileceğinize dair örnektir. Ayrıca kontrollü çıkış sağlamak için bir yöntemde bulunmaktadır.

74273 entegresi ise size giriş değişse bile çıkışın etkilenmemesini sağlayacak bir kontrol sağlayan
OCTAL D-TYPE FLIP-FLOP WITH CLEAR entegresidir. Bunu hatırlarsanız 2. Yazımda kullanmıştım. Çıkış sadece ben istediğimde değişsin, giriş zaman içerisinde değişebilir ama çıkışın stabil kalması gerektiği zamanlarda bunu kullanabilirsiniz.  Devre tasarımlarında titreşimsiz çalışma yapılması önemlidir. Bu tip kilitlemeli devreler tasarımınızda kontrolü sağlayacaktır.


Bununla birlikte devre şemasında 74HC595  Shift Register entegresinin  kullanımını ve bununla birlikte 16 anahtarın aynı anda basılarak tek bir hattan kontrolü yapılabilir. Diğer encoder ve decoder, devrelerinde birden fazla anahtara basılamıyordu. Fakat bu şekilde birden fazla anahtar kontrolü tek bir hat üzerinden yapılabiliyor.

Bunu sağlayan 74166 entegresi. 8 bitlik bir girişe sahiptir ve bu girişleri tek bir seri hattan gönderebiliyor. Bu bilgiyi devre şemasında 74HC595 shift register ( yazmaç ) entegresiyle alabiliyoruz.


Devre şeması sadece 16 anahtar için yapıldığından 74166 entegresinden 2 tane kullanıldı.
Çok daha fazla anahtar kullanılabilir. Aynı entegre çoğaltılarak. 
Normalde bu bir çıkış devresi olsa karşısında ise Mikroişlemci olsa CLK palsını kontrollü olarak gönderir ve seri bilgiyi kolaylıkla alabilir. Fakat bu devrede Mikroişlemci kullanılmadığından bir osilatör kullanıldı.
Aynı zamanda 16 bitlik bilgi gittikten sonra osilatörün de durması sağlandı. Bu şekilde yanlış bilgi gitmesi engellenmiş oldu.
SW1 anahtarı hem osilatörü durdurur, hem de 74166 girişindeki değeri, Çıkış registerine yazar. Bundan dolayı işlemi başlatmak için SW1 kullanılıyor.  Girişteki anahtarların konumunu değiştirdikten sonra SW1 konum değiştirir ve LOAD işlemi biter ve osilatör CLK palsı entegrenin CLK girişine uygulanır. 1. Entegrenin SO=seri çıkışı 2. Entegrenin SI girişine iletilir. Ve bu şekilde
2. Entegrenin SO çıkışından 16 pals ile hem 1. Entegrenin çıkış bilgisi hem de 2. Entegrenin paralel anahtar giriş bilgileri çıkar.

Normalde bunu bir mikroişlemciye gönderebiliriz. Fakat mikroişlemci kullanılmadığından,
Burada seri haberleşme işlemini doğrulamak için 74HC595 ile seriyi, paralel bilgiye çevirerek girişte verdiğimiz bilgilerin çıkıştan alınabildiğini görebiliriz.

Devre stabilitesi, osilatör devresinin doğru zamanda çıkışa bilgiyi yansıtmasıyla mümkün. Mikroişlemci olsa, dediğimiz gibi program ile daha kolaylıkla bu bilgileri alabiliriz.

Zaten tüm bu sayısal devre tasarımı yazılarının amacı da bu. Yani Arduino ile onlarca anahtarı kolaylıkla kontrol etmek, onlarca çıkış devresine kolaylıkla komut vermek.
Bunu yaparken de ARDUINO nuzu bir orkestra şefi gibi kullanmak Yani kullanılacak pimleri verimli olarak kullanmak da diyebiliriz.
Sadece arduino değil, diğer mikro denetleyicilerle bile kolaylıkla dış devreleri kontrol etmek mümkün. Önceki yazılarımda zaman zaman bu konulara değinerek Hat çoklayıcı devreleri anlatmıştım. SPI ve I2C ya da seri haberleşmeleri kullanarak bunları yapabiliyordunuz.
Şimdi ise bir seviye yukarı çıkarak, kendi kendini kontrol eden yan devreler ile Arduinonun zamanını fazla çalmadan devamlı kontrol etmesini sağlayabiliriz. Dış devre kendi kontrollerini yapar ve problem olursa mikrodenetleyicilere haber verir. Bunu sağlayacak olanlar da mantıksal devrelerdir.

74HC595 popüler bir entegredir ve kolaylıkla kontrol edilebilir. Kütüphaneye bile gerek yoktur. Hatta Kolaylıkla Karakter LCD bile kontrol edebilirsiniz.
Bu yazımı okursanız 74HC595 hakkında bilgileri de alabilirsiniz.

Paralel seri devrenin Çizimini buradan PDF olarak görebilirsiniz.

 

Tüm çizimlere buradan ulaşabilirsiniz.

 

Video_1 : COUNTERS_ENCODERS_DEVIDERS_DECODERS

Video_2 : PARALEL SERİ ve SERİ PARALEL SHIFT REGISTER KULLANIMI.

Bir cevap yazın

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