Pages: [1]   Go Down
Author Topic: I2C con device 5.0v e 3.3v  (Read 1578 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 2
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti... mi sono appasionato ad arduino da poco, grazie ad un progetto di un "orchidario" che sto portando avanti con un amico.
Ho acquistato da vari siti un po' di cose per arduino, tra cui dei sensori di luminosità, sensori di umidità, LCD, circuiti real time, ecc...
Con i sensori digitali o analogici, nessun problema... ma adesso mi trovo ad affrontare il problema conseesione I2C.
Ho collegato ai pin 4 e 5 di Arduino uno rev.3, per la comunicazione I2C, un schermo lcd 20x40 linee e questo funziona egregiamente.
Poi ho collegato in parallelo anche un piccolo circuito per il real time clock che ha già nel suo piccolo circuito 2 resistenze pull-up, entrambi funzionano con una alimentazione di 5.0v.
Ora però dovrei collegare, sempre in I2C, 2 sensori per misurare la luce, Ma questi sono alimentati a 3.3v e anchessi (mi sembra di aver visto nella basetta, perchè non ho schemi) hanno già delle resistenze pull-up.
Essendo che vedo per la prima volta questo tipo di comunicazione, ho letto in vari forum che non è possibile collegare devices da 5v e 3.3v assieme nello stesso bus, anche se nel sito dove ho acquistato i sensori della luce e del real time clock odicono che togliendo le resistenze pull-up nel modulino real time clock (5.0v) e possibile collegarli assieme perchè inteveranno le resistenze nel modulini dei sensori di luce... ma io ho anche LCD a 5.0v e per cui non mi fido... non vorrei bruciare qualche cosa.
Quindi vi chiedo: Come posso fare per collegare anche questi sensori della luce in I2C ? se ho ben capito c'è la possibilità di convertire la tensione, ma non ho schemi e lista componenti o altro...
Spero ci sia qualcuno mi aiuti a far convivere tutti questi device assieme.

Questi i link dei vari componenti in questione

1) http://arduino-direct.com/sunshop/index.php?l=product_detail&p=333 ( I know that in this sensor need to remove the pull-up resistor)
2) http://www.adafruit.com/products/264
3) https://www.adafruit.com/products/439

Grazie a tutti
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6984
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Credo ti serva un convertitore di livello logico --> http://www.robot-italy.com/product_info.php?products_id=2508
oppure --> http://www.robot-italy.com/product_info.php?cPath=52_71&products_id=2276
Naturalmente li trovi anche in altri negozi online.  smiley-grin
Logged

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

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

L'idea di PaoloP è buona, in genere sappi che:
puoi inviare un livello logico 3,3V ad un ingresso 5V direttamente, sarà riconosciuto correttamente
se invii un livello logico 5V ad un ingresso 3,3V devi mettere un partitore di tensione altrimenti fai danno
esistono degli integrati, logiche TTL/CMOS, che effettuano facilmente questa traslazione di livelli. Un ottimo esempio lo trovi sullo schema del data logger di Adafruit
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

Offline Offline
God Member
*****
Karma: 2
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tutto chiaro, infatti mi stavo spostando nei convertitori di segnale bidirezionali.
Ma mi viene spontanea una domanda:
Questi convertitori, ho visto che usano già le pull-up, ma le ho anche nei block dove sono i sensori (almeno sono sicuro per il real time clock, che tra l' altro è della adafuit assieme ai sensori di luce) quindi non è che avere più resistori pull-up possa dare disturbi nella comunicazione I2C ?
Vi chiedo questo perchè, dopo alcuni test fatti con LCD e il real time clock (leggo data e ora e la scrivo nel LCD) dopo un po' di tempo quello che esce nel LCD è un po' strano. Diciamo che inizia a uscire ora del tipo 12:00:73 secondi o date un po' strane (45/13/2012) ecc... spegni l' arduino e lo riaccendi e per un 15 min tutto funziona a meraviglia.  A parte che devo ancora fare indagini per capire... ma non vorrei che i due device hanno tutti e due le resistenze pull-up e questo "sporchi" la comunicazione.

Grazie a tutti
Logged

Milan, Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 332
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,
in questo pdf http://ics.nxp.com/support/documents/interface/pdf/an97055.pdf c'è lo schema per realizzare un convertitore di livello 3 / 5 volt per i2c, è lo stesso schema usato per i convertitori in vendita nei vari siti, a pagina 13 sono elencati i mosfet da utilizzare, non c'è nessuno che ci può indicare degli equivalenti magari Sgs o di altri produttori, di facile reperimento nei negozi?
lo schema e molto semplice per cui di facile realizzazione casereccia.
Grazie.

Alberto
Logged


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

BSN10    min. 0.4V max. 1.8V    25 Ohm (typ)    15 pF                TO-92    
BSN20    min. 0.4V max. 1.8V    25 Ohm (typ)    15 pF                 SOT23    
BSS83    min. 0.1V max. 2.0V    70 Ohm (typ)    1.5 pF (typ)    SOT143    
BSS88    min. 0.4V max. 1.2V    15 Ohm                 50 pF (typ)    TO-92    

Questi sono indicati nell'AN, sono "equivalenti", nel senso che vanno tutti bene, non N-Mosfet, il primo ed il quarto hanno contenitore TO-92 quello plastico piccolo tipo transistor, invece i SOT sono modelli smd.
Sono caratteristiche standard, credo proprio si possano sostituire con qualsiasi modello più noto, senza troppi sbattimenti. Una ricerca MOSFET N su RS e ne escono un'infinità, restringi al case TO-92, cercati i più economici e confrontali con questi dati, se sono similari vai tranquillo. Oppure fatti dire dal tuo negoziante che modelli ha e fai il percorso opposto.
Comunque i classici IRF sono troppo grossi e rappresentano uno spreco inutile, mentre quelli in TO-92 penso si trovino difficilmente in negozi di città.
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

Offline Offline
God Member
*****
Karma: 2
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Benissimo, grazie a tutti... Ultima cosa.. visto che mi sto avvicinando da poco a questa cosa..
I valori delle resistenze, vanno bene le solite per un 5.0v o cambiano nella parte 3.3v ?

Grazie a tutti
Logged

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

Benissimo, grazie a tutti... Ultima cosa.. visto che mi sto avvicinando da poco a questa cosa..
I valori delle resistenze, vanno bene le solite per un 5.0v o cambiano nella parte 3.3v ?

Grazie a tutti
dovresti chiarire a che servono; se parli di pull-up/down 10k è un valore standard per entrambe, se devi limitare la corrente ovvio che quelle per 3.3V devono essere più piccole di quelle per 5V
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

Offline Offline
God Member
*****
Karma: 2
Posts: 543
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si effetivamente mi ero spiegato male.. volevo dire pull-up.
Grazie
Logged

Pages: [1]   Go Up
Jump to: