Vai al contenuto
PLC Forum


I2c & Clock


eeprom

Messaggi consigliati

Ciao ragazzi,

vi scrivo per risolvere un quesito che mi tormenta da qualche giorno, in pratica io ho un dispositivo che comunica in I2C però il clock per la comunicazione non viene fornito dalla periferiche che va a leggere 8cioè il mio Atmel 90s2313), ora non riesco a sincronizzare la comunicazione perchè non trovo la formula per calcolare i delay per arrivare alla giusta sincronizzazione. Premetto che il mio 2313 ha un quarzo di 8 mhz e il dispositivo ha compresa il segnale d'ingresso per la comunicazione è di 2 Mhz.

Quale rapporto c'è tra questi due per una corretta sincronizzazione?

Ho usato prima un circuito preso dalla rete che montava sempre un 90s2313 ed il firmaware già scritto e funzionava bene, solo che montava un quarzo da 4Mhz e allora mi son detto; ninente di più semplice! moltiplico i valori del delay presente per 2 e monto il quarzo da 8Mhz, però ho avuto la bella sorpresa che non funziona.

Grazie a chiunque mi risponda!

Link al commento
Condividi su altri siti


Non ho capito molto bene cosa intendi però se tu hai un micro che deve comunicare IIC con delle periferiche slave non dovresti avere molti problemi.

Non serve nessuna formula vado a memoria ma credo che lo standard IIC ammetta clock massimo 100KHz

inoltre i dati rimangono stabili finchè il clock è stabile quindi puoi usare anche un clock con periodo di secondi.

Fai una prova semplicissima. collega una sola periferica al bus, invia il suo byte d'indirizzo e fermi il progrmma quando aspetti l' ack dalla periferica. Con un tester controlli la tensione sulla linea dati se non vedi l'ack controlla le connessioni.

Ovviamente per me è scontato che tu conosca la struttura della comunicazione IIC condizioni di start stop ack ecc..

Link al commento
Condividi su altri siti

se ti colleghi al sito della Philips o cerchi con google

troverai un sacco di documentazione relativa al bus I2C.

E' un bus sincrono seriale dove il master decide quando trasmettere e a chi

Fisicamente e' composto da 2 linee , clock e dati

entrambe , essendo pulluppati a 5 V tramite 2 resistenze , sono sensibili quando uno dei device

butta a zero la linea .

Il clock lo devi dare a 1 per ogni bit che spari fuori .

Cerca in internet e troverai un sacco di materiale

alcuni micro hanno una periferica che gestisce l'emissione di un byte alla volta , gestendo il clock automaticamente

Io avevo scritto una libreria per un micro addirittura senza periferica, cioe tutto via software

Non e' difficile , dopo 10 minuti vedrai che avrai capito tutto

ciao

walter

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...