74165 ile giriş çoğullama

Başlatan icemanx, 16 Şubat 2011, 16:25:04

icemanx

Merhabalar.

74165 ile pic 16f877 için giriş çoğullama yapmak istiyorum. Fakat ne yazık ki izlemem gereken yöntemi tam anlamıyla bilemiyorum. Datasheetini de pek anlayamadım. Acaba biri bana yol gösterebilir mi? Örnek kod veya herhangi bir kaynak da olabilir.

Şimdiden teşekkürler.

Tagli

Kaç tane giriş için kullanacaksın bunu? Yani mesela 16 giriş için 2 adet 74165'i arka arkaya bağlama gibi bir durum var mı?

Kullanımı oldukça basit gibi görünüyor. Normalde SH/LD bacağını 0'da tutuyorsun. Mevcut veriyi okumak istediğinde öncelikle bu bacağı 1 yapman gerekiyor ve bu durumda entegre girişlerinin dış dünya ile bağlantısı kesiliyor. Clock normalde 0'da tutuluyor, ve SH/LD'yi 1 yaptığında çıkış bacağından H girişine denk gelen biti okuyorsun. Clock'un 0'dan 1'e geçişinde veriler kaydırılıyor, bunu ilk yapışından sonra çıkış bacağından G girişine denk gelen biti okuyorsun.

Anladığım kadarıyla clock inhibit bacağını 0'da tutman gerekli. Hangi durumlarda 1 yapılması gerekir o konuda bir fikrim yok. Ayrıca kaydırılan bitlerin yerine ne geleceğini de bilmiyorum. Belki 0 geliyordur, belki de dairesel bir şekilde çıkan bitler diğer taraftan geri giriyordur. Sen işlemi doğru yaptığın sürece zaten sonraki bitlerin ne olduğunun pek önemi yok. Clock kullanımı sırasında zamanlamalara dikkat etmen gerekebilir. Bunun için datasheet'e bak.

74165'le daha önce uğraşmadım. Bunları, az önce göz attığım datasheet'ten anladığım kadarıyla yazıyorum.
Gökçe Tağlıoğlu

CLR

Alıntı yapılan: icemanx - 16 Şubat 2011, 16:25:04
Merhabalar.

74165 ile pic 16f877 için giriş çoğullama yapmak istiyorum. Fakat ne yazık ki izlemem gereken yöntemi tam anlamıyla bilemiyorum. Datasheetini de pek anlayamadım. Acaba biri bana yol gösterebilir mi? Örnek kod veya herhangi bir kaynak da olabilir.

Şimdiden teşekkürler.

Hiç cevap yazan olmamış, al bakalım

; macro tanımlayalım
; literali file'a taşımak için	
	MOVLF		MACRO	L,F				; Literali file'a taşı
	MOVLW		L
	MOVWF		F
	ENDM
	
	
	
#DEFINE		Hc165Load		PORTA,0		; sh/ld pinine
#DEFINE		Hc165Clk		PORTA,1		; clk 
#DEFINE		Hc165Data		PORTA,2		; q7 veya değiline

;başlangıçta , Hc165Data giriş diğerleri çıkış ve başlangıç şartları aşağıdaki gibi
	BCF		Hc165Load
	BCF		Hc165Clk
	

	
; okuma kısmı	
Read165:
	BSF		Hc165Load		; latch et, giriş konumunu registerlere at
	
	MOVLF	8,CNT;			; NT registerine 8 yükle
NewBit:	
	RLF		GIRISLER,F		; girişler registerini 1 sola kaydır ve geri kaydet
	BTFSC	Hc165Data		; giriş 0 ise zıpla 
	INCF	GIRISLER,F		; set ise
	BSF		Hc165Clk		; clock
	BCF		Hc165Clk
	DECFSZ  CNT,F
	GOTO 	NewBit
	BCF		Hc165Load		; girişleri serbest bırak
	RETURN
Knowledge and Experience are Power

icemanx

Çok teşekkür ediyorum.Şimdi çok açıklayıcı oldu işte.Böyle bir örnek kod yollamanız benim için çok makbule geçti.

drmp

74165 aslında bu iş için denem amaçlı kullanılabilir ama pek güvenli değil (benim görüşümdür) profesyonel amaç için pcf serisi i2c i/o entegreler var hemde bu iş için yapılmış onları incelemende fayda var

icemanx

Merhabalar. Güvenli değilden kasıt nedir acaba? Dezavantajlı nedir 74165 in? Biraz açıklarsanız çok memnun olacağım.

FEHMİ_ASM

74165 USART, PCF85 serisi ise MSSP (I2C) için kullanılıyor.

CLR

Alıntı yapılan: icemanx - 18 Şubat 2011, 10:16:51
Merhabalar. Güvenli değilden kasıt nedir acaba? Dezavantajlı nedir 74165 in? Biraz açıklarsanız çok memnun olacağım.

Merhaba,

74hc165 gayet güvenli, istersen girişlere bir kaç malzeme ekleme ile sadece girişte değişme olduğunda veya tuş okuma işin kullanacaksan tuşa basıldığında(interrupt ile) okuma yapabilirsin, mesela tuş okuma için interruptlı olarak çok kullandım, toplamda 4 işlemci pini ile 8-16-24-32 tuş okuyabilirsin.

Güven konusuna gelince, bu elektronik donanım ve yazılım bilginizle alakalı birşey. Kimisi işlemci ile takla attırırken ve hiç sorun çıkmazken kimisi ise gürültü, kitlenme, reset vs gibi şeylerden başını kaldıramaz bu işlemcinin şuçu değildir.

Sanırım yeterince açık olmuştur.







 
Knowledge and Experience are Power

drmp

entegreyi bende bir kaç uygualamada kullandım  güvenli değil derken entegre ile alakalı demek istememistim aslında protokol tercihi ile alakalı birsey i2c daha kararlı oturmuş bir protokol olduğundan dolayı  kararımı bu tarafa kıldım

icemanx

Yanıtlarınız için çok teşekkürler. Ben okuma yapıcam o yüzden kolay gibi geldi kullanımı bana. Peki birden fazla okumak için nasıl bir yol izlemem gerekir acaba?

Tagli

Birden fazla 74165'in arka arkaya bağlanarak kullanımını soruyorsan izlemen gereken yöntem şu şekilde:

Uçtaki (serinin sonundaki) 74165'in çıkışını, onu takip eden 74165'in DS, yani seri giriş bacağına bağlaman gerekiyor. Clock ve SH/LD bacaklarını ise paralel bağlamalısın. Serinin başındaki 74165'ten ise normal olarak okuma yapacaksın.
Gökçe Tağlıoğlu

icemanx

Anlıyorum 3 adet kullanırsak 8+8+8 = 24 bit elde edeceğim aynı pin üzerinden. Yanılıyor muyum?

Tagli

#12
Evet, öyle. Kod kısmında sadece clock sayısı değişecek, mesela 8 değil de 24 defa yapacaksın aynı işlemi. Tabi bir de bu gelen 24 bitin uygun yerlere yazılması için gerekli ayarlamayı yapmalısın. 74165'lerle yaptığın işlerin benzerini 3 adet register kullanarak ve kaydırma yaparak PIC'in içinde de yapabilirsin.
Gökçe Tağlıoğlu

icemanx

Anladım benim işime çok yarayacak o zaman bu entegre. Datasheetini inceliyorum buradan http://zefir.if.uj.edu.pl/pracownia/74165.pdf. Son bir soru kaldı aklımda . A'dan başlayarak mı geliyor data acaba? yani kaydırma yaptığım zaman 0. bite A mı gelecek?

Tagli

Hayır, SH/LD'yi 1 yaptığın zaman çıkış bacağı olan QH'da, H girişinin değerini göreceksin. Hatta bunun için clock vermene de gerek yok. Verdiğin ilk clock'un ardından çıkışta G'yi okuyacaksın ve bu böyle devam edecek.
Gökçe Tağlıoğlu