Go Down

Topic: Utilizzare i2c con DS1307 e DS1624 (Read 709 times) previous topic - next topic

Fabio Battaglia

Ciao a tutti, da diverso tempo utilizzo arduino per applicazioni più disparate.
Questa volta però mi trovo ad dover utilizzare due sistemi digitali come il DS1307 rtc ed un sensore di temperatura DS1624.
Per quanto riguarda l'rtc ho trovato diversi schemi circuitali per poterlo collegare all'arduino ma sono del tutto impreparato (e non riesco a trovare nulla) sul collegamento (e quindi circuito) del DS1624 e sfruttare il bus i2c.
l'utilizzo del bus i2c è per me del tutto ignoto, avreste qualche info da potermi dare !?!?

Grazie mille.

PaoloP

#1
Sep 04, 2013, 04:31 pm Last Edit: Sep 04, 2013, 04:35 pm by PaoloP Reason: 1
Le periferiche I2C si collegano tutte allo stesso modo.
In parallelo, collegando assieme tutti i pin SDA e tutti i pin SCL.
Vanno collegati per ogni periferica, naturalmente, anche i pin Vcc e GND.

Esempio


Qui trovi il datasheet del sensore --> http://datasheets.maximintegrated.com/en/ds/DS1624.pdf
Qui le librerie per Arduino --> https://github.com/federico-galli/Arduino-i2c-temperature-sensor-DS1624

Il bus I2C, il cui controller è integrato all'interno dell'ATmega328, si usa tramite la libreria Wire che, di norma, è richiamata dalle librerie specifiche delle varie periferiche.
Per approfondire
--> http://it.wikipedia.org/wiki/I%C2%B2C
--> http://arduino.cc/en/Reference/Wire

Michele Menniti

E' bene sempre ricordare la necessità di usare le R di pull-up (2k2-4k7) su ognuno dei due rami SDA/SCL
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Fabio Battaglia

Grazie per le tempestive risposte.

Fabio Battaglia

Come faccio a dimensionare correttamente le resistenze di pull-up !?
In molti schemi le resistenze sono di 10k

PaoloP

Se vuoi essere preciso, pagina 55 --> http://www.nxp.com/documents/user_manual/UM10204.pdf
Altrimenti mettile tra 1k8 e 4K7.

uwefed

Le resistenze di pullup dipendono dal circuito ( la capacitá del cavo e il carico dei dispositivi collegati). Esse devono portare il segnale a +5V quando l' uscita non porta a massa il segnale caricando il condensatore che crea il cavo. Questo deve avvenire entro un tempo ben preciso (tra un bit e l' altro) per riuscire a poter segnalare un stato HIGH.
Un valore tra 1k8 e 4K7 va nei maggior parti dei casi bene.

Altrimenti si devono usare integrati che prolungano il bus I2C come http://www.nxp.com/documents/data_sheet/PCA9507.pdf  oppure che portano attivamente il Bus su HIGH come il http://cds.linear.com/docs/en/datasheet/4311fa.pdf

Ciao Uwe

Go Up