Newsgroup: it.hobby.elettronica.digitale
Titolo: Pilotare uno shift-register 8 ingressi

Avete presente 74HC585? Bene bene, vorrei usarlo semplicemente per
leggere lo stato di 8 linee digitali mediante un uC, senza usare 8
pin. Pensavo di usare semplicemente 3 pin: clock, dati, chip select.
Ho visto, però, che questo componente ha diversi segnali di controllo:
Latch Clock
Serial Shift/_Parallel Load_
Output Enable
Per inciso, non capisco perché il segnale Output Enable non è indicato
negato (con la linea sopra il testo, come Parallel Load) visto che
l'uscita viene abilitata proprio quando questo segnale va basso.
Il problema, però, è un altro. Avevo pensato di collegare un pin del
uC direttamente al segnale Output Enable e, la sua versione negata,
al Serial Shift/_Parallel Load_ e al Latch Clock.
Normalmente metto il pin del uC alto così l'uscita è in tristate.
Quando voglio leggere gli 8 segnali digitali, metto a zero il pin
di Output Enable. Ciò ha tre effetti:
- abilita l'uscita dello shift-register
- genera una transizione basso-alto sul pin Latch Clock
- mette il livello alto al pin Serial Shift/_Parallel Load_
A questo punto, 8 colpi di clock e leggo gli 8 bit.
Però mi viene un dubbio sulla contemporaneità dei segnali Latch Clock
e Serial Shift/... Il primo serve a latchare gli 8 segnali d'ingresso.
Il secondo serve per memorizzare questi dati nei registri a scorrimento.
Se arriva prima il livello alto su Serial Shift/... corro il rischio
che i segnali di ingresso non siano stati ancora latch-ati poichè non
è ancora arrivata la transizione basso-alto sul segnale Latch Clock.
Devo per forza usare due pin di controllo, uno per il Latch Clock e
l'altro per il Serial Shift/...???
Avevo pensato, visto che gli 8 segnali digitali sono pressocchè stabili
(cambiano stato ogni morte di papa e rimangono in questo nuovo stato
per un altro papa), di utilizzare il singolo segnale di controllo e di
creare due colpi di clock su questo segnale. In questo modo, sono
molto più fiducioso di leggere lo stato "attuale" dei segnali.
Voi che dite?

pin. Pensavo di usare semplicemente 3 pin: clock, dati, chip select.
Questi servono per il comando dello shift register.


Direi che le considerazioni che fai sono corrette, non ho tempo adesso di
approfondire perchè sto per andare a cena.
Comunque per tagliare la testa al toro io userei un 74HC165 che ha meno segnali
da gestire, solo Shift/load,  Clk e Data e fa la stessa cosa.
http://www.pcremotecontrol.com/datasheets/74hc165.pdf
--
ciao
  Stefano

 
http://www.pcremotecontrol.com/datasheets/74hc165.pdf
Hai ragione, ma mi ritrovo con questi integrati che vorrei riutilizzare.

 Magari dopo cena... a stomaco pieno si pensa meglio ;)
Ad esempio si puo' pensare che il 595 serve per avere 8 uscite e non 8
ingressi? ;)
Claudio F

 ingressi? ;)
Mamma mia, ho fatto un casotto...
Lo shift-register di cui parlavo è il 74HC589.
http://www.onsemi.com/pub/Collateral/MC74HC589A-D.PDF
Siccome devo usare sia shift-register in ingresso che in uscita, ho
confuso i due codici.
Siate comprensivi...

l'altro per il Serial Shift/...???
No, puoi anche inserire un ritardo con un RC molto leggero, tipo 1K-100pF per
essere sicuro dela sequenza, magari mettilo prima di un inverter che poi
squadra.
Oppure puoi anche mettere solamente un paio di inverter in serie sul segnale da
ritardare, il delay time è di qualche decina di nS, potrebbe bastare.
--
ciao
  Stefano

 ritardare, il delay time č di qualche decina di nS, potrebbe bastare.
Anche questa soluzione, magari sono sul filo del rasoio...
Dite che la soluzione che ho proposto io non va bene? Due colpi sul pin
di Enable per essere sicuro di acqusire l'ultimo stato degli ingressi, abbastanza
stabili nel tempo. Cosě evito qualsiasi "pezza" hw.

stabili nel tempo. Cosě evito qualsiasi "pezza" hw.
Se il segnale č stabile, direi che funziona, e comunque una situazione la
'latchi' (brutto neologismo) di sicuro.
--
ciao
  Stefano