eeprom Inserito: 27 giugno 2006 Segnala Share Inserito: 27 giugno 2006 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 More sharing options...
accacca Inserita: 27 giugno 2006 Segnala Share Inserita: 27 giugno 2006 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 100KHzinoltre 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 More sharing options...
walterword Inserita: 27 giugno 2006 Segnala Share Inserita: 27 giugno 2006 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 automaticamenteIo avevo scritto una libreria per un micro addirittura senza periferica, cioe tutto via softwareNon e' difficile , dopo 10 minuti vedrai che avrai capito tutto ciao walter Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora