Real Time Clock I2C

Ho un Real Time Clock (RTC) che comunica con il protocollo I2C, l'ho collegato ai pin analogici 4 e 5. Se ho capito bene per poter inviare o ricevere qualcosa devo usare la libreria Wire, però non sono riuscito a fare niente... C'è qualche tutorial passo passo che spiega come fare? Oppure me lo spiegate voi?

Cos'hai? Un DS1307 o un PCF8563?

Cmq se cerchi nel forum e/o nel playground escono diversi risultati. Quelli che seguono sono solo alcuni di quelli che ho trovato. Per il primo: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1191209057 Per il secondo: http://www.arduino.cc/playground/Main/RTC-PCF8563

sopra c'è scritto:

M41T0
E9924

e come sei sicuro che sia un RTC? dove hai trovato i collegamenti in rete non si trova nulla... trova il datasheet può esseree utile se non essenziale

il datasheet credo sia questo: http://www.datasheetcatalog.org/datasheet/stmicroelectronics/9105.pdf comunque sono sicuro che sia un rtc ;)

Sì, è un RTC. Dovresti usarlo tipo gli altri 2 che ti ho segnalato. Basta sostituire l'indirizzo I2C del chip e poi decodificare i byte che leggi per ottenere l'ora e la data. Prova a vedere se trovi su internet qualcosa relativo a questo chip altrimenti non dovrebbe essere difficile adattare una delle librerie scritte per un altro RTC.

Ok, provo anche se questa libreria mi può servire: http://www.arduino.cc/playground/Main/RTC-PCF8563

in quella libreria c'è scritto:

Remember to check your I2C addresses. There are set here, in the header file.

perchè lo devo modificare nella libreria. però come faccio a saperlo?

L'indirizzo lo ricavi dal datasheet. Per il tuo RTC ho visto che fornito in forma binaria (mi pare di ricordare) in una figura esplicativa.

nella figura 9 slave address location c'è scritto lo slave address così: 1101000 però non ho ancora capito come trovare gli indirizzi read e write da scrivere quì:

#define RTCC_R  0xa3
#define RTCC_W  0xa2

L'indirizzo in un bus I2C è in genere unico: serve ad identificare il chip. Non ho letto il datasheet e non conosco quell'RTC, non so quindi se ha bisogno di 2 indirizzi ma mi suona strano. Più tardi darò un'occhiata al datasheet, rileggilo anche tu per conferma.

L’indirizzo è unico, difatti.
Ma dove sono quei RTCC_W e RTCC_R, scusa?

quì: http://www.arduino.cc/playground/Main/RTC-PCF8563#Creation

Ah, ok. Questo perché gli RTC hanno qualche byte di memoria su cui puoi scriverci sopra. Puoi evitare la cosa: considera solo l'indirizzo per leggere il micro, dato che tanto un RTC serve principalmente per ottenere l'ora e la data.

Nel datasheet ho trovato gli indirizzi e messo così:

/* the read and write values for pcf8563 rtcc */
/* these are adjusted for arduino */
#define RTCC_R  0xd1
#define RTCC_W  0xd0

però non va... proverò a vedere la libreria se riesco a capire cosa non va bene, ma per ora non ho idee...

Io vedo che l'indirizzo del tuo RTC, guardando il datasheet a pag. 11, è 1101000b, ossia 0x68.