Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Temel Elektrik/Elektronik => Konuyu başlatan: tunayk - 29 Eylül 2022, 23:08:00

Başlık: Kaskat bağlı 4094 problemi
Gönderen: tunayk - 29 Eylül 2022, 23:08:00
Aşağıdaki şemada kaskat bağlı olarak kullandığımız 4094 leri görmektesiniz.  Bu yapıda, işlemci üzerinden bit bit çıkış verdirdiğimde 24Bit'i de sorunsuz şekilde kapatıp açabiliyoruz. Ancak birden fazla biti kapatıp açmak istediğimizde bazı bitlerde sorun yaşıyoruz ve belediğimiz gibi davranmıyor.

(https://i.ibb.co/BsQhxC9/Sema.png) (https://ibb.co/BsQhxC9)

Aşağıda sorun yaşadığım durumun logic analizör kaydı görülmektedir.  Sistem çalışırken, G18, G17 ve G14 olarak olarak görülen çıkışların aktif olması gerek.  sisteme gönderilen data ve clock pulse yapısı aşağıda görülmektedir. 3. 4094'e bişey bağlı olmadığından sadece 16Bit gönderiyoruz. Belirttiğim çıkışlar normal şekilde açılıyor ancak G14 açık olduğu durumda, G16 da açılıyor. Devrede buna neden olabilecek hiç bir farklı bağlantı yok.


(https://i.ibb.co/2NFyYHH/27A.png) (https://ibb.co/2NFyYHH)
G14 açık olmayıp, 2 nolu 4094 te başka bitler açık olduğunda bu durum yaşanmıyor.
Bu durum neden olabilir , nasıl bir çözüm üretmeliyiz?
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: devrecii - 29 Eylül 2022, 23:44:51
Bence -QS den alarak hata yapıyorsun Qs den almalısın.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: tunayk - 30 Eylül 2022, 00:33:41
Alıntı yapılan: devrecii - 29 Eylül 2022, 23:44:51Bence -QS den alarak hata yapıyorsun Qs den almalısın.
devrenin orjinal çizimi öyle. Ancak benzer durumu yaşayınca Qs' tarafına aldık aktarımı.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: ziyaretci - 30 Eylül 2022, 04:55:08
Bu durumu gerçek sistem üzerinde deniyorsunuz galiba. Şuan simülasyonda denedim sorun yok.

Bahsettiğiniz G16'ı çıkışını etkileyen çıkış G17'dir. Fiziksel gerçekleme ile alakalı bir sorun oluşuyor olabilir.

G16'nın normalde ilk girişe bağlı çıkış vermesi için fazladan bir clock gelmesi lazım. Ama bu sefer de G14 bir bit kaymış olacak. Demekki sorun bu değil.

Problem şu olabilir; devrenin sonrasındaki G14 ile G16 çıkışları bir yerlerde birbiriyle etkileşim halindedirler. Belki G14 ile G16 arasındaki bir diyot, transistör veya  kısa devre arızası olabilir...

(?)Sadece G14 çıkışı aktif olduğunda G16 çıkışı da aktif oluyor mu diye bir bakın.

(?)Entegre bacaklarını-çıkışlar- boşa çıkartıp deneyin.

(!)Eğer devrenin geri kalanıyla alakalı bir sorun varsa IC arızalanmış olabilir, yenisiyle denemeyi unutmayın.



Tam olarak nasıl analiz yaptığınızı yazınızdan anlayamadığımdan denediğiniz durumları hatırlatma niyetiyle tekrardan yazmış olabilirim.

Yani; çıkışları gözlem durumunuz(led, gerilim okuma), test fiziksel olarak mı gerçekleştirildi, ilk denemelerde entegre çıkışında devre varmıydı..? gibi şeyler.

Çünkü stresli zamanlarda ya da başka insani etkenler sonucunda, bazı detaylar çok rahat gözden kaçabiliyor.

Bunun dışında yaşanılan durum çok mantıksız.


Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: tunayk - 30 Eylül 2022, 09:57:42
Alıntı yapılan: erkantr67 - 30 Eylül 2022, 04:55:08(?)Sadece G14 çıkışı aktif olduğunda G16 çıkışı da aktif oluyor mu diye bir bakın.

(?)Entegre bacaklarını-çıkışlar- boşa çıkartıp deneyin.

(!)Eğer devrenin geri kalanıyla alakalı bir sorun varsa IC arızalanmış olabilir, yenisiyle denemeyi unutmayın.




Dediklerinize katılıyorum.
ilk olarak simulasyonda denedik. Herhangi bir sorunla karşılaşmadık
Sonra gerçek kartı yaptık. Birden fazla kartta farklı entegrelerle denedik sonuç aynı.
Yukarıda belirttiğim gibi bit bit kontrolde herkes olması gerektiği gibi davranıyor. Bu durum aslen ilk SR de iki bit ve ikinci SR de 1. bit aktif etmek istendiğinde ortaya çıkıyor. Örneğin 2. SR de 1. bit değil de sonraki 5 bitten hiç biri ile böyle bir etkileşim yok.
Üstelik yazma işlemi 20ms de bir tekrar ediliyor ve kararlı şekilde aynı davranışı gösteriyor.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: ziyaretci - 30 Eylül 2022, 10:22:19
Son gönderdiğiniz iki datayı hiç low'a çekmeden iki pulse ile yollamayı dener misiniz? Oradaki kısa süreli low bir sorun oluşturabilir. Belki kararsız bölge ile pulse çakışabilir, sizin gönderdiğiniz sinyal bazlı değil, kendi yapısı nedeniyle.

Elinizdeki bütün IC'ler fire üründe olabilir. Göz ardı etmemek lazım. Farklı firmadan farklı seri numaralı IC ile bir deneyin isterseniz.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: magnetron - 30 Eylül 2022, 10:49:52
4094 ü kaç voltla besliyorsunuz

bir de STB ve CLK 10K ile pullup yaptınız mı ?
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: tunayk - 30 Eylül 2022, 11:43:37
15V ile besleniyor.Data, Clock ve Stb girişlerinde 4.7K Pull Down var. skopla sinyalleri incelediğimde entegre bacaklarında herhangi bir hatalı pulse veya parazit yok.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: zipzip - 30 Eylül 2022, 11:54:17
Clock gereğinden yüksek frekanslı olabilir mi.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: tunayk - 30 Eylül 2022, 12:10:20
Data biti değiştikten 1ms sonra Clock 1 oluyor, Clock pulse süresi 1ms, Clock 0 olduktan 1ms sonra Data 0'a çekiliyor
   Shift_Reg_Strobe=0;
   Shift_Reg_Clock=0;
   
   for(unsigned int k=0;k<16;k++)
   {
   delay_ms(1);
   Shift_Reg_Data=0;
   i=i<<1;
   delay_ms(1);
   if(status0){ Shift_Reg_Data=1;
   delay_ms(1);
   }
   else {Shift_Reg_Data=0;
   delay_ms(1);
   }
   Shift_Reg_Clock=1;
   delay_ms(1);
   Shift_Reg_Clock=0;
   delay_ms(1);
   Shift_Reg_Data=0;
   }

   Shift_Reg_Strobe=1;
   delay_ms(1);
   Shift_Reg_Strobe=0;
   delay_ms(1);
   Shift_Reg_Data=0;
   delay_ms(1);
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: ferdem - 30 Eylül 2022, 14:45:42
Alıntı yapılan: tunayk - 29 Eylül 2022, 23:08:00Aşağıdaki şemada kaskat bağlı olarak kullandığımız 4094 leri görmektesiniz.  Bu yapıda, işlemci üzerinden bit bit çıkış verdirdiğimde 24Bit'i de sorunsuz şekilde kapatıp açabiliyoruz. Ancak birden fazla biti kapatıp açmak istediğimizde bazı bitlerde sorun yaşıyoruz ve belediğimiz gibi davranmıyor.
Entegrelerin besleme pinlerine yakın yerleştirilmiş yeterli kapasite var mı?
Buna benzer problemler beslemede kapasite olmamasından veya eksikliğinden kaynaklanabiliyor. Az sayıda bit durumu değişirse ortaya çıkmıyor ancak değişen bit sayısı artınca hatalı bitler olmaya başlıyor. En uç durum; tüm bitlerin durum değiştirmesi, anlık olarak beslemeye en fazla yüklenildiği durum.
Entegrelerin beslemesine yakın şekilde 100nF veya belki 1uF ile deneyebilirsiniz. Kolay gelsin.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: tunayk - 30 Eylül 2022, 15:34:42
Eyvallah hocam, her bir SR nin kılıfına yapışık sayılacak kadar yakın şekilde 100nF var. 1uF deneyeyim.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: dnacikaya - 30 Eylül 2022, 15:40:33
Devre 15 volt ile çalışıyorsa 18 volt ile denemenizi öneririm. Datasheete göre 20 volta kadar çalışıyor bu entegre en iyi performans 15 volt verilmiş. 15 volt için hangi regülatörü kullandınız. Birde markası nedir 4094lerin. 4094 üzerinde tam olarak ne yazıyor.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: tunayk - 30 Eylül 2022, 16:41:39
15V 2A DC Güç Kaynağından besleniyor sistem.
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: dnacikaya - 30 Eylül 2022, 20:12:16
Dijital devreleri güç kaynağından doğrudan beslemek uyguladığım bir yöntem değil mutlaka bir regülatör entegresi kullanıyorum. Ama sorun bundan kaynaklanmayabilir. Datasheet 4. Sayfayı incelerseniz 5-10-15 volt için oldukça farklı clock frekansı ve strobe ve data için farklı süreler verilmiş. Doğrusu daha önce hiç böyle bir sorun duymadım ilginç bir durum. Umarım çözersiniz.


https://static.chipdip.ru/lib/205/DOC000205266.pdf (https://static.chipdip.ru/lib/205/DOC000205266.pdf)
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: JOKERAS - 30 Eylül 2022, 21:08:05
@tunayk , Kodunuzdaki  i=i<<1; bu kısım ne işe yarıyor?

Eğer kod bu ise bu kodun çalıştığından eminmisiniz?
status0 'un değerini kim neye göre belirliyor?

Edit; Şu şekilde deneyin bir.
Portlarda 0x55AA datasını görmeniz gerekir.

#define Size 16

unsigned int status0 = 0x55AA;

for( İdx = 0; İdx < Size; ++İdx ) {

      Shift_reg_data = (status0 >> idx) & 0x01;
      Shift_Reg_Clock =1;
      delay_ms(1);
      Shift_Reg_Clock = 0
}
    Shift_Reg_Strobe = 1;
    delay_ms(1);
    Shift_Reg_Strobe = 0;
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: tunayk - 01 Ekim 2022, 00:02:07
Çalıştığına eminiz :)

Status pic işlemcinin özel bir register i olup, 0. Biti Carry flag'idir. Kodda gördüğünüz gibi sola kaydırma yapılarak i değişkeninin 15. Bitinin durumuna bakılıyor. Bu bir 1 ise kaydırma sonrası Carry 1 olur.

Ben de sizin gibi düşünüp döngü ile değil bit bit yazdım ancak nafile. :(
Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: ete - 01 Ekim 2022, 09:25:07
4094 daha önce kullanmadığım bir entegre. Ama konu başlığını görünce merak ettim ve ufak bir deneme yaptım tabiiki simulasyonda.

Gördüğüm birinci önemli nokta ilk verdiğiniz DATA sıfır nolu çıkışa yerleşiyor. Sonraki 1 nolu çıkışa ve o şekilde devam edip gidiyor. Kullandığınız kod biçiminden verdiğiniz bilgilerin entegre çıkışına ters yerleşecek şekilde düzenlenmiş. Yapmanız gereken önce en yüksek değerlikli biti ilk olarak DATA girişine vermeniz ardında sırası ile giderek sıfır nolu bite kadar bunu yapmanız gerek.

Ben basic çalışırım. Ama vereceğim örnekleri kolayca C diline çevirebilirsiniz.

Öncelikle 15 den başlayıp 0'a ulaşan bir ters döngü kurmak gerekiyor. Azalan döngü diyelim. Gerçi terside olabilir ama döngü içinde ufak bir çıkarma işi yapmanız gerek.

SAYI=%1100110010001001
FOR X=15 to 0 Step-1
 SHIFT_REG_DATA=(SAYI>>X) & %01  '15 nolu biti aldık ve Data girişine verdik
 SHIFT_REG_CLK=1:PAUSEUS 5:SHIFT_REG_CLK=0
NEXT

Ben strobe pinini CLK girişine bağlayarak ayrıca STROBE kontrolü yapmadım. Bu şekilde de düzgün çalışıyor. Siz gerekirse STrobu da kontrol edebilirsiniz.

AYnı işi artan döngü ile yapmak istersek;
SAYI=%1100110010001001
FOR X=0 to 15
 SHIFT_REG_DATA=(SAYI>>(15-X)) & %01  '15 nolu biti aldık ve Data girişine verdik
 SHIFT_REG_CLK=1:PAUSEUS 5:SHIFT_REG_CLK=0
NEXT
şeklinde yapmak gerekir.

0X55AA sayısı öyle bir sayıki tersten de verseniz düzden de verseniz aynı sonucu alıyorsunuz ve bu sizi şaşırtıyor. Şu sayıyı 0X55AB olarak deneyin farkı göreceksiniz.

Ortada aslında garip bir sorun var ve bunun kaynağı bütün bu anlattıklarımla alakalı olmayabilir. Sanki STROP kontrolü ile ilgili bir sorunmuş gibi gözüküyor. Bu nedenle CLK ile STROB girişlerini birleştirerek (veya Strob girişine direk HIGH uygulayarak)ve programdan strob kontrolünü kaldırarak bir deneyin derim.

Ete


Başlık: Ynt: Kaskat bağlı 4094 problemi
Gönderen: dnacikaya - 03 Ekim 2022, 21:31:48
@tunayk hocam probleme yazılım veya donanım açısından bir çözüm bulabildinizmi?