74HC595 - 74HC165 Kullanımı

OE testi sonraki test, onda giriş sinyalleri de değişecek, pull down falan da gerekecek.
 
Şuanda 100k direnç, 1n4148 anot, ve 1uF + kutbunun birleştiği yere SRCLR yi bağladım. Aynı yerden osiloskop probunu bağladım.
İlk enerji verdiğimde bir şey yakalamadı. Sonra USB yi bir kaç sefer tak çıkar yaptım. Üçüncü takışım da Şu görüntüyü yakaladı.

osi1.png
 
Tamam olması gereken de bu sinyal. Şimdi hiçbirşey yapmayan bir program yükle arduino'ya. Sonra da tekrar enerji ver ve çıkışlara bakalım. Her çıkışın 0 kalması lazım. Defalarca dene, her zaman açılıştan sonra 0 olması lazım.
 
Tamam olması gereken de bu sinyal. Şimdi hiçbirşey yapmayan bir program yükle arduino'ya. Sonra da tekrar enerji ver ve çıkışlara bakalım. Her çıkışın 0 kalması lazım. Defalarca dene, her zaman açılıştan sonra 0 olması lazım.
Abi boş skech yükledim nanoya. Sonra bir çıkışa osiloskopu bağlayıp verdim ceyranı.
8 tane ledin hepsi yandı. Benim osiloskop bağladığım çıkıştan da aldığım sinyal şöyle:
osi2.png
 
SRCLK ve RCLK şaseye bağla ve tekrar dene. Belki clock girişleri belirsiz bir değerde oluyor ilk açılışta.
 
Hmm tamam sorun anlaşıldı. SRCLR sadece ilk seviyedeki flip flopları resetliyor (soldakileri). Sağdakiler hala bir önceki değeri muhafaza ediyor. Evet bu durumda SRCLR ile power on reset yapamıyoruz. Gene OE kullanılacak.

1651089176204.png


Bu noktada iki seçenek var. Ya 4 sinyalle kontrol edeceğiz (SER, SRCLK, RCLK, OE) veya 3 sinyalle kontrol edeceğiz ve OE yi bir zamanlamaya tabi tutacağız. İlk açılışta OE bir süre high kalacak, sonra lowa düşecek. Bu süre içinde de kodun çalışıp 595 i doğru bilgi ile doldurduğunu varsaymamız lazım. Bir tane GPIO tasarruf edeceğiz diye değer mi bilemedim.

Mesela OE ilk açılışta 500 ms high kalıyor ve sonra da lowa düşürülüyor. Eğer firmware o arada 595 i yapılandırmazsa gene rastgele bir veri çıkacak çıkışlara. O yüzden herhalde en mantıklısı 4 sinyalle kontrol etmek.

OE pull up, bütün çıkışlar pull down. Sonra firmware çalışmaya başlayınca verileri gireceksin, RCLK ile çıkışa yansıtacaksın, sonra da OE'yi low yapacaksın. Bundan sonra OE artık low kalacak.
 
Ne olduğunu anlasam da nasıl yapılacağını tam kestiremedim şimdi. Bakacağım bu duruma.
 
Aslında 3 sinyal ile kontrol için bir yöntem daha var. O da SRCLK ve RCLK birleştirmek, SER, ve OE. Ama bu durumda aynı değeri iki kere peş peşe yazman lazım. İki metodu da dene.
 
Babamın bozulan masaj koltuğundan çıkma birkaç tane 74HC595 vardı bende. Bir ara onları arayıp bulabilirsem bu metotları ben de test edeceğim.
 
OE pull up, bütün çıkışlar pull down. Sonra firmware çalışmaya başlayınca verileri gireceksin, RCLK ile çıkışa yansıtacaksın, sonra da OE'yi low yapacaksın. Bundan sonra OE artık low kalacak.
Şimdi bu konuya kaldığım yerden devam edeceğim ama işe gitme vaktim geldi yine.
Abi yukarıdaki yorumuna istinaden aşağıdaki yapıyı oluşturdum.
Bu kısımı doğru yaptıysam eğer kodlama kısmında tam ne yapacağımı anlamadım.
Bütün kodları işledikten sonra Void Loop'un en altına digitalWrite(OE, LOW); mu yapmalıym?

74hc595.png
 
Tamam bağlantı böyle. Ama SRCLR yi de dirençle Vcc ye çek bari de usül yerine gelsin :)

Bu 4 sinyalli yapı, bu şekilde 1 GPIO kaybediyorsun. Ama kullanımı kolay.

Boot'tan sonraki süreç şu şekilde:

1) SER, SRCLK, RCLK output olarak tanımlıyorsun. OE yi daha ellemiyorsun.
1) SER ve SRCLK ile full 0 yazıyorsun ve bu veri soldaki flip floplara yazılıyor.
2) RCLK'da pozitif bir pals üretiyorsun, bu palsın yükselen kenarında veri sağdaki flip floplara yazılıyor.
3) OE yi output olarak tanımlıyorsun ve 0 yapıyorsun.

Artık bundan sonra OE ile işin yok, hep 0 da tutulacak o. Bundan sonraki işin SER, SRCLK ile veriyi yazmak, sonra da RCLK ile dışarı çıkmasını sağlamak.
 
Tamam bağlantı böyle. Ama SRCLR yi de dirençle Vcc ye çek bari de usül yerine gelsin :)

Bu 4 sinyalli yapı, bu şekilde 1 GPIO kaybediyorsun. Ama kullanımı kolay.

Boot'tan sonraki süreç şu şekilde:

1) SER, SRCLK, RCLK output olarak tanımlıyorsun. OE yi daha ellemiyorsun.
1) SER ve SRCLK ile full 0 yazıyorsun ve bu veri soldaki flip floplara yazılıyor.
2) RCLK'da pozitif bir pals üretiyorsun, bu palsın yükselen kenarında veri sağdaki flip floplara yazılıyor.
3) OE yi output olarak tanımlıyorsun ve 0 yapıyorsun.

Artık bundan sonra OE ile işin yok, hep 0 da tutulacak o. Bundan sonraki işin SER, SRCLK ile veriyi yazmak, sonra da RCLK ile dışarı çıkmasını sağlamak.
Anladım. O zaman OE yi void loop sonunda low'a çekmeme gerek yok. Void setup içinde son satırda low'a çeksem yetiyor. Çünkü zaten pico boot'u aşmış oluyor.
 

Forum istatistikleri

Konular
5,833
Mesajlar
99,490
Üyeler
2,479
Son üye
yiyehuoxing32

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top