Şu Entegrenin Kullanımı Nasıl?

Başlatan E-x8, 17 Mayıs 2017, 20:22:47

E-x8

Entegre : TPIC6B595N
Datasheet : http://www.ti.com/lit/ds/symlink/tpic6b595.pdf

Entegrenin SER IN bacağını data olarak kullanıyorum.
Entegrenin SRCK bacağını clock olarak kullanıyorum.
Entegrenin RCK bacağını latch olarak kullanıyorum.

Kullanım şeklim şu :

----------------------
for (8kez)
{
data  0/1
clock 1
clock 0
}
latch 1
latch 0
----------------------

Fakat çalıştıramıyorum yardımcı olabilecek olan var mı şematikte mi yanlış yapıyorum yazılımda mı?




xoom

Mantik dogru ama yazdiginiz koduda gormek lazim.

E-x8

PICkit' im yüklüyor mu yüklemiyor mu kafasına göre takılıyor şuan onunla değil entegreyi hızlı çalıştırabilmek için arduino kullanıyorum fakat mantığın aynı olması lazım 0 ve 1 ler.

Kullandınız mı bilmiyorum fakat G ve SRCLR pini ile neler yapılıyor? G pini pwm ile parlaklığı değiştiriyormuş onu istemiyorsak direk GND ye bağlıyormuşuz. Onun dışında bu pinler nerelere bağlanmalı.

Cevap için teşekkürler, tekrar kod isterseniz gönderirim :)

xoom

#3
Bu entegre benim sürekli kullandığım bir entegre bir çok devremde kullanıyorum.. Daha yüksek akımlı devrelerde TPIC6A595 kullanmayı istesem de fiyatından dolayı pek kullanma imkanım olmadı. Eğer siz ihtiyaç duyarsanız aklınızda bulunsun..


G: Lojik 0 verirsen içerideki bilgiler çıkışlara aktarılır. bu pine pwm uygulayarak ekran parlaklığı için kullanılabilir.Ben sıklıkla bu bacağı GND'ye bağlıyorum..
SRCLR: Bu pin 0 verirseniz içindeki bilgiler silinir.. Bir fonksiyon ile içerideki bilgileri silmek yerine doğrudan bu pin ile entegre içindeki bilgileri hızlıca silebilirsiniz. Tamamen ihtiyacınıza göre Direk +5 volta bağlayabilirsiniz.

OG

Vcc si 5V dur atlamayınız, 3V3 de falan çalışmaz.


8 istasyonlu FIFO (ilk giren ilk çıkar) mantığı ile çalışır.

Her istasyon bir hafızadır. Her hafızanın bir girişi bir de çıkışı vardır ve hafızalar birbirine seri zincir mantığı olarak bağlıdır.
Yani 8 hafıza FF 'u (flip flop) peşisıra seri bağlı.

Her hafızanın çıkışı, diğerinin girişine bağlanırken, aynı zamanda yük kontrolu de yapabilmek için yani MOSFET sürmek için dışarıya uzanır, ancak mosfet ile arasında bir LATCH (kilit) FF'u vardır.

Her hafızanın çıkışı herhangi bir durumda iken, çıkışların o anki durumunu kalıcı olarak elde tutmak (kilitlemek) için RCK ucuna bir pulse vermelidir. RCK beklerken LOW da durur, kilit atmak istendiğinde H'a çıkarılır, sonra tekrar L'a düşürülür.

Bu işlem yapıldığında istasyonların çıkışlarındaki H veya L bilgileri çıkış katının kilitlerinde hafızaya alınmıştır. Bu kiltlerin çıkış mosfetlerini sürebilme şartı da G\ pini (pin 9) LOW da olmalıdır. Bu pin L'da sabit bağlı ise RCK ile kilit atıldığında anında çıkışlar da sürülmüş olur. Çıkış sürüldüğünde ilgili çıkışın LOW'a çekileceğini unutmayınız (open drain yapısı). Yani, yükünüzün + ucu direk + da sabit bağlı olmalı, - ucu DRAINx lere bağlanmalı.

Peki datayı nasıl süreceğiz.

Sürme işlemi bit bit ilerletilerek yapılır.
Data girişi,
FIFO İlk girişi olan SER IN den yapılır. Son çıkış SER OUT dan bir sonraki TPIC entegresinde kullanmak için elde edilebilir (birden fazla tpic kullanımı için).

Data ilk girdi biti adım adım ilerleyeceğinden ilk sürülmesi gereken bit değeri son bit olmalıdır.

Örnek = %00101101  degerini sürelim.
Sürme işlemine 7. bitten başlıyoruz (bu durum elbette cihazınızın yapacağı işe göre değişebilir).  7. biti ilk defa sürmenin amacı yine FIFO mantığı. İlk giren değer sona doğru ilerler ve SER OUT'a ilk ulaşacak olan da odur.

SRCLR\ (pin 8) HIGH da olmalı, aksi taktirde giren bilgiler silinir.
RCK  LOW da olmalı,
SRCK LOW da olmalı

Örnek = %00101101  degeri
SER IN e 7. biti ver (0) ,
SRCK'yı H yap sonra L yap,
7. bit (0) değeri 1. hafızada saklandı
(bu degeri henüz çıkış LATCH ı almadı)

Örnek = %00101101  degeri
SER IN e 6. biti ver (0) ,
SRCK'yı H yap sonra L yap,
7. bit 2. hafızaya geçti, 
6. bit (0) değeri 1. hafızada saklandı
(hafıza çıkışlarındaki bu degerleri, henüz çıkış LATCH ları almadı)

Örnek = %00101101  degeri
SER IN e 5. biti ver (1) ,
SRCK'yı H yap sonra L yap, 
7. bit 3. hafızaya geçti,
6. bit 2. hafızaya geçti,
5. bit (1) değeri 1. hafızada saklandı
(hafıza çıkışlarındaki bu degerleri, henüz çıkış LATCH ları almadı)

Örnek = %00101101  degeri
SER IN e 4. biti ver (0) ,
SRCK'yı H yap sonra L yap, 
7. bit 4. hafızaya geçti,
6. bit 3. hafızaya geçti,
5. bit 2. hafızaya geçti,
4. bit (0) değeri 1. hafızada saklandı
(hafıza çıkışlarındaki bu degerleri, henüz çıkış LATCH ları almadı)

Örnek = %00101101  degeri
SER IN e 3. biti ver (1) ,
SRCK'yı H yap sonra L yap, 
7. bit 5. hafızaya geçti,
6. bit 4. hafızaya geçti,
5. bit 3. hafızaya geçti,
4. bit 2. hafızaya geçti,
3. bit (1) değeri 1. hafızada saklandı
(hafıza çıkışlarındaki bu degerleri, henüz çıkış LATCH ları almadı)

Örnek = %00101101  degeri
SER IN e 2. biti ver (1) ,
SRCK'yı H yap sonra L yap, 
7. bit 6. hafızaya geçti,
6. bit 5. hafızaya geçti,
5. bit 4. hafızaya geçti,
4. bit 3. hafızaya geçti,
3. bit 2. hafızaya geçti,
2. bit (1) değeri 1. hafızada saklandı
(hafıza çıkışlarındaki bu degerleri, henüz çıkış LATCH ları almadı)

Örnek = %00101101  degeri
SER IN e 1. biti ver (0) ,
SRCK'yı H yap sonra L yap, 
7. bit 7. hafızaya geçti,
6. bit 6. hafızaya geçti,
5. bit 5. hafızaya geçti,
4. bit 4. hafızaya geçti,
3. bit 3. hafızaya geçti,
2. bit 2. hafızaya geçti,
1. bit (0) değeri 1. hafızada saklandı
(hafıza çıkışlarındaki bu degerleri, henüz çıkış LATCH ları almadı)

Örnek = %00101101  degeri
SER IN e 0. biti ver (1) ,
SRCK'yı H yap sonra L yap, 
7. bit 8. hafızaya geçti, (aynı zamanda bu değer SER OUT da hazır, diğer tpic lerin ser in girişi için)
6. bit 7. hafızaya geçti,
5. bit 6. hafızaya geçti,
4. bit 5. hafızaya geçti,
3. bit 4. hafızaya geçti,
2. bit 3. hafızaya geçti,
1. bit 2. hafızaya geçti,
0. bit (1) değeri 1. hafızada saklandı
(hafıza çıkışlarındaki bu degerleri, henüz çıkış LATCH ları almadı)


Şimdi ilgili bitler hafızalarda bekliyor ancak çıkış kilidine alınmadı. Eğer bundan sonra da başka istasyonlar var ise, yani TPIC sayısı 1 den fazla ise, aynı şekilde bütün tpiclere, ilgili bitler doğru değerler dolacak şekilde bilgiler ser in den girip kaydırılır.

Bütün bitler istasyonlara doldurulduktan sonra çıkış kilitlerine hafızalamak için;
RCK önce H sonra L yapılır.
Bu durumda G\ pini LOW da ise ilgili bitler anında MOSFET'lere sürülür.
İlgili bit H ise MOSFET kısa devre olur (akım gecirir), L ise açık devre olur (akım geçirmez).

G\ pininde pwm uygulanıyorsa pwm oranına göre mosfetler sürekli anahtarlama yapar.

Bir hatırlatma;
Tabela yaptığımız geçmiş yıllardan bir tecrübedir.

TPIC data hatları (SER IN, RCK, SRCK gibi) uzuyorsa (pcb üzerinde veya kablo ile) ve işlemciniz yeterince hızlı çalışıyorsa (mesela 20 MHz) ilgili pinleri LOW - HIGH -LOW gibi yaparken, bunların arasında yeterli sürede belli duraksamalar yapın (mesela nop ilave ederek).
Sebebi,
Yollar endüktif etkiler yapar ve doğru değerde L veya H bilgileri ilerlemeyebilir ve çıkışlarda saçma sapan şeyler görebilirsiniz.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

E-x8

@OG detaylı yazınız için çok teşekkür ederim. Dün gece mesajınızı gördüm fakat yarım yamalak bakmak istememiştim. Az önce fırsatım oldu teşekkür ediyorum.
Yaptığım hata SRCLR pinin kullanmamak ve sürdüğüm ledlerin (+) hattına bağlamakmış :)

E-x8

Ek konu açmadan şuradan sormak istedim.
Led matrix yaparken eksi(-) hatları bu entegre ile kolaylıkla sürebiliyoruz fakat artı(+) hatlarıda sürebilmek için nasıl bir yol izlemeliyim?

OG

PNP transistor, P tipi Mosfet transistor vs ile.
Ancak P10 lar çıktı matrix panellerin imalatı bitti, onu dikkate alın. Değmez yani. P10 ile çok daha basit şekilde çok iş yapabiliyorsunuz. Her şey hazır.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

E-x8

Sırf eğlence olsun diye yapıyorum herhangi bir ticari amaç yok o yüzden kolaya kaçmak istemiyorum :)
PNP transistör bakıyordum bende, BC177 adlı transistörü buldum 200mA geçirebiliyor fakat Ebay' de satılıyor emsal olabilecek bir tane önerebilir misiniz?

mg1980


E-x8

BC327 800mA gayet iyi, teşekkürler :)