Newsgroup: it.hobby.elettronica.digitale
Titolo: Help Prot. I2C

Avrei bisogno di qualche documento, o pseudo funzione che spieghi in modo
dettagliato la gestione del protocollo I2C mediante le porte COMx.
Grazie in anticipo.


Qualche dettaglio in piu' non avrebbe guastato...
Intanto per il protocollo I2C trovi tutto sul sito della Philips, visto che
l'hanno inventato loro.
Poi e' un protocollo asincrono (usa cioe' un canale di clock) e le COM
(quelle del PC?) o meglio la RS232 usa un protocollo sincrono...
Quindi la vedo dura... a meno di pilotare a "manina" gli stati dei pin della
Com... piu' facile con la parallela.
ciao
Sergio

 ha scritto nel messaggio
news:a5m3bo$fgr$1...@pegasus.tiscalinet.it...


 cosa dura è sincronizzarli !!)
Perché dite che è dura? Scusate ma le classiche interfacce tipo
JDM, Ludipipo per la programmazione dei PIC non sono seriali? E la
programmazione dei PIC non avviene mediante I2C???

 programmazione dei PIC non avviene mediante I2C???
Appunto... pilotano i segnali a mano... perche' fare tanta fatica con la
seriale quando esiste la parallela che e' tanto comoda?
ciao
S

 Com... piu' facile con la parallela.
Non per rompere ma è l'incontrario, I2C è un protocollo sincrono mentre
RS232 è asincrono.
Bye

 seriale quando esiste la parallela che e' tanto comoda?
E proprio questo il mio problema, pilotare i segnali in modo manuale.
Comunque grazie per l' interessamento. Prima o poi riuscirò in questa
impresa
hardwa.
Ciao a tutti.

 ha scritto nel messaggio
news:a5ovi7$66n$1...@pegasus.tiscalinet.it...


 ha scritto nel messaggio
news:1lQf8.27279$_u5.7...@news1.tin.it...

Hai ragione ho confuso i termini grazie...grande SGRUNT!!
ciao
S

 ha scritto nel messaggio
news:a5m3bo$fgr$1...@pegasus.tiscalinet.it...


 modo manuale.
Non e` difficile, ci sono dei bit nei registri di stato/comando della
seriale. Ovviamente non puoi pilotare direttamente Td e Rd, ma ad
esempio lo puoi fare con RTS, CTS, DTR...
Se non trovi il modo dimmi qualcosa, che guardo precisamente quali
registri e quali bit.
--
Lorenzo

 registri e quali bit.
Approfitto della tua disponibilità e ti espongo cosa vorrei fare.
Il mio problema è sincronizzare  la trasmissione di un bit su  DTR e allo
stesso tempo abbassare e alzare il bit di RTS
per creare il clock per poter leggere e scrivere su pic integrati e eeprom
con il protocollo I2C.
Grazie per la risposta.
Ciao

 con il protocollo I2C.
La sincronizzazione in se` non e` un problema, I2C e` un protocollo
privo di tempi "minimi" da rispettare e quindi si puo` fare tutto con
delle semplici temporizzazioni. Per quanto riguarda il pilotaggio di DTR
e RTS, puoi trovarli nel control register della seriale che e`
all'indirizzo BASE+4 (ossia se la seriale e` all'indirizzo 0x3f8, il
control register sara` a 0x3fc); DTR e` il primo bit, RTS il secondo.
Quindi:
outb( 0x3fc, 0);    // DTR off, RTS off
outb( 0x3fc, 1);    // DTR on, RTS off
outb( 0x3fc, 2);    // DTR off, RTS on
outb( 0x3fc, 3);    // DTR on, RTS on
Non ricordo se i segnali sono negati o meno, dovrai verificare con un
tester a cosa corrisponde "on" e "off".
Poi ti serve anche un segnale di ingresso (per i dati di ritorno); li
trovi tutti nello status register (BASE+6): CTS e` il quinto bit (0x10),
DSR il sesto (0x20), RI il settimo (0x40) e DCD l'ottavo (0x80).
--
Lorenzo

 privo di tempi "minimi" da rispettare
                  ^^^^^^
Volevo poi dire "massimi". Intendo dire che non ci sono frequenze minime
di funzionamento, in linea di principio potresti pilotarlo anche
chiudendo a mano degli interruttori.
--
Lorenzo