Vai Indietro   PcTuner Forum > Sezione Hardware > Progetti Elettronici
Arcade Registrazione Blogs Regolamento Feedback FAQ Lista Utenti Calendario Segna come Letti

Ultimi 5 blog pubblicati su PcTuner Blog
Data Titolo

Rispondi
 
Strumenti Discussione Modalità Visualizzazione
Vecchio 30-01-2008, 15.49.56   #1
Registered User
 

Iscritto da: 29-01-2008
Messaggi: 3
Feedback: (0)
Scheda di I/O a 256 linee controllata da PC

Ciao a tutti,
sono un modellista (elettronico ed informatico) ed ho deciso finalmente di far comandare il mio plastico ferroviario al PC.
Ho bisogno quindi di un interfaccia tra il PC (magari USB visto che le seriali stanno scomparendo dai PC) ed il mio plastico; verso quest'ultimo ho bisogno di un centinaio di linee digitali di input/output.
Alla fin fine è una generica scheda di I/O per PC (con tanto I/O).

Di commerciale non ho trovato niente e quindi non mi resta che costruirmela ma ho alcuni dubbi di fondo.
L'idea principe sarebbe di trovare un CHIP che mi rendesse disponibili le 100 linee ma dubito che esista; e quindi pensavo alle classiche 3 porte a 8 bit dell'8255 o ad un PIC magari della famiglia 18X che è interfacciabile in modo nativo con la USB al PC.
Le 3 porte le utilizzarei in questo modo:
1 porta in output alla quale sarebbero collegati in parallelo 16 buffer tristate e quindi 16x8=128 uscite digitali
1 porta in input alla quale sarebbero collegati in parallelo 16 buffer tristate e quindi 16x8=128 ingressi digitali
1 porta in output per l'indirizzamento che tramite demultiplexer (1 per i 16 buffer di ingresso e 1 per i 16 buffer di uscita) abiliterebbe di volta in volta il buffer di riferimento.
Il protocollo utilizzato per la lettura/scrittura degli input/output sarebbe col doppio pacchetto in cui nel primo specifico l'indirizzo (e quindi definisco se è un operazione di input o di output ed abilito il buffer che mi interessa; gli altri restano in tristate) e nel secondo leggo o scrivo.

Il vantaggio di utilizzare un PIC sarebbe che la routine SW che fa il polling sugli input (mi serve sapere in tempo quasi reale - ogni secondo - lo stato degli input per eseguire di conseguenza azioni sugli output) sarebbe sul PIC ed avrei un flusso di dati costante dal PIC al PC con gli stati; farei fare quindi al PC compiti più intelligenti.

Che ne pensate? potrebbe avere un senso cimentarmi in questa avventura?
Accetto benvolentieri consigli e miglioramenti

Allego la schema di principio dell'HW
Immagini Allegate
Tipo di File: jpg circuit11.jpg‎ (69.0 KB, 110 visite)
bobbyred Non in Linea   Rispondi Citando
Vecchio 30-01-2008, 19.21.44   #2
Kill the fight !
 
L'avatar di  Beppe82
 

Iscritto da: 07-09-2001
Messaggi: 10,251
Feedback: (0)
esiste un integrato della FTDI che permette una conversione USB <-> I2C

esistono di qualsiasi marca integrati I2C che mettono a disposizione 8/16 I/O programmabili

il suddetto chip della FTDI permette anche trasmissione su "interrupt esterno" con gli appositi pin, ed oltre alla porta I2C ha alcune altre linee general purpose

esistono moduli con il chip già saldato, connettore USB tipo B e tutti i componenti acessori per far funzionare il tutto, compatibile con pinout DIL, quindi comodo da usare

con questo approccio non devi programmare nessun micro, quindi lavori solo lato PC

la porta USB può erogare solo 500 mA

buon lavoro
Beppe82 Non in Linea   Rispondi Citando
Vecchio 02-02-2008, 21.06.02   #3
Registered User
 
L'avatar di  Camillo
 

Iscritto da: 31-01-2006
Locazione: Genova
Messaggi: 1,524
Feedback: (0)
Quote:
Originariamente inviato da bobbyred Visualizza Messaggio
Ciao a tutti,
sono un modellista (elettronico ed informatico) ed ho deciso finalmente di far comandare il mio plastico ferroviario al PC.
Ho bisogno quindi di un interfaccia tra il PC (magari USB visto che le seriali stanno scomparendo dai PC) ed il mio plastico; verso quest'ultimo ho bisogno di un centinaio di linee digitali di input/output.
Alla fin fine è una generica scheda di I/O per PC (con tanto I/O).

Di commerciale non ho trovato niente e quindi non mi resta che costruirmela ma ho alcuni dubbi di fondo.
L'idea principe sarebbe di trovare un CHIP che mi rendesse disponibili le 100 linee ma dubito che esista; e quindi pensavo alle classiche 3 porte a 8 bit dell'8255 o ad un PIC magari della famiglia 18X che è interfacciabile in modo nativo con la USB al PC.
Le 3 porte le utilizzarei in questo modo:
1 porta in output alla quale sarebbero collegati in parallelo 16 buffer tristate e quindi 16x8=128 uscite digitali
1 porta in input alla quale sarebbero collegati in parallelo 16 buffer tristate e quindi 16x8=128 ingressi digitali
1 porta in output per l'indirizzamento che tramite demultiplexer (1 per i 16 buffer di ingresso e 1 per i 16 buffer di uscita) abiliterebbe di volta in volta il buffer di riferimento.
Il protocollo utilizzato per la lettura/scrittura degli input/output sarebbe col doppio pacchetto in cui nel primo specifico l'indirizzo (e quindi definisco se è un operazione di input o di output ed abilito il buffer che mi interessa; gli altri restano in tristate) e nel secondo leggo o scrivo.

Il vantaggio di utilizzare un PIC sarebbe che la routine SW che fa il polling sugli input (mi serve sapere in tempo quasi reale - ogni secondo - lo stato degli input per eseguire di conseguenza azioni sugli output) sarebbe sul PIC ed avrei un flusso di dati costante dal PIC al PC con gli stati; farei fare quindi al PC compiti più intelligenti.

Che ne pensate? potrebbe avere un senso cimentarmi in questa avventura?
Accetto benvolentieri consigli e miglioramenti

Allego la schema di principio dell'HW
Nello schema da te postato c'è un'errore di fondo ed è che gli output non possono essere dei buffer ma devono essere dei latch, ai miei tempi usavo i 74ls373/374.
Non vedo poi la necessità di utilizzare 2 bus di dati quando ne basta uno solo.
Ed infine potresti pensare di utilizzare degli "shift register serial in parallel output" con latch interno di cui non mi ricordo la sigla, ma se ne era parlato nel forum.
__________________
Camillo

Internet ti fa vedere tutto ma non ti fa toccare niente. (Camillo Ferrari)
Camillo Non in Linea   Rispondi Citando
Vecchio 05-02-2008, 22.41.26   #4
Registered User
 

Iscritto da: 29-01-2008
Messaggi: 3
Feedback: (0)
Effettivamente hai ragione; servono dei latch in output non dei buffer.
Ho iniziato a fare le simulazioni con CircuitMaker2000 e mi sono accorto dell'errore.

Comunque sto analizzando anche l'idea del bus I2C; mi sto documentando ed ho già trovato esempi sia di circuiti che di SW (www.visual-basic.it/articoli/); l'idea di comandare molti I/O digitali con un bus a 2 fili (!!!) soltanto mi piace molto.
Si complica un po il protocollo di trasmissione/ricezione dei dati ma nel link indicato c'è gia impostato un demo SW da installare sul PC per renderlo I2C Master mentre gli integrati che gestiscono l'I/O vanno collegati soltanto al bus in quanto sono nativamente compatibili col protocollo I2C.
E' chiaro che trasmettendo/ricevendo i dati in modalità seriale ci sono dei tempi di risposta più grandi ma non è un problema in quanto per il controllo di un centinaio di I/O (polling) restiamo sempre al di sotto del secondo.
bobbyred Non in Linea   Rispondi Citando
Vecchio 06-02-2008, 00.24.52   #5
RsX
IMHO User...
 
L'avatar di  RsX
 

Iscritto da: 14-05-2007
Locazione: Puglia
Messaggi: 2,093
Feedback: (0)
puoi usare anche solo 1 multiplexer collegando input-output a 2 a 2
cioè l'in n°1 abilitato insieme all'out n° 1 e così via fino a 127...
__________________
Hell Is Getting Near
E' il tempo che si piega ad ACS-G
AlexTA il "zenio del crimine idraulico"
RsX Non in Linea   Rispondi Citando
Vecchio 07-02-2008, 15.31.33   #6
Registered User
 

Iscritto da: 29-01-2008
Messaggi: 3
Feedback: (0)
Ciao RsX,
potresti spiergarmi un po più in dettaglio come faccio con un solo multiplexer ... ad arrivare a 127 I/O

Grazie
bobbyred Non in Linea   Rispondi Citando
Vecchio 09-02-2008, 03.23.42   #7
RsX
IMHO User...
 
L'avatar di  RsX
 

Iscritto da: 14-05-2007
Locazione: Puglia
Messaggi: 2,093
Feedback: (0)
intendo dire che puoi unire le linee bus indirizzi input e output lasciando separati i due bus dati in e out...
avevo trovato anche un multiplexer da 128 linee... però è un megaminichip con 200 piedini piccoli piccoli
__________________
Hell Is Getting Near
E' il tempo che si piega ad ACS-G
AlexTA il "zenio del crimine idraulico"
RsX Non in Linea   Rispondi Citando
Rispondi Per le vostre immagini su questo forum potete usare PcTunerUp!
Iscriviti gratuitamente alla nostra newsletter.


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 visitatori)
 
Strumenti Discussione
Modalità Visualizzazione

Regole di scrittura
non Puoi inserire messaggi
non Puoi rispondere ai messaggi
non Puoi inviare allegati
non Puoi modificare i tuoi messaggi

codice vB è Attivo
Smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Disattivato
Pingbacks are Disattivato
Refbacks are Disattivato
Vai al Forum


Tutti gli Orari sono GMT +2. Attualmente sono le 16.46.21.


Powered by vBulletin Versione 3.6.12
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright © 2010 - Master New Media S.r.l. a socio unico - P.I. 02947530784. Tutti i diritti di proprietà letteraria e artistica sono riservati- Privacy
www.pctuner.net è testata telematica registrata presso il Tribunale di Torino, n. 39 del 07.05.2008, Editore Master New Media S.r.l.