Pages: [1]   Go Down
Author Topic: Utilizzare i2c con DS1307 e DS1624  (Read 308 times)
0 Members and 1 Guest are viewing this topic.
Ragusa
Offline Offline
Newbie
*
Karma: 0
Posts: 33
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 102
Posts: 6548
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: September 04, 2013, 09:35:51 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 410
Posts: 11975
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E' bene sempre ricordare la necessità di usare le R di pull-up (2k2-4k7) su ognuno dei due rami SDA/SCL
Logged

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

Ragusa
Offline Offline
Newbie
*
Karma: 0
Posts: 33
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie per le tempestive risposte.
Logged

Ragusa
Offline Offline
Newbie
*
Karma: 0
Posts: 33
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 102
Posts: 6548
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

BZ (I)
Online Online
Brattain Member
*****
Karma: 234
Posts: 20179
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: [1]   Go Up
Jump to: