Pagina 1 di 1

Ridurre I/O digitali su LM3S9B96 della Texas

MessaggioInviato: 8 gen 2013, 11:36
da Faust83
Buongiorno a tutti,
oggi vengo a porvi un quesito semplice semplice (che quasi mi vergogno :oops: )
Ho necessità di gestire un consistente numero di I/O digitali (tastiere, tasti di cloches) con un microcontrollore.
Il poverino ha già parecchie altre mansioni da eseguire, per cui il numero di pin rimasti inizia ad essere esiguo e vorrei trovare un modo più intelligente per gestire tutti questi I/O.
La prima cosa che mi è venuta in mente è stata inserire un integrato che faccia la codifica di questi input.
Ad esempio, supponendo di avere 8 bit in input, in teoria basterebbero 3 bit in uscita per dirmi quale è intervenuto (in realtà ne servono 4 per sapere quando nessuno interviene).
Questo è sicuramente possibile, ma si viene a verificare il problema di non poter conoscere le situazioni in cui più input sono intervenuti contemporaneamente (a meno che mi accontenti di una certa latenza, magari con un clock bello rapido.. potrebbe essere un'ipotesi).
Al che ho pensato piuttosto che potrebbe essere utile invece serializzare gli N input che intervengono, anche qui con un clock bello rapido che mi garantisca una risposta accettabile (chiaramente se premo dei pulsanti non voglio vedere l'effetto dopo mezz'ora...)

Sapete darmi qualche consiglio? Magari da inesperto esiste qualcosa di più furbo da adoperare.
Grazie :)

Re: Ridurre I/O digitali su LM3S9B96 della Texas

MessaggioInviato: 8 gen 2013, 17:04
da simo85
Non puoi usare una interfaccia seriale, I²C, SPI?

Re: Ridurre I/O digitali su LM3S9B96 della Texas

MessaggioInviato: 8 gen 2013, 17:08
da simo85
PS: conosci Foto Utentesensoristica e Foto Utentemacamo?

Re: Ridurre I/O digitali su LM3S9B96 della Texas

MessaggioInviato: 8 gen 2013, 17:20
da TardoFreak
Puoi fare una cosa del genere:

Usi 8 pin di ingresso del micro che formano una sorta di bus dati, tre linee di output per abilitare i buffer tri state (uno alla volta altrimenti fanno a testate) ed ottieni 24 linee di input.
Se non bastano, per ogni pin di abilitazione in più avrai altre 8 linne d' ingresso in più.
Come buffer puoi usare i 74HC244 o 74HC245.

Re: Ridurre I/O digitali su LM3S9B96 della Texas

MessaggioInviato: 9 gen 2013, 9:53
da Faust83
Grazie per l'idea, molto carina. In effetti avevo pensato a qualcosa di simile con un demux, da leggere più volte per ciclo.
Comunque alla fine sembra che mi stia orientando verso un'altra filosofia: dovendo utilizzare una SDRAM, con un bus usato alternativamente per indirizzi e dati (era proprio questa memoria a saturarmi gran parte dei pin del dispositivo), ho pensato di sfruttare lo stesso bus dati per colloquiare con una CPLD, la quale determinerà gli input intervenuti. Risparmio di tanti pin quindi, al costo di aggiungere un chip enable in più (quello della CPLD) in modo da capire da chi è impegnato il bus in un dato momento.

@gohan: in effetti avevo pensato anche a qualche interfaccia seriale, ma ho postato anche per avere eventuali consigli su integrati che facciano quel lavoro, visto che non ne conosco...
comunque non conosco gli indirizzi che mi hai indicato...gli do un'occhiata! Grazie!