I2C+SPI

ciao!

sto lavorando con un pic18f4620 e vedo che le linee per il bus I2C e per il bus SPI sono "condivise" (SDA/SDI, SCL/SCK e poi c'è SDO per lo spi)

sapete se si riesce a far convivere un dispositivo SPI ed uno I2C?

grazie!

-ice-

Reply to
ice
Loading thread data ...

ice ha scritto:

il

Non conosco i PIC della serie 18, ma la I2C puo' essere implementata abbastanza semplicemente in software, soprattutto se non pretendi delle performance esagerate.

Reply to
Darwin

supponnedo che in entrambi casi il pic sia il master per lo SPI: fin quando il CS non e' attivo gli altri pin pososno fare quello che vogliono e quindi le periferiche SPI dovrebbero stare tranquille, cioe' non ricevere nulla, durante le transazioni I2C. per l'I2C: devi verificare che non si generino condizioni di START 'fasulle' durente le transazioni SPI ( francamente non so se avviene o si possano evitare )

quando tutto manca potresti provare con buffer, isolatore, per l'I2C dovrebbe esistere qualcosa di Texas e/o Philips dotati di chip enable in modo da isolare il bus I2C dal micro.

Reply to
mmm

quindi potrei metterci anche un 74244?

magari qualcuno ci ha già provato e mi può dire se dialogando con protocollo SPI si possono generare degli start a livello I2C... cmq rimarrebbe il fatto che prima di essere operativa (una periferica i2c) deve dare l'ack dopo che è stata selezionata

grazie ciao!

Reply to
ice

no nella maniera piu' assoluta (o quasi ) i buffer a cui facevo riferimento sono dei buffer bidirezionali fatti apposta per l'I2C tipicamente sono usati come traslatori di livello tra I2C a 5 V e I2C a

3.3 ma mi sembra ce ne siano anche con la funzione di enable in modo da isolare due sezioni del bus guarda sul sito Texas.

controllati un po' le transizioni che avvengono sullo SPI e vedi un po' se le ottieni, il fatto che possono dipendere dallo specifico protocollo SPI ( polarita' e/o dati che trasmetti )

e qua ti serve il fatto che i buffer di cui sopra siano bidirezionali e a commutazione 'automatica'

Reply to
mmm

ho capito a cosa ti riferisci... li ho usati proprio in passato per adattare un livello logico di una linea bidirezionale. Si realizzano semplicemente con un mosfet tipo 2n7000 (senza controllo di enable/disable)

ora guardo dalla TI... cmq ho capito come devo procedere ti ringrazio per l'aiuto

-ice-

Reply to
ice

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.